VINS-MONO论文笔记第一篇——IV预处理和V初始化

VINS-MONO

总摡:

系统从一个鲁棒的估计器初始化开始,一种紧耦合的、非线性的优化方法通过融合预积分IMU测量值和特征点观测值来得到高精度的VIO,回环检测与紧耦合系统结合,能使得重定位有最小的计算量。另外4维位姿图优化来保证全局一致性。通过高效的保存和加载地图能反复利用地图。通过全局位姿图优化能覆盖当前和旧的地图。
实验:在公开数据集和真实世界的实验上跑了系统,并与最新的方法进行了比较,在微飞行器平台进行了闭环自动飞行,并移植到iOS平台上演示

优点:观测到的尺度、roll、pitch是以米为单位的。

为了解决的问题:
1.严格的初始化:由于缺少直接的距离测量,很难直接将单目视觉结构与惯性测量融合;VINS是高度非线性的,初始化很难;在启动时,系统需要有一个已知的静止状态,移动也需要很缓慢。
2.长时间的漂移是无法避免的:对VIO来说,为了限制漂移,需要有回环检测、重定位、全局优化。
3.地图的保存和重复利用也是一个需求。

对应的方法:
(1)鲁棒的初始化程序能从未知的初始状态下启动系统
(2)紧耦合、基于优化的单目VIO有相机-IMU外参标定和IMU偏差矫正
(3)在线重定位和4自由度的全局位姿图优化
(4)重新使用的位姿图能保存、载入和覆盖多种局部的位姿图。
其中(1)(4)是之前的工作

系统框架:
在这里插入图片描述
Sect. IV 系统开始的地方:测量数据,检测跟踪特征点、IMU预积分
Sect. V 初始化:提供所有需要的数据,包括pose, v , gravity vector, gyroscope bias, and 3D feature location
Sect. VI: VIO & Sect. VII 重定位 :紧融合IMU预积分测量量,特征观测值。
Sect VIII 位姿图优化模块:接受几何验证的重定位结果,执行全局优化减少漂移,还可以实现位姿图的重用。
VIO和位姿图优化同时在多线程中进行。

(·)w 世界坐标系:重力的方向与z轴对齐
(·)b body坐标系,也是IMU坐标系
(·)c 相机坐标系
qbw pbw 由b系到w系的旋转和平移
bk ck 第k张图像时的b系、c系
⊗ 四元数的乘法运算
gw = [0,0,g]T 世界坐标系下的重力矢量
(ˆ·) 一个定值的噪声或估计

IV 测量值预处理

对visual测量值:跟踪连续帧之间的特征点,在最新帧检测新特征点
对IMU测量值:连续两帧之间预积分

A. 视觉处理前端

1.对每张新图像,用稀疏的光流法跟踪已有的特征点;
2.在每幅图像中保证至少100-300的特征点,否则检测新的特征点(通过设置相邻帧之间最小的像素间隔强制特征均匀分布);
3.不失真的2D特征点在外点剔除后投影到单位球上。RANSAC进行外点剔除
4.关键帧的选取:
①平均视差:当前帧和最新关键帧之间跟踪到的特征点的平均视差大于特定阈值(为了避免在仅旋转运动不能三角化特征点的情况,使用陀螺仪测量值的短期积分来补偿进行视差计算时的旋转,这步仅在关键帧选取时使用,因此,尽管陀螺仪有误差,也只是影响关键帧的选择结果欠佳,并不会影响最后的估计质量)
②跟踪质量:跟踪到的特征点数量小于一定阈值,就选为关键帧。(这条是为了避免完全丢失特征跟踪)

B. IMU预积分

这步与[19] [24] 的计算结果一样,但是推导不同。

1)IMU噪声和偏差:

IMU测量值的影响因子:加速度偏差ba 陀螺仪偏差bw 以及重力、偏差的影响
在这里插入图片描述

假设加速度和陀螺仪的额外噪声na nw是高斯白噪声,加速度和陀螺仪的偏差被建模为随机行走,其导数为高斯白噪声;

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)预积分:

给定偏差估计值,将连续两帧间时间间隔内 [tk , tk+1 ] 的惯性测量量在局部帧bk中积分:
在这里插入图片描述
α、β、γ的协方差Pbk+1bk也跟着更新。由(3):将bk看做指定偏差的参考帧,预积分项可以仅通过IMU测量量求解。

3)偏差校正:

如果偏差的估计发生了微小的变化,需要调整相应的预积分结果;
如果变化太大则需要在新的偏差估计下重新预积分。
因为不需太重复积分IMU测量值,所以这个策略可以节省基于优化方法的计算资源
在这里插入图片描述

V.初始化估计

通过松散对齐视觉数据和IMU预积分数据,以获得一些必要变量的初值

A 滑窗中的仅视觉SFM

在滑窗中维护多个多个框架,以实现有限的计算复杂性。
1.检查最新帧与所有先前帧的特征对应关系,若能找到稳定的特征跟踪(多于30跟踪到的特征点)和足够的视差(多于20个像素),用5点法恢复相对旋转和尺度缩放。
2.任意设置比例(?),并对上述两两帧间所有观测到的特征点进行三角化。
3.基于三角化的特征点,用PnP估计窗口中所有其它帧的位姿
4.全局BA来最小化所有特征观测的总重投影误差。

设置第一相机帧 ( ⋅ ) c 0 (·)^{c_0} ()c0作为SFM的参考帧,给定camera和IMU间外参( p c b , q c b p^{b}_c , q^{b}_c pcb,qcb),camera到IMU系的位姿变换:
在这里插入图片描述
其中s是未知的尺度参数

B 视觉惯性对齐

基本思想是匹配视觉结构和IMU预积分量
在这里插入图片描述

1)陀螺仪偏差标定:

在滑窗中连续两帧bk bk+1 ,由视觉SFM得到了 q b k c 0 q^{c_0}_{b_k} qbkc0 q b k + 1 c 0 q^{c_0}_{b_{k+1}} qbk+1c0,从IMU预积分得到了相对约束 γ ^ b k + 1 b k \hat γ^{b_k}_{b_{k+1}} γ^bk+1bk ,相对陀螺仪偏差线性化IMU预积分项并最小化以下cost function
在这里插入图片描述B表示窗口中所有帧。由此得到bw 的初始标定值,然后用新的bw 重新计算IMU预计分项 α ^ b k + 1 b k \hat α^{b_k}_{b_{k+1}} α^bk+1bk β ^ b k + 1 b k \hat β^{b_k}_{b_{k+1}} β^bk+1bk γ ^ b k + 1 b k \hat γ^{b_k}_{b_{k+1}} γ^bk+1bk

2)速度v 重力矢量 g c 0 g^{c_0} gc0和尺度s初始化:

在这里插入图片描述
v b k b k v^{b_k}_{b_{k}} vbkbk表示第k张图像在body系的速度, g c 0 g^{c_0} gc0表示 c 0 c_0 c0帧的重力矢量, s s s表示单目SfM尺度。

对滑窗中连续两帧:
在这里插入图片描述
联立(6)(9)到线性测量模型:
在这里插入图片描述
这些参数由SfM得到。通过解线性最小二乘问题能在滑窗里得到每帧的body系速度
在这里插入图片描述

3)重力加速度细化

重力矢量由前面线性初始化步骤得到,为了保留两自由度在线性空间对重力加了扰动在这里插入图片描述
g g g是重力值, g ^ \hat g^{} g^是表示重力方向的单位矢量, b 1 b_{1} b1, b 2 b_{2} b2是切平面的两个正交基, w 1 w_{1} w1 , w 2 w_{2} w2分别为 b 1 b_{1} b1, b 2 b_{2} b2的扰动,然后,用 g ( ˆ g + δ g ) g(ˆg +δg) g(ˆg+δg) g g g代入(9),并与其他状态变量一起求解2-D δ g δg δg。 此过程重复几次,直到收敛。
在这里插入图片描述

4) 完成初始化

在3)后通过将 g g g旋转到z轴能得到世界坐标系和相机帧 c 0 c_{0} c0间的旋转 q c 0 w q^{w}_{c_0} qc0w,再将所有变量从 ( ′ ) c 0 ( ' )^{c_0} ()c0 转到 ( ′ ) w ( ' )^w ()w,加上尺度缩放,初始化完成,变量进入单目紧耦合系统。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值