单目视觉惯导在线初始化——时空校准
该方法可以在线标定相机与IMU之间的相对位姿(空间)和时间(时间)偏移以及估计初始阶段的尺度、速度、重力、陀螺仪和加速度计Bias的初始值。看该方法前,请务必了解预积分的相关知识,可以看之前我写的几篇博客。
该算法分为三个步骤:
- 通过最小化相机和IMU之间的旋转误差来估计外参中的旋转、时间偏移(time offset)和陀螺仪Bias;
- 利用插值得到的摄像机位姿,忽略加速度计的Bias,近似估计尺度因子、重力矢量和外参中的平移向量;
- 通过考虑加速度计偏差和重力大小,在第二种过程中估计的值进一步细化。
1、传感器短时运动插值
首先对时间偏移量建模:

如上图所示,每个传感器以恒定频率离散采样(上面的坐标轴),然而,由于时钟不同步、传输延迟、传感器响应和操作系统开销等,总是存在一个延迟,使测量流(时间戳生成流,下面的坐标轴)与采样流不一致。考虑IMU和相机在同一时刻采样,对于每一个传感器,其时间戳

不同传感器的时间延迟一般是不一样的,这就导致上图中的现象,实际第1帧与第2帧图像帧之间有第1、2、3、4帧IMU的测量数据(采样流),但是由于相机和IMU的延迟不同,从测量流中读取到的数据就会变为第1帧与第2帧图像帧之间有只有第1、2、3帧的IMU测量数据,这就会导致IMU预积分的不准确。所以估计不同传感器时间延迟之间的差值

这样通过将Camera的测量流滞后

这里,
下面使用线性插值方法获得

相机在

同理IMU在

这里的
2、转换关系
考虑time offset

3、三步走初始化策略
3.1、外参中的旋转、时间偏移(time offset)和陀螺仪Bias修正
直接引入预积分的公式,这个公式来自VINS-Mono中的推导,

预积分项的线性修正(bias修正,详情请看IMU预积分系列文章):

于是IMU预积分旋转项的误差为:
根据第二节2、转换关系的公式,可有:

考虑time offset,重新带入

这里使用旋转矩阵代替了四元数的表示方法,本质上都是一样的。若有N帧关键帧,外参中的旋转

这里使用加权的最小二乘,
3.2、近似的尺度、重力和外参中的平移项修正
一旦外参的旋转


这个步骤不估计加速度计的bias,令
将第2节转换关系中的公式带入,可有:

其中

其中:
若有
3.3、估计加速度计偏置,Refine尺度、重力、外参中的平移矢量
在这一步,将地球坐标系下的重力矢量的模长考虑进来,进而refine尺度、重力、外参中的平移矢量。使用上一步估计出来的重力矢量

通过加入一个微小的扰动对旋转矩阵

将重新参数化的重力带入3.2节中的公式,可有:

在这一步中估计加速度计的bias,相关的Jacobian矩阵不当做0来处理了,同样的手段,考虑连续的三帧、搞掉速度项并写成矩阵表示的形式,可有:

其中:

上述变量估计出来后,加速度计的bias为:
4、初始速度估计
重力矢量估计出来后,速度项的估计就是水到渠成的事情了,根据预积分的平移项,可有
5、附录:3.1节非线性优化所需的Jacobian的推导
6、参考文献
1、Visual-Inertial-Aided Navigation for High-Dynamic Motion in Built Environments Without Initial Conditions
2、Online Initialization and Extrinsic Spatial-Temporal Calibration for Monocular Visual-Inertial Odometry