当前位置: 华文星空 > 汽车

如何基于ROS学习激光SLAM?

2021-10-24汽车

在激光SLAM中,我们经常会遇到过滤离散点以及几何特征提取等需求,这里分享基于网络开源代码的直线提取和区域分割的小demo,依赖PCL库和ROS。

代码地址:

一、 直线提取

PCL库中的直线提取较为简单,我们可以直接套用setDistanceThreshold函数进行分割,函数使用流程如下:

pcl::RandomSampleConsensus<pcl::PointXYZ> ransac(model_line); ransac.setDistanceThreshold(0.02); //内点到模型的最大距离 ransac.setMaxIterations(100); //最大迭代次数 ransac.computeModel(); Eigen::VectorXf coef; ransac.getModelCoefficients(coef); //coef会被赋值成直线模型参数

效果

二、区域分割

区域分割可以不依赖pcl完成,我的处理逻辑是,遍历点云的所有点,计算两点之间的距离,如果距离在某一点上有突变,则证明该点是一个撕裂点。

效果: