背景
本文档介绍VINS中常见的初始化方法,静态初始化相对简单,通常1s内可以完成,但如果遇到在运动时的初始化问题,初始化难度相对较大,实际工程问题中,通常会将初始化分为静态和动态初始化两部分,这里主要是介绍动态初始化方案。
一、基础知识:IMU Preintegration
IMU Preintegration
- 等式两边同时乘以旋转的逆,把IMU测量提取出来
- Bias Updates:bias会影响上面的增量,因此bias更新时通过jacobian更新增量
因此,整体预积分流程为:
二、 VINS-fusion初始化方法
与第一帧数据相距>0.1s后,利用局部窗口内的每一帧初始化,初始化流程如下:
1、单目+IMU
第四步实现细节:
2、双目+IMU
有尺度,初始化又快又简单
- 和地图点匹配,SolvePnP,计算当前帧位姿
- 双目三角化,计算特征深度
- gyro bias矫正
- 局部窗口BA优化(视觉余项+IMU余项)
三、VI-ORB-SLAM初始化方法
a.原理介绍
compute an initial estimation for a visual-inertial full BA of the scale, gravity direction, velocity and IMU biases.
b. 实验结果分析
四、ORB-SLAM3初始化
a.原理
b. 实验结果
c.加速方案
假设我们这里有尺度来源tof,那么可以进行加速
五、Fast and Robust Initialization for Visual-Inertial SLAM
六、总结
1、 VISLAM的初始化方案需要较长的数据准备时间(1~2s)
2 、为了得到更准确的初值,需要进行VI-BA优化,耗时约几百ms,处理时间相对较久
3、没有尺度来源时,初始化需要充分的IMU激励,这个条件通常较难满足,因此整体初始化时间较久
4、初始化最重要的解释尺度初始化,其他的收敛都很快,所以如果可以有一个先验的尺度来源,很容易把初始化时间控制在1s以内