SLAM——IMU预积分

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

首先做一个简单规定,因为IMU预积分离不开IMU坐标系与世界坐标系的转换,因此我们将世界坐标下的值标记为\(w\),将IMU坐标系下的值标记为\(b\)。而\(\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) \]

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

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

\[ \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去噪后的角速度读数。使用欧拉积分(?),可以得到下一刻的状态(离散形式):

\[ \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} \]

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

\[ \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} \]

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

\[ \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} \]

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

\[ \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} \]

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

\[ \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,j\),且我们知道\(i\)时刻的机器人状态,以及\(i,j\)时刻之间的IMU状态,那么我们可以直接得到\(j\)时刻的机器人状态,通过对\(i,j\)时刻间的IMU状态进行上述的积分:

\[ \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} \]

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

\[ \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积分项中把\(\mathbf R_{i}\)\(\mathbf v_i\)\(\mathbf p_i\)提取出。而对于位置的预积分,更复杂一点,证明如下:

\(\xi_{k}=\tilde{\mathbf{a}}_{k}-\mathbf{b}_{k}^{a}-\mathbf{\eta}_{k}^{a d}\),有

\[ \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,j\)时刻之间IMU状态贡献的部分,即使机器人状态有变化,固定时刻之间IMU状态测量值不变,这个贡献也不应该改变,因此IMU预积分是可以当作两个机器人状态之间的一个约束。

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

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

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

\[ \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} \]

这一步是把\(\boldsymbol \eta_{k}^{gd}\Delta t\)看作是一个微小量,则有\(\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) \]

则有:

\[ \Delta \mathbf{R}_{i j} = \Delta \tilde{\mathbf{R}}_{i j} \cdot \operatorname{Exp}\left(-\delta \vec{\phi}_{i j}\right) \]

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

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

\[ \operatorname{Exp}(\vec{\phi}) \cdot \mathbf{R}=\mathbf{R} \cdot \operatorname{Exp}\left(\mathbf{R}^{T} \vec{\phi}\right) \]

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

\[ \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} \]

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

\[ \Delta \tilde{\mathbf{R}}_{i j}=\prod_{k=i}^{j-1} \mathbf R_{k,k+1} \]

则有:

\[ \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} \]

证毕,需要注意的是\(\Delta\tilde{\mathbf R}_{jj} = \mathbf I\)

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

\[ \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} \]

令:

\[ \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} \]

则有:

\[ \Delta \mathbf{v}_{i j} \triangleq \Delta \tilde{\mathbf{v}}_{i j}-\delta \mathbf{v}_{i j} \]

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

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

\[ \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} \]

令:

\[ \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} \]

\[ \Delta \mathbf{p}_{i j} \triangleq \Delta \tilde{\mathbf{p}}_{i j}-\delta \mathbf{p}_{i j} \]

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

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

\[ \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} \]

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

在实现的时候需要注意,\(\Delta \tilde{\mathbf v}_{ij}\)会用到的是\(\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}\),也就是不会用到\(\Delta \tilde{\mathbf{R}}_{i j}\),因此实现的时候需要注意计算顺序:\(\Delta \tilde{\mathbf{p}}_{i j}\rightarrow\Delta \tilde{\mathbf{v}}_{i j}\rightarrow \Delta \tilde{\mathbf{R}}_{i j}\)

噪声分布

令预积分的噪声为:

\[ \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} \]

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

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

\[ \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) \]

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

\[ \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) \]

\(\xi_{k}=\Delta \tilde{\mathbf{R}}_{k+1 j}^{T} \cdot \mathbf{J}_{r}^{k} \cdot \mathbf{\eta}_{k}^{g d} \Delta t\),由于\(\boldsymbol{\eta}_{k}^{g d}\)是小量,因此\(\xi_k\)也是小量,因此有\(\mathbf{J}_{r}\left(\xi_{k}\right) \approx \mathbf{I}\)(注意这里是雅可比矩阵,而不是之前的缩写)。由于本身\(\delta \vec{\phi}_{i j}\)是小量,因此任意\(\text{Log} \left(\prod_{k =p}^{j-1} \operatorname{Exp}\left(-\xi_{k}\right)\right), p \in \{i, i+1,...,j-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}\),我们可以得到

\[ \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} \]

也就是

\[ \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 \]

由于上式中\(\Delta \tilde{\mathbf{R}}_{k+1 j}^{T}, \mathbf{J}_{r}^{k},\Delta t\)都是已知量,而假设\(\boldsymbol \eta_k^{gd}\)是零均值高斯噪声,因此\(\delta\vec{\phi}_{ij}\)也是零均值高斯噪声。

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

\[ \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] \]

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

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

\[ \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}\)也是高斯分布。但是,\(\delta \mathbf{v}_{i j},\delta \mathbf{p}_{i j}\)不是零均值。

噪声的递推形式

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

(1)旋转项\(\delta \vec{\phi}_{i,j-1}\rightarrow \delta \vec{\phi}_{ij}\)

\[ \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)速度项\(\delta \mathbf{v}_{i,j-1} \rightarrow \delta \mathbf{v}_{i j}\):

\[ \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)位置项\(\delta \mathbf{p}_{i,j-1} \rightarrow \delta \mathbf{p}_{i j}\)

\[ \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} \]

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

\[ \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} \]

其中:

\[ \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} \]

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

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

\[ \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} \]

则有一阶近似如下(类似于性质\(\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)\)):

\[ \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} \]

如果做符号简化如下:

\[ \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} \]

就可以写成:

\[ \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)旋转项\(\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)\)

\[ \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) \]

则有:

\[ \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) \]

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

\[ \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} \]

由于\(\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}\),则上式可以写为:

\[ \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} \]

也就是:

\[ \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) \]

\(\mathbf{c}_{k}=-\Delta \overline{\mathbf{R}}_{k+1 j}^{T} \mathbf{J}_{r}^{k} \delta \mathbf{b}_{i}^{g} \Delta t\),由于\(\delta \mathbf b_{i}^g\)很小,所以\(\mathbf {c}_k\)很小,可以利用性质\(\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(\delta\vec\phi)\approx \mathbf I\),则有:

\[ \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} \]

因此有:

\[ \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} \]

所以可得:

\[ \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) \]

即:

\[ \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) \]

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

\[ \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)速度项(\(\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}\)):

\[ \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} \]

上述中分别用到了一阶近似,\(\text{Exp}(\delta\vec\phi) \approx(\delta\vec\phi)^\wedge\)以及\(\mathbf{a}^{\wedge} \cdot \mathbf{b}=-\mathbf{b}^{\wedge} \cdot \mathbf{a}\),且忽略了高阶小项\(\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}\)。所以有:

\[ \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)位置项(\(\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}\)):

\[ \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} \]

下面我们分别推导\(\langle 1\rangle\)\(\langle 2\rangle\)部分。

\[ \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} \]

\[ \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} \]

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

\[ \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} \]

所以有:

\[ \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预积分的理想值是如下:

\[ \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} \]

其三项残差定义如下:

\[ \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系统中,我们需要优化的是\(\mathbf{R}_{i}, \mathbf{p}_{i}, \mathbf{v}_{i}, \mathbf{R}_{j}, \mathbf{p}_{j}, \mathbf{v}_{j}\),不过在带有IMU的系统中,bias的影响往往不可忽视,因此一般也会加上对bias的优化。不过从残差的定义上来看,实际上优化的是bias的变化量\(\delta \mathbf{b}_{i}^{g}, \delta \mathbf{b}_{i}^{a}\)。所以在IMU预积分中,完整的一个导航状态为:\(\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}\)

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

    \[ \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的增量\({\delta \mathbf{b}_{i}^{g}},{\delta \mathbf{b}_{i}^{a}}\),因此这里的\(\widetilde{\delta \mathbf{b}_{i}^{g}},\widetilde{\delta \mathbf{b}_{i}^{a}}\)实际上是增量的增量,也就是通过增量的Jacobian来计算的。但是实际上增量的Jacobian与原来的Jacobian计算方法上是一样的,只不过它的初始状态是从0开始(实际上之前也运用过这样的方式进行优化过,每次优化的变量实际上是更新量)。

  • 为何位置没有采用速度一样的方式去更新(\(\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}\))?这个问题实际上如果是在\(\text{SE(3)}\)上,也就是直接用transformation matrix,得到的结果是:

    \[ \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} \]

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

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

Jacobian

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

\(\mathbf{r}_{\Delta \mathbf{R}_{i j}}\)的Jacobian

(1)“0”矩阵。由于\(\mathbf{r}_{\Delta \mathbf{R}_{i j}}\)中不含\(\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)其他类:

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

\[ \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} \]

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

\[ \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} \]

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

\[ \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} \]

因此有:

\[ \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) \]

  • 关于\(\delta \mathbf{b}_{i}^g\)的Jacobian(\(\mathbf R_{i}, \mathbf R_{j}\)都是与残差项\(\Delta \mathbf{R}_{ij}\)有关,而\(\delta \mathbf{b}_{i}^g\)则是与残差项\(\Delta \tilde{\mathbf{R}}_{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} \]

\(\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)\),则:

\[ \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} \]

上面的推导中,用到的性质有:\(\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)\)\((\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi})\),伴随性质,\(\text{Log} (\operatorname{Exp}(\vec{\phi}) \cdot \operatorname{Exp}(\delta \vec{\phi}))=\vec{\phi}+\mathbf{J}_{r}^{-1}(\vec{\phi}) \cdot \delta \vec{\phi}\)(可以看出来推导的方法是很类似的)。综上所述,可以得到:

\[ \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}} \]

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

\(\mathbf{r}_{\Delta \mathbf{v}_{i j}}\)的Jacobian

(1)“0”类:由于\(\mathbf{r}_{\Delta \mathbf{v}_{i j}}\)中不包含\(\mathbf{R}_{j}, \mathbf{p}_{i}, \mathbf{p}_{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)线性类:由于\(\mathbf{r}_{\Delta \mathbf{v}_{i j}}\)\(\delta \mathbf{b}_{i}^{g} , \delta \mathbf{b}_{i}^{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)其他类:

  • 关于\(\mathbf{v}_i\)的Jacobian

\[ \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} \]

因此有:

\[ \frac{\partial \mathbf{r}_{\Delta \mathbf{v}_{i j}}}{\partial \mathbf{v}_{i}}=-\mathbf{R}_{i}^{T} \]

  • 关于\(\mathbf{v}_j\)的Jacobian

\[ \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} \]

因此有:

\[ \frac{\partial \mathbf{r}_{\Delta \mathbf{v}_{i j}}}{\partial \mathbf{v}_{j}}=\mathbf{R}_{i}^{T} \]

  • 关于\(\vec\phi_i\)的Jacobian

\[ \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} \]

上述推导用到的规则有:\((\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi})\)\(\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}\)。因此有:

\[ \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} \]

\(\mathbf{r}_{\Delta \mathbf{p}_{i j}}\)的Jacobian

(1)“0”类:由于\(\mathbf{r}_{\Delta \mathbf{p}_{i j}}\)中不包含\(\mathbf R_{j}, \mathbf{v}_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)线性类:由于\(\mathbf{r}_{\Delta \mathbf{p}_{i j}}\)\(\delta \mathbf{b}_{i}^{g} , \delta \mathbf{b}_{i}^{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)其他类:

  • 关于\(\mathbf{p}_i\)的Jacobian:

\[ \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} \]

因此可以得到:

\[ \frac{\partial \mathbf{r}_{\Delta \mathbf{p}_{i j}}}{\partial \mathbf{p}_{i}}=-\mathbf{I} \]

  • 关于\(\mathbf{p}_j\)的Jacobian:

\[ \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} \]

因此有:

\[ \frac{\partial \mathbf{r}_{\Delta \mathbf{p}_{i j}}}{\partial \mathbf{p}_{j}}=\mathbf{R}_{i}^{T} \mathbf{R}_{j} \]

  • 关于\(\mathbf{v}_j\)的Jacobian:

\[ \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} \]

因此有:

\[ \frac{\partial \mathbf{r}_{\Delta \mathbf{p}_{i j}}}{\partial \mathbf{v}_{i}}=-\mathbf{R}_{i}^{T} \Delta t_{i j} \]

  • 关于\(\vec\phi_i\)的Jacobian:

\[ \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} \]

上述推导用到的规则有:\((\operatorname{Exp}(\vec{\phi}))^{T}=\operatorname{Exp}(-\vec{\phi})\)\(\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}\)。因此有:

\[ \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} \]

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

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

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