ORB SLAM3论文

ORB SLAM3论文

摘要

类型:V/VI/multi-map SLAM
传感器:with monocular/stereo/RGB-D camera
相机模型:using pin-hole / fisheye lens model
主要创新点:
  1. 仅使用MAP(最大后验估计)的基于特征的紧耦合VI-SLAM系统。
    使之在小/大/室内/外环境实时运行都能有良好的鲁棒性,比ORB-SLAM2精确2-5倍。
  2. 基于一种能够提高召回率的新的位置识别方法的多子地图系统。
    使之跟踪失败后何以建立一个新的子地图,回环检测时与之前的地图融合。视觉里程计中第一个能够在算法所有阶段重用所有先前信息的系统。
as robust as the best systems available in the literature, and significantly more accurate.

1. introduction

VO/SLAM区别:
VO:只计算位姿,不建图;
SALM:建图并计算在地图中的实时位置;
短/中/长期数据关联
SLAM优势在于允许在BA中匹配并使用执行三种数据关联的先前观测值.

1.短期数据关联:

匹配最近几秒范围内的地图元素,大多数VO系统使用的唯一关联类型. 一旦环境元素消失,系统便会 忘记它们,即使系统在同一区域移动,也会导致连续的估计漂移.

2.中期数据关联:

累积误差仍然很小的时候,匹配相机当前位置附近的地图元素.
the key of the better accuracy obtained by our system compared against VO systems with loop detection.

3.长期数据关联:

使用累积的位置识别技术,将观测值与先前访问过的区域中的元素进行匹配,而不管累积的漂移(回环检测)还是跟踪丢失(重定位)。长期匹配允许使用姿态图(PG)优化或更精确地使用BA重置漂移并校正循环。

main novelties

1.适用于单目双目的VI SLAM系统.

2.高召回率的位置识别.

3.ORB-SLAM 地图集.

The Atlas can represent a set of disconnected maps, and apply to them all the mapping operations smoothly: place recognition, camera relocalization, loop closure and accurate seamless map merging.

4.相机模型的抽象.

使之添加新模型只需提供相机的投影,非投影,雅可比函数.

2. 相关工作

在这里插入图片描述

3. 系统概览SYSTEM OVERVIEW

在这里插入图片描述
与ORB SLAM2 的区别:
1.地图集 / Atlas

由一组未连接的地图组成的多地图表示。
包含:
活动地图(Active map)跟踪线程不断定位传入的图像帧,并由局部建图线程不断对其进行优化.
非活动地图(non-active maps): 即Atlas中其余的地图.
系统将建立一个独特的关键帧的DBoW2数据库, 用于重定位,loop closing,和地图融合.

2.跟踪线程 / Tracking thread

处理传感器信息,并实时计算当前帧相对于活动地图的姿态,从而最大程度地减小了匹配的地图特征的重投影误差。同时决定当前帧是否是关键帧.
跟踪失败时,trackin线程尝试对当前帧在Atlas中进行重定位.重定位成功,则恢复跟踪,并在需要时转换活动地图。否则,在一定时间后,活动地图将存储为非活动地图,并从头开始初始化新的活动地图。

3.局部建图线程 / Local mapping thread

将关键帧和点添加进活动地图,并移除多余的关键帧和特征点,使用视觉或视觉惯性BA在靠近当前帧的关键帧的本地窗口中操作来细化地图。
视觉惯性情况下,在mapping线程中使用新的MAP估计技术对IMU参数进行初始化和精炼.

4.回环和地图融合线程 / Loop and map merging thread

以关键帧速率检测活动地图和整个地图集之间的公共区域。
如果公共区域(只?)属于active map,进行回环矫正. 循环校正后,将在独立线程中启动完整的BA,以进一步完善地图,而不会影响实时性能。
如果也属于其他不同的地图,进行地图融合成为新的active map.

4. 相机模型

ORB SLAM假定所有系统组件使用针孔相机模型。所有通过提取与相机模型相关的所有属性和功能(投影和非投影函数,雅可比矩阵等)到单独的模块中,从整个SLAM pipeline中抽象相机模型。This allows our system to use any camera model by providing the corresponding camera module. (???)
ORB SLAM3库中提供了针孔相机模型和Kannala-Brandt鱼眼相机模型

相机模型抽象带来的困难以及解决

1.重定位

ORB SLAM采用基于ePnP算法的PnP求解器解决相机跟踪失败后的重定位问题,算法假定相机为针孔相机模型。
ORB SLAM3中采用了独立于所使用的相机模型而工作PnP算法—MLPnP(maximum likelihood perspective-n-point algorithm)。其采用投影光线(projective rays)作为输入因此与相机模型无关。相机模型只需提供从像素到投影光线的非投影函数,即可进行重定位。

2.无矫正双目SLAM

大多数双目SLAM系统假设双目的图像帧是经过矫正的,左右图像都使用相同的焦距转换为针孔投影,并且图像平面共面,与水平极线对齐,从而可以通过查看另一图像中的同一行轻松地匹配一个图像中的特征图片。
这种假设shiyou很有限制性,并在很多应用场景中不可行,比如:矫正发散的双目图像对或双目鱼眼镜头将需要进行严格的图像裁剪,从而失去了大视场的优势:更快的环境映射和对遮挡的更好鲁棒性。

ORB SLAM3不依赖与图像校正,双目图像可视为具有如下性质的两个单目相机:
1)有恒定的SE(3)变换;2)观测场景有部分重合区域。
这些限制条件使我们能够通过在三角测量新landmarks时以及在BA中引入该信息来有效地估计地图的比例。

5. VI SLAM

第一个能够地图重用的VI SLAM系统。支持单目+IMU,双目+IMU,针孔相机模型和鱼眼相机模型。

基础知识

V-SLAM中,需要估计的状态只有当前相机的位姿。
VI-SLAM中,需要考虑:
位姿:在这里插入图片描述
世界坐标系下的速度,陀螺仪的误差:在这里插入图片描述
加速度计的误差:
在这里插入图片描述
假设他们通过布朗运动演化。得到状态向量:在这里插入图片描述
IMU预积分的旋转,速度,位置:
在这里插入图片描述
整个测量向量的信息矩阵:
在这里插入图片描述
根据这些预积分项和状态向量Si,Si+1,采用如下惯性残差在这里插入图片描述
的定义:
在这里插入图片描述
还使用了第i帧和3D点j在位置Xj处的重投影误差Rij:
在这里插入图片描述
相机模型对应的重投影方程:
在这里插入图片描述
Uij是图像i上j点的观测值,其有一个信息矩阵
根据标定得到的机身IMU到(左或右)相机的转换矩阵:
在这里插入图片描述
SE(3)群在实数上的转换操作:
在这里插入图片描述
结合视觉和惯性的残差项,VI SLAM可以视为基于关键帧的最小化问题。
给定一组k+1个关键帧,及其状态向量Sk={S0,,,Sk},l个3D点及其状态向量X={X0,,,Xl-1},视觉惯性优化问题可表示为:
在这里插入图片描述
Kj表示一组关键帧观测到的3D点j,上式因子图如下:
在这里插入图片描述
对于重投影误差,使用鲁棒的Huber内核Hub
来减少虚假匹配的影响,而对于惯性残差则不需要,因为不存在缺失关联。(???)
此优化需要良好的初始化结果以收敛到精确的结果。

IMU初始化

此步骤的目标是为速度,重力方向和IMU偏差获取良好的初始值。

本文基于以下关键理念提出一种快速精确的理论:
1.先解决纯视觉问题可以加强IMU初始化 效果;

2.将尺度作为优化变量时收敛的更快,而非使用BA的隐式表达;

3.IMU初始化时忽视传感器的不确定性会产生不可预测的错误。

因此,将IMU初始化视为MAP估计问题,分为三步解决:
1.纯视觉MAP估计:

2.纯惯性MAP估计:

3.视觉惯性MAP估计:

跟踪与建图
跟踪失败的鲁棒性(Robustness to tracking loss

地图融合与循环封闭(Loop closing)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值