Lines detection algorithm for ROS2 framework.
The algorithm is mostly based on the following paper: "A line segment extraction algorithm using laser data based on seeded region growing".
- "/scan" (sensor_msgs/msg/LaserScan.msg
Laser scan message from laser sensor.
- "/lines" (visualization_msgs/msg/MarkerArray)
Marker array consisting of "LINE_STRIP" markers (visualization_msgs/msg/Marker). Each "LINE_STRIP" consists two points, starting point of the detected line and the ending point.
- "/corners" (visualization_msgs/msg/MarkerArray)
Marker array consisting of "Sphere" markers. Each sphere location represent the corner location.
-
Download repository:
cd ~/$YOUR_ROS2_WORKSPACE$/src git clone https://github.com/elbazam/line_detection.git
-
Install repository:
cd ~/$YOUR_ROS2_WORKSPACE$ colcon build --packages-select line_detection
- To execute the algorithm:
ros2 run line_detection publish_lines
graph TD
A{laser scan} -- \scan --> B[line_detection] -- "/lines" --> C{rviz2/MarkerArray}
B[line_detection] -- "/corners" --> C{rviz2/MarkerArray}
- Adding config files.
- Adding corner and exit detection.