SLAM——IMU预积分

IMU预积分,耳熟能详,但是一直没有仔细了解。这里详细介绍一下。 ## 运动模型

首先做一个简单规定,因为IMU预积分离不开IMU坐标系与世界坐标系的转换,因此我们将世界坐标下的值标记为ww,将IMU坐标系下的值标记为bb。而𝑹bw\mathbf R^w_b表示了从世界坐标到IMU坐标的转换。

一般来说,IMU包含了两部分——陀螺仪与加速计,因此IMU的raw data有两类:

$$ \tilde{\boldsymbol{\omega}}^{b}(t)=\boldsymbol{\omega}^{b}(t)+\mathbf{b}_ {g}(t)+\boldsymbol{\eta}_ {g}(t)\\\tilde{\mathbf{a}}^{b}(t)=\mathbf{R}_ {b(t)}^{w T}\left(\mathbf{a}^{w}(t)-\mathbf{g}^{w}\right)+\mathbf{b}_ {a}(t)+\boldsymbol{\eta}_ {a}(t) $$

其中𝝎̃b\tilde {\boldsymbol\omega}^b与𝒂̃b\tilde{\mathbf{a}}^b分别是读取到的角速度与加速度,也就是观察值,属于IMU坐标系下的读数,且包含噪声𝜼\boldsymbol \eta与偏差𝒃\mathbf b(分别是加速度accelerometer与陀螺仪gyro的噪声与偏差)。同时,IMU的加速度测量的是IMU坐标下的一个力,但是由于测量原理,它测出来的加速度去除了重力,例如一个三轴加速度计放在水平面上,那么它的输出将是铅垂线反向的9.8m/s29.8m/s^2;如果一个加速度计做自由落体运动,那么它的输出会是0。而我们关注的物体真正的加速度𝒂w(t)\mathbf a ^w(t)是世界坐标系𝑾\mathbf W下,当然也包含了重力。所以真实加速度需要去除重力加速度再转换到IMU坐标系下才是IMU的加速度读数。

同时,根据运动模型,我们可以得到旋转矩阵𝑹\mathbf R,速度𝒗\mathbf v以及位置𝒑\mathbf p的微分模型如下:

𝑹̇bw=𝑹bw(𝝎b)∧𝒗̇w=𝒂w𝒑̇w=𝒗w \begin{array}{l} \dot{\mathbf{R}}_ {b}^{w}=\mathbf{R}_ {b}^{w}\left(\boldsymbol{\omega}^{b}\right)^{\wedge} \\ \dot{\mathbf{v}}^{w}=\mathbf{a}^{w} \\ \dot{\mathbf{p}}^{w}=\mathbf{v}^{w} \end{array}

有意思的一件事是,虽然旋转矩阵是一个从世界坐标到IMU坐标的转换(也就世界坐标系下姿态的逆),但是微分里的角速度是IMU坐标系的,这意味着我们可以直接使用IMU去噪后的角速度读数。使用欧拉积分(?),可以得到下一刻的状态(离散形式):

𝑹b(t+Δt)w=𝑹b(t)wExp⁡(𝝎b(t)⋅Δt)𝒗w(t+Δt)=𝒗w(t)+𝒂w(t)⋅Δt𝒑w(t+Δt)=𝒑w(t)+𝒗w(t)⋅Δt+12𝒂w(t)⋅Δt2 \begin{array}{l}\mathbf{R}_ {b(t+\Delta t)}^{w}=\mathbf{R}_ {b(t)}^{w} \operatorname{Exp}\left(\boldsymbol{\omega}^{b}(t) \cdot \Delta t\right) \\\mathbf{v}^{w}(t+\Delta t)=\mathbf{v}^{w}(t)+\mathbf{a}^{w}(t) \cdot \Delta t \\\mathbf{p}^{w}(t+\Delta t)=\mathbf{p}^{w}(t)+\mathbf{v}^{w}(t) \cdot \Delta t+\frac{1}{2} \mathbf{a}^{w}(t) \cdot \Delta t^{2}\end{array}

上式中速度和位置都很容易理解,对于旋转矩阵,很显然上面给出的结果也是很符合直观的,就是将角速度与间隔时间相乘后得到一个旋转向量(角速度乘上时间也就得到了绕各个轴旋转的角度,可以直接得到旋转向量,所以一个旋转向量其实可以理解成绕坐标轴旋转的角度?),再转化到SO(3)\text{SO(3)}上进行乘积。而一个严格的解释如下:

𝑹b(t)wExp⁡(𝝎wbb(t)⋅Δt)=𝑹b(t)w𝑹b(t+Δt)b(t)=𝑹b(t+Δt)w \mathbf{R}^{w}_ {b(t)} \operatorname{Exp}\left(\boldsymbol{\omega}_ {w b}^{b}(t) \cdot \Delta t\right)=\mathbf{R}_ {b(t)}^{w} \mathbf{R}_ {b(t+\Delta t)}^{b(t)}=\mathbf{R}_ {b(t+\Delta t)}^{w}

为了简化符号,规定:

$$ \mathbf{R}(t) \doteq \mathbf{R}_ {b(t)}^{w} ; \quad \boldsymbol{\omega}(t) \doteq \boldsymbol{\omega}^{b}(t) ; \quad \mathbf{a}(t)=\mathbf{a}^{b}(t) ; \\\quad \mathbf{v}(t) \doteq \mathbf{v}^{w}(t) ; \quad \mathbf{p}(t) \doteq \mathbf{p}^{w}(t) ; \quad \mathbf{g} \doteq \mathbf{g}^{w} $$

如果将测量模型带入到运动模型中,可以得到:

𝑹(t+Δt)=𝑹(t)⋅Exp⁡(𝝎(t)⋅Δt)=𝑹(t)⋅Exp⁡((𝝎̃(t)−𝒃g(t)−𝜼gd(t))⋅Δt)𝒗(t+Δt)=𝒗(t)+𝒂w(t)⋅Δt=𝒗(t)+𝑹(t)⋅(𝒂̃(t)−𝒃a(t)−𝜼ad(t))⋅Δt+𝒈⋅Δt𝒑(t+Δt)=𝒑(t)+𝒗(t)⋅Δt+12𝒂w(t)⋅Δt2=𝒑(t)+𝒗(t)⋅Δt+12[𝑹(t)⋅(𝒂̃(t)−𝒃a(t)−𝜼ad(t))+𝒈]⋅Δt2=𝒑(t)+𝒗(t)⋅Δt+12𝒈⋅Δt2+12𝑹(t)⋅(𝒂̃(t)−𝒃a(t)−𝜼ad(t))⋅Δt2 \begin{aligned}\mathbf{R}(t+\Delta t) &=\mathbf{R}(t) \cdot \operatorname{Exp}(\boldsymbol{\omega}(t) \cdot \Delta t) \\&=\mathbf{R}(t) \cdot \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}(t)-\mathbf{b}_ {g}(t)-\boldsymbol{\eta}_ {g d}(t)\right) \cdot \Delta t\right) \\\mathbf{v}(t+\Delta t) &=\mathbf{v}(t)+\mathbf{a}^{w}(t) \cdot \Delta t \\&=\mathbf{v}(t)+\mathbf{R}(t) \cdot\left(\tilde{\mathbf{a}}(t)-\mathbf{b}_ {a}(t)-\boldsymbol{\eta}_ {a d}(t)\right) \cdot \Delta t+\mathbf{g} \cdot \Delta t \\\mathbf{p}(t+\Delta t) &=\mathbf{p}(t)+\mathbf{v}(t) \cdot \Delta t+\frac{1}{2} \mathbf{a}^{w}(t) \cdot \Delta t^{2} \\&=\mathbf{p}(t)+\mathbf{v}(t) \cdot \Delta t+\frac{1}{2}\left[\mathbf{R}(t) \cdot\left(\tilde{\mathbf{a}}(t)-\mathbf{b}_ {a}(t)-\boldsymbol{\eta}_ {a d}(t)\right)+\mathbf{g}\right] \cdot \Delta t^{2} \\&=\mathbf{p}(t)+\mathbf{v}(t) \cdot \Delta t+\frac{1}{2} \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \mathbf{R}(t) \cdot\left(\tilde{\mathbf{a}}(t)-\mathbf{b}_ {a}(t)-\boldsymbol{\eta}_ {a d}(t)\right) \cdot \Delta t^{2}\end{aligned}

首先要注意的是,上面的噪声也从连续形式变成了离散形式,而二者的区别就在于他们有不同的协方差:

Cov⁡(𝜼gd(t))=1ΔtCov⁡(𝜼g(t))Cov⁡(𝜼ad(t))=1ΔtCov⁡(𝜼a(t)) \begin{array}{l}\operatorname{Cov}\left(\boldsymbol{\eta}_ {g d}(t)\right)=\frac{1}{\Delta t} \operatorname{Cov}\left(\boldsymbol{\eta}_ {g}(t)\right) \\\operatorname{Cov}\left(\boldsymbol{\eta}_ {a d}(t)\right)=\frac{1}{\Delta t} \operatorname{Cov}\left(\boldsymbol{\eta}_ {a}(t)\right)\end{array}

如果假设采样频率一定,时间间隔为Δt\Delta t,那么每个时刻可以表示为离散的1,2,...,k1, 2, ..., k,因此,进一步简化可以将下一个时刻的状态写为:

𝑹k+1=𝑹k⋅Exp⁡((𝝎̃k−𝒃kg−𝜼kgd)⋅Δt)𝒗k+1=𝒗k+𝑹k⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt+𝒈⋅Δt𝒑k+1=𝒑k+𝒗k⋅Δt+12𝒈⋅Δt2+12𝑹k⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt2 \begin{array}{l}\mathbf{R}_ {k+1}=\mathbf{R}_ {k} \cdot \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {k}^{g}-\boldsymbol{\eta}_ {k}^{g d}\right) \cdot \Delta t\right) \\\mathbf{v}_ {k+1}=\mathbf{v}_ {k}+\mathbf{R}_ {k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\boldsymbol{\eta}_ {k}^{a d}\right) \cdot \Delta t+\mathbf{g} \cdot \Delta t \\\mathbf{p}_ {k+1}=\mathbf{p}_ {k}+\mathbf{v}_ {k} \cdot \Delta t+\frac{1}{2} \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \mathbf{R}_ {k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\boldsymbol{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\end{array}

预积分

根据之前的内容,如果有两个时刻i,ji,j,且我们知道ii时刻的机器人状态,以及i,ji,j时刻之间的IMU状态,那么我们可以直接得到jj时刻的机器人状态,通过对i,ji,j时刻间的IMU状态进行上述的积分:

𝑹j=𝑹i⋅∏k=ij−1Exp⁡((𝒂̃k−𝒃kg−𝜼kgd)⋅Δt)𝒗j=𝒗i+𝒈⋅Δtij+∑k=ij−1𝑹k⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt𝒑j=𝒑i+∑k=ij−1𝒗k⋅Δt+j−i2𝒈⋅Δt2+12∑k=ij−1𝑹k⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt2=𝒑i+∑k=ij−1[𝒗k⋅Δt+12𝒈⋅Δt2+12𝑹k⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt2] \begin{aligned}\mathbf{R}_ {j} &=\mathbf{R}_ {i} \cdot \prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{g}-\mathbf{\eta}_ {k}^{g d}\right) \cdot \Delta t\right) \\\mathbf{v}_ {j} &=\mathbf{v}_ {i}+\mathbf{g} \cdot \Delta t_ {i j}+\sum_ {k=i}^{j-1} \mathbf{R}_ {k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t \\\mathbf{p}_ {j} &=\mathbf{p}_ {i}+\sum_ {k=i}^{j-1} \mathbf{v}_ {k} \cdot \Delta t+\frac{j-i}{2} \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \sum_ {k=i}^{j-1} \mathbf{R}_ {k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2} \\&=\mathbf{p}_ {i}+\sum_ {k=i}^{j-1}\left[\mathbf{v}_ {k} \cdot \Delta t+\frac{1}{2} \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \mathbf{R}_ {k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right]\end{aligned}

其中Δtij=∑k=ij−1Δt=(j−i)Δt\Delta t_ {i j}=\sum_ {k=i}^{j-1} \Delta t=(j-i) \Delta t,也就是时刻之间的时间间隔。可以看到,上述估计中相邻两个IMU数据之间的状态用先前的IMU状态来代替。后面的速度与位置的更新,都出现了新的变量𝑹k\mathbf R_k,也就意味着当𝑹i\mathbf R_i有变化,所有的𝑹k\mathbf R_k都会跟着改变,所有的量都需重新计算。为了避免这样的情况,很直接的方法就是记录着i,ji,j时刻之间的变化值,而这个变化值不应该随着𝑹i\mathbf R_i 的改变而改变。因此,需要引入预积分。预积分的目的自然是为了消除IMU积分式中的𝑹i\mathbf R_ {i}以及与其相关的𝑹k,𝒗k\mathbf R_k, \mathbf v_k,这样之后𝑹i\mathbf R_i改变后,可以直接利用先前计算的预积分得到更新的结果。因此我们定义下面为预积分的内容:

Δ𝑹ij≜𝑹iT𝑹j=∏k=ij−1Exp⁡((𝝎̃k−𝒃kg−𝜼kgd)⋅Δt)Δ𝒗ij≜𝑹iT(𝒗j−𝒗i−𝒈⋅Δtij)=∑k=ij−1Δ𝑹ik⋅(𝒂̃k−𝒃ka−𝜼kad)⋅ΔtΔ𝒑ij≜𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)=∑k=ij−1[Δ𝒗ik⋅Δt+12Δ𝑹ik⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt2] \begin{aligned}\Delta \mathbf{R}_ {i j} & \triangleq \mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \\&=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {k}^{g}-\boldsymbol{\eta}_ {k}^{g d}\right) \cdot \Delta t\right) \\\Delta \mathbf{v}_ {i j} & \triangleq \mathbf{R}_ {i}^{T}\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right) \\&=\sum_ {k=i}^{j-1} \Delta \mathbf{R}_ {i k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t \\\Delta \mathbf{p}_ {i j} & \triangleq \mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right) \\&=\sum_ {k=i}^{j-1}\left[\Delta \mathbf{v}_ {i k} \cdot \Delta t+\frac{1}{2} \Delta \mathbf{R}_ {i k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right]\end{aligned}

预积分的这三个值,第一个容易理解以及第二个是容易理解的,就是在IMU积分项中把𝑹i\mathbf R_ {i},𝒗i\mathbf v_i,𝒑i\mathbf p_i提取出。而对于位置的预积分,更复杂一点,证明如下:

令ξk=𝒂̃k−𝒃ka−𝜼kad\xi_ {k}=\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d},有

𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2=∑k=ij−1(𝒗k⋅Δt+12𝒈⋅Δt2+12𝑹kξk⋅Δt2)−∑k=ij−1𝒗i⋅Δt−(j−i)22𝒈⋅Δt2=∑k=ij−1(𝒗k−𝒗i)Δt+[j−i2−(j−i)22]𝒈⋅Δt2+12∑k=ij−1𝑹kξk⋅Δt2=∑k=ij−1(𝒗k−𝒗i)Δt−∑k=ij−1(k−i)𝒈⋅Δt2+12∑k=ij−1𝑹kξk⋅Δt2=∑k=ij−1{[𝒗k−𝒗i−(k−i)𝒈⋅Δt]Δt+12𝑹kξk⋅Δt2}=∑k=ij−1[(𝒗k−𝒗i−𝒈⋅Δtik)Δt+12𝑹kξk⋅Δt2]=∑k=ij−1[𝑹i⋅Δ𝒗ik⋅Δt+12𝑹kξk⋅Δt2]=𝑹i∑k=ij−1[Δ𝒗ik⋅Δt+12Δ𝑹ik⋅(𝒂̃k−𝒃ka−𝜼kad)⋅Δt2] \begin{aligned}& \mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2} \\=& \sum_ {k=i}^{j-1}\left(\mathbf{v}_ {k} \cdot \Delta t+\frac{1}{2} \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2}\right)-\sum_ {k=i}^{j-1} \mathbf{v}_ {i} \cdot \Delta t-\frac{(j-i)^{2}}{2} \mathbf{g} \cdot \Delta t^{2} \\=& \sum_ {k=i}^{j-1}\left(\mathbf{v}_ {k}-\mathbf{v}_ {i}\right) \Delta t+\left[\frac{j-i}{2}-\frac{(j-i)^{2}}{2}\right] \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \sum_ {k=i}^{j-1} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2} \\=& \sum_ {k=i}^{j-1}\left(\mathbf{v}_ {k}-\mathbf{v}_ {i}\right) \Delta t-\sum_ {k=i}^{j-1}(k-i) \mathbf{g} \cdot \Delta t^{2}+\frac{1}{2} \sum_ {k=i}^{j-1} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2} \\=& \sum_ {k=i}^{j-1}\left\{\left[\mathbf{v}_ {k}-\mathbf{v}_ {i}-(k-i) \mathbf{g} \cdot \Delta t\right] \Delta t+\frac{1}{2} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2}\right\} \\=& \sum_ {k=i}^{j-1}\left[\left(\mathbf{v}_ {k}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i k}\right) \Delta t+\frac{1}{2} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2}\right] \\=& \sum_ {k=i}^{j-1}\left[\mathbf{R}_ {i} \cdot \Delta \mathbf{v}_ {i k} \cdot \Delta t+\frac{1}{2} \mathbf{R}_ {k} \xi_ {k} \cdot \Delta t^{2}\right]\\=&\mathbf R_i\sum_ {k=i}^{j-1}\left[\Delta \mathbf{v}_ {i k} \cdot \Delta t+\frac{1}{2} \Delta \mathbf{R}_ {i k} \cdot\left(\tilde{\mathbf{a}}_ {k}-\mathbf{b}_ {k}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right]\end{aligned}

有了预积分项,想要得到积分后的结果就非常容易了。预积分的意义是找出i,ji,j时刻之间IMU状态贡献的部分,即使机器人状态有变化,固定时刻之间IMU状态测量值不变,这个贡献也不应该改变,因此IMU预积分是可以当作两个机器人状态之间的一个约束。

预积分测量值以及测量噪声

这一部分是为了分离出噪声,直接使用测量值的预积分。首先假设i,ji, j时刻之间的bias是一定的,那么

(1)对于Δ𝑹ij\Delta\mathbf R_ {ij}有:

Δ𝑹ij=∏k=ij−1Exp⁡((𝝎̃k−𝒃ig)Δt−𝜼kgdΔt)≈∏k=ij−1{Exp((𝝎̃k−𝒃ig)Δt)⋅Exp(−𝑱r((𝝎̃k−𝒃ig)Δt)⋅𝜼kgdΔt)} \begin{aligned}\Delta \mathbf{R}_ {i j} &=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t-\boldsymbol{\eta}_ {k}^{g d} \Delta t\right) \\& \approx \prod_ {k=i}^{j-1}\left\{\operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t\right) \cdot \operatorname{Exp}\left(-\mathbf{J}_ {r}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t\right) \cdot \mathbf{\eta}_ {k}^{g d} \Delta t\right)\right\}\end{aligned}

这一步是把𝜼kgdΔt\boldsymbol \eta_ {k}^{gd}\Delta t看作是一个微小量,则有Exp⁡(ϕ→+δϕ→)≈Exp⁡(ϕ→)⋅Exp⁡(𝑱r(ϕ→)⋅δϕ→)\operatorname{Exp}(\vec{\phi}+\delta \vec{\phi}) \approx \operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}\left(\mathbf{J}_ {r}(\vec{\phi}) \cdot \delta \vec{\phi}\right)。

从这一步继续往下推导会稍微复杂一点,先给出结果:

为了符号简便,令:

$$ \mathbf{J}_ {r}^{k}=\mathbf{J}_ {r}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t\right)\\\Delta \tilde{\mathbf{R}}_ {i j}=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t\right)\\\operatorname{Exp}\left(-\delta \vec{\phi}_ {i j}\right)=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {k+1,j}^{T} \cdot \mathbf{J}_ {r}^{k} \cdot \boldsymbol{\eta}_ {k}^{g d} \Delta t\right) $$

则有:

Δ𝑹ij=Δ𝑹̃ij⋅Exp⁡(−δϕ→ij) \Delta \mathbf{R}_ {i j} = \Delta \tilde{\mathbf{R}}_ {i j} \cdot \operatorname{Exp}\left(-\delta \vec{\phi}_ {i j}\right)

其中Δ𝑹̃ij\Delta\tilde{\mathbf R}_ {ij}就是旋转量的预积分测量值,后者为噪声。

下面我们证明。首先,我们利用SO(3)\text{SO(3)}的伴随性质可以得到:

Exp⁡(ϕ→)⋅𝑹=𝑹⋅Exp⁡(𝑹Tϕ→) \operatorname{Exp}(\vec{\phi}) \cdot \mathbf{R}=\mathbf{R} \cdot \operatorname{Exp}\left(\mathbf{R}^{T} \vec{\phi}\right)

这里我们对上式进行一个推广:

Exp⁡(ϕ→1)Exp⁡(ϕ→2)⋅𝑹=Exp⁡(ϕ→1)𝑹⋅Exp⁡(𝑹Tϕ→2)=𝑹Exp⁡(𝑹Tϕ→1)Exp⁡(𝑹Tϕ→2) \begin{aligned}\operatorname{Exp}(\vec{\phi}_1)\operatorname{Exp}(\vec{\phi}_2) \cdot \mathbf{R}&=\operatorname{Exp}(\vec{\phi}_1)\mathbf{R} \cdot \operatorname{Exp}\left(\mathbf{R}^{T} \vec{\phi}_2\right)\\&=\mathbf R \operatorname{Exp}(\mathbf R^T\vec{\phi}_1)\operatorname{Exp}(\mathbf R^T\vec{\phi}_2)\end{aligned}

也就是,伴随性质是链式传播的,从最右侧传到最左侧,中间每一个量都会受到影响。为了符号简便,我们可以令𝑹k,k+1=Exp⁡(𝝎̃k−𝒃ig)Δt\mathbf R_ {k,k+1}=\operatorname{Exp}\left(\tilde{\boldsymbol{\omega}}_ {k}-\mathbf{b}_ {i}^{g}\right) \Delta t,也就是:

Δ𝑹̃ij=∏k=ij−1𝑹k,k+1 \Delta \tilde{\mathbf{R}}_ {i j}=\prod_ {k=i}^{j-1} \mathbf R_ {k,k+1}

则有:

Δ𝑹ij=∏k=ij−1{𝑹k,k+1⋅Exp(−𝑱rk⋅𝜼kgdΔt)}=𝑹i,i+1⋅Exp(−𝑱ri⋅𝜼igdΔt)⋅𝑹i+1,i+2⋅Exp(−𝑱ri+1⋅𝜼i+1gdΔt)⋯𝑹j−1,j⋅Exp(−𝑱rj−1⋅𝜼j−1gdΔt)=𝑹i,i+1⋅𝑹i+1,i+2⋅Exp(−𝑹i+1,i+2T⋅𝑱ri⋅𝜼igdΔt)⋅Exp(−𝑱ri+1⋅𝜼i+1gdΔt)𝑹i+2,i+3⋯𝑹j−1,j⋅Exp(−𝑱rj−1⋅𝜼j−1gdΔt)=𝑹i,i+1⋅𝑹i+1,i+2⋅𝑹i+2,i+3⋅Exp(−𝑹i+2,i+3T𝑹i+1,i+2T⋅𝑱ri⋅𝜼igdΔt)⋅Exp(−𝑹i+2,i+3T𝑱ri+1⋅𝜼i+1gdΔt)⋯𝑹j−1,j⋅Exp(−𝑱rj−1⋅𝜼j−1gdΔt)⋯=∏k=ij−1𝑹k,k+1⋅Exp(−(∏k=i+1j−1𝑹k,k+1)T𝑱ri⋅𝜼igdΔt)⋯Exp(−𝑱rj−1⋅𝜼j−1gdΔt)=Δ𝑹̃ij⋅Exp⁡(−Δ𝑹̃i+1,jT⋅𝑱ri⋅𝜼igdΔt)⋅Exp⁡(−Δ𝑹̃i+2,jT⋅𝑱ri+1⋅𝜼i+1gdΔt)⋯Exp⁡(−Δ𝑹̃j,jT⋅𝑱rj−1⋅𝜼j−1gdΔt)=Δ𝑹̃ij⋅∏k=ij−1Exp⁡(−Δ𝑹̃k+1,jT⋅𝑱rk⋅𝜼kgdΔt)=Δ𝑹̃ij⋅Exp⁡(−δϕ→ij) \begin{aligned}\Delta \mathbf{R}_ {i j}&=\prod_ {k=i}^{j-1} \left\{\mathbf R_ {k,k+1}\cdot\text{Exp}(-\mathbf{J}_ {r}^{k} \cdot \boldsymbol{\eta}_ {k}^{g d} \Delta t) \right\}\\&=\mathbf R_ {i, i+1}\cdot\text{Exp}(-\mathbf{J}_ {r}^{i} \cdot \boldsymbol{\eta}_ {i}^{g d} \Delta t)\cdot\mathbf R_ {i+1, i+2}\cdot\text{Exp}(-\mathbf{J}_ {r}^{i+1} \cdot \boldsymbol{\eta}_ {i+1}^{g d} \Delta t)\cdots\mathbf R_ {j-1,j}\cdot \text{Exp}(-\mathbf{J}_ {r}^{j-1} \cdot \boldsymbol{\eta}_ {j-1}^{g d} \Delta t) \\ &= \mathbf R_ {i,i+1}\cdot \mathbf R_ {i+1, i+2} \cdot\text{Exp}(-\mathbf R_ {i+1,i+2}^T\cdot\mathbf{J}_ {r}^{i} \cdot \boldsymbol{\eta}_ {i}^{g d} \Delta t)\cdot\text{Exp}(-\mathbf{J}_ {r}^{i+1} \cdot \boldsymbol{\eta}_ {i+1}^{g d} \Delta t)\mathbf R_ {i+2, i+3}\cdots\mathbf R_ {j-1,j}\cdot \text{Exp}(-\mathbf{J}_ {r}^{j-1} \cdot \boldsymbol{\eta}_ {j-1}^{g d} \Delta t)\\&= \mathbf R_ {i,i+1}\cdot \mathbf R_ {i+1, i+2} \cdot \mathbf R_ {i+2, i+3}\cdot\text{Exp}(-\mathbf R_ {i+2,i+3}^T\mathbf R_ {i+1,i+2}^T\cdot\mathbf{J}_ {r}^{i} \cdot \boldsymbol{\eta}_ {i}^{g d} \Delta t)\cdot\text{Exp}(-\mathbf R_ {i+2,i+3}^T\mathbf{J}_ {r}^{i+1} \cdot \boldsymbol{\eta}_ {i+1}^{g d} \Delta t)\cdots\mathbf R_ {j-1,j}\cdot \text{Exp}(-\mathbf{J}_ {r}^{j-1} \cdot \boldsymbol{\eta}_ {j-1}^{g d} \Delta t)\\&\cdots\\&=\prod_ {k=i}^{j-1} \mathbf R_ {k,k+1} \cdot \text{Exp}\left(-\left(\prod_ {k=i+1}^{j-1}\mathbf{R}_ {k,k+1}\right)^T\mathbf{J}_ {r}^{i} \cdot \boldsymbol{\eta}_ {i}^{g d} \Delta t \right) \cdots \text{Exp}(-\mathbf{J}_ {r}^{j-1} \cdot \boldsymbol{\eta}_ {j-1}^{g d} \Delta t)\\&=\Delta\tilde{\mathbf R}_ {ij}\cdot \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {i+1,j}^{T} \cdot \mathbf{J}_ {r}^{i} \cdot \boldsymbol{\eta}_ {i}^{g d} \Delta t\right)\cdot \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {i+2,j}^{T} \cdot \mathbf{J}_ {r}^{i+1} \cdot \boldsymbol{\eta}_ {i+1}^{g d} \Delta t\right)\cdots \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {j,j}^{T} \cdot \mathbf{J}_ {r}^{j-1} \cdot \boldsymbol{\eta}_ {j-1}^{g d} \Delta t\right)\\&=\Delta \tilde{ \mathbf R}_ {ij}\cdot\prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {k+1,j}^{T} \cdot \mathbf{J}_ {r}^{k} \cdot \boldsymbol{\eta}_ {k}^{g d} \Delta t\right)\\& = \Delta \tilde{\mathbf{R}}_ {i j} \cdot \operatorname{Exp}\left(-\delta \vec{\phi}_ {i j}\right)\end{aligned}

证毕,需要注意的是Δ𝑹̃jj=𝑰\Delta\tilde{\mathbf R}_ {jj} = \mathbf I。

(2)对于Δ𝒗ij\Delta \mathbf v_ {ij},将(1)中的结论带入有:

Δ𝒗ij=∑k=ij−1Δ𝑹ik⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt≈∑k=ij−1Δ𝑹̃ik⋅Exp⁡(−δϕ→ik)⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt≈∑k=ij−1Δ𝑹̃ik⋅(𝑰−δϕ→ik∧)⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt≈∑k=ij−1[Δ𝑹̃ik⋅(𝑰−δϕ→ik∧)⋅(𝒇̃k−𝒃ia)⋅Δt−Δ𝑹̃ik𝜼kadΔt]=∑k=ia−1[Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)⋅Δt+Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt−Δ𝑹̃ik𝜼kadΔt]=∑k=ij−1[Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)⋅Δt]+∑k=ij−1[Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt−Δ𝑹̃ik𝜼kadΔt] \begin{aligned}\Delta \mathbf{v}_ {i j} &=\sum_ {k=i}^{j-1} \Delta \mathbf{R}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t \\& \approx \sum_ {k=i}^{j-1} \Delta \tilde{\mathbf{R}}_ {i k} \cdot \operatorname{Exp}\left(-\delta \vec{\phi}_ {i k}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t \\& \approx \sum_ {k=i}^{j-1} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}-\delta \vec{\phi}_ {i k}^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\boldsymbol{\eta}_ {k}^{a d}\right) \cdot \Delta t \\& \approx \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}-\delta \vec{\phi}_ {i k}^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \cdot \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \boldsymbol{\eta}_ {k}^{a d} \Delta t\right] \\&=\sum_ {k=i}^{a-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \cdot \Delta t+\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t\right] \\&=\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \cdot \Delta t\right]+\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t\right]\end{aligned}

令:

Δ𝒗̃ij≜∑k=ij−1[Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)⋅Δt]δ𝒗ij≜∑k=ij−1[Δ𝑹̃ik𝜼kadΔt−Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt] \begin{aligned}\Delta \tilde{\mathbf{v}}_ {i j} & \triangleq \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \cdot \Delta t\right] \\\delta \mathbf{v}_ {i j} & \triangleq \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t\right]\end{aligned}

则有:

Δ𝒗ij≜Δ𝒗̃ij−δ𝒗ij \Delta \mathbf{v}_ {i j} \triangleq \Delta \tilde{\mathbf{v}}_ {i j}-\delta \mathbf{v}_ {i j}

其中前一项为测量项,而后一项为噪声值。

(3)对于Δ𝒑ij\Delta\mathbf {p}_ {ij},带入前面的结果,可得:

Δ𝒑ij=∑k=ij−1[Δ𝒗ik⋅Δt+12Δ𝑹ik⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt2]≈∑k=ij−1[(Δ𝒗̃ik−δ𝒗ik)⋅Δt+12Δ𝑹̃ik⋅Exp(−δϕ→ik)⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt2]≈∑k=i(1)[(Δ𝒗̃ik−δ𝒗ik)⋅Δt+12Δ𝑹̃ik⋅(𝑰−δϕ→ik∧)⋅(𝒇̃k−𝒃ia−𝜼kad)⋅Δt2]≈∑k=i−1[(Δ𝒗̃ik−δ𝒗ik)⋅Δt+12Δ𝑹̃ik⋅(𝑰−δϕ→ik∧)⋅(𝒇̃k−𝒃ia)⋅Δt2−12Δ𝑹̃ik𝜼kadΔt2]=∑k=ij−1[Δ𝒗̃ikΔt+12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)Δt2+12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧δϕ→ikΔt2−12Δ𝑹̃ik𝜼kadΔt2−δ𝒗ikΔt] \begin{aligned}\Delta \mathbf{p}_ {i j} &=\sum_ {k=i}^{j-1}\left[\Delta \mathbf{v}_ {i k} \cdot \Delta t+\frac{1}{2} \Delta \mathbf{R}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right] \\& \approx \sum_ {k=i}^{j-1}\left[\left(\Delta \tilde{\mathbf{v}}_ {i k}-\delta \mathbf{v}_ {i k}\right) \cdot \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot \operatorname{Exp}\left(-\delta \vec{\phi}_ {i k}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right] \\& \approx \sum_ {k=i}^{(1)}\left[\left(\Delta \tilde{\mathbf{v}}_ {i k}-\delta \mathbf{v}_ {i k}\right) \cdot \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}-\delta \vec{\phi}_ {i k}^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}-\mathbf{\eta}_ {k}^{a d}\right) \cdot \Delta t^{2}\right] \\& \approx \sum_ {k=i}^{-1}\left[\left(\Delta \tilde{\mathbf{v}}_ {i k}-\delta \mathbf{v}_ {i k}\right) \cdot \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}-\delta \vec{\phi}_ {i k}^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \cdot \Delta t^{2}-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t^{2}\right] \\& = \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{v}}_ {i k} \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \Delta t^{2}+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \delta \vec{\phi}_ {i k} \Delta t^{2}-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t^{2}-\delta \mathbf{v}_ {i k} \Delta t\right]\end{aligned}

令:

Δ𝒑̃ij≜∑k=ij−1[Δ𝒗̃ikΔt+12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)Δt2]δ𝒑ij≜∑k=ij−1[δ𝒗ikΔt−12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧δϕ→ikΔt2+12Δ𝑹̃ik𝒏kadΔt2] \begin{array}{l}\Delta \tilde{\mathbf{p}}_ {i j} \triangleq \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{v}}_ {i k} \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right) \Delta t^{2}\right] \\\delta \mathbf{p}_ {i j} \triangleq \sum_ {k=i}^{j-1}\left[\delta \mathbf{v}_ {i k} \Delta t-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \delta \vec{\phi}_ {i k} \Delta t^{2}+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \mathbf{n}_ {k}^{a d} \Delta t^{2}\right]\end{array}

则

Δ𝒑ij≜Δ𝒑̃ij−δ𝒑ij \Delta \mathbf{p}_ {i j} \triangleq \Delta \tilde{\mathbf{p}}_ {i j}-\delta \mathbf{p}_ {i j}

前者为预积分测量值,后者为噪声值。

最终,将分离后的噪声与测量值带入理想状态的预积分形式下,可以得到:

Δ𝑹̃ij≈Δ𝑹ijExp⁡(δϕ→ij)=𝑹iT𝑹jExp⁡(δϕ→ij)Δ𝒗̃ij≈Δ𝒗ij+δ𝒗ij=𝑹iT(𝒗j−𝒗i−𝒈⋅Δtij)+δ𝒗ijΔ𝒑̃ij≈Δ𝒑ij+δ𝒑ij=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)+δ𝒑ij \begin{array}{l}\Delta \tilde{\mathbf{R}}_ {i j} \approx \Delta \mathbf{R}_ {i j} \operatorname{Exp}\left(\delta \vec{\phi}_ {i j}\right)=\mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \operatorname{Exp}\left(\delta \vec{\phi}_ {i j}\right) \\\Delta \tilde{\mathbf{v}}_ {i j} \approx \Delta \mathbf{v}_ {i j}+\delta \mathbf{v}_ {i j}=\mathbf{R}_ {i}^{T}\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)+\delta \mathbf{v}_ {i j} \\\Delta \tilde{\mathbf{p}}_ {i j} \approx \Delta \mathbf{p}_ {i j}+\delta \mathbf{p}_ {i j}=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)+\delta \mathbf{p}_ {i j}\end{array}

类似于测量值等于理想值+噪声的形式。

在实现的时候需要注意,Δ𝒗̃ij\Delta \tilde{\mathbf v}_ {ij}会用到的是∑k=ij−1Δ𝑹̃ik=Δ𝑹̃ii+⋯+Δ𝑹̃i,j−1\sum_ {k=i}^{j-1}\Delta \tilde{\mathbf{R}}_ {i k} = \Delta \tilde{\mathbf{R}}_ {i i}+\cdots+\Delta \tilde{\mathbf{R}}_ {i,j-1},也就是不会用到Δ𝑹̃ij\Delta \tilde{\mathbf{R}}_ {i j},因此实现的时候需要注意计算顺序:Δ𝒑̃ij→Δ𝒗̃ij→Δ𝑹̃ij\Delta \tilde{\mathbf{p}}_ {i j}\rightarrow\Delta \tilde{\mathbf{v}}_ {i j}\rightarrow \Delta \tilde{\mathbf{R}}_ {i j}。

噪声分布

令预积分的噪声为:

𝜼ijΔ≜[δ𝝓→ijTδ𝒗ijTδ𝒑ijT]T \boldsymbol{\eta}_ {i j}^{\Delta} \triangleq\left[\begin{array}{lll}\delta \vec{\boldsymbol\phi}_ {i j}^{T} & \delta \mathbf{v}_ {i j}^{T} & \delta \mathbf{p}_ {i j}^{T}\end{array}\right]^{T}

我们希望它满足高斯分布,也就是𝜼ijΔ∼N(𝟎9×1,𝚺ij)\boldsymbol{\eta}_ {i j}^{\Delta} \sim N\left(\mathbf{0}_ {9 \times 1}, \mathbf{\Sigma}_ {i j}\right)。这里𝜼ijΔ\boldsymbol \eta_ {ij}^\Delta是三种噪声的线性组合,因此我们来分别分析。

(1)首先是旋转的噪声分析δ𝝓→\delta\boldsymbol{\vec\phi}。由之前的推导可以知道:

Exp⁡(−δϕ→ij)=∏k=ij−1Exp⁡(−Δ𝑹̃k+1jT⋅𝑱rk⋅𝜼kgdΔt) \operatorname{Exp}\left(-\delta \vec{\phi}_ {i j}\right)=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {k+1 j}^{T} \cdot \mathbf{J}_ {r}^{k} \cdot \boldsymbol{\eta}_ {k}^{g d} \Delta t\right)

对等式两边同时取对数,可以得到:

δϕ→ij=−Log(∏k=ij−1Exp(−Δ𝑹̃k+1jT⋅𝑱rk⋅𝜼kgdΔt)) \delta \vec{\phi}_ {i j}=-\text{Log}\left(\prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\Delta \tilde{\mathbf{R}}_ {k+1 j}^{T} \cdot \mathbf{J}_ {r}^{k} \cdot \boldsymbol{\eta}_ {k}^{g d} \Delta t\right)\right)

令ξk=Δ𝑹̃k+1jT⋅𝑱rk⋅𝜼kgdΔt\xi_ {k}=\Delta \tilde{\mathbf{R}}_ {k+1 j}^{T} \cdot \mathbf{J}_ {r}^{k} \cdot \mathbf{\eta}_ {k}^{g d} \Delta t,由于𝜼kgd\boldsymbol{\eta}_ {k}^{g d}是小量,因此ξk\xi_k也是小量,因此有𝑱r(ξk)≈𝑰\mathbf{J}_ {r}\left(\xi_ {k}\right) \approx \mathbf{I}(注意这里是雅可比矩阵,而不是之前的缩写)。由于本身δϕ→ij\delta \vec{\phi}_ {i j}是小量,因此任意Log(∏k=pj−1Exp(−ξk)),p∈{i,i+1,...,j−1}\text{Log} \left(\prod_ {k =p}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right), p \in \{i, i+1,...,j-1\}是小量,因为有Log(Exp⁡(ϕ→)⋅Exp⁡(δϕ→))=ϕ→+𝑱r−1(ϕ→)⋅δϕ→\text{Log} (\operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}(\delta \vec{\phi}))=\vec{\phi}+\mathbf{J}_ {r}^{-1}(\vec{\phi}) \cdot \delta \vec{\phi},我们可以得到

δϕ→ij=−Log(∏k=ij−1Exp(−ξk))=−Log(Exp(−ξi)∏k=i+1j−1Exp(−ξk))≈−(−ξi+𝑰⋅Log(∏k=1+1j−1Exp(−ξk)))=ξi−Log(∏k=i+1j−1Exp(−ξk))=ξi−Log(Exp(−ξi+1)∏k=i+2j−1Exp(−ξk))≈ξi+ξi+1−Log(∏k=1+2j−1Exp(−ξk))≈⋯≈∑k=ij−1ξk \begin{aligned}\delta \vec{\phi}_ {i j} &=-\text{Log}\left(\prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right) \\&=-\text{Log}\left(\operatorname{Exp}\left(-\xi_ {i}\right) \prod_ {k=i+1}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right) \\& \approx-\left(-\xi_ {i}+\mathbf{I} \cdot \text{Log}\left(\prod_ {k=1+1}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right)\right)=\xi_ {i}-\text{Log} \left(\prod_ {k=i+1}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right) \\&=\xi_ {i}-\text{Log}\left(\operatorname{Exp}\left(-\xi_ {i+1}\right) \prod_ {k=i+2}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right) \\& \approx \xi_ {i}+\xi_ {i+1}-\text{Log} \left(\prod_ {k=1+2}^{j-1} \operatorname{Exp}\left(-\xi_ {k}\right)\right) \\& \approx \cdots \\& \approx \sum_ {k=i}^{j-1} \xi_ {k}\end{aligned}

也就是

δϕ→ij≈∑k=ij−1Δ𝑹̃k+1jT𝑱rk𝜼kgdΔt \delta \vec{\phi}_ {i j} \approx \sum_ {k=i}^{j-1} \Delta \tilde{\mathbf{R}}_ {k+1 j}^{T} \mathbf{J}_ {r}^{k} \mathbf{\eta}_ {k}^{g d} \Delta t

由于上式中Δ𝑹̃k+1jT,𝑱rk,Δt\Delta \tilde{\mathbf{R}}_ {k+1 j}^{T}, \mathbf{J}_ {r}^{k},\Delta t都是已知量,而假设𝜼kgd\boldsymbol \eta_k^{gd}是零均值高斯噪声,因此δϕ→ij\delta\vec{\phi}_ {ij}也是零均值高斯噪声。

(2)由于我们分析得到了δϕ→ij\delta\vec{\phi}_ {ij}是零均值高斯噪声,根据δ𝒗ij\delta\mathbf v_ {ij}表达式:

δ𝒗ij=∑k=ij−1[Δ𝑹̃ik𝜼kadΔt−Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt] \delta \mathbf{v}_ {i j}=\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t\right]

我们可以知道δ𝒗ij\delta\mathbf v_ {ij}也是高斯分布的。

(3)类似的,根据δ𝒑ij\delta \mathbf{p}_ {i j}的表达式:

δ𝒑ij=∑k=ij−1[δ𝒗ikΔt−12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧δϕ→ikΔt2+12Δ𝑹̃ik𝜼kadΔt2] \delta \mathbf{p}_ {i j}=\sum_ {k=i}^{j-1}\left[\delta \mathbf{v}_ {i k} \Delta t-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \delta \vec{\phi}_ {i k} \Delta t^{2}+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t^{2}\right]

可以知道δ𝒑ij\delta \mathbf{p}_ {i j}也是高斯分布。但是,δ𝒗ij,δ𝒑ij\delta \mathbf{v}_ {i j},\delta \mathbf{p}_ {i j}不是零均值。

噪声的递推形式

下面分析一下噪声的递推形式,𝜼i,j−1Δ→𝜼ijΔ\boldsymbol\eta_ {i,j-1}^\Delta\rightarrow\boldsymbol \eta_ {ij}^{\Delta},以及其协方差的递推形式,𝚺ij−1→𝚺ij\boldsymbol{\Sigma}_ {i j-1} \rightarrow \boldsymbol{\Sigma}_ {i j}。

(1)旋转项δϕ→i,j−1→δϕ→ij\delta \vec{\phi}_ {i,j-1}\rightarrow \delta \vec{\phi}_ {ij}:

δϕ→ij=∑k=1j−1Δ𝑹̃k+1jT𝑱rk𝜼kgdΔt=∑k=ij−2Δ𝑹̃k+1,jT𝑱rk𝜼kgdΔt+Δ𝑹̃jjT𝑱rj−1𝜼j−1gdΔt=∑k=1j−2(Δ𝑹̃k+1,j−1Δ𝑹̃j−1,j)T𝑱rk𝜼kgdΔt+𝑱rj−1𝜼j−1gdΔt=Δ𝑹̃j,j−1∑k=1j−2Δ𝑹̃k+1,j−1T𝑱rk𝜼kgdΔt+𝑱rj−1𝜼j−1gdΔt=Δ𝑹̃j,j−1δϕ→ij−1+𝑱rj−1𝜼j−1gdΔt \begin{aligned}\delta \vec{\phi}_ {i j} &=\sum_ {k=1}^{j-1} \Delta \tilde{\mathbf{R}}_ {k+1 j}^{T} \mathbf{J}_ {r}^{k} \mathbf{\eta}_ {k}^{g d} \Delta t \\&=\sum_ {k=i}^{j-2} \Delta \tilde{\mathbf{R}}_ {k+1,j}^{T} \mathbf{J}_ {r}^{k} \mathbf{\eta}_ {k}^{g d} \Delta t+\Delta \tilde{\mathbf{R}}_ {j j}^{T} \mathbf{J}_ {r}^{j-1} \mathbf{\eta}_ {j-1}^{g d} \Delta t \\&=\sum_ {k=1}^{j-2}\left(\Delta \tilde{\mathbf{R}}_ {k+1,j-1} \Delta \tilde{\mathbf{R}}_ {j-1,j}\right)^{T} \mathbf{J}_ {r}^{k} \mathbf{\eta}_ {k}^{g d} \Delta t+\mathbf{J}_ {r}^{j-1} \mathbf{\eta}_ {j-1}^{g d} \Delta t \\&=\Delta \tilde{\mathbf{R}}_ {j,j-1} \sum_ {k=1}^{j-2} \Delta \tilde{\mathbf{R}}_ {k+1,j-1}^{T} \mathbf{J}_ {r}^{k} \mathbf{\eta}_ {k}^{g d} \Delta t+\mathbf{J}_ {r}^{j-1} \mathbf{\eta}_ {j-1}^{g d} \Delta t \\&=\Delta \tilde{\mathbf{R}}_ {j,j-1} \delta \vec{\phi}_ {i j-1}+\mathbf{J}_ {r}^{j-1} \mathbf{\eta}_ {j-1}^{g d} \Delta t\end{aligned}

(2)速度项δ𝒗i,j−1→δ𝒗ij\delta \mathbf{v}_ {i,j-1} \rightarrow \delta \mathbf{v}_ {i j}:

δ𝒗ij=∑k=ij−1[Δ𝑹̃ik𝜼kadΔt−Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt]=∑k=ij−2[Δ𝑹̃ik𝒑kadΔt−Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧⋅δϕ→ik⋅Δt]+Δ𝑹̃i,j−1𝜼j−1adΔt−Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧⋅δϕ→i,j−1⋅Δt=δ𝒗i,j−1+Δ𝑹̃i,j−1𝜼j−1adΔt−Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧⋅δϕ→i,j−1⋅Δt \begin{aligned}\delta \mathbf{v}_ {i j}=& \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k} \boldsymbol{\eta}_ {k}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t\right] \\=& \sum_ {k=i}^{j-2}\left[\Delta \tilde{\mathbf{R}}_ {i k} \mathbf{p}_ {k}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i k} \cdot \Delta t\right]\\&+\Delta \tilde{\mathbf{R}}_ {i,j-1} \mathbf{\eta}_ {j-1}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i,j-1} \cdot \Delta t \\=& \delta \mathbf{v}_ {i,j-1}+\Delta \tilde{\mathbf{R}}_ {i,j-1} \mathbf{\eta}_ {j-1}^{a d} \Delta t-\Delta \tilde{\mathbf{R}}_ {i,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \cdot \delta \vec{\phi}_ {i,j-1} \cdot \Delta t\end{aligned}

(3)位置项δ𝒑i,j−1→δ𝒑ij\delta \mathbf{p}_ {i,j-1} \rightarrow \delta \mathbf{p}_ {i j}:

δ𝒑ij=∑k=ij−1[δ𝒗ikΔt−12Δ𝑹̃ik⋅(𝒇̃k−𝒃ia)∧δϕ→ikΔt2+12Δ𝑹̃ik𝜼kadΔt2]=δ𝒑i,j−1+δ𝒗i,j−1Δt−12Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧δϕ→i,j−1Δt2+12Δ𝑹̃i,j−1𝜼j−1adΔt \begin{aligned}\delta \mathbf{p}_ {i j} &=\sum_ {k=i}^{j-1}\left[\delta \mathbf{v}_ {i k} \Delta t-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \delta \vec{\phi}_ {i k} \Delta t^{2}+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k} \mathbf{\eta}_ {k}^{a d} \Delta t^{2}\right] \\&=\delta \mathbf{p}_ {i,j-1}+\delta \mathbf{v}_ {i,j-1} \Delta t-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \delta \vec{\phi}_ {i,j-1} \Delta t^{2}+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i,j-1} \mathbf{\eta}_ {j-1}^{a d} \Delta t\end{aligned}

综上所述,可以得到噪声预积分的递推形象如下(令𝜼kd=[(𝜼kgd)T(𝜼kad)T]T\mathbf{\eta}_ {k}^{d}=\left[\left(\boldsymbol{\eta}_ {k}^{g d}\right)^{T}\left(\boldsymbol{\eta}_ {k}^{\mathrm{ad}}\right)^{T}\right]^{T}):

𝜼ijΔ=[Δ𝑹̃j,j−1𝟎𝟎−Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧Δt𝑰𝟎−12Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧Δt2Δt𝑰𝑰]𝜼i,j−1Δ+[𝑱rj−1Δt𝟎𝟎Δ𝑹̃i,j−1Δt𝟎12Δ𝑹̃i,j−1Δt2]𝜼j−1d=𝑨j−1𝜼i,j−1Δ+𝑩j−1𝜼j−1d \begin{aligned}\boldsymbol{\eta}_ {i j}^{\Delta}&=\left[\begin{array}{ccc}\Delta \tilde{\mathbf{R}}_ {j, j-1} & \mathbf{0} & \mathbf{0} \\-\Delta \tilde{\mathbf{R}}_ {i ,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \Delta t & \mathbf{I} & \mathbf{0} \\-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i, j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \Delta t^{2} & \Delta t \mathbf I & \mathbf{I}\end{array}\right] \boldsymbol{\eta}_ {i ,j-1}^{\Delta} \\&~+\left[\begin{array}{cc} \mathbf{J}_ {r}^{j-1} \Delta t & \mathbf{0} \\ \mathbf{0} & \Delta \tilde{\mathbf{R}}_ {i,j-1} \Delta t \\ \mathbf{0} & \frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i, j-1} \Delta t^{2} \end{array}\right] \boldsymbol{\eta}_ {j-1}^{d}\\&=\mathbf{A}_ {j-1} \boldsymbol{\eta}_ {i ,j-1}^{\Delta}+\mathbf{B}_ {j-1} \boldsymbol{\eta}_ {j-1}^{d}\end{aligned}

其中:

𝑨j−1=[Δ𝑹̃j,j−1𝟎𝟎−Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧Δt𝑰𝟎−12Δ𝑹̃i,j−1⋅(𝒇̃j−1−𝒃ia)∧Δt2Δt𝑰𝑰]𝑩j−1=[𝑱rj−1Δt𝟎𝟎Δ𝑹̃i,j−1Δt𝟎12Δ𝑹̃i,j−1Δt2] \begin{aligned}&\mathbf{A}_ {j-1}=\left[\begin{array}{ccc}\Delta \tilde{\mathbf{R}}_ {j,j-1} & \mathbf{0} & \mathbf{0} \\-\Delta \tilde{\mathbf{R}}_ {i,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \Delta t & \mathbf{I} & \mathbf{0} \\-\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i,j-1} \cdot\left(\tilde{\mathbf{f}}_ {j-1}-\mathbf{b}_ {i}^{a}\right)^{\wedge} \Delta t^{2} & \Delta t \mathbf{I} & \mathbf{I}\end{array}\right]\\&\mathbf{B}_ {j-1}=\left[\begin{array}{cc}\mathbf{J}_ {r}^{j-1} \Delta t & \mathbf{0} \\\mathbf{0} & \Delta \tilde{\mathbf{R}}_ {i,j-1} \Delta t \\\mathbf{0} & \frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i,j-1} \Delta t^{2}\end{array}\right]\end{aligned}

而噪声的协方差也就有了下面的递推形式:

𝚺ij=𝑨j−1𝚺ij−1𝑨j−1T+𝑩j−1𝚺𝜼𝑩j−1T \boldsymbol{\Sigma}_ {i j}=\mathbf{A}_ {j-1} \boldsymbol{\Sigma}_ {i j-1} \mathbf{A}_ {j-1}^{T}+\mathbf{B}_ {j-1} \boldsymbol{\Sigma}_ {\mathbf{\eta}} \mathbf{B}_ {j-1}^{T}

bias更新

目前为止做的计算都是假设了i,ji,j时刻之间的bias是不变化的。如果bias发生了更新,需要将预计分测量值整个重新计算(bias在这段时刻里依然是恒定的,但是bias的值可能会被优化等方式更新)。目前的做法是将这个过程线性化,来得到一阶近似结果。现在先规定一些符号,首先我们将旧的bias标记为𝒃¯ig,𝒃¯ia\overline{\mathbf{b}}_ {i}^{g} ,\overline{\mathbf{b}}_ {i}^{a},而新的bias𝒃̂ig,𝒃̂ia\hat{\mathbf{b}}_ {i}^{g} , \hat{\mathbf{b}}_ {i}^{a}是由旧的bias加上更新量δ𝒃ig,δ𝒃ia\delta\mathbf{b}_ {i}^{g}, \delta\mathbf{b}_ {i}^{a}得到的,即:

𝒃̂ig←𝒃¯ig+δ𝒃ig,𝒃̂ia←𝒃¯ia+δ𝒃ia \hat{\mathbf{b}}_ {i}^{g} \leftarrow \overline{\mathbf{b}}_ {i}^{g}+\delta \mathbf{b}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a} \leftarrow \overline{\mathbf{b}}_ {i}^{a}+\delta \mathbf{b}_ {i}^{a}

则有一阶近似如下(类似于性质Exp⁡(ϕ→+δϕ→)≈Exp⁡(ϕ→)⋅Exp⁡(𝑱r(ϕ→)⋅δϕ→)\operatorname{Exp}(\vec{\phi}+\delta \vec{\phi}) \approx \operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}\left(\mathbf{J}_ {r}(\vec{\phi}) \cdot \delta \vec{\phi}\right)):

Δ𝑹̃ij(𝒃̂ig)≈Δ𝑹̃ij(𝒃¯ig)⋅Exp⁡(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)Δ𝒗̃ij(𝒃̂ig𝒃̂ia)≈Δ𝒗̃ij(𝒃¯ig,𝒃¯ia)+∂Δ𝒗¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒗¯ij∂𝒃¯aδ𝒃iaΔ𝒑̃ij(𝒃̂ig,𝒃̂ia)≈Δ𝒑̃ij(𝒃¯ig,𝒃¯ia)+∂Δ𝒑¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒑¯ij∂𝒃¯aδ𝒃ia \begin{array}{l}\Delta \tilde{\mathbf{R}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \approx \Delta \tilde{\mathbf{R}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}\right) \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \\\Delta \tilde{\mathbf{v}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g} \hat{\mathbf{b}}_ {i}^{a}\right) \approx \Delta \tilde{\mathbf{v}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right)+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a} \\\Delta \tilde{\mathbf{p}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right) \approx \Delta \tilde{\mathbf{p}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right)+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}\end{array}

如果做符号简化如下:

Δ𝑹̂ij≐Δ𝑹̃ij(𝒃̂ig),Δ𝑹¯ij≐Δ𝑹̃ij(𝒃¯ig)Δ𝒗̂ij≐Δ𝒗̃ij(𝒃̂ig,𝒃̂ia),Δ𝒗¯ij≐Δ𝒗̃ij(𝒃¯ig,𝒃¯ia)Δ𝒑̂ij≐Δ𝒑̃ij(𝒃̂ig,𝒃̂ia),Δ𝒑¯ij≐Δ𝒑̃ij(𝒃¯ig,𝒃¯ia) \begin{array}{l}\Delta \hat{\mathbf{R}}_ {i j} \doteq \Delta \tilde{\mathbf{R}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}\right), \Delta \overline{\mathbf{R}}_ {i j} \doteq \Delta \tilde{\mathbf{R}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}\right) \\\Delta \hat{\mathbf{v}}_ {i j} \doteq \Delta \tilde{\mathbf{v}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right), \Delta \overline{\mathbf{v}}_ {i j} \doteq \Delta \tilde{\mathbf{v}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right) \\\Delta \hat{\mathbf{p}}_ {i j} \doteq \Delta \tilde{\mathbf{p}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right), \Delta \overline{\mathbf{p}}_ {i j} \doteq \Delta \tilde{\mathbf{p}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right)\end{array}

就可以写成:

Δ𝑹̂ij≈Δ𝑹¯ij⋅Exp⁡(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)Δ𝒗̂ij≈Δ𝒗¯ij+∂Δ𝒗¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒗¯ij∂𝒃¯aδ𝒃iaΔ𝒑̂ij≈Δ𝒑¯ij+∂Δ𝒑¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒑¯ij∂𝒃¯aδ𝒃ia \begin{array}{l}\Delta \hat{\mathbf{R}}_ {i j} \approx \Delta \overline{\mathbf{R}}_ {i j} \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \\\Delta \hat{\mathbf{v}}_ {i j} \approx \Delta \overline{\mathbf{v}}_ {i j}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a} \\\Delta \hat{\mathbf{p}}_ {i j} \approx \Delta \overline{\mathbf{p}}_ {i j}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}\end{array}

下面我们需要推导的是式子中的各个偏导数。

(1)旋转项Δ𝑹̂ij≈Δ𝑹¯ij⋅Exp⁡(∂Δ𝑹¯ij∂b¯yδ𝒃ig)\Delta \hat{\mathbf{R}}_ {i j} \approx \Delta \overline{\mathbf{R}}_ {i j} \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathrm{b}}^{y}} \delta \mathbf{b}_ {i}^{g}\right):

Δ𝑹̂ij=Δ𝑹̃ij(𝒃̂ig)=∏k=ij−1Exp⁡((𝝎̃k−𝒃̂ig)Δt)=∏k=ij−1Exp⁡((𝝎̃k−(𝒃¯ig+δ𝒃ig))Δt)=∏k=ij−1Exp⁡((𝝎̃k−𝒃¯ig)Δt−δ𝒃igΔt)≈∏k=ij−1(Exp((𝝎̃k−𝒃¯ig)Δt)⋅Exp(−𝑱rkδ𝒃igΔt)) \begin{aligned}\Delta \hat{\mathbf{R}}_ {i j} &=\Delta \tilde{\mathbf{R}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \\&=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\hat{\mathbf{b}}_ {i}^{g}\right) \Delta t\right) \\&=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\left(\overline{\mathbf{b}}_ {i}^{g}+\delta \mathbf{b}_ {i}^{g}\right)\right) \Delta t\right) \\&=\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\overline{\mathbf{b}}_ {i}^{g}\right) \Delta t-\delta \mathbf{b}_ {i}^{g} \Delta t\right) \\& \approx \prod_ {k=i}^{j-1}\left(\operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\overline{\mathbf{b}}_ {i}^{g}\right) \Delta t\right) \cdot \operatorname{Exp}\left(-\mathbf{J}_ {r}^{k} \delta \mathbf{b}_ {i}^{g} \Delta t\right)\right)\end{aligned}

到了这一步后,使用的变形手法与之前分离测量值与噪声的时候类似,我们依然利用伴随性质来处理。先做一些符号简化,令:

$$ \mathbf{M}_ {k}=\operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\overline{\mathbf{b}}_ {i}^{g}\right) \Delta t\right)\\\operatorname{Exp}\left(\mathbf{d}_ {k}\right)=\operatorname{Exp}\left(-\mathbf{J}_ {r}^{k} \delta \mathbf{b}_ {i}^{g} \Delta t\right) $$

则有:

Δ𝑹̂ij=𝑴i⋅Exp⁡(𝒅i)⋅𝑴i+1⋅Exp⁡(𝒅i+1)⋯𝑴j−2⋅Exp⁡(𝒅j−2)⋅𝑴j−1⋅Exp⁡(𝒅j−1) \Delta\hat{\mathbf R}_ {ij} = \mathbf{M}_ {i} \cdot \operatorname{Exp}\left(\mathbf{d}_ {i}\right) \cdot \mathbf{M}_ {i+1} \cdot \operatorname{Exp}\left(\mathbf{d}_ {i+1}\right) \cdots \mathbf{M}_ {j-2} \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-2}\right) \cdot \mathbf{M}_ {j-1} \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-1}\right)

根据伴随性质,我们可以得到:

𝑴i⋅Exp⁡(𝒅i)⋅𝑴i+1⋅Exp⁡(𝒅i+1)⋯𝑴j−2⋅Exp⁡(𝒅j−2)⋅𝑴j−1⋅Exp⁡(𝒅j−1)=𝑴i⋅(Exp(𝒅i)⋅𝑴i+1)⋅Exp⁡(𝒅i+1)⋯𝑴j−2⋅(Exp(𝒅j−2)⋅𝑴j−1)⋅Exp⁡(𝒅j−1)=𝑴i⋅(𝑴i+1Exp(𝑴i+1T𝒅i))⋅Exp⁡(𝒅i+1)⋯𝑴j−2⋅(Exp(𝒅j−2)⋅𝑴j−1)⋅Exp⁡(𝒅j−1)=𝑴i𝑴i+1𝑴i+2Exp⁡(𝑴i+2T𝑴i+1T𝒅i)Exp⁡(𝑴i+2T𝒅i+1)⋯=⋯=(∏k=ij−1𝑴k)⋅(Exp((∏k=i+1j−1𝑴k)T𝒅i))⋅(Exp((∏k=i+2j−1𝑴k)T𝒅i+1))⋯(Exp((∏k=j−1j−1𝑴k)T𝒅j−2))⋅(Exp(𝒅j−1)) \begin{array}{l}\mathbf{M}_ {i} \cdot \operatorname{Exp}\left(\mathbf{d}_ {i}\right) \cdot \mathbf{M}_ {i+1} \cdot \operatorname{Exp}\left(\mathbf{d}_ {i+1}\right) \cdots \mathbf{M}_ {j-2} \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-2}\right) \cdot \mathbf{M}_ {j-1} \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-1}\right) \\=\mathbf{M}_ {i} \cdot\left(\operatorname{Exp}\left(\mathbf{d}_ {i}\right) \cdot \mathbf{M}_ {i+1}\right) \cdot \operatorname{Exp}\left(\mathbf{d}_ {i+1}\right) \cdots \mathbf{M}_ {j-2} \cdot\left(\operatorname{Exp}\left(\mathbf{d}_ {j-2}\right) \cdot \mathbf{M}_ {j-1}\right) \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-1}\right) \\=\mathbf{M}_ {i} \cdot\left(\mathbf{M}_ {i+1} \operatorname{Exp}\left(\mathbf{M}_ {i+1}^{T} \mathbf{d}_ {i}\right)\right) \cdot \operatorname{Exp}\left(\mathbf{d}_ {i+1}\right) \cdots \mathbf{M}_ {j-2} \cdot\left(\operatorname{Exp}\left(\mathbf{d}_ {j-2}\right) \cdot \mathbf{M}_ {j-1}\right) \cdot \operatorname{Exp}\left(\mathbf{d}_ {j-1}\right) \\=\mathbf{M}_ {i} \mathbf{M}_ {i+1} \mathbf{M}_ {i+2} \operatorname{Exp}\left(\mathbf{M}_ {i+2}^{T} \mathbf{M}_ {i+1}^{T} \mathbf{d}_ {i}\right) \operatorname{Exp}\left(\mathbf{M}_ {i+2}^{T} \mathbf{d}_ {i+1}\right) \cdots \\=\cdots \\=\left(\prod_ {k=i}^{j-1} \mathbf{M}_ {k}\right) \cdot\left(\operatorname{Exp}\left(\left(\prod_ {k=i+1}^{j-1} \mathbf{M}_ {k}\right)^{T} \mathbf{d}_ {i}\right)\right) \cdot\left(\operatorname{Exp}\left(\left(\prod_ {k=i+2}^{j-1} \mathbf{M}_ {k}\right)^{T} \mathbf{d}_ {i+1}\right)\right) \cdots\left(\operatorname{Exp}\left(\left(\prod_ {k=j-1}^{j-1} \mathbf{M}_ {k}\right)^{T} \mathbf{d}_ {j-2}\right)\right) \cdot\left(\operatorname{Exp}\left(\mathbf{d}_ {j-1}\right)\right)\end{array}

由于∏k=mj−1𝑴k=∏k=mj−1Exp⁡((𝝎̃k−𝒃¯ig)Δt)=Δ𝑹¯mj\prod_ {k=m}^{j-1} \mathbf{M}_ {k}=\prod_ {k=m}^{j-1} \operatorname{Exp}\left(\left(\tilde{\boldsymbol{\omega}}_ {k}-\overline{\mathbf{b}}_ {i}^{g}\right) \Delta t\right)=\Delta \overline{\mathbf{R}}_ {m j},则上式可以写为:

Δ𝑹¯ijExp⁡(Δ𝑹¯i+1,T𝒅i)Exp⁡(Δ𝑹¯i+2,jT𝒅i+1)⋯Exp⁡(Δ𝑹¯j−1,jT𝒅j−2)Exp⁡(Δ𝑹¯jjT𝒅j−1)=Δ𝑹¯ij∏k=ij−1Exp⁡(Δ𝑹¯k+1,jT𝒅k) \begin{array}{l}\Delta \overline{\mathbf{R}}_ {i j} \operatorname{Exp}\left(\Delta \overline{\mathbf{R}}_ {i+1 ,}^{T} \mathbf{d}_ {i}\right) \operatorname{Exp}\left(\Delta \overline{\mathbf{R}}_ {i+2,j}^{T} \mathbf{d}_ {i+1}\right) \cdots \operatorname{Exp}\left(\Delta \overline{\mathbf{R}}_ {j-1,j}^{T} \mathbf{d}_ {j-2}\right) \operatorname{Exp}\left(\Delta \overline{\mathbf{R}}_ {j j}^{T} \mathbf{d}_ {j-1}\right) \\=\Delta \overline{\mathbf{R}}_ {i j} \prod_ {k=i}^{j-1} \operatorname{Exp}\left(\Delta \overline{\mathbf{R}}_ {k+1,j}^{T} \mathbf{d}_ {k}\right)\end{array}

也就是:

Δ𝑹̂ij=Δ𝑹¯ij∏k=ij−1Exp⁡(−Δ𝑹¯k+1jT𝑱rkδ𝒃igΔt) \Delta \hat{\mathbf{R}}_ {i j}=\Delta \overline{\mathbf{R}}_ {i j} \prod_ {k=i}^{j-1} \operatorname{Exp}\left(-\Delta \overline{\mathbf{R}}_ {k+1 j}^{T} \mathbf{J}_ {r}^{k} \delta \mathbf{b}_ {i}^{g} \Delta t\right)

令𝒄k=−Δ𝑹¯k+1jT𝑱rkδ𝒃igΔt\mathbf{c}_ {k}=-\Delta \overline{\mathbf{R}}_ {k+1 j}^{T} \mathbf{J}_ {r}^{k} \delta \mathbf{b}_ {i}^{g} \Delta t,由于δ𝒃ig\delta \mathbf b_ {i}^g很小,所以𝒄k\mathbf {c}_k很小,可以利用性质Exp⁡(ϕ→+δϕ→)≈Exp⁡(ϕ→)⋅Exp⁡(𝑱r(ϕ→)⋅δϕ→)\operatorname{Exp}(\vec{\phi}+\delta \vec{\phi}) \approx \operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}\left(\mathbf{J}_ {r}(\vec{\phi}) \cdot \delta \vec{\phi}\right)以及𝑱r(δϕ→)≈𝑰\mathbf J_r(\delta\vec\phi)\approx \mathbf I,则有:

Exp⁡(𝒄k)Exp⁡(𝒄k+1)=Exp⁡(𝒄k)Exp⁡(𝑰⋅𝒄k+1)≈Exp⁡(𝒄k)Exp⁡(𝑱r(𝒄k)⋅𝒄k+1)≈Exp⁡(𝒄k+𝒄k+1) \begin{aligned}\operatorname{Exp}\left(\mathbf{c}_ {k}\right) \operatorname{Exp}\left(\mathbf{c}_ {k+1}\right)&=\operatorname{Exp}\left(\mathbf{c}_ {k}\right) \operatorname{Exp}\left(\mathbf{I}\cdot\mathbf{c}_ {k+1}\right)\\&\approx \operatorname{Exp}\left(\mathbf{c}_ {k}\right) \operatorname{Exp}\left(\mathbf J_r(\mathbf c_k)\cdot\mathbf{c}_ {k+1}\right) \\ &\approx \operatorname{Exp}\left(\mathbf{c}_ {k}+\mathbf{c}_ {k+1}\right)\end{aligned}

因此有:

∏k=ij−1Exp⁡(𝒄k)=Exp⁡(𝒄i)Exp⁡(𝒄i+1)∏k=i+2j−1Exp⁡(𝒄k)≈Exp⁡(𝒄i+𝒄i+1)Exp⁡(𝒄i+2)∏k=i+3j−1Exp⁡(𝒄k)≈Exp⁡(𝒄i+𝒄i+1+𝒄i+2)Exp⁡(𝒄i+3)∏k=i+4j−1Exp⁡(𝒄k)≈⋯≈Exp⁡(𝒄i+𝒄i+1+𝒄i+2+⋯𝒄j−1)=Exp⁡(∑k=ij−1𝒄k) \begin{aligned}\prod_ {k=i}^{j-1} \operatorname{Exp}\left(\mathbf{c}_ {k}\right) &=\operatorname{Exp}\left(\mathbf{c}_ {i}\right) \operatorname{Exp}\left(\mathbf{c}_ {i+1}\right) \prod_ {k=i+2}^{j-1} \operatorname{Exp}\left(\mathbf{c}_ {k}\right) \\& \approx \operatorname{Exp}\left(\mathbf{c}_ {i}+\mathbf{c}_ {i+1}\right) \operatorname{Exp}\left(\mathbf{c}_ {i+2}\right) \prod_ {k=i+3}^{j-1} \operatorname{Exp}\left(\mathbf{c}_ {k}\right) \\& \approx \operatorname{Exp}\left(\mathbf{c}_ {i}+\mathbf{c}_ {i+1}+\mathbf{c}_ {i+2}\right) \operatorname{Exp}\left(\mathbf{c}_ {i+3}\right) \prod_ {k=i+4}^{j-1} \operatorname{Exp}\left(\mathbf{c}_ {k}\right) \\& \approx \cdots \approx \operatorname{Exp}\left(\mathbf{c}_ {i}+\mathbf{c}_ {i+1}+\mathbf{c}_ {i+2}+\cdots \mathbf{c}_ {j-1}\right) \\&=\operatorname{Exp}\left(\sum_ {k=i}^{j-1} \mathbf{c}_ {k}\right)\end{aligned}

所以可得:

Δ𝑹̂ij≈Δ𝑹¯ijExp⁡(∑k=ij−1(−Δ𝑹¯k+1,jT𝑱rkδ𝒃igΔt)) \Delta \hat{\mathbf{R}}_ {i j}\approx\Delta \overline{\mathbf{R}}_ {i j} \operatorname{Exp}\left(\sum_ {k=i}^{j-1}\left(-\Delta \overline{\mathbf{R}}_ {k+1,j}^{T} \mathbf{J}_ {r}^{k} \delta \mathbf{b}_ {i}^{g} \Delta t\right)\right)

即:

∂Δ𝑹¯ij∂𝒃¯g=∑k=ij−1(−Δ𝑹¯k+1,jT𝑱rkΔt) \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}=\sum_ {k=i}^{j-1}\left(-\Delta \overline{\mathbf{R}}_ {k+1 ,j}^{T} \mathbf{J}_ {r}^{k} \Delta t\right)

在实现时,可以进一步引出递推式:

∂Δ𝑹¯ij∂𝒃¯g=∑k=ij−1(−Δ𝑹¯k+1,jT𝑱rkΔt)=∑k=ij−2((−Δ𝑹¯k+1,j−1⋅Δ𝑹¯j−1,j)T𝑱rjΔt)−Δ𝑹¯jjT𝑱rj−1Δt=∑k=ij−2(−Δ𝑹¯j−1,jT⋅Δ𝑹¯k+1,j−1T𝑱rkΔt)−𝑱rj−1Δt=Δ𝑹¯j−1,jT⋅∑k=ij−2(−Δ𝑹¯k+1,j−1T𝑱rkΔt)−𝑱rj−1Δt=Δ𝑹¯j−1,jT⋅∂Δ𝑹¯i,j−1∂𝒃¯g−𝑱rj−1Δt=Δ𝑹¯j,j−1⋅∂Δ𝑹¯i,j−1∂𝒃¯g−𝑱rj−1Δt \begin{aligned}\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}&=\sum_ {k=i}^{j-1}\left(-\Delta \overline{\mathbf{R}}_ {k+1 ,j}^{T} \mathbf{J}_ {r}^{k} \Delta t\right)\\ &=\sum_ {k=i}^{j-2}\left(\left(-\Delta \overline{\mathbf{R}}_ {k+1 ,j-1}\cdot\Delta\overline{\mathbf{R}}_ {j-1, j}\right)^{T} \mathbf{J}_ {r}^{j} \Delta t\right) - \Delta \overline{\mathbf{R}}_ {j j}^T \mathbf{J}_ {r}^{j-1}\Delta t \\&= \sum_ {k=i}^{j-2}\left(-\Delta \overline{\mathbf{R}}^T_ {j-1, j}\cdot\Delta\overline{\mathbf{R}}_ {k+1 ,j-1}^T \mathbf{J}_ {r}^{k} \Delta t\right) - \mathbf{J}_ {r}^{j-1}\Delta t\\&= \Delta\overline{\mathbf{R}}^T_ {j-1, j}\cdot\sum_ {k=i}^{j-2}\left(-\Delta \overline{\mathbf{R}}_ {k+1 ,j-1}^{T} \mathbf{J}_ {r}^{k} \Delta t\right) - \mathbf{J}_ {r}^{j-1}\Delta t \\&=\Delta\overline{\mathbf{R}}^T_ {j-1, j} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i, j-1}}{\partial \overline{\mathbf{b}}^{g}}- \mathbf{J}_ {r}^{j-1}\Delta t\\&=\Delta\overline{\mathbf{R}}_ {j, j-1} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i, j-1}}{\partial \overline{\mathbf{b}}^{g}}- \mathbf{J}_ {r}^{j-1}\Delta t\end{aligned}

(2)速度项(Δ𝒗̂ij≈Δ𝒗¯ij+∂Δ𝒗¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒗¯ij∂𝒃¯aδ𝒃ia\Delta \hat{\mathbf{v}}_ {i j} \approx \Delta \overline{\mathbf{v}}_ {i j}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}):

Δ𝒗̂ij=Δ𝒗̃ij(𝒃̂ig,𝒃̂ia)=∑k=ij−1[Δ𝑹̃ik(𝒃̂ig)⋅(𝒇̃k−𝒃̂ia)Δt]≈∑k=ij−1[Δ𝑹¯ik⋅Exp(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)⋅(𝒇̃k−𝒃¯ia−δ𝒃ia)Δt]≈∑k=ij−1[Δ𝑹¯ik⋅(𝑰+(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)∧)⋅(𝒇̃k−𝒃¯ia−δ𝒃ia)Δt]=∑k=ij−1[Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)Δt−Δ𝑹¯ikδ𝒃iaΔt+Δ𝑹¯ik⋅(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)∧(𝒇̃k−𝒃¯ia)Δt−Δ𝑹¯ik⋅(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)∧δ𝒃iaΔt]≈∑k=ij−1Δ𝑹̃ik(𝒃¯ig)⋅(𝒇̃k−𝒃¯ia)Δt+∑k=ij−1{−[Δ𝑹¯ikΔt]δ𝒃ia−[Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt]δ𝒃ig}=Δ𝒗¯ij+∑k=ij−1{−[Δ𝑹¯ikΔt]δ𝒃ia−[Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt]δ𝒃ig} \begin{aligned}\Delta \hat{\mathbf{v}}_ {i j} &=\Delta \tilde{\mathbf{v}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right) \\&=\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\hat{\mathbf{b}}_ {i}^{a}\right) \Delta t\right] \\& \approx \sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}-\delta \mathbf{b}_ {i}^{a}\right) \Delta t\right] \\& \approx \sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}+\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}-\delta \mathbf{b}_ {i}^{a}\right) \Delta t\right] \\&=\sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right) \Delta t-\Delta \overline{\mathbf{R}}_ {i k} \delta \mathbf{b}_ {i}^{a} \Delta t+\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)^{\wedge}\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right) \Delta t-\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)^{\wedge} \delta \mathbf{b}_ {i}^{a} \Delta t\right] \\& \approx \sum_ {k=i}^{j-1}\Delta \tilde{\mathbf{R}}_ {i k} (\overline{\mathbf{b}}_ {i}^g)\cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right) \Delta t+\sum_ {k=i}^{j-1}\left\{-\left[\Delta \overline{\mathbf{R}}_ {i k} \Delta t\right] \delta \mathbf{b}_ {i}^{a}-\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t\right] \delta \mathbf{b}_ {i}^{g}\right\}\\& = \Delta \overline{\mathbf{v}}_ {i j}+\sum_ {k=i}^{j-1}\left\{-\left[\Delta \overline{\mathbf{R}}_ {i k} \Delta t\right] \delta \mathbf{b}_ {i}^{a}-\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t\right] \delta \mathbf{b}_ {i}^{g}\right\}\end{aligned}

上述中分别用到了一阶近似,Exp(δϕ→)≈(δϕ→)∧\text{Exp}(\delta\vec\phi) \approx(\delta\vec\phi)^\wedge以及𝒂∧⋅𝒃=−𝒃∧⋅𝒂\mathbf{a}^{\wedge} \cdot \mathbf{b}=-\mathbf{b}^{\wedge} \cdot \mathbf{a},且忽略了高阶小项(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)∧δ𝒃ia\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)^{\wedge} \delta \mathbf{b}_ {i}^{a}。所以有:

∂Δ𝒗¯ij∂𝒃¯g=−∑k=ij−1(Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt)∂Δ𝒗¯ij∂𝒃¯a=−∑k=ij−1(Δ𝑹¯ikΔt) \begin{array}{l}\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}=-\sum_ {k=i}^{j-1}\left(\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t\right) \\\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}}=-\sum_ {k=i}^{j-1}\left(\Delta \overline{\mathbf{R}}_ {i k} \Delta t\right)\end{array}

(3)位置项(Δ𝒑̂ij≈Δ𝒑¯ij+∂Δ𝒑¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒑¯ij∂𝒃¯aδ𝒃ia\Delta \hat{\mathbf{p}}_ {i j} \approx \Delta \overline{\mathbf{p}}_ {i j}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}):

Δ𝒑̂ij=Δ𝒑̃ij(𝒃̂ig,𝒃̂ia)=∑k=ij−1[Δ𝒗̃ik(𝒃̂ig,𝒃̂ia)Δt+12Δ𝑹̃ik(𝒃̂ig)⋅(𝒇̃k−𝒃̂ia)Δt2]=∑k=ij−1[Δ𝒗̃ik(𝒃̂ig,𝒃̂ia)Δt]⏟⟨1⟩+12∑k=ij−1[Δ𝑹̃ik(𝒃̂ig)⋅(𝒇̃k−𝒃̂ia)Δt2]⏟⟨2⟩ \begin{aligned}\Delta \hat{\mathbf{p}}_ {i j} &=\Delta \tilde{\mathbf{p}}_ {i j}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right) \\&=\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{v}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right) \Delta t+\frac{1}{2} \Delta \tilde{\mathbf{R}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\hat{\mathbf{b}}_ {i}^{a}\right) \Delta t^{2}\right] \\&=\underbrace{\sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{v}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}, \hat{\mathbf{b}}_ {i}^{a}\right) \Delta t\right]}_ {\langle 1\rangle}+\underbrace{\frac{1}{2} \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\hat{\mathbf{b}}_ {i}^{a}\right) \Delta t^{2}\right]}_ {\langle 2\rangle}\end{aligned}

下面我们分别推导⟨1⟩\langle 1\rangle和⟨2⟩\langle 2\rangle部分。

⟨1⟩=∑k=ij−1[(Δ𝒗¯ik+∂Δ𝒗¯ik∂𝒃¯gδ𝒃ig+∂Δ𝒗¯ik∂𝒃¯aδ𝒃ia)Δt]=∑k=ij−1[Δ𝒗¯ikΔt+(∂Δ𝒗¯ik∂𝒃¯gΔt)δ𝒃ig+(∂Δ𝒗¯ik∂𝒃¯aΔt)δ𝒃ia] \begin{aligned}\langle 1\rangle &=\sum_ {k=i}^{j-1}\left[\left(\Delta \overline{\mathbf{v}}_ {i k}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}\right) \Delta t\right] \\&=\sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{v}}_ {i k} \Delta t+\left(\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t\right) \delta \mathbf{b}_ {i}^{g}+\left(\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{a}} \Delta t\right) \delta \mathbf{b}_ {i}^{a}\right]\end{aligned}

⟨2⟩=Δt22∑k=ij−1[Δ𝑹̃ik(𝒃̂ig)⋅(𝒇̃k−𝒃̂ia)]=Δt22∑k=ij−1[Δ𝑹¯ik⋅Exp(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)⋅(𝒇̃k−𝒃¯ia−δ𝒃ia)]≈Δt22∑k=ij−1[Δ𝑹¯ik⋅(𝑰+(∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig)∧)⋅(𝒇̃k−𝒃¯ia−δ𝒃ia)]≈Δt22∑k=ij−1[Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)−Δ𝑹¯ikδ𝒃ia−Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gδ𝒃ig] \begin{aligned}\langle 2 \rangle & =\frac{\Delta t^{2}}{2} \sum_ {k=i}^{j-1}\left[\Delta \tilde{\mathbf{R}}_ {i k}\left(\hat{\mathbf{b}}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\hat{\mathbf{b}}_ {i}^{a}\right)\right] \\&=\frac{\Delta t^{2}}{2} \sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}-\delta \mathbf{b}_ {i}^{a}\right)\right] \\& \approx \frac{\Delta t^{2}}{2} \sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\mathbf{I}+\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)^{\wedge}\right) \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}-\delta \mathbf{b}_ {i}^{a}\right)\right] \\& \approx \frac{\Delta t^{2}}{2} \sum_ {k=i}^{j-1}\left[\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)-\Delta \overline{\mathbf{R}}_ {i k} \delta \mathbf{b}_ {i}^{a}-\Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right]\end{aligned}

⟨2⟩\langle2\rangle的推导与速度项是非常类似的,也是忽略了高阶小项。将⟨1⟩,⟨2⟩\langle1\rangle, \langle2\rangle合起来,可以得到:

⟨1⟩+⟨2⟩=∑k=ij−1{[Δ𝒗¯ikΔt+12Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)Δt2]+[∂Δ𝒗¯ik∂𝒃¯gΔt−12Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt2]δ𝒃ig+[∂Δ𝒗¯ik∂𝒃¯αΔt−12Δ𝑹¯ikΔt2]δ𝒃ia}=Δ𝒑¯ij+{∑k=ij−1[∂Δ𝒗¯ik∂𝒃¯gΔt−12Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt2]}δ𝒃ig+{∑k=ij−1[∂Δ𝒗¯ik∂𝒃¯aΔt−12Δ𝑹¯ikΔt2]}δ𝒃ia \begin{aligned}&\langle1\rangle+\langle2\rangle\\&=\sum_ {k=i}^{j-1}\left\{\left[\Delta \overline{\mathbf{v}}_ {i k} \Delta t+\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right) \Delta t^{2}\right]+\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t^{2}\right] \delta \mathbf{b}_ {i}^{g}+\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{\alpha}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \Delta t^{2}\right] \delta \mathbf{b}_ {i}^{a}\right\}\\&=\Delta \overline{\mathbf{p}}_ {i j}+\left\{\sum_ {k=i}^{j-1}\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t^{2}\right]\right\} \delta \mathbf{b}_ {i}^{g}+\left\{\sum_ {k=i}^{j-1}\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{a}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \Delta t^{2}\right]\right\} \delta \mathbf{b}_ {i}^{a}\end{aligned}

所以有:

∂Δ𝒑¯ij∂𝒃¯g=∑k=ij−1[∂Δ𝒗¯ik∂𝒃¯gΔt−12Δ𝑹¯ik⋅(𝒇̃k−𝒃¯ia)∧∂Δ𝑹¯ik∂𝒃¯gΔt2]∂Δ𝒑¯ij∂𝒃¯a=∑k=ij−1[∂Δ𝒗¯ik∂𝒃¯aΔt−12Δ𝑹¯ikΔt2] \begin{array}{l}\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}=\sum_ {k=i}^{j-1}\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \cdot\left(\tilde{\mathbf{f}}_ {k}-\overline{\mathbf{b}}_ {i}^{a}\right)^{\wedge} \frac{\partial \Delta \overline{\mathbf{R}}_ {i k}}{\partial \overline{\mathbf{b}}^{g}} \Delta t^{2}\right] \\\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}}=\sum_ {k=i}^{j-1}\left[\frac{\partial \Delta \overline{\mathbf{v}}_ {i k}}{\partial \overline{\mathbf{b}}^{a}} \Delta t-\frac{1}{2} \Delta \overline{\mathbf{R}}_ {i k} \Delta t^{2}\right]\end{array}

残差

之所以需要残差,是因为IMU预积分的测量值实际上也是优化中的一个约束量,pose graph中的边。而一般来说,预积分的残差是由计算值和测量值决定的,这里的计算值可能是通过视觉约束等等方法得到的。我们知道IMU预积分的理想值是如下:

Δ𝑹ij=𝑹iT𝑹jΔ𝒗ij=𝑹iT(𝒗j−𝒗i−𝒈⋅Δtij)Δ𝒑ij=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2) \begin{array}{l}\Delta \mathbf{R}_ {i j}=\mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \\\Delta \mathbf{v}_ {i j}=\mathbf{R}_ {i}^{T}\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right) \\\Delta \mathbf{p}_ {i j}=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)\end{array}

其三项残差定义如下:

𝒓Δ𝑹ij≜Log{[Δ𝑹̃ij(𝒃¯ig)⋅Exp(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)]T⋅𝑹iT𝑹j}≜Log[(Δ𝑹̂ij)TΔ𝑹ij]≜Δ𝒗ij−Δ𝒗̂ij𝒓Δ𝒗ij≜𝑹iT(𝒗j−𝒗i−𝒈⋅Δtij)−[Δ𝒗̃ij(𝒃¯ig,𝒃¯ia)+∂Δ𝒗¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒗¯ij∂𝒃¯aδ𝒃ia]𝒓Δ𝒑ij≜𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−[Δ𝒑̃ij(𝒃¯ig,𝒃¯ia)+∂Δ𝒑¯ij∂𝒃¯gδ𝒃ig+∂Δ𝒑¯ij∂𝒃¯aδ𝒃ia]≜Δ𝒑ij−Δ𝒑̂ij \begin{aligned}\mathbf{r}_ {\Delta \mathbf{R}_ {i j}} & \triangleq \text{Log} \left\{\left[\Delta \tilde{\mathbf{R}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}\right) \cdot \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right)\right]^{T} \cdot \mathbf{R}_ {i}^{T} \mathbf{R}_ {j}\right\} \\& \triangleq \text{Log} \left[\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \Delta \mathbf{R}_ {i j}\right] \\& \triangleq \Delta \mathbf{v}_ {i j}-\Delta \hat{\mathbf{v}}_ {i j} \\\mathbf{r}_ {\Delta \mathbf{v}_ {i j}} & \triangleq \mathbf{R}_ {i}^{T}\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\left[\Delta \tilde{\mathbf{v}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right)+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}\right] \\\mathbf{r}_ {\Delta \mathbf{p}_ {ij}} & \triangleq \mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\left[\Delta \tilde{\mathbf{p}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}, \overline{\mathbf{b}}_ {i}^{a}\right)+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}+\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \overline{\mathbf{b}}^{a}} \delta \mathbf{b}_ {i}^{a}\right] \\& \triangleq \Delta \mathbf{p}_ {i j}-\Delta \hat{\mathbf{p}}_ {i j}\end{aligned}

从定义上来看,残差也就是用来度量计算值与测量值的差别,这也是很合理的。从前面的推导可以知道,这个测量值是由噪声加上理想值得到的(实际上我们是从理想值中分离出了噪声)。

  • 一般来说,在SLAM系统中,我们需要优化的是𝑹i,𝒑i,𝒗i,𝑹j,𝒑j,𝒗j\mathbf{R}_ {i}, \mathbf{p}_ {i}, \mathbf{v}_ {i}, \mathbf{R}_ {j}, \mathbf{p}_ {j}, \mathbf{v}_ {j},不过在带有IMU的系统中,bias的影响往往不可忽视,因此一般也会加上对bias的优化。不过从残差的定义上来看,实际上优化的是bias的变化量δ𝒃ig,δ𝒃ia\delta \mathbf{b}_ {i}^{g}, \delta \mathbf{b}_ {i}^{a}。所以在IMU预积分中,完整的一个导航状态为:𝑹i,𝒑i,𝒗i,𝑹j,𝒑j,𝒗j,δ𝒃ig,δ𝒃ia\mathbf{R}_ {i}, \mathbf{p}_ {i}, \mathbf{v}_ {i}, \mathbf{R}_ {j}, \mathbf{p}_ {j}, \mathbf{v}_ {j}, \delta \mathbf{b}_ {i}^{g}, \delta \mathbf{b}_ {i}^{a}。

  • 对各个状态的更新操作如下:

    𝑹i←𝑹i⋅Exp⁡(δϕ→i);𝒑i←𝒑i+𝑹i⋅δ𝒑i;𝒗i←𝒗i+δ𝒗i;𝑹j←𝑹j⋅Exp⁡(δϕ→j);𝒑j←𝒑j+𝑹j⋅δ𝒑j;𝒗j←𝒗j+δ𝒗j;δ𝒃ig←δ𝒃ig+δ𝒃ig̃;δ𝒃ia←δ𝒃ia+δ𝒃iã \begin{array}{l}\mathbf{R}_ {i} \leftarrow \mathbf{R}_ {i} \cdot \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right) ; \mathbf{p}_ {i} \leftarrow \mathbf{p}_ {i}+\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i}; \mathbf{v}_ {i} \leftarrow \mathbf{v}_ {i}+\delta \mathbf{v}_ {i}; \\\mathbf{R}_ {j} \leftarrow \mathbf{R}_ {j} \cdot \operatorname{Exp}\left(\delta \vec{\phi}_ {j}\right) ; \mathbf{p}_ {j} \leftarrow \mathbf{p}_ {j}+\mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j} ; \mathbf{v}_ {j} \leftarrow \mathbf{v}_ {j}+\delta \mathbf{v}_ {j}; \\\delta \mathbf{b}_ {i}^{g} \leftarrow \delta \mathbf{b}_ {i}^{g}+\widetilde{\delta \mathbf{b}_ {i}^{g}} ; \delta \mathbf{b}_ {i}^{a} \leftarrow \delta \mathbf{b}_ {i}^{a}+\widetilde{\delta \mathbf{b}_ {i}^{a}}\end{array}

    需要注意的是,由于我们优化的是bias的增量δ𝒃ig,δ𝒃ia{\delta \mathbf{b}_ {i}^{g}},{\delta \mathbf{b}_ {i}^{a}},因此这里的δ𝒃ig̃,δ𝒃iã\widetilde{\delta \mathbf{b}_ {i}^{g}},\widetilde{\delta \mathbf{b}_ {i}^{a}}实际上是增量的增量,也就是通过增量的Jacobian来计算的。但是实际上增量的Jacobian与原来的Jacobian计算方法上是一样的,只不过它的初始状态是从0开始(实际上之前也运用过这样的方式进行优化过,每次优化的变量实际上是更新量)。

  • 为何位置没有采用速度一样的方式去更新(𝒑i←𝒑i+𝑹i⋅δ𝒑i;𝒗i←𝒗i+δ𝒗i\mathbf{p}_ {i} \leftarrow \mathbf{p}_ {i}+\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i}; \mathbf{v}_ {i} \leftarrow \mathbf{v}_ {i}+\delta \mathbf{v}_ {i})?这个问题实际上如果是在SE(3)\text{SE(3)}上,也就是直接用transformation matrix,得到的结果是:

    𝑻i′=𝑻i⋅δ𝑻i=[𝑹i𝒑i01][δ𝑹iδ𝒑i01]=[𝑹i⋅δ𝑹i𝒑i+𝑹i⋅δ𝒑i01]=[𝑹i′𝒑i′01] \begin{aligned}\mathbf{T}_ {i}^{\prime} &=\mathbf{T}_ {i} \cdot \delta \mathbf{T}_ {i}=\left[\begin{array}{cc}\mathbf{R}_ {i} & \mathbf{p}_ {i} \\0 & 1\end{array}\right]\left[\begin{array}{cc}\delta \mathbf{R}_ {i} & \delta \mathbf{p}_ {i} \\0 & 1\end{array}\right] \\&=\left[\begin{array}{cc}\mathbf{R}_ {i} \cdot \delta \mathbf{R}_ {i} & \mathbf{p}_ {i}+\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i} \\0 & 1\end{array}\right]=\left[\begin{array}{cc}\mathbf{R}_ {i}^{\prime} & \mathbf{p}_ {i}^{\prime} \\0 & 1\end{array}\right]\end{aligned}

    也就是上述更新的操作,从物理意义上理解,就是先进行了旋转再进行了平移的变换。不过,毕竟我们一麻溜推导下来,用的都是SO(3)\text{SO(3)}上的操作,平移与旋转是分开操作的(平移的残差中已经包含了旋转的计算),我个人认为还是𝒑i←𝒑i+δ𝒑i\mathbf{p}_ {i} \leftarrow \mathbf{p}_ {i}+ \delta \mathbf{p}_ {i}理论上更合理一些。在实际中,可能二者使用起来没什么太大的区别。

  • 由于噪声不是的零均值正态分布,因此不同的协方差对应着不同约束项的权重(实际上权重是协方差的逆),这样给出来的结果是一个无偏估计。最终我们优化目标就是能使得加权残差的平方和最小。另外,在优化时候,实际上优化变量是由Jacobian矩阵来决定的(高斯牛顿的海森矩阵也是由Jacobian矩阵来近似的),因此我们的下一个任务就是求出Jacobian矩阵。

Jacobian

接下来是最后一步,计算出Jacobian矩阵。我们将Jacobian矩阵分成三类:(1)”0“矩阵,也就是残差和某些变量是完全无关的;(2)线性的,也就是残差和某些变量是线性相关的,这样的Jacobian也可以由系数直接得到;(3)其他的,也就是残差和某些变量的关系较为复杂,需要进行相应的变形才能求得Jacobian矩阵。

𝒓Δ𝑹ij\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}的Jacobian

(1)“0”矩阵。由于𝒓Δ𝑹ij\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}中不含𝒑i,𝒑j,𝑽i,𝑽j,δ𝒃ia\mathbf{p}_ {i} , \mathbf{p}_ {j}, \mathbf{V}_ {i}, \mathbf{V}_ {j}, \delta \mathbf{b}_ {i}^{a},因此有:

$$ \frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {ij}}}{\partial \mathbf{p}_ {i}}=\mathbf{0},\frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {ij}}}{\partial \mathbf{p}_ {j}}=\mathbf{0},\\\frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}}{\partial \mathbf{v}_ {i}}=\mathbf{0},\frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}}{\partial \mathbf{v}_ {j}}=\mathbf{0},\\\frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}}{\partial \delta \mathbf{b}_ {i}^{a}}=\mathbf{0} $$

(2)线性类:无。

(3)其他类:

  • 下面求关于ϕ→i\vec{\phi}_ {i}的Jacobian:

𝒓Δ𝑹ij(𝑹iExp(δϕ→i))=Log[(Δ𝑹̂ij)T(𝑹iExp(δϕ→i))T𝑹j]=Log[(Δ𝑹̂ij)TExp(−δϕ→i)𝑹iT𝑹j]=Log[(Δ𝑹̂ij)T𝑹iT𝑹jExp(−𝑹jT𝑹iδϕ→i)]=Log{Exp[Log((Δ𝑹̂ij)T𝑹iT𝑹j)]⋅Exp(−𝑹jT𝑹iδϕ→i)}=Log[Exp(𝒓Δ𝑹ij(𝑹i))⋅Exp(−𝑹jT𝑹iδϕ→i)]≈𝒓Δ𝑹ij(𝑹i)−𝑱r−1(𝒓Δ𝑹ij(𝑹i))𝑹jT𝑹iδϕ→i=𝒓Δ𝑹ij−𝑱r−1(𝒓Δ𝑹ij)𝑹jT𝑹iδϕ→i \begin{aligned}\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right) &=\text{Log} \left[\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T}\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right)^{T} \mathbf{R}_ {j}\right] \\& =\text{Log} \left[\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \operatorname{Exp}\left(-\delta \vec{\phi}_ {i}\right) \mathbf{R}_ {i}^{T} \mathbf{R}_ {j}\right] \\&=\text{Log}\left[\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \operatorname{Exp}\left(-\mathbf{R}_ {j}^{T} \mathbf{R}_ {i} \delta \vec{\phi}_ {i}\right)\right] \\&=\text{Log} \left\{\operatorname{Exp}\left[\text{Log}\left(\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \mathbf{R}_ {i}^{T} \mathbf{R}_ {j}\right)\right] \cdot \operatorname{Exp}\left(-\mathbf{R}_ {j}^{T} \mathbf{R}_ {i} \delta \vec{\phi}_ {i}\right)\right\} \\&=\text{Log}\left[\operatorname{Exp}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\mathbf{R}_ {i}\right)\right) \cdot \operatorname{Exp}\left(-\mathbf{R}_ {j}^{T} \mathbf{R}_ {i} \delta \vec{\phi}_ {i}\right)\right] \\& \approx \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\mathbf{R}_ {i}\right)-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\mathbf{R}_ {i}\right)\right) \mathbf{R}_ {j}^{T} \mathbf{R}_ {i} \delta \vec{\phi}_ {i} \\& = \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \mathbf{R}_ {j}^{T} \mathbf{R}_ {i} \delta \vec{\phi}_ {i}\end{aligned}

上面的推导中,用到的性质有:(Exp⁡(ϕ→))T=Exp⁡(−ϕ→)(\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi}),伴随性质,Log(Exp⁡(ϕ→)⋅Exp⁡(δϕ→))=ϕ→+𝑱r−1(ϕ→)⋅δϕ→\text{Log} (\operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}(\delta \vec{\phi}))=\vec{\phi}+\mathbf{J}_ {r}^{-1}(\vec{\phi}) \cdot \delta \vec{\phi}。综上所述,有:

∂𝒓Δ𝑹ij∂ϕ→i=−𝑱r−1(𝒓Δ𝑹ij)𝑹jT𝑹i \frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}}{\partial \vec{\phi}_ {i}}=-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \mathbf{R}_ {j}^{T} \mathbf{R}_ {i}

  • 使用类似的方法,可以得到ϕ→j\vec{\phi}_ {j}的Jacobian:

𝒓ΔRij(𝑹jExp(δϕ→j))=Log[(Δ𝑹̂ij)T𝑹iT𝑹jExp(δϕ→j)]=Log{Exp[Log((Δ𝑹̂ij)T𝑹iT𝑹j)]⋅Exp(δϕ→j)}=Log{Exp(𝒓ΔRij(𝑹j))⋅Exp(δϕ→j)}≈𝒓ΔRij(𝑹j)+𝑱r−1(𝒓ΔRij(𝑹j))δϕ→j=𝒓ΔRij+𝑱r−1(𝒓ΔRij)δϕ→j \begin{aligned}\mathbf{r}_ {\Delta R_ {i j}}\left(\mathbf{R}_ {j} \operatorname{Exp}\left(\delta \vec{\phi}_ {j}\right)\right) &=\text{Log} \left[\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \operatorname{Exp}\left(\delta \vec{\phi}_ {j}\right)\right] \\&=\text{Log} \left\{\operatorname{Exp}\left[\text{Log} \left(\left(\Delta \hat{\mathbf{R}}_ {i j}\right)^{T} \mathbf{R}_ {i}^{T} \mathbf{R}_ {j}\right)\right] \cdot \operatorname{Exp}\left(\delta \vec{\phi}_ {j}\right)\right\} \\&=\text{Log} \left\{\operatorname{Exp}\left(\mathbf{r}_ {\Delta R_ {i j}}\left(\mathbf{R}_ {j}\right)\right) \cdot \operatorname{Exp}\left(\delta \vec{\phi}_ {j}\right)\right\} \\& \approx \mathbf{r}_ {\Delta R_ {i j}}\left(\mathbf{R}_ {j}\right)+\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta R_ {i j}}\left(\mathbf{R}_ {j}\right)\right) \delta \vec{\phi}_ {j} \\& = \mathbf{r}_ {\Delta R_ {i j}}+\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta R_ {i j}}\right) \delta \vec{\phi}_ {j}\end{aligned}

因此有:

∂𝒓Δ𝑹ij∂ϕ→j=𝑱r−1(𝒓Δ𝑹ij) \frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}}{\partial \vec{\phi}_ {j}}=\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right)

  • 关于δ𝒃ig\delta \mathbf{b}_ {i}^g的Jacobian(𝑹i,𝑹j\mathbf R_ {i}, \mathbf R_ {j}都是与残差项Δ𝑹ij\Delta \mathbf{R}_ {ij}有关,而δ𝒃ig\delta \mathbf{b}_ {i}^g则是与残差项Δ𝑹̃ij\Delta \tilde{\mathbf{R}}_ {ij}有关):

𝒓Δ𝑹ij(δ𝒃ig+δ𝒃ig̃)≈Log{[Δ𝑹̃ij(𝒃¯ig)Exp(∂Δ𝑹¯ij∂𝒃¯g(δ𝒃ig+δ𝒃ig̃))]T𝑹iT𝑹j}≈Log{[Δ𝑹̃ij(𝒃¯ig)Exp(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)Exp(𝑱r(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃)]TΔ𝑹ij} \begin{aligned}\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}+\widetilde{\delta \mathbf{b}_ {i}^{g}}\right) &\approx\text{Log}\left\{\left[\Delta \tilde{\mathbf{R}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}\right) \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}\left(\delta \mathbf{b}_ {i}^{g}+\widetilde{\delta \mathbf{b}_ {i}^{g}}\right)\right)\right]^{T} \mathbf{R}_ {i}^{T} \mathbf{R}_ {j}\right\} \\& \approx \text{Log} \left\{\left[\Delta \tilde{\mathbf{R}}_ {i j}\left(\overline{\mathbf{b}}_ {i}^{g}\right) \operatorname{Exp}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \operatorname{Exp}\left(\mathbf{J}_ {r}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\right)\right]^{T} \Delta \mathbf{R}_ {i j}\right\} \end{aligned}

令𝜺≐𝑱r(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)\boldsymbol{\varepsilon} \doteq \mathbf{J}_ {r}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right),则:

𝒓Δ𝑹ij(δ𝒃ig+δ𝒃ig̃)≈Log{[Δ𝑹̂ij⋅Exp(𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃iỹ)]TΔ𝑹ij}=Log[Exp(−𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃)Δ𝑹̂ijTΔ𝑹ij]=Log[Exp(−𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃)Exp(Log(Δ𝑹̂ijTΔ𝑹ij))]=Log[Exp(−𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃)Exp(𝒓Δ𝑹ij(δ𝒃ig))]=Log{Exp(𝒓Δ𝑹ij(δ𝒃ig))Exp[−Exp(−𝒓Δ𝑹ij(δ𝒃ig))⋅𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃]}≈𝒓Δ𝑹ij(δ𝒃ig)−𝑱r−1(𝒓Δ𝑹ij(δ𝒃ig))⋅Exp⁡(−𝒓Δ𝑹ij(δ𝒃ig))⋅𝜺⋅∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig̃=𝒓Δ𝑹ij−𝑱r−1(𝒓Δ𝑹ij)⋅Exp⁡(−𝒓Δ𝑹ij)⋅𝑱r(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)⋅∂Δ𝑹¯ij∂𝒃¯g⋅δ𝒃ig̃ \begin{aligned}\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}+\widetilde{\delta \mathbf{b}_ {i}^{g}}\right) &\approx \text{Log} \left\{\left[\Delta \hat{\mathbf{R}}_ {i j} \cdot \operatorname{Exp}\left(\boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{y}}\right)\right]^{T} \Delta \mathbf{R}_ {i j}\right\}\\&= \text{Log} \left[\operatorname{Exp}\left(-\boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\right) \Delta \hat{\mathbf{R}}_ {i j}^{T} \Delta \mathbf{R}_ {i j}\right]\\&=\text{Log} \left[\operatorname{Exp}\left(-\boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\right) \operatorname{Exp}\left(\text{Log} \left(\Delta \hat{\mathbf{R}}_ {i j}^{T} \Delta \mathbf{R}_ {i j}\right)\right)\right]\\&=\text{Log} \left[\operatorname{Exp}\left(-\boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\right) \operatorname{Exp}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)\right)\right]\\&=\text{Log} \left\{\operatorname{Exp}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)\right) \operatorname{Exp}\left[-\operatorname{Exp}\left(-\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)\right) \cdot \boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\right]\right\}\\&\approx \mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)\right) \cdot \operatorname{Exp}\left(-\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\left(\delta \mathbf{b}_ {i}^{g}\right)\right) \cdot \boldsymbol{\varepsilon} \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \widetilde{\delta \mathbf{b}_ {i}^{g}}\\&=\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \cdot \operatorname{Exp}\left(-\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \cdot \mathbf{J}_ {r}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \cdot \widetilde{\delta \mathbf{b}_ {i}^{g}}\end{aligned}

上面的推导中,用到的性质有:Exp⁡(ϕ→+δϕ→)≈Exp⁡(ϕ→)⋅Exp⁡(𝑱r(ϕ→)⋅δϕ→)\operatorname{Exp}(\vec{\phi}+\delta \vec{\phi}) \approx \operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}\left(\mathbf{J}_ {r}(\vec{\phi}) \cdot \delta \vec{\phi}\right),(Exp⁡(ϕ→))T=Exp⁡(−ϕ→)(\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi}),伴随性质,Log(Exp⁡(ϕ→)⋅Exp⁡(δϕ→))=ϕ→+𝑱r−1(ϕ→)⋅δϕ→\text{Log} (\operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}(\delta \vec{\phi}))=\vec{\phi}+\mathbf{J}_ {r}^{-1}(\vec{\phi}) \cdot \delta \vec{\phi}(可以看出来推导的方法是很类似的)。综上所述,可以得到:

∂𝒓Δ𝑹ij∂δ𝒃ig=−𝑱r−1(𝒓Δ𝑹ij)⋅Exp⁡(−𝒓Δ𝑹ij)⋅𝑱r(∂Δ𝑹¯ij∂𝒃¯gδ𝒃ig)⋅∂Δ𝑹¯ij∂𝒃¯g \frac{\partial \mathbf{r}_ {\Delta \mathbf{R}_ {ij}}}{\partial \delta \mathbf{b}_ {i}^{\mathrm{g}}}=-\mathbf{J}_ {r}^{-1}\left(\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \cdot \operatorname{Exp}\left(-\mathbf{r}_ {\Delta \mathbf{R}_ {i j}}\right) \cdot \mathbf{J}_ {r}\left(\frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}} \delta \mathbf{b}_ {i}^{g}\right) \cdot \frac{\partial \Delta \overline{\mathbf{R}}_ {i j}}{\partial \overline{\mathbf{b}}^{g}}

这里需要注意的这儿我们是对δ𝒃ig\delta \mathbf{b}_ {i}^{g}求导,而𝒓Δ𝑹ij\mathbf{r}_ {\Delta \mathbf{R}_ {ij}}也是新的bias(𝒃ig+δ𝒃ig\mathbf{b}_i^g+\delta \mathbf {b}_i^g)的测量预积分值。至于为什么要这么做,也许之后会找到答案。

𝒓Δ𝒗ij\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}的Jacobian

(1)“0”类:由于𝒓Δ𝒗ij\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}中不包含𝑹j,𝒑i,𝒑j\mathbf{R}_ {j}, \mathbf{p}_ {i}, \mathbf{p}_ {j},因此:

∂𝒓Δ𝒗ij∂ϕ→j=𝟎,∂𝒓Δ𝒗ij∂𝒑i=𝟎,∂𝒓Δvij∂𝒑j=𝟎 \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {ij}}}{\partial \vec{\phi}_ {j}}=\mathbf{0}, \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {ij}}}{\partial \mathbf{p}_ {i}}=\mathbf{0}, \frac{\partial \mathbf{r}_ {\Delta v_ {i j}}}{\partial \mathbf{p}_ {j}}=\mathbf{0}

(2)线性类:由于𝒓Δ𝒗ij\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}与δ𝒃ig,δ𝒃ia\delta \mathbf{b}_ {i}^{g} , \delta \mathbf{b}_ {i}^{a}是线性关系,因此有:

∂𝒓Δ𝒗ij∂δ𝒃ig=−∂Δ𝒗¯ij∂𝒃g,∂𝒓Δ𝒗jj∂δ𝒃ia=−∂Δ𝒗¯ij∂𝒃a \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {i j}}}{\partial \delta \mathbf{b}_ {i}^{\mathrm{g}}}=-\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \mathbf{b}^{g}}, \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {j j}}}{\partial \delta \mathbf{b}_ {i}^{\mathrm{a}}}=-\frac{\partial \Delta \overline{\mathbf{v}}_ {i j}}{\partial \mathbf{b}^{a}}

(3)其他类:

  • 关于𝒗i\mathbf{v}_i的Jacobian

𝒓Δ𝒗jj(𝒗i+δ𝒗i)=𝑹iT⋅(𝒗j−𝒗i−δ𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij=𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij−𝑹iTδ𝒗i=𝒓Δ𝒗ij(𝒗i)−𝑹iTδ𝒗i=𝒓Δ𝒗ij−𝑹iTδ𝒗i \begin{aligned}\mathbf{r}_ {\Delta \mathbf{v}_ {j j}}\left(\mathbf{v}_ {i}+\delta \mathbf{v}_ {i}\right) &=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\delta \mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j} \\&=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j}-\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {i} \\&=\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}\left(\mathbf{v}_ {i}\right)-\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {i} \\ &=\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}-\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {i}\end{aligned}

因此有:

∂𝒓Δ𝒗ij∂𝒗i=−𝑹iT \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {i j}}}{\partial \mathbf{v}_ {i}}=-\mathbf{R}_ {i}^{T}

  • 关于𝒗j\mathbf{v}_j的Jacobian

𝒓Δ𝒗y(𝒗j+δ𝒗j)=𝑹iT⋅(𝒗j+δ𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij=𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij+𝑹iTδ𝒗j=𝒓Δ𝒗ij(𝒗j)+𝑹iTδ𝒗j=𝒓Δ𝒗jj+𝑹iTδ𝒗j \begin{aligned}\mathbf{r}_ {\Delta \mathbf{v}_ {y}}\left(\mathbf{v}_ {j}+\delta \mathbf{v}_ {j}\right) &=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}+\delta \mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j} \\&=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j}+\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {j} \\&=\mathbf{r}_ {\Delta \mathbf{v}_ {i j}}\left(\mathbf{v}_ {j}\right)+\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {j} \\&= \mathbf{r}_ {\Delta \mathbf{v}_ {j j}}+\mathbf{R}_ {i}^{T} \delta \mathbf{v}_ {j}\end{aligned}

因此有:

∂𝒓Δ𝒗ij∂𝒗j=𝑹iT \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {i j}}}{\partial \mathbf{v}_ {j}}=\mathbf{R}_ {i}^{T}

  • 关于ϕ→i\vec\phi_i的Jacobian

𝒓Δvij(𝑹iExp(δϕ→i))=(𝑹iExp(δϕ→i))T(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij=Exp⁡(−δϕ→i)⋅𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij≈(𝑰−(δϕ→i)∧)⋅𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij=𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)−Δ𝒗̂ij−(δϕ→i)∧⋅𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)=𝒓Δvij(𝑹i)+[𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)]∧⋅δϕ→i=𝒓Δvij+[𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)]∧⋅δϕ→i \begin{aligned}\mathbf{r}_ {\Delta v_ {ij}}\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right) &=\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right)^{T}\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j} \\& = \operatorname{Exp}\left(-\delta \vec{\phi}_ {i}\right) \cdot \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j} \\& \approx\left(\mathbf{I}-\left(\delta \vec{\phi}_ {i}\right)^{\wedge}\right) \cdot \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j} \\&=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)-\Delta \hat{\mathbf{v}}_ {i j}-\left(\delta \vec{\phi}_ {i}\right)^{\wedge} \cdot \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right) \\& =\mathbf{r}_ {\Delta v_ {i j}}\left(\mathbf{R}_ {i}\right)+\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)\right]^{\wedge} \cdot \delta \vec{\phi}_ {i} \\& = \mathbf{r}_ {\Delta v_ {i j}}+\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)\right]^{\wedge} \cdot \delta \vec{\phi}_ {i}\end{aligned}

上述推导用到的规则有:(Exp⁡(ϕ→))T=Exp⁡(−ϕ→)(\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi}),Exp⁡(δϕ→i)≈𝑰+(δϕ→i)∧\operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right) \approx \mathbf{I}+(\delta\vec\phi_i)^{\wedge},𝒂∧⋅𝒃=−𝒃∧⋅𝒂\mathbf{a}^{\wedge} \cdot \mathbf{b}=-\mathbf{b}^{\wedge} \cdot \mathbf{a}。因此有:

∂𝒓Δ𝒗ij∂ϕ→i=[𝑹iT⋅(𝒗j−𝒗i−𝒈⋅Δtij)]∧ \frac{\partial \mathbf{r}_ {\Delta \mathbf{v}_ {i j}}}{\partial \vec{\phi}_ {i}}=\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{v}_ {j}-\mathbf{v}_ {i}-\mathbf{g} \cdot \Delta t_ {i j}\right)\right]^{\wedge}

𝒓Δ𝒑ij\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}的Jacobian

(1)“0”类:由于𝒓Δ𝒑ij\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}中不包含𝑹j,𝒗j\mathbf R_ {j}, \mathbf{v}_j

∂𝒓Δ𝒑jj∂ϕ→j=𝟎,∂𝒓Δ𝒑ij∂𝒗j=𝟎 \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {j j}}}{\partial \vec{\phi}_ {j}}=\mathbf{0}, \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \mathbf{v}_ {j}}=\mathbf{0}

(2)线性类:由于𝒓Δ𝒑ij\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}与δ𝒃ig,δ𝒃ia\delta \mathbf{b}_ {i}^{g} , \delta \mathbf{b}_ {i}^{a}是线性关系,因此有:

∂𝒓Δ𝒑ij∂δ𝒃ig=−∂Δ𝒑¯ij∂𝒃g,∂𝒓Δ𝒑ij∂δ𝒃ia=−∂Δ𝒑¯ij∂𝒃a \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \delta \mathbf{b}_ {i}^{g}}=-\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \mathbf{b}^{g}}, \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \delta \mathbf{b}_ {i}^{a}}=-\frac{\partial \Delta \overline{\mathbf{p}}_ {i j}}{\partial \mathbf{b}^{a}}

(3)其他类:

  • 关于𝒑i\mathbf{p}_i的Jacobian:

𝒓Δ𝒑ij(𝒑i+𝑹i⋅δ𝒑i)=𝑹iT(𝒑j−𝒑i−𝑹i⋅δ𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij−𝑰⋅δ𝒑i=𝒓Δ𝒑ij(𝒑i)−𝑰⋅δ𝒑i=𝒓Δ𝒑ij−𝑰⋅δ𝒑i \begin{aligned}\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}\left(\mathbf{p}_ {i}+\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i}\right) &=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\&=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j}-\mathbf{I} \cdot \delta \mathbf{p}_ {i} \\&=\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}\left(\mathbf{p}_ {i}\right)-\mathbf{I} \cdot \delta \mathbf{p}_ {i} \\&=\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}-\mathbf{I} \cdot \delta \mathbf{p}_ {i}\end{aligned}

因此可以得到:

∂𝒓Δ𝒑ij∂𝒑i=−𝑰 \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \mathbf{p}_ {i}}=-\mathbf{I}

  • 关于𝒑j\mathbf{p}_j的Jacobian:

𝒓Δ𝒑ij(𝒑j+𝑹j⋅δ𝒑j)=𝑹iT(𝒑j+𝑹j⋅δ𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij+𝑹iT𝑹j⋅δ𝒑j=𝒓Δ𝒑ij(𝒑j)+𝑹iT𝑹j⋅δ𝒑j=𝒓Δ𝒑ij+𝑹iT𝑹j⋅δ𝒑j \begin{aligned}\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}\left(\mathbf{p}_ {j}+\mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j}\right) &=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}+\mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\&=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j}+\mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j} \\&=\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}\left(\mathbf{p}_ {j}\right)+\mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j} \\&=\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}+\mathbf{R}_ {i}^{T} \mathbf{R}_ {j} \cdot \delta \mathbf{p}_ {j}\end{aligned}

因此有:

∂𝒓Δ𝒑ij∂𝒑j=𝑹iT𝑹j \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \mathbf{p}_ {j}}=\mathbf{R}_ {i}^{T} \mathbf{R}_ {j}

  • 关于𝒗j\mathbf{v}_j的Jacobian:

𝒓Δ𝒑ij(𝒗i+δ𝒗i)=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−δ𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij=𝑹iT(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij−𝑹iTΔtij⋅δ𝒗i=𝒓Δ𝒑ij(𝒗i)−𝑹iTΔtij⋅δ𝒗i=𝒓Δ𝒑ij−𝑹iTΔtij⋅δ𝒗i \begin{aligned}\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}\left(\mathbf{v}_ {i}+\delta \mathbf{v}_ {i}\right) &=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\delta \mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\&=\mathbf{R}_ {i}^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j}-\mathbf{R}_ {i}^{T} \Delta t_ {i j} \cdot \delta \mathbf{v}_ {i} \\&=\mathbf{r}_ {\Delta \mathbf{p}_ {ij}}\left(\mathbf{v}_ {i}\right)-\mathbf{R}_ {i}^{T} \Delta t_ {i j} \cdot \delta \mathbf{v}_ {i} \\ &=\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}-\mathbf{R}_ {i}^{T} \Delta t_ {i j} \cdot \delta \mathbf{v}_ {i}\end{aligned}

因此有:

∂𝒓Δ𝒑ij∂𝒗i=−𝑹iTΔtij \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \mathbf{v}_ {i}}=-\mathbf{R}_ {i}^{T} \Delta t_ {i j}

  • 关于ϕ→i\vec\phi_i的Jacobian:

𝒓Δ𝒑ij(𝑹iExp(δϕ→i))=(𝑹iExp(δϕ→i))T(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij=Exp⁡(−δϕ→i)⋅𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij≈(𝑰−(δϕ→i)∧)⋅𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij=𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)−Δ𝒑̂ij−(δϕ→i)∧𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)=𝒓Δ𝒑ij(𝑹i)+[𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)]∧⋅δϕ→i=𝒓Δ𝒑ij+[𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)]∧⋅δϕ→i \begin{aligned}\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right) &=\left(\mathbf{R}_ {i} \operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right)\right)^{T}\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\& = \operatorname{Exp}\left(-\delta \vec{\phi}_ {i}\right) \cdot \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\& \approx\left(\mathbf{I}-\left(\delta \vec{\phi}_ {i}\right)^{\wedge}\right) \cdot \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j} \\&=\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)-\Delta \hat{\mathbf{p}}_ {i j}-\left(\delta \vec{\phi}_ {i}\right)^{\wedge} \mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right) \\& = \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}\left(\mathbf{R}_ {i}\right)+\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)\right]^{\wedge} \cdot \delta \vec{\phi}_ {i} \\& =\mathbf{r}_ {\Delta \mathbf{p}_ {i j}}+\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)\right]^{\wedge} \cdot \delta \vec{\phi}_ {i}\end{aligned}

上述推导用到的规则有:(Exp⁡(ϕ→))T=Exp⁡(−ϕ→)(\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi}),Exp⁡(δϕ→i)≈𝑰+(δϕ→i)∧\operatorname{Exp}\left(\delta \vec{\phi}_ {i}\right) \approx \mathbf{I}+(\delta\vec\phi_i)^{\wedge},𝒂∧⋅𝒃=−𝒃∧⋅𝒂\mathbf{a}^{\wedge} \cdot \mathbf{b}=-\mathbf{b}^{\wedge} \cdot \mathbf{a}。因此有:

∂𝒓Δ𝒑ij∂ϕ→i=[𝑹iT⋅(𝒑j−𝒑i−𝒗i⋅Δtij−12𝒈⋅Δtij2)]∧ \frac{\partial \mathbf{r}_ {\Delta \mathbf{p}_ {i j}}}{\partial \ \vec{\phi}_ {i}}=\left[\mathbf{R}_ {i}^{T} \cdot\left(\mathbf{p}_ {j}-\mathbf{p}_ {i}-\mathbf{v}_ {i} \cdot \Delta t_ {i j}-\frac{1}{2} \mathbf{g} \cdot \Delta t_ {i j}^{2}\right)\right]^{\wedge}

注意,由于位置的更新方式是𝒑i←𝒑i+𝑹i⋅δ𝒑i\mathbf{p}_ {i} \leftarrow \mathbf{p}_ {i}+\mathbf{R}_ {i} \cdot \delta \mathbf{p}_ {i},因此我们在推导的时候也是加上了这个来求Jacobian。如果换了𝒑i←𝒑i+δ𝒑i\mathbf{p}_ {i} \leftarrow \mathbf{p}_ {i}+ \delta \mathbf{p}_ {i}的更新方式,实际上结果也一样根据上面的方法很容易求出来。

至此,全文将 Foster 的 IMU 预积分理论中的公式推导结束,感谢邱笑晨提供的PDF。

Note: 在Vins mono中,IMU的重力也会被优化。