目的:
- 使用纯激光点云进行实时全局定位。
- 点云的全局匹配比较困难,即使使用NDT也只能在一个先验位置附近搜索。
- NDT匹配运算量较大。
- 动态物体影响较大。
效果:
- 每次匹配在100ms左右,还有提升空间。
- 适用于小到100平米大到3000平米区域的全局匹配。
- 全局定位水平平均精度在30cm,垂直精度在60cm
- 滤波后水平平均精度在20cm,垂直精度在20cm
方法:
- 主要算法基于https://github.com/ethz-asl/segmap
- 对地图点云进行分割后,提取每个分割的描述符。
- 使用cartographer得到一个局部地图,对地图点云进行分割提取描述符后,和全局地图进行匹配。
- 描述符一共7个float,代表点云的对称度,扩散度等信息。
- 同时使用深度学习得到的描述符,其匹配能力更强,但是速度更慢。因为简单的描述符已经能够满足需求,就没有用深度学习得到的描述符。
- 适应kd-tree进行描述符匹配,得到原始匹配
- 使用ransac进行排除错误的匹配,最终得到局部地图和全局地图之间的变换关系
- 使用cartographer作为滤波器中predict的方式。
- 使用UKF融合cartographer得到相对位置和描述符匹配的到的全局位置。
挑战:
- 分割算法的前提是点云需要取出地面,尝试了地面法线提取取出,但是速度较慢。考虑到不太需要精确的去除地面,最终采用简单的通过IMU得