HAKO: Difference between revisions
(26 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''' | |||
mrs moved to SVN and compiled here for Hako (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 / | 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 | Reference to RHD rhd.h should have moved to | ||
Line 52: | Line 69: | ||
/usr/local/smr/include | /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" | |||
/> | |||
... | |||
[[Image:sidestep-1m.png]] | |||
=== HAKO old mission manager === | === HAKO old mission manager === | ||
Line 84: | Line 132: | ||
====files==== | ====files==== | ||
On the HAKO1 computer the mission is placed | 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==== | ====hakoclient==== | ||
Is called smrdemoclient in the /srv/httpd/ | 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. | 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 | ||
The hakoclient source is in the svn (version 1011 as of 30 jun 2010) updated to handle the following issues: | 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 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. | * Skipped the last turnr in a fishtail-turn (in functions.c) to allow faster convergence to next no-turn leg. | ||
Line 107: | 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. | |||
====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 === | === 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
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)