

laser_line_extraction
source link: https://charon-cheung.github.io/2022/07/03/%E6%BF%80%E5%85%89SLAM/laser_line_extraction/#%E5%8F%82%E6%95%B0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

laser_line_extraction | 沉默杀手
论文A comparison of line extraction algorithms using 2D range data for indoor mobile robotics
对比了6种提取雷达数据线条算法的效果。结论如下:
Split-and-Merge
和 Incremental
由于处理速度和准确性而表现最好。 对于实时的应用,Split-and-Merge
是最佳选择,因为处理速度很快。它也是地图定位问题的第一选择,此时FalsePos
不太重要。但是,算法实现的细节对应用是很重要的。
对于laser_line_extraction
对应的03年论文,这篇论文在介绍Split-and-Merge
时没有提到,只在Related Work
里提了一下。但是laser_line_extraction
的介绍里声称是使用了Split-and-Merge
算法,还有待观察。
对雷达扫描的结果,如果形状接近直线,就进行连线。
先对离群点进行过滤,再执行split-and-merge
算法决定哪些点属于线,然后使用weighted line fitting
算法找到最合适的线和相应的协方差矩阵。
使用roslaunch laser_line_extraction example.launch
,修改参数以符合自己的需求。
bearing_std_dev (default: 0.001): The standard deviation of bearing uncertainty in the laser scans (rad).
min_split_dist (default: 0.05): When performing “split” step of split and merge, a split between two points results when the two points are at least this far apart (m) 线段split的阈值,过大时很多线段被合并成一条,过小时,出现很多碎短的线段
outlier_dist (default: 0.05): Points who are at least this distance from all their neighbours are considered outliers (m).
range_std_dev (default: 0.02): The standard deviation of range uncertainty in the laser scans (m).
float32 radius
float32 angle
float32[4] covariance
float32[2] start
float32[2] end
- start和end分别是这个线段的起点坐标和终点坐标。
- angle: 原点到直线的垂线的角度,角度以机器人为坐标系计算,范围是-PI~PI
- radius: 原点到直线的距离
这两个参数完全能够根据start和end点计算出来。不理解这两个参数存在的意义。
covariance是2X2的矩阵,是radius和angle的协方差
line_extractor
line_extractor
发布:
camera_line_markers [visualization_msgs/Marker]
camera_line_segments [laser_line_extraction/LineSegmentList]
line_markers [visualization_msgs/Marker]
line_segments [laser_line_extraction/LineSegmentList]
taimi/line_center_point [nav_msgs/Odometry]
taimi/line_wall_position [geometry_msgs/PoseStamped]
taimi/waste_aruco_position [geometry_msgs/PoseStamped]
camera1/scan [sensor_msgs/LaserScan]
shelf_lifter/cmd [std_msgs/String]
sick_tim551_scan [sensor_msgs/LaserScan]
tf [tf2_msgs/TFMessage]
tf_static
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK