VINS-mono之预积分中关于IMU零偏的建模

1 预积分中关于IMU零偏的建模

从之前的学习中知道了IMU的预积分计算公式为:
在这里插入图片描述
从公式中可以看到,IMU预积分时除了受噪声 n n n的影响,还有IMU零偏 b b b 带来的影响。
而VINS-mono作为一个紧耦合的SLAM方案,其待估计和优化的状态变量除了 p v q pvq pvq 之外呢,还有加速度计和陀螺仪的零偏 b b b,一共是 15 ∗ 1 15*1 151维的向量。
那么,系统每优化迭代一次,零偏也会发生小小的变化调整。相应的当下次迭代时,作为新一轮优化需要的预积分约束要带入这些微调的零偏重新计算一遍吗?
显然这样做太浪费时间了,如果优化迭代50次,那就要重新计算50次预积分啊。那么怎么办呢?

我们利用增量的思维来考虑这个问题,也就是说更新后的零偏在原先的预积分基础上额外增加了哪些影响。
在这里插入图片描述
所以我们计算出预积分量对零偏的雅可比矩阵之后带入上述公式,就可以避免带入更新后的零偏重新计算所有预积分了 。

VINS-mono论文中给出了公式:
在这里插入图片描述

2 如何计算预积分量关于零偏的雅可比矩阵

在这里插入图片描述
从VINS-mono论文给的公式来看,
我们只需要求 J b a α , J b w α , J b a β , J b w β , J b w γ J^{\alpha}_{b_a},J^{\alpha}_{b_w},J^{\beta}_{b_a},J^{\beta}_{b_w},J^{\gamma}_{b_w} JbaαJbwαJbaβJbwβJbwγ,但是为什么要计算那个 15 ∗ 15 15*15 1515的看似冗余的矩阵形式呢?


前面我们推导基于中值积分的离散时间IMU预积分误差状态传递时,得到一个式子:
在这里插入图片描述
在这里插入图片描述
为什么说避免重复计算呢?

比如我们计算出了第 k k k帧的 J k J_k Jk,那么我们像上节那样计算完 (I+F_t δ \delta δt)后,再乘以 J k J_k Jk就可以直接得到 J k + 1 J_{k+1} Jk+1
这样零偏的微小调整给整个系统带来的影响就可以这样向后传递。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宛如新生

转发即鼓励,打赏价更高!哈哈。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值