IMU初始化分解为多个子问题:
- 估计陀螺仪偏置
- 忽略加速度计偏置,估计尺度和重力矢量
- 估计加速度计偏置,进一步优化尺度和重力
- 估计速度
1. 陀螺仪偏置估计
初始化过程假定
bg保持不变,每帧的偏置恒定:
big=bg。优化
bg,最小化所有相邻关键帧对之间的陀螺仪(旋转)预积分及从纯视觉ORB-SLAM2直接视觉计算的旋转之间的误差。
∗bg=argminθk=1∑N−1∥Log((ΔR~k,k+1Exp(JΔgbg))TRBWkRWBk+1)∥2
其中
ΔR~k,k+1=Exp((ωk~−bg)Δt),为陀螺仪的预积分值。N为关键帧的数量。
RWB(⋅)=RWC(⋅)×RCB(⋅),
RWC(⋅)为ORB-SLAM视觉计算的位姿,
RCB(⋅)由标定得到。
bg从0开始迭代。
2.尺度及重力估计
忽略加速度计偏置
bia=ba=0,由第一步得到的陀螺仪偏置,可以预积分速度及位移
Δvij,Δpij:
Δvij=k=i∑j−1ΔRika~kΔtΔpij=k=i∑j−1ΔvikΔt+21ΔRika~kΔt2ΔRij=k=i∏j−1Exp((w~k−bg)Δt)
2.1 尺度s估计
视觉观测尺度不确定,有
TWC=[RWC0TsWpC1],因此,由camera系到body系的转化过程中,有:
TWB=[RWB0TWpB1]=TWCTCB=[RWC0TsWpC1]⋅[RCB0TCpB1]=[RWCRCB0TRWCCpB+sWpC1]其中
TCB为标定得到,即
WpB=RWCCpB+sWpC代入位置关联方程:
WpBi+1=WpBi+WvBiΔti,i+1+21gWΔti,i+12+RWBiΔpi,i+1得到:
sWpCi+1=sWpCi+WvBiΔti,i+1+21gWΔti,i+12+RWBiΔpi,i+1+(RWCi−RWCi+1)CpB其中,
WpCi,RWCi,RWCi+1,WpCi+1由视觉计算得到,
Δti,i+1已知,
Δpi,i+1由预积分得到,
RCB,CpB为标定得到。解该线性方程组得到
s、gW,然而方程中含有
WvBi,为避免计算这N个速度,降低复杂度。我们将连续的三帧提取两个关系,利用速度关联方程:
WvBi+1=WvBi+gWΔti,i+1+RWBiΔvi,i+1为简化表述,使用1,2,3代替
i,i+1,i+2,有:
sWpC3=sWpC2+WvB2Δt23+21gWΔt232+RWB2Δp23+(RWC2−RWC3)CpBsWpC2=sWpC1+WvB1Δt12+21gWΔt122+RWB1Δp12+(RWC1−RWC2)CpBWvB2=WvB1+gWΔt12+RWB1Δv12第一式乘
Δt12与第二式乘
Δt23做差,结合代入第三式,得到:
(λ(i)β(i))(sgW)=γ(i)