基于ORB-SLAM2可持续保存地图的扩展方案

2020-10-26 10:19:58 浏览数 (1)

文章:Persistent Map Saving for Visual Localization for Autonomous Vehicles: An ORB-SLAM 2 Extension

作者:Felix Nobis∗, Odysseas Papanikolaou, Johannes Betz and Markus Lienkamp

翻译:particle

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈分享快乐。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

论文摘要

自动驾驶汽车的一个基本组成部分是能够绘制环境地图并在地图上进行自我定位。本文利用使用实时同步定位和制图(SLAM)立体相机传感器来感知环境并生成地图。由于没有使用地面真实地图作为参考,并且误差会随着时间的推移而累积,因此存在错误定位的风险。因此,我们首先建立并保存一张低行驶速度下环境视觉特征的地图,并将其扩展到ORBSLAM 2软件包中。在第二次运行中,我们重新加载地图,然后在先前构建的地图上进行定位。在先前构建的地图上加载和定位可以提高自动驾驶车辆的连续定位精度。这个建图保存功能在最初的ORB-SLAM 2实现中是没有的。我们根据建立的SLAM地图来评估KITTI数据集场景的定位精度。此外,我们还用自己的小型电动模型车对数据进行了定位测试。在特征丰富的环境中,对于平均纵向速度为36m/s的车辆,定位的相对平移误差小于1%。定位模式具有更好的定位精度和更低的计算量。我们对ORB-SLAM2的贡献源代码将在以下网址公开:https://github.com/TUMFTM/orbslam-map-saving-extension。

相关工作与介绍

该工程是支持ROS的,定位模式时需要提供一个map文件,其中包含ORB SLAM类的对象:map、MapPoint、Keyframe和KeyframeDatabase,以及每个关键帧的DBoW2 BoWVector和FeatureVector。因此,我们创建了一个SaveMap方法,它在SLAM进程结束时将此信息保存在二进制文件中。对于连续运行时,用户可以通过设置文件指定是否加载地图文件。如果用户决定使用保存的地图,则在系统启动时调用LoadMap方法,该方法加载保存的地图和KeyframeDatabase,并将系统设置为定位模式。定位模式是自动完成的,用户无需在线手动更改系统模式。SaveMap和LoadMap方法都集成在ORB-SLAM 2的系统类中,该类处理所有主要功能。图1显示了Orbslam2扩展版本的流程图。

项目的依赖项:

opencv

eigen3

boost

以及基于ROS的octomap

实验和结果

使用了KITTI公开数据集进行系统的评估,且对比了室内和室外的两种场景进行对比各种场景下的建图和定位的精度。

室外提取ORB特征点的示意图

室内提取特征点的示意图

TUM数据集上快速驾驶和快速回放速度的比较( localization fails (Lost Track))

SLAM 与真值比较的准确性

我们还试验了提高大满贯的行驶速度。图4显示了快速和慢速SLAM的结果轨迹。对于高速运行,SLAM模式下降不再能够完成建图功能,因为特征匹配失败。这在图中用红色标记。真值(灰色虚线),8m/s(蓝色)和20m/s(黑色)的撞击轨迹。更快的SLAM轨迹偏离地面的距离更远,在红色标记的位置跟踪失败。

相对地图的定位精度

总结

这项工作提出了一个基于ORB-SLAM2扩展,通过一个地图保存功能的视觉SLAM系统。在原始的功能的基础上进行了扩展功能,使系统可以作为一个SLAM模块在慢速驾驶条件下建图。而后在更高的速度下进行定位,从而获得更精确的轨迹估计。(低速建图,快速可定位的SLAM功能)可用于室外和室内环境中的定位。实验结果表明,在特征丰富的环境中,以36m/s的速度进行定位是可行的。定位模块所需的计算资源比SLAM建图模块少,但特征计算和匹配要求较高。

0 人点赞