ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
本文介绍 ORB-SLAM2
ORB-SLAM2 为单目、立体和RGB-D相机提供了一个完整的SLAM系统,包括地图重用、循环闭合和重新定位功能。
本文的工作基于 [2015TRO]ORB-SLAM a Versatile and Accurate Monocular SLAM System
主要贡献如下:
-
第一个面向单目、立体和RGB-D相机的开源SLAM系统,包括闭环、重新定位和地图重用。
-
RGB-D结果表明,通过使用束调整,本文获得了比基于ICP或光度和深度误差最小化的现有方法更高的精度。
-
通过使用远近立体点和单目观察,本文立体结果比最先进的直接立体SLAM更精确。
-
一种轻量级本地化模式,可以在禁用映射的情况下有效地重用地图。
Oriented FAST + Rotated BRIEF
相关工作
立体SLAM
现在大多数立体SLAM都是基于关键帧的,并在局部区域执行BA( Bundle Adjustment 束调整)优化以实现可扩展性。
BA( Bundle Adjustment 束调整) :优化的是最小化重投影误差,
测量平差:由于测量仪器的精度不完善和人为因素及外界条件的影响,测量误差总是不可避免的。为了提高成果的质量,处理好这些测量中存在的误差问题,观测值的个数往往要多于确定未知量所必须观测的个数,也就是要进行多余观测。有了多余观测,势必在观测结果之间产生矛盾,测量平差的目的就在于消除这些矛盾而求得观测量的最可靠结果并评定测量成果的精度。测量平差采用的原理就是“最小二乘法”。
RGB-D SLAM
ORB-SLAM2
整个ORB-SLAM2 分为三条主线程:
-
通过找到与局部地图的特征匹配并通过应用仅运动BA最小化重投影误差来定位每一帧的摄像机的跟踪,
-
管理和优化局部地图的局部映射,执行局部BA
-
通过执行姿态图优化来检测大循环并校正累积漂移的循环闭包
在位姿图优化后执行完整的BA,以计算最优结构和运动解。
该系统嵌入了一个基于DBoW2 的地点识别模块,于在跟踪失败(例如遮挡)的情况下重新定位,或者在已经映射的场景中重新初始化,以及用于循环检测。系统维护一个covisibiliy图,该图链接观察公共点的任意两个关键帧和连接所有关键帧的最小生成树。
这些图结构允许检索关键帧的局部窗口,以便跟踪和局部映射在本地运行,允许在大型环境中工作,并作为关闭循环时执行的姿势图优化的结构。
单目、近距离立体、远距离立体 关键点
如上图(b)所示 ORB-SLAM2首先对输入进行预处理,提取关键点位置的特征,接着丢弃输入图像,之后所以后的操作都是基于这些特征,因此系统独立于立体或者RGB-D传感器。只对这些观点特征点进行处理,而这些点进一步分为近距离点或者远距离点。
立体关键点
x s = ( u L , v L , u R ) x_s = (u_L,v_L,u_R) xs=