VINS-MONO论文学习

红色字体为自己的理解/疑问

参考:

【VINS论文翻译】VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator_Manii-CSDN博客_vins论文

0 摘要

低精度IMU

包括回环检测模块;

采用4自由度图优化策略去增强全局一致性;

此外,所提出的系统可以通过以有效的方式保存和加载地图来重用地图。当前和以前的地图可以通过全局姿势图优化合并在一起

提出系统可应用于:无人机、机器人、移动设备(ios)

1 引言

IMU测量的集成可以通过桥接由于照明变化,无纹理区域或运动模糊导致的视觉轨迹损失之间的间隙来显着改善运动跟踪性能。

VINS目前存在的问题:

(1)初始化。由于缺乏直接距离测量,难以将单眼视觉与惯性测量直接融合。同时VINS是高度非线性的事实,我们在估计初始化方面看到了重大挑战。在大多数情况下,系统应从已知的静止位置启动,并在开始时缓慢而小心地移动,这限制了其在实践中的使用。

(2)长期漂移。需要由回环检测、重新定位和全局优化模块。并且对地图保存与重新使用的需求正在增长。

本文提出的VINS-MONO可以解决上述两个问题,包括以下功能:

(1)未知初始状态下的初始化

(2)基于优化的紧组合系统,包括相机-IMU外部标定和imu偏差校准

(3)在线重定位和4自由度全局图优化方法

(4)位姿图重用,可以保存,加载和合并多个本地位姿图

这些功能在之前的工作【6-8】中有详细介绍。

2 相关文献(对单目vio系统做了总结)

(1)基于滤波和基于优化

(2)前端:直接法和间接法

“直接方法由于其吸引区域小而需要良好的初始猜测,而间接方法在提取和匹配特征时消耗额外的计算资源。由于其成熟度和稳健性,间接方法在现实世界的工程部署中更常见。然而,直接方法更容易扩展到密集映射,因为它们直接在像素级别上操作”

(3)imu预积分

(4)单目VINS初始化

[17,25]:一种利用短期IMU预积分相对旋转的线性估计器初始化方法。该方法无法在原始投影方程中模拟陀螺仪偏差和图像噪声;

[26]:封闭式解决方案,依赖长时间imu的双重积分

[28]:SVO方法,需要额外的向下测距传感器

3 overview

 与适用于立体相机的最先进的VIO算法OKVIS[15]相比,我们的算法是专门为单眼相机设计的。因此,我们特别提出初始化过程,关键帧选择标准,以及使用和处理大视场(FOV)相机以获得更好的跟踪性能。此外,我们的算法提出了一个完整的系统,具有循环闭合和姿势图重用模块。

坐标系定义:

w系:世界坐标系,重力方向平行于z轴

b系:载体坐标系,和Imu系一致

c系:相机坐标系

4 测量值预处理

A 视觉处理前端

特征跟踪:KLT稀疏光流算法;每张图大约100~300个特征

选择关键帧:

(1)第一个是除前一个关键帧之外的平均视差。如果跟踪特征的平均视差在当前帧和最新关键帧之间超过某个阈值,我们将帧视为新关键帧。

请注意,不仅平移而且旋转都会导致视差。然而,特征不能在仅旋转的运动中被三角测量。为避免这种情况,我们在计算视差时使用陀螺仪测量的短期积分来补偿旋转。请注意,此旋转补偿仅用于关键帧选择,并且不参与VINS公式中的旋转计算。为此,即使陀螺仪包含大噪声或有偏差,它也只会导致次优的关键帧选择结果,并且不会直接影响估计质量。

(2)另一个标准是跟踪质量。如果跟踪特征的数量低于某个阈值,我们将此帧视为新的关键帧。此标准是为了避免功能轨道完全丢失。

B imu预积分

(1)传感器噪声

 偏差建模为随机游走过程

(2)imu预积分

 可以仅通过imu测量量得到预积分值

(3)偏差校正

如果传感器偏差的估计值变化很小,可以用一阶近似

 否则,当偏差估计发生显着变化时,我们会在新的偏差估计下进行重新调整。由于我们不需要重复传播IMU测量值,因此该策略为基于优化的算法节省了大量计算资源。

5 初始化

VIO系统是一个高度非线性的系统,需要一个精确可靠的初始状态。

我们将纯视觉结构和imu预积分值做松对准,来初始化

A 滑动窗口下纯视觉 结构恢复运动

(1)首先,我们检查最新帧和之前所有帧之间的特征对应关系。如果我们能够在滑动窗口中的最新帧和任何其他帧之间找到稳定的特征跟踪(超过30个跟踪特征)和足够的视差(超过20个像素),利用五点法恢复这两帧之间的相对旋转和平移(up-to-scale translation)

这就是slam书上的2D-2D:对极几何方法吧?

(2)然后,我们任意设置比例(scale)并对这两帧中观察到的所有特征进行三角测量。基于这些三角测量的特征,执行pnp方法以估计窗口中所有其他帧的姿势。

三角测量求的不是绝对深度嘛???需要再看一遍三角测量
(3)最后,应用全局全束调整[36]以最小化所有特征观测的总重投影误差

这和slam书上讲的过程是一样的吧?

参考坐标系为第一帧的相机坐标系

载体坐标系到相机坐标系的位姿变化表示为:

此时,尺度是未知的。

通过sfm,最终是得到了前面所有帧之间的旋转和平移(无尺度),还有特征点的坐标(深度未知)

 B 视觉-惯性对准

 (1)陀螺仪偏差标定

 由陀螺仪偏差导致的损失函数最小,由此可以得到初始化的陀螺仪偏差估计值

(2)速度、重力矢量、尺度初始化

待初始估计状态量为:

 下面这个公式没看懂?

 根据前面sfm得到的公式

 可以得到测量方程:

 (3)重力细化

大多数情况下,重力矢量的模长是已知的,因此重力矢量实际是一个2自由度的量。因此,我们在切向空间上用两个变量扰动重力,即:

 将上式代入到公式(9)中,然后再进行最小二乘优化

(4)完成初始化

根据重力矢量在c0坐标系下的表示,可以找到c0坐标系到世界坐标系的坐标旋转矩阵。

平移量可以表示为以米为单位的量

6 紧组合单目VIO

 基于滑动窗口的紧组合单目VIO

 A 公式

应用BA公式 ,测量残差量的先验和马氏范数和最小

 ceres库可以解这个最优化问题

B imu测量残差

两个连续帧下bk,bk+1

两个连续帧之间的PVQ和偏差的变化量

 C 视觉测量残差

不同于传统针孔相机模型下的重投影误差,本文定义单位球体上的相机测量残差。(可适用于所有类型的相机,包括广角、鱼眼、全向)

在第i帧图片上,第一次观测到第l个特征,在第j帧图片上观察到的残差为:

 D 边缘化(具体理论需再学习)

边缘化IMU状态和特征,并将这些信息转换为先验

“为了保持系统的稀疏性,我们不会边缘化非关键帧的所有测量。我们的边缘化方案旨在将空间分隔的关键帧保留在窗口中。这确保了足够的平行度用于特征三角测量,并且最大化了在大激励下维持加速度计测量的可能性”

 边缘化使用舒尔补的方法。

 我们基于与移除状态相关的所有边缘化测量来构建新的先验。新先验被添加到现有先验中。

 我们注意到边际化导致线性化点的早期修复,这可能导致次优的估计结果。然而,由于VIO可以接受小的漂移,我们认为边缘化带来的负面影响并不重要

 E 以相机速率运行的状态估计的仅运动视觉惯性优化(没看懂)

 对于计算能力低的设备,如手机,由于非线性优化的计算需求量很大,紧耦合的单目VIO无法实现相机速率输出。为此,除了完全优化之外,我们还采用了轻量级的仅运动视觉惯性优化来提高状态估计速率(30 Hz)?

损失函数与(14)相同,为:

 但是,我们不是优化滑动窗口中的所有状态,而是仅优化固定数量的最新IMU状态的位姿和速度。我们将特征深度,外在参数,偏差和我们不希望优化的旧IMU状态视为常数值。我们确实使用所有视觉和惯性测量来进行仅运动优化。与单帧PnP方法相比,这导致更平滑的状态估计。所提出的策略的说明如图8所示。与完全紧密耦合的单眼VIO相比,在最先进的嵌入式计算机上可能会导致超过50毫秒,只有运动的视觉惯性优化只需要大约5毫秒来计算。这使得低延迟相机速率姿态估计对无人机和AR应用特别有益

 F IMU前向传递以达到IMU速率状态估计

IMU测量的速度远远高于视觉测量。尽管我们的VIO频率受到图像捕获频率的限制,但我们仍然可以使用最近的IMU测量直接传播最新的VIO估计值,以达到IMU速率的性能。高频状态估计可以用作回环检测的状态反馈。第IX-C节介绍了利用这种IMU速率状态估计的自主飞行实验。

7. 重定位

 重新定位程序。它从仅VIO姿势估计(蓝色)开始。记录过去的状态(绿色)。如果检测到最新关键帧的循环(参见第7-a节),如第二个图中的红线所示,则发生重新定位。请注意,由于使用特征级别对应关系进行重新定位,我们能够合并来自多个过去关键帧的循环闭合约束(参见第7-C节),如最后三个图中所示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值