单目视觉惯导在线初始化——时空标定

单目视觉惯导在线初始化——时空校准

该方法可以在线标定相机与IMU之间的相对位姿(空间)和时间(时间)偏移以及估计初始阶段的尺度、速度、重力、陀螺仪和加速度计Bias的初始值。看该方法前,请务必了解预积分的相关知识,可以看之前我写的几篇博客。

该算法分为三个步骤:

  1. 通过最小化相机和IMU之间的旋转误差来估计外参中的旋转、时间偏移(time offset)和陀螺仪Bias;
  2. 利用插值得到的摄像机位姿,忽略加速度计的Bias,近似估计尺度因子、重力矢量和外参中的平移向量;
  3. 通过考虑加速度计偏差和重力大小,在第二种过程中估计的值进一步细化。

1、传感器短时运动插值

首先对时间偏移量建模:

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

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

这样通过将Camera的测量流滞后td或者将IMU的测量流提前td就可将两个传感器对齐,如此便有下面的关系:

这里,Tbw(t)Tcw(t)分别是IMU和相机在时间戳t处的位姿。

下面使用线性插值方法获得T(t+td)的近似计算,假设相机在短时间内的运动是匀速的,则任意时刻的相机位姿可以用其最近的相机位姿、角速度和线速度插值获得。若TciwTcjw是单目VO获得的在时间戳tcitcj处的位姿,则相机在时间戳tci的角速度ωci和线速度v~ci可通过下式获取:(注意,速度与米制单位相差一个尺度s)

相机在ti+td处的位姿通过线性插值得到:

同理IMU在titd处的位姿也可通过线性插值得到:

这里的ωbiti时刻IMU坐标系下的角速度,vbiw是IMU的线速度在世界坐标系下的表示。

2、转换关系

考虑time offset td和尺度因子s,根据IMU与相机时间对齐的关系(上边的公式),在时间戳ti处IMU系的旋转和平移可分别表示为:

3、三步走初始化策略

3.1、外参中的旋转、时间偏移(time offset)和陀螺仪Bias修正

直接引入预积分的公式,这个公式来自VINS-Mono中的推导,αbk+1bkβbk+1bkγbk+1bk就是预积分的位置项、速度项、旋转项(四元数表示):

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

于是IMU预积分旋转项的误差为:

erot(k,k+1)=[(γ^bk+1bk[112Jbwγδbwk])1qwbkqbk+1w]xyz

根据第二节2、转换关系的公式,可有:

考虑time offset,重新带入erot(k,k+1)中,则有:

这里使用旋转矩阵代替了四元数的表示方法,本质上都是一样的。若有N帧关键帧,外参中的旋转Rbc、time offset td、陀螺仪的bias δbg可以通过最小化所有帧的旋转项误差来获得:

这里使用加权的最小二乘,ΔR是预积分旋转项的信息矩阵。这个信息矩阵可从IMU预积分时的协方差矩阵中提取。在恢复出陀螺仪的Bias后,根据新的陀螺仪Bias重新计算预积分,获取更加精确的预积分结果。

3.2、近似的尺度、重力和外参中的平移项修正

一旦外参的旋转Rcb、time offset td、陀螺仪的bias δbg估计出来,尺度因子s、重力矢量gw和外参中的平移pbc就可粗略的估计了。预积分中的位移项和速度项可以写为:

这个步骤不估计加速度计的bias,令JΔpijaJΔvija为0,同样在估计出陀螺仪的bias后,重新计算预积分,这里的JΔpijgJΔvijg同样设为0。

将第2节转换关系中的公式带入,可有:

其中Rbc是第一步估计出的结果,考虑连续的三帧i,i+1,i+2和速度预积分项,将上式中的vbiw搞掉,并将待估计变量sgwpbc分离出来,写成矩阵表示的形式,有:

其中:

若有N帧,可以获得N2个上述的约束方程,所有的观测可以堆叠成一个线性超定方程B3(N2)×7X7×1=C3(N2)×1。可见至少5帧才可求解,求解这个方程可使用SVD分解。得到的粗略估计结果记为sgwPbc

3.3、估计加速度计偏置,Refine尺度、重力、外参中的平移矢量

在这一步,将地球坐标系下的重力矢量的模长考虑进来,进而refine尺度、重力、外参中的平移矢量。使用上一步估计出来的重力矢量gw,将这个矢量与地球坐标下的重力矢量Ge的方向对齐:

通过加入一个微小的扰动对旋转矩阵Rew进行调整:

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

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

其中:

[](:,1:2)表示矩阵的前两列。若有N帧,可以获得N2个上述的约束方程,所有的观测可以堆叠成一个线性超定方程D3(N2)×9y9×1=E3(N2)×1注意上面的δθxy表示只估计roll和pitch角,因为yaw角不可观测。

上述变量估计出来后,加速度计的bias为:ba=03×1+δba,优化后的重力矢量为:gw=RewExp(δθ)Ge

4、初始速度估计

重力矢量估计出来后,速度项的估计就是水到渠成的事情了,根据预积分的平移项,可有
vbiw=pbjwpbiw12gwΔtij2RbiwΔpijΔtij

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

听说打赏我的人,最后都找到了真爱。