Laser Scan Processor is a Robot Operating System (ROS) package able to process information from LaserScan messages. Currently the developed features are:
- Line extraction [1]
- Door detection
Here is an example of the project in action:
roslaunch laser_scan_processor run.launch
Laser Line Extraction has two messages types:
float32 radius
float32 angle
float32[4] covariance
float32[2] start
float32[2] end
radius
(m) and angle
(rad) are the polar parameterization of the line segment. covariance
is the 2x2 covariance matrix of radius
and angle
(listed in row-major order). Finally start
and end
are the (x, y) coordinates of the start and end of the line segment.
Header header
LineSegment[] line_segments
An array of LineSegment.msg with a header.
Laser Line Extraction subscribes to a single topic and publishes one or two topics.
/scan
(sensor_msgs/LaserScan)- The name of this topic can be configured (see Parameters).
/line_segments
(laser_line_extraction/LineSegmentList)- A list of line segments extracted from a laser scan.
/line_markers
(visualization_msgs/Marker)- (optional) Markers so that the extracted lines can be visualized in rviz (see above image). Can be toggled (see Parameters).
/door_markers
(visualization_msgs/Marker)- (optional) Markers so that the extracted door can be visualized in rviz (see above image). Can be toggled (see Parameters).
[1] Marc Gallant, Laser Line Extraction, (2020), GitHub repository, https://github.com/kam3k/laser_line_extraction