HAKO: Difference between revisions

From Rsewiki
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Video from autonomous Cherry Orchard drive in Tåstrup 2009 ===
One of the autonomous drives in Tåstrup Cherry orchard, from front looking camera (fast replay), and from mission execution planner.
(@todo: ret disse døde links)
http://aut.elektro.dtu.dk:rse/hako-orchard2.avi
http://server.elektro.dtu.dk/www/jca/mobotware/hako/cherry-20091014c.mpeg
http://server.elektro.dtu.dk/www/jca/mobotware/hako/cherry-left-20091014c.mpeg
http://aut.elektro.dtu.dk:rse/hako-orchard2.avi
http://aut.elektro.dtu.dk:rse/Our%20pictures/karcher/TaskCycle.mpeg
=== software installation on HAKO ===
=== software installation on HAKO ===


=== hako 1 - Navigation computer ===
=== hako 1 - Navigation computer ===
Line 36: Line 53:


==== MRC ====
==== MRC ====
'''21 july 2010'''


17 April 2009
mrs moved to SVN and compiled here for Hako (on jensen)
 
snapshot of MRC (from /vhome/naa/robot2005/src/) to my svn directory on jensen


Changed path of librhd.a in Makefile in mrc subdirectory to:  
Changed path of librhd.a in Makefile in mrc subdirectory to:  


  LIBS= -lrobot -lm /vhome/jca/svn/rhd/branches/rhd2.0/build/lib/librhd.a \
  LIBS=   -lpthread -lncurses -lexpat -liau_mat -lrobot -lm \
      /vhome/naa/linux/smr/libsmr/libsmr.a \
        ../../../rhd/branches/rhd2.0/build/lib/librhd.a \
      -lpthread -lncurses -lexpat -liau_mat
        ../../../aumat/trunk/libiau_mat.a \
        ../libsmr/libsmr.a


Reference to RHD rhd.h should have moved to  
Reference to RHD rhd.h should have moved to  
Line 52: Line 69:
  /usr/local/smr/include
  /usr/local/smr/include


compiled MRC, and moved it to
Moved to Hako using
 
scp mrc root@hako:hako/


==== MRC configuration ====
scp mrc root@hako:hako/mrc20100723


17 April 2009
and made a new link in the hako directory


the Hako calibration parameters are in
ln -s mrc20100723 mrc


/root/hako/calib/robot.conf
'''23 july 2010'''


Changed motioncontrolcontrol (drive command) to compensate for delay in steering control. The new code is active only if the delay (steer_delay) is set to more than a sample time (ts="0.1").


1 july 2010
Two new items (steer_delay and steer_vel) in configuration file (calib/robot.conf):


Turnr parameters were changed to
...
  drive_kdist   ="1.0"
  <motioncontrol
drive_kangle  ="3.0"
  ts          ="0.1"
But should be safe to go back to:
  line_gain    ="0.1"
  drive_kdist  ="1.2"
  line_tau    ="0"
drive_kangle  ="3.5"
  line_alfa    ="0.04"
Is OK for odometry turns (90deg) with speed up to 1.5m/s, and using kalman position with speeds up to 1m/s
  wall_gain    ="1"
  wall_tau    ="0.7"
  wall_alfa    ="0.2"
  drive_kdist ="1.0"
  drive_kangle ="2.0"
  steer_delay ="0.5"
  steer_vel    ="0.61"
  gain        ="0"
  tau          ="0.16"
  alfa        ="0.2"
  w            ="0.26"
  robotlength ="1.6"
  lim          ="0.57"
  stopdist    ="0.18"
  alarmdist    ="0.1"
  velcmd      ="0.5"
  acccmd      ="0.5"
  nolinedist  ="0.2"
  />
...


The full motion control group is set to (1 july 2010)
[[Image:sidestep-1m.png]]
  <motioncontrol
  ts  ="0.1"
  line_gain ="0.1"
  line_tau ="0"
  line_alfa    ="0.04"
  wall_gain    ="1"
  wall_tau      ="0.7"
  wall_alfa ="0.2"
  drive_kdist  ="1.0"
  drive_kangle  ="3.0"
  gain ="0"
  tau ="0.16"
  alfa ="0.2"
  w ="0.26"
  robotlength  ="1.7"
  lim ="0.57"
  stopdist ="0.18"
  alarmdist ="0.1"
  velcmd ="0.5"
  acccmd ="0.5"
  nolinedist ="0.2"
  />


=== HAKO old mission manager ===
=== HAKO old mission manager ===
Line 151: Line 164:
Is called smrdemoclient in the ''/srv/httpd/htdocs/hako/applet/run'' directory, but refers to ''hakoclient'' in the ''/home/ex05/src/smrdemo2ext/'' directory.
Is called smrdemoclient in the ''/srv/httpd/htdocs/hako/applet/run'' directory, but refers to ''hakoclient'' in the ''/home/ex05/src/smrdemo2ext/'' directory.


hakoclient can be started manually with the mission XML file as parameter. From the mission directory:
hakoclient can be started manually with the mission XML file as parameter.  
This requires that the RHD and MRC (mrc -t1) is started manually.
From the mission directory:


cd /srv/httpd/htdocs/hako/applet/var
  ../bin/smrdemoclient mission.xml
  ../bin/smrdemoclient mission.xml


Line 163: Line 179:
* made a copy of 'stream2line.h' and '-.c' into hakoclient directory to make compilation independent of librobot.a in NAA home directory.
* made a copy of 'stream2line.h' and '-.c' into hakoclient directory to make compilation independent of librobot.a in NAA home directory.


tested 1 july 2010 ad showed clear improvements for both turns.  
tested 1 july 2010 ad showed clear improvements for both turns.


====New fishtail turn====
====New fishtail turn====
Line 169: Line 185:
New fishtail turn implemented (15 july 2010) to improve speed and looks:
New fishtail turn implemented (15 july 2010) to improve speed and looks:


* Use two curved turns, one towards new row-line, one reverse with opposite angle.
* Use two curved turns, one towards new row-line, one reverse with opposite angle. Curve length determined by inter-row distance.
* Each turn is split in two, one with full speed (as defined in mission) and one while stopping using same turn radius. The stop distance is calculated from a speed change delay of 0.7 seconds and an acceleration of 0.65m/s^2.
* Each turn is split in two, one with full speed (as defined in mission) and one while stopping using same turn radius. The stop distance is calculated from a speed change delay of 0.7 seconds and an acceleration of 0.65m/s^2.
* After reversing the fishtail is ended, and should now aim for next row.
* After reversing the fishtail is ended, and should now aim for next row.
* The row distance is now calculated as perpendicular distance to current row-line, that means that end of this row and start of next row may not be aligned, but rather fitted for positioning of tool-lifting/lowering
* The row distance is now calculated as perpendicular distance to current row-line, that means that end of this row and start of next row may not be aligned, but rather fitted for positioning of tool-lifting/lowering


NB! turns should not be attempted at a speed above 1m/s - higher speeds seems to trigger instability (large overshoot)
 
* Further as a result of new kalman pre-init function, the hakoclient is modified to use GPS (UTM) position as kalman position if kalman-y (northing) is less then 1m. This is the case until robot has driven 0.5m, to get a reasonable initial heading. Test show that after further 2 seconds of updates (1m at 0.5m/s) the kalman filter heading is stable (on a fair GPS-coverage day at the lawn in Tåstrup).


=== hako 2 - Perception computer ===
=== hako 2 - Perception computer ===

Latest revision as of 11:03, 23 October 2012

Video from autonomous Cherry Orchard drive in Tåstrup 2009

One of the autonomous drives in Tåstrup Cherry orchard, from front looking camera (fast replay), and from mission execution planner.

(@todo: ret disse døde links)

http://aut.elektro.dtu.dk:rse/hako-orchard2.avi

http://server.elektro.dtu.dk/www/jca/mobotware/hako/cherry-20091014c.mpeg

http://server.elektro.dtu.dk/www/jca/mobotware/hako/cherry-left-20091014c.mpeg

http://aut.elektro.dtu.dk:rse/hako-orchard2.avi

http://aut.elektro.dtu.dk:rse/Our%20pictures/karcher/TaskCycle.mpeg

software installation on HAKO

hako 1 - Navigation computer

The navigation computer is primarily running RHD and MRC

Running linux slackware version 12.0 (as of 5 May 2009)

RHD

17 April 2009

Compiled RHD.

Moved to new compiled version (svn 485 from rhd/branches/rhd2.0/build/*)

Moved to /root/hako/rhd484 (including bin, lib and include directories)

cd ~/svn/rhd/branches/rhd2.0/build
tar -czf mrc484.tar.gz bin include lib
scp mrc484.tar.gz root@hako:hako/

on HAKO, make new directoy to new version and move tar file to this

mkdir rhd484
mv rhd484.tar.gz rhd484
cd rhd484
tar -xzf rhd484.tar.gz
cd ..
ln -sf rhd484 rhd
cd rhd/bin
ln -s rhdconfig/rhdconfig.hako.xml rhdconfig.xml

Disable crossbow in rhdconfig.xml (not sufficient stable for real work in this environment)


MRC

21 july 2010

mrs moved to SVN and compiled here for Hako (on jensen)

Changed path of librhd.a in Makefile in mrc subdirectory to:

LIBS=   -lpthread -lncurses -lexpat -liau_mat -lrobot -lm \
        ../../../rhd/branches/rhd2.0/build/lib/librhd.a \
        ../../../aumat/trunk/libiau_mat.a \
        ../libsmr/libsmr.a

Reference to RHD rhd.h should have moved to

/vhome/jca/svn/rhd/branches/rhd2.0/include/rhd.h

but was not (should be OK), used the version in

/usr/local/smr/include

Moved to Hako using

scp mrc root@hako:hako/mrc20100723

and made a new link in the hako directory

ln -s mrc20100723 mrc

23 july 2010

Changed motioncontrolcontrol (drive command) to compensate for delay in steering control. The new code is active only if the delay (steer_delay) is set to more than a sample time (ts="0.1").

Two new items (steer_delay and steer_vel) in configuration file (calib/robot.conf):

...
<motioncontrol
  ts           ="0.1"
  line_gain    ="0.1"
  line_tau     ="0"
  line_alfa    ="0.04"
  wall_gain    ="1"
  wall_tau     ="0.7"
  wall_alfa    ="0.2"
  drive_kdist  ="1.0"
  drive_kangle ="2.0"
  steer_delay  ="0.5"
  steer_vel    ="0.61"
  gain         ="0"
  tau          ="0.16"
  alfa         ="0.2"
  w            ="0.26"
  robotlength  ="1.6"
  lim          ="0.57"
  stopdist     ="0.18"
  alarmdist    ="0.1"
  velcmd       ="0.5"
  acccmd       ="0.5"
  nolinedist   ="0.2"
  />
...

HAKO old mission manager

Start in browser

Browser with java enabled.

Connect to:

http://192.168.1.10/hako/applet/index.php

Hvis det er første gang, så download 'settings' fil nederst i vinduet, og placer i eget bibliotek som beskrevet. Restart browser.

Vælg så "Hako Control" øverst på php-siden.

Så forbinder java-applet til hakoclient, som starter RHD og MRC på hako-navigationscomputer.

Når forbindelse er etableret og GPS er i fix-mode er status grøn, og klar til at loade en mission.

files

On the HAKO1 computer the mission is placed at

/srv/httpd/htdocs/hako/applet/var/mission.xml

The logfiles can be found in

/srv/httpd/htdocs/hako/applet/log

The newest log is called log. the previous logfile is renamed to YYMMDD--HHMM-log at the time of the new mission.

The logfile has the following entries:

$xkalman
$ykalman
$thkalman
$gpseasting
$gpsnorthing
$odox
$odoy
$odoth
$odovelocity
$hakosteeringangle
$hakocvtpulses

The first log entry has values for $xkalman and $ykalman only. The next line has also $gpseasting $gpsnorthing and from the third line all values should be valid.

NB! the logging is started after the kalman-init period only (before 1 July 2010)

hakoclient

Is called smrdemoclient in the /srv/httpd/htdocs/hako/applet/run directory, but refers to hakoclient in the /home/ex05/src/smrdemo2ext/ directory.

hakoclient can be started manually with the mission XML file as parameter. This requires that the RHD and MRC (mrc -t1) is started manually. From the mission directory:

cd /srv/httpd/htdocs/hako/applet/var
../bin/smrdemoclient mission.xml

The hakoclient source is in the svn (version 1011 as of 30 jun 2010) updated to handle the following issues (based on NAA modifications to omegaturn):

  • Skipped the last drive on tight omega turns (in file turn_omega.c), to allow faster convergence to next no-turn leg.
  • Skipped the last turnr in a fishtail-turn (in functions.c) to allow faster convergence to next no-turn leg.
  • Reduced forward drive after first turnr to 20cm (from 0.7m) to make manoeuvre more smooth.
  • added a few comments, removed a few unused variables and modified 2 variables from 'int' to 'unsigned int' to remove warnings.
  • made a copy of 'stream2line.h' and '-.c' into hakoclient directory to make compilation independent of librobot.a in NAA home directory.

tested 1 july 2010 ad showed clear improvements for both turns.

New fishtail turn

New fishtail turn implemented (15 july 2010) to improve speed and looks:

  • Use two curved turns, one towards new row-line, one reverse with opposite angle. Curve length determined by inter-row distance.
  • Each turn is split in two, one with full speed (as defined in mission) and one while stopping using same turn radius. The stop distance is calculated from a speed change delay of 0.7 seconds and an acceleration of 0.65m/s^2.
  • After reversing the fishtail is ended, and should now aim for next row.
  • The row distance is now calculated as perpendicular distance to current row-line, that means that end of this row and start of next row may not be aligned, but rather fitted for positioning of tool-lifting/lowering


  • Further as a result of new kalman pre-init function, the hakoclient is modified to use GPS (UTM) position as kalman position if kalman-y (northing) is less then 1m. This is the case until robot has driven 0.5m, to get a reasonable initial heading. Test show that after further 2 seconds of updates (1m at 0.5m/s) the kalman filter heading is stable (on a fair GPS-coverage day at the lawn in Tåstrup).

hako 2 - Perception computer

Perception computer Is running AU robot servers and works as remote control server

Running linux slackware version 12.0 (as of 5 May 2009)