The obstacle_detector package provides utilities to detect and track obstacles from data provided by 2D laser scanners. Detected obstacles come in a form of line segments or circles. The package was designed for a robot equipped with two laser scanners therefore it contains several additional utilities.
这个包也可以用于合并scan
算法顺序: two laser scans -> scans merger -> merged scan or pcl -> obstacle extractor -> obstacles -> obstacle tracker -> refined obstacles
resulting laser scan divides the area into finite number of circular sectors and put one point (or actually one range value) in each section occupied by some measured points
This node converts messages of type sensor_msgs/LaserScan from topic scan or messages of type sensor_msgs/PointCloud from topic pcl into obstacles which are published as messages of custom type obstacles_detector/Obstacles under topic raw_obstacles.
- obstacle_tracker node
使用卡尔曼滤波追踪和过滤圆形障碍,订阅消息类型obstacle_detector/Obstacles
from topic raw_obstacles
and publishes messages of the same type under topic tracked_obstacles
. The tracking algorithm is applied only to the circular obstacles, hence the segments list in the published message is simply a copy of the original segments. The tracked obstacles are supplemented with additional information on their velocity.
自定义的消息
- CircleObstacle
1 | // center of circular obstacle, |
- SegmentObstacle
1 | // first point of the segment (in counter-clockwise direction) |
- Obstacles
1 | Header header |
obstacle_detector
也有一定误检测概率,可能把真实静态障碍检测为行人。
参考:
Github的obstacle_detector
Cartographer行人点云过滤建图
Paper Review: Detection and Tracking of 2D Geometric Obstacles from LRF Data