IMU预积分模型分析

IMU预积分模型分析

当我们考虑一个SLAM的优化问题时,每进行一次迭代优化其对应的位姿就会改变一次,由于IMU的惯性积分需要依赖于一个位姿的初值,所以导致每次迭代优化后IMU就要重新计算一次,这会导致代码运算量过大,所以我们引入了预积分的概念,即直接计算两帧之间的相对位姿,而不依赖初值

1.预积分计算

对于预积分的计算,我们首先要弄清楚IMU的惯性积分过程。首先,我们可以不加推导的得到一个运动微分方程:

在这里插入图片描述
根据上述微分方程,我们可以计算出从 i i i时刻到 j j j时刻IMU积分的结果:

在这里插入图片描述

根据预积分的要求,需要求的是相对结果,而且不依赖于上一时刻位姿,因此需要对上式做转换。
由于 q w b t = q q w b i ⊗ q b i b t q_{wb_t}=qq_{wb_i} \otimes q_{b_ib_t} qwbt=qqwbiqbibt把它带入(4)-(6)式可得:
在这里插入图片描述

可见,此时需要积分的项就完全和 i i i时刻的状态无关了。为了整理公式,把积分相关的项用下面的式子代替:
在这里插入图片描述
实际使用中,都是使用离散形式而非连续形式.在解算中,一般采用中值积分方法,即:

在这里插入图片描述
那么预积分的离散形式可以表示为:

在这里插入图片描述
经过以上的推导,此时状态更新的公式可以整理为:

在这里插入图片描述

需要注意的是,陀螺仪和加速度计的模型为:

在这里插入图片描述
即认为bias是在变化的,这样便于估计不同时刻的bias值,而不是整个系统运行时间内都当做常值对待。这更符合低精度mems的实际情况。但在预积分时,由于两个关键帧之间的时间较短,因此认为 i i i j j j时刻的bias相等

需要注意的一点是,预积分的结果中包含了bias,在优化过程中,bias作为状态量也会发生变化,从而引起预积分结果变化

为了避免bias变化后,重新做预积分,可以把预积分结果在bias处泰勒展开,表达成下面的形式,这样可以根据bias的变化量直接算出新的预积分结果
在这里插入图片描述
在这里插入图片描述
其中:
在这里插入图片描述
此处暂时不直接给出以上各雅可比的结果,它的推导放在后面进行。

2.连续时间下预积分方差更新矩阵计算

在融合时,需要给不同信息设置权重,而权重由方差得来,因此对于IMU积分,也要计算其方差。我们首先回顾一下连续情况下的微分方程:

在这里插入图片描述

方差的计算方式如下:

在这里插入图片描述

但需注意的是,此处 F k F_k Fk G k G_k Gk是离散时间下的状态传递方程中的矩阵,而我们一般是在连续时间下推导微分方程,再用它计算离散时间下的传递方程。

2.1 δ θ ˙ t b k \delta \dot \theta^{b_k}_t δθ˙tbk的微分推导

为了简便写法,我们把 δ θ ˙ t b k \delta \dot \theta^{b_k}_t δθ˙tbk记为 δ θ ˙ \delta \dot \theta δθ˙

首先,我们先建立 δ q \delta q δq δ θ \delta \theta δθ的关系:
在这里插入图片描述

所以我们首先要先得到 δ q \delta q δq δ q ˙ \delta \dot q δq˙之间的关系。

1) 写出不考虑误差的微分方程

在这里插入图片描述

2) 写出考虑误差的微分方程

在这里插入图片描述

3) 写出带误差的值与理想值之间的关系

在这里插入图片描述

4) 将带误差的值与理想值之间的关系带入2)

在这里插入图片描述
其中:
在这里插入图片描述

5) 把1)中的关系带入4)

在这里插入图片描述

6) 化简方程

首先将5)中的方程移项并左乘 ( q t ) − 1 (q_t)^{-1} (qt)1可得:
在这里插入图片描述
又四元数相乘可以转换成矩阵与向量相乘,例如:
在这里插入图片描述

我们不妨把 M p M_p Mp M p ′ M'_p Mp分别称为左矩阵和右矩阵。分别用 [ ∗ ] L [*]_L []L [ ∗ ] R [*]_R []R代替,因此方程可以进一步简化,我们令:

在这里插入图片描述
所以,我们可以得到 δ q \delta q δq δ q ˙ \delta \dot q δq˙之间的关系:
在这里插入图片描述
又根据之前推导的 δ q \delta q δq δ θ \delta \theta δθ关系:
在这里插入图片描述

把它代入上式,又可以得到:
在这里插入图片描述
忽略其中的二阶小项,可得:
在这里插入图片描述

2.2 δ β ˙ t b k \delta \dot\beta^{b_k}_t δβ˙tbk的微分推导

为了简便写法,我们把 δ β ˙ t b k \delta \dot \beta^{b_k}_t δβ˙tbk记为 δ β ˙ \delta \dot \beta δβ˙

1) 写出不考虑误差的微分方程

在这里插入图片描述

2) 写出考虑误差的微分方程

在这里插入图片描述

3) 写出带误差的值与理想值之间的关系

在这里插入图片描述

4) 将带误差的值与理想值之间的关系带入2)

在这里插入图片描述

5) 把1)中的关系带入4)

在这里插入图片描述

6) 化简方程

在这里插入图片描述

2.3 δ α ˙ t b k \delta \dot\alpha^{b_k}_t δα˙tbk的微分推导

为了简便写法,我们把 δ α ˙ t b k \delta \dot \alpha^{b_k}_t δα˙tbk记为 δ α ˙ \delta \dot \alpha δα˙

1) 写出不考虑误差的微分方程

在这里插入图片描述

2) 写出考虑误差的微分方程

在这里插入图片描述

3) 写出带误差的值与理想值之间的关系

在这里插入图片描述

4) 将带误差的值与理想值之间的关系带入2)

在这里插入图片描述

5) 把1)中的关系带入4)

在这里插入图片描述

6) 化简方程

在这里插入图片描述

3.离散时间下预积分方差更新矩阵计算

得到连续时间微分方程以后,就可以计算离散时间的递推方程了,表示为:
在这里插入图片描述
其中:
在这里插入图片描述

3.1 δ θ k + 1 \delta \theta_{k+1} δθk+1的求解

由于连续时间下有:

在这里插入图片描述

则离散时间下应该有:
在这里插入图片描述

因此有:
在这里插入图片描述
令:
在这里插入图片描述
则上式可以重新写为:
在这里插入图片描述

3.2 δ β k + 1 \delta \beta_{k+1} δβk+1的求解

由于连续时间下有:
在这里插入图片描述

则离散时间下应该有:
在这里插入图片描述
把3.1中求得的的 δ θ k + 1 \delta \theta_{k+1} δθk+1表达式代入上式,可得:
在这里插入图片描述
经过一系列合并同类项以后,最终的合并结果为:

在这里插入图片描述
由导数形式可以得到递推形式如下:

在这里插入图片描述

3.3 δ α k + 1 \delta \alpha_{k+1} δαk+1的求解

由于连续时间下有 δ α ˙ = δ β \delta\dot{\alpha}=\delta\beta δα˙=δβ,则离散时间下应该有:
在这里插入图片描述
由导数形式可以写出递推形式:
在这里插入图片描述

3.4 矩阵整理

由以上的推导结果,便可以写出 X k + 1 = F k X k + G k N k X_{k+1}=F_kX_k+G_kN_k Xk+1=FkXk+GkNk中的矩阵:
在这里插入图片描述
上面的矩阵中,有:
在这里插入图片描述

4.预积分更新

回到bias变化时,预积分结果怎样重新计算的问题,再次给出它的泰勒展开形式:
在这里插入图片描述
这里,雅可比没有明确的闭式解,但是在推导方差的更新时,我们得到了:
在这里插入图片描述
通过该递推形式,可以知道:
在这里插入图片描述

即预积分结果的雅可比,可以通过这种迭代方式计算。

J j J_j Jj中关于bias的项,就是预积分泰勒展开时,各bias对应的雅可比。

5.残差雅可比的推导

在优化时,需要知道残差关于状态量的雅可比。由于已知姿态位姿更新的方法如下:
在这里插入图片描述
因此,可以很容易写出一种残差形式如下:
在这里插入图片描述
但是和预积分相关的量,仍然与上一时刻的姿态有关,无法直接加减,因此,把残差修正为以下形式:

在这里插入图片描述
待优化的变量是:
在这里插入图片描述
但在实际使用中,往往都是使用扰动量,因此,实际是对以下变量求雅可比
在这里插入图片描述

5.1 姿态残差的雅可比

1) 对 i i i时刻姿态误差的雅可比

在这里插入图片描述
上式可以化简为:

在这里插入图片描述

2) 对 j j j时刻姿态误差的雅可比

在这里插入图片描述

3) 对 i i i时刻陀螺仪bias误差的雅可比

在这里插入图片描述

5.2 速度残差的雅可比

1) 对 i i i时刻姿态误差的雅可比

在这里插入图片描述

2) 对 i i i时刻速度误差的雅可比

在这里插入图片描述

3) 对 i i i时刻加速度bias误差的雅可比

在这里插入图片描述

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
二子样算法是一种常用于IMU积分算法。在二子样算法中,IMU数据被分为两个子样集,分别用于计算姿态的旋转部分和位移的线性部分。首先,根据IMU的角速度数据,使用欧拉积分方法计算旋转部分的姿态变化。然后,根据加速度数据,使用梯形积分方法计算线性部分的位移变化。通过将旋转和位移分开计算,可以降低计算复杂度,并减少姿态变化对位移计算的影响。二子样算法可以有效地提高IMU积分的准确性和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [3.1ORBSLAM3之IMU积分](https://blog.csdn.net/guanjing_dream/article/details/128291888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [IMU积分模型分析](https://blog.csdn.net/weixin_44156680/article/details/121654943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [IMU积分](https://blog.csdn.net/qq_42739167/article/details/124738559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值