Introduction | Files | Utilities | Gallery | ToDo list

Laser-stabilized odometry (lodo_driver)

The lodo driver provides laser-stabilized odometric pose estimates: the inputs are raw odometry and laser scans, the outputs are corrected pose estimates and synchronized laser scans (i.e., no lag-lead effects). The drift in this corrected estimate is much, much, lower than that seen with odometry alone (e.g., less than 1m drift in position after 100m of travel). The lodo driver is a thin wrapper around a free-standing laser-odometry library (liblodo); see lodo.h for details of how the library works.

To use the lodo driver, simply point it at a suitable pair of position and laser devices. Generally, the position device will be provided by to a robot driver, such p2os, while the laser device will be provided by the sicklms200 driver. The lodo driver provides a new pair of position and laser interfaces that provide corrected pose estimates and synchronized laser data, respectively. If you have a Pioneer-like robot with a SICK laser, the lodo driver will be almost entirely transparent to your client programs: simply get odometry and laser data from the lodo driver instead of the underlying hardware drivers.

Laser configuration
For best performance, set the laser range and bearing resolutions to 10cm and 1 degree, respectively; for the SICK, this corresponds to:

driver
(
  name "sicklms200"
  resolution 100
  range_res 10
  rate 38400
)

It is also vitally important that the laser be rigidly mounted to the robot (that means no velcro or gaffer tape), with a known, fixed orientation. Badly aligned lasers introduce systematic errors and high drift rates (worse than odometry alone).

See the caveats below for additional usage notes.

Caveats
While the driver has been extensively tested on certain hardware configurations (Pioneer2DX robots with SICK LMS200 lasers), mileage may vary on other platforms. Several points should be noted:

Requires

Provides

Supported configuration requests
None

Todo:
Pass configuration requests through to underlying drivers.

Expose library options.

Configuration file options

Example
device
(
  plugin "lodo_driver.so"
  driver "lodo_driver"
  requires ["position:0" "laser:0"]
  provides ["position:10" "laser:10"]
)

Authors
Andrew Howard
Generated on Tue Dec 14 14:37:39 2004 for Simple map utilities by doxygen 1.3.8