一、引言:从理念到落地的距离
这一篇结合VEnus的核心代码,展开讲解纯反光柱定位和建图中的每一步实现。同时,VEnus作为一个开源框架必然存在一些有待完善的局限,本文将指出这些局限并探讨可行的改进方向。
二、核心代码流程逐步解构
2.1 强度提取
VEnus的数据处理起始于IntensityExtraction::Extract函数。输入数据是VEnus::Sensor::IntensityRange2D类型的点云,该类型定义在sensor.proto文件中,包含时间戳timestamp、坐标系frame_id以及repeated IntensityPoint2D points字段。IntensityPoint2D进一步包含x、y坐标和强度值intensity三个关键信息。
message IntensityPoint2D {
float x = 1;
float y = 2;
float intensity = 3;
}
Extract函数的核心逻辑是对整个点云进行一次遍历,取连续的n个点(由参数intensity_median_filter_param决定,典型值为3或5)。只要其中有超过一半的点强度超过阈值intensity_threshold(通常设置在200-250之间),就认为该窗口内存在反光柱,将其中强度处于中间值的那个点存入容器candidate_cloud中。
这种强度阈值提取的方式没有问题,

订阅专栏 解锁全文

202

被折叠的 条评论
为什么被折叠?



