点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者:robot L | 来源:知乎
https://zhuanlan.zhihu.com/p/157445108
本文仅做学术分享,如有侵权,请联系删除。
本文介绍一种LiDAR里程计和基于先验地图的定位方法。代码已开源:https://github.com/RozDavid/LOL。参考文献如下:
D. Rozenberszki, A. L. Majdik. LOL: LiDAR-Only Odometry and Localization in 3D Point Cloud Maps. IEEE International Conference on Robotics and Automation, 2020.
1. 主要内容
组合SOTA激光里程计算法LOAM和基于分割的场景识别算法SegMap,完成基于先验地图的定位任务。此外,作者在场景识别后加入了后处理步骤以去除一些虚假重定位。
2. 研究背景
LOAM[1]是KITTI数据集[2]中漂移最小的Odometry方法,但是它估计的运动轨迹在大场景中仍然会与真值产生较大的偏差。为了修正里程计的偏差,本文应用场景识别算法在先验离线3D点云地图中检测与当前帧几何相似的位置,进而得到当前帧与相似位置之间的相对位姿估计。最后,通过全局位姿图优化修正里程计的漂移。
3. 方法
方法的流程如图1所示。系统输入是实时的激光点云和先验点云地图。首先,我们对于新来到的激光点云,通过点云配准,激光里程计,激光建图以及位姿融合,得到当前帧的位姿估计。另一方面,对新来到的点云进行分割和描述,并在点云地图中寻找相似的分割描述,从而得到匹配的若干分割对,然后对这些分割对进行几何验证。通过验证的分割对进行ICP精修,得到当前帧在先验地图中的全局位姿。里程计位姿和全局位姿都加入位姿图中,进行增量优化。
图1. 激光里程计和定位算法的流程图,蓝色是LOAM的部分,黄色是SegMap的部分,绿色是作者添加的后处理部分。
4. 实验验证
本文提出的方法在KITTI数据集上进行了验证。与LOAM的对比结果如图2所示。上图中红绿色点云是LOAM的建图结果,黑色是先验点云地图。下图中红色和绿色分别为LOAM和本文提出方法的运动轨迹,黑色是先验点云地图。可以看出,本文提出的方法修正了LOAM的漂移。
图2. 本文方法与LOAM的实验对比。
5. 总结
A. 核心思想
组合里程计和重定位完成基于先验地图的定位任务。
B. 优缺点
优点是使用基于场景识别方法而不是欧式距离的重定位方法。
缺点1是在前端使用里程计而不是直接和先验地图匹配完成定位功能。后者的漂移比前者小很多,由于加入了先验知识。
缺点2,本文声称自己的方法是实时的,但是没有给出每个模块的具体时间评测结果。有兴趣的小伙伴可以自己跑一跑代码。
C. 展望
基于深度学习的激光点云场景识别方法会越来越多地出现,并且在今后的激光SLAM/定位方法研究中,基于场景识别的回环检测/重定位方法会占据主流。因为该方法与到回环的空间距离无关,并且有的场景识别方法具有视角不变性,甚至和原来的行驶方向相反时,也能检测到回环。