Locater - tree row

From Rsewiki
Revision as of 07:33, 11 September 2010 by Jca (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

based on laser scan lines and fluffy lines (tree-rows). Locater also include row-end detection for the end of the defined lines. The lines (rows) are defined in the mapbase (mapbase.so.0)

The mapbase plugin (mapbase.so.0) must be loaded first.

Author: Søren Hansen, amended by Christian Andersen

(for svn version 992)

Configuration variables

  • keepMapPose=1 - Should locater update map-pose (in the mappose module)
  • useRowEnd=1 - (rw) determines if row end detections should be used in locater pose update
  • rowEndIn1=4.5 - (rw) distance inside coverage before row end detect when row end is expected out of range
  • rowEndIn2=2.5 - (rw) distance inside coverage before row end detect when row end is expected in range
  • rowEndMaxGap=2.8 - (rw) Max opening in a detected row to be valid (meter)
  • useAvgUpdate=1 - (rw) Flag if averaged update is to be used rather than update for each line individually
  • rowToRobotMaxDist=4 - (rw) maximum this far from robot if usable for row end detection.
  • rowEndMaxDist=6.5 - (rw) reject row end detections more than this away from expected position (m)
  • odoDistScale=1 - (rw) multiplied on driven distance in locater update
  • rowExtraLog=0 - (rw) Make extra log of correlations to mapped rows - much data

Result variables

  • kalmpose=0 0 0 - (r) Pose according to localisation
  • updcnt=0 0 0 - (r) Counts number of updates, [0]=scans since last update, [1] number of locater updates, [2]=updates since last miss.

Functions calls

  • resetstate() - Set the state to the pose (in utmPose) and resets old odoposes
  • utmToMap() - Set map pose from the utm pose - when keepMapPose is false only

Functions commands

  • locater openlog
  • locater locate

Configuration example

(in laser server configuration file ulmsserver.ini)

module load="mapbase.so.0"
mapbase mapload="./apple_cherry_map.xml"
mapbase graphload="./apple_cherry_graph.xml"

module load="locater.so.0"
var locater.useRowEnd=1
var locater.rowEndIn1=4.5
var locater.rowEndIn2=2.5
var locater.rowEndMaxGap=2.8
var locater.useAvgUpdate=1
var locater.rowEndMinCover=0.33
var locater.rowEndMaxDist=6.5
var locater.keepMapPose=1
locater openlog
var call="locater.resetstate()"
scanpush cmd="v360 update"
v360push cmd="locater locate"