HAKO

From Rsewiki
(Difference between revisions)
Jump to: navigation, search
(hakoclient)
(Video from autonomous Cherry Orchard drive in Tåstrup 2009)
 
(27 intermediate revisions by one 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/
+
  scp mrc root@hako:hako/mrc20100723
  
==== MRC configuration ====
+
and made a new link in the hako directory
  
17 April 2009
+
ln -s mrc20100723 mrc
  
the Hako calibration parameters are in
+
'''23 july 2010'''
  
/root/hako/calib/robot.conf
+
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 in
+
On the HAKO1 computer the mission is placed at
  
/srv/httpd/...?../hako/applet/ ...
+
/srv/httpd/htdocs/hako/applet/var/mission.xml
  
as is the mission logfile.
+
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/.../hako/applet/run directory, but refers to hakoclient in the /home/ex05/..../ directory.
+
Is called smrdemoclient in the ''/srv/httpd/htdocs/hako/applet/run'' directory, but refers to ''hakoclient'' in the ''/home/ex05/src/smrdemo2ext/'' directory.
  
The hakoclient is in the svn (version 1011 as of 30 jun 2010) updated to handle the following issues:
+
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):
  
* 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 103: 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.
  
All to be tested 1 july 2010.
+
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

Contents

[edit] 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

[edit] software installation on HAKO

[edit] hako 1 - Navigation computer

The navigation computer is primarily running RHD and MRC

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

[edit] 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)


[edit] 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"
  />
...

Sidestep-1m.png

[edit] HAKO old mission manager

[edit] 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.

[edit] 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)

[edit] 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.

[edit] 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).

[edit] 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)

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox