该cpp里就一个回调函数
laserCloudInfoHandler
订阅lio_sam/deskew/cloud_info 去畸变点云
- calculateSmoothness
计算每个点云相邻的5个点深度值的残差和,残差和的平方为该点曲率 - markOcclodedPoints
判断遮挡点和平行点,这两种点都不做特征提取 - extractFeatures
遍历每个扫描线,将每个扫描线分为6段,点云按照曲率大小排序,从大到小遍历,曲率大于阈值为角点,每段取20个角点,选取的角点前后5个点不再处理。从小到大遍历,曲率小于阈值认为是平面点,标记的平面点前后5个点不再处理,平面点和不处理的点,都归为平面点。
平面点降采样加入平面点云集合。 - publishFeatureCloud
发布topic:
lio_sam/feature/cloud_corner (rviz发布)
lio_sam/feature/cloud_surface(rviz发布)
lio_sam/feature/cloud_info