laserfeature

Extract line/corner features from a laser scan.

The laserfeature driver extracts lines and corners from a laser data scan, and returns the 2-d positions of each line segment through the Fiducial interface.

laserfeature uses an EKF to segment the scan into line segments, then does a best-fit for each segment. The EKF is based on the approach by Stergios Romelioutis.

Compile-time dependencies
  • none
Provides
  • interface_fiducial
    • This interface returns a list of features extracted from the laser scan.
Configuration requests
  • fiducial interface
    • PLAYER_POSITION2D_REQ_FIDUCAL_GEOM
Requires
  • interface_laser
    • Laser scan to find lines in
Configuration file options
  • model_range_noise (length)
    • Default: 0.02 m
    • Expected range noise in laser measurements
  • model_angle_noise (angle)
    • Default: 10 degrees
    • Expected angular noise in laser measurements
  • sensor_range_noise (length)
    • Default: 0.05 m
    • Expected range noise in laser sensor.
  • segment_range (length)
    • Default: 0.05m
  • merge_angle (angle)
    • Default: 10 degrees
  • discard_length (length)
    • Default: 1.00 m
    • Threshold for segment length (smaller segments are discarded)
  • min_segment_count (int)
    • Default: 4
    • Minimum amount of segments needed to publish Fiducial data
Example
driver
(
  name "laserfeature"
  provides ["fiducial:0"]
  requires ["laser:0"]

  model_range_noise 0.05
  angle_range_noise 10
  sensor_range_noise 0.05
  segment_range 0.05
  merge_angle 10
  discard_length 1.00
  min_segment_count 4

)
Author
Andrew Howard, Rich Mattes