本文中全部公式来自论文:On-Manifold Preintegration for Real-Time Visual-Inertial Odometry
为了查看公式时更加方便,现把文中的有关IMU预积分的公式汇总如下:

IMU观测模型


Bω~WB(t)_{\mathrm{B}} \tilde{\omega}_{\mathrm{WB}}(t)B​ω~WB​(t)是陀螺仪观测值,Ba~(t)_{\mathbf{B}} \tilde{\mathbf{a}}(t)B​a~(t)是加速度计观测值,wg_\mathrm{w} \mathrm{g}w​g是重力加速度,bg(t)\mathbf{b}^{g}(t)bg(t)和ba(t)\mathbf{b}^{a}(t)ba(t)分别是陀螺仪和加速度计的零偏,ηg(t)\boldsymbol{\eta}^{g}(t)ηg(t)和ηg(t)\boldsymbol{\eta}^{g}(t)ηg(t)分别是陀螺仪和加速度计的观测噪声。

IMU预积分模型

连续时间下:

离散时间下:

带入IMU观测模型后:

考虑两个关键帧之间的IMU预积分:

将上式转换为两帧之间的相对运动关系(包括相对旋转、速度和位置):

假设两个关键帧之间的陀螺仪和加速度计的零偏保持恒定:

分离出状态噪声:

状态噪声向量为:[δϕij⊤,δvij⊤,δpij⊤]⊤[\delta \phi_{i j}^{\top}, \delta \mathbf{v}_{i j}^{\top}, \delta \mathbf{p}_{i j}^{\top} ]^{\top}[δϕij⊤​,δvij⊤​,δpij⊤​]⊤

计算协方差阵

迭代求解状态噪声:



通过噪声向量构建协方差阵:
ηikΔ≐[δϕik,δvik,δpik]ηkd≐[ηkgdηkad]\boldsymbol{\eta}_{i k}^{\Delta} \doteq\left[\delta \boldsymbol{\phi}_{i k}, \delta \mathbf{v}_{i k}, \delta \mathbf{p}_{i k}\right]\\ \boldsymbol{\eta}_{k}^{d} \doteq \left[ \begin{array}{ll}{\boldsymbol{\eta}_{k}^{g d}} & {\boldsymbol{\eta}_{k}^{a d}}\end{array}\right] ηikΔ​≐[δϕik​,δvik​,δpik​]ηkd​≐[ηkgd​​ηkad​​]
其中,ηikΔ\boldsymbol{\eta}_{i k}^{\Delta}ηikΔ​为状态噪声,ηkd\boldsymbol{\eta}_{k}^{d}ηkd​为IMU观测噪声

将式(59)-(61)写为矩阵形式:
ηijΔ=Aj−1ηij−1Δ+Bj−1ηj−1d\boldsymbol{\eta}_{i j}^{\Delta}=\mathbf{A}_{j-1} \boldsymbol{\eta}_{i j-1}^{\Delta}+\mathbf{B}_{j-1} \boldsymbol{\eta}_{j-1}^{d} ηijΔ​=Aj−1​ηij−1Δ​+Bj−1​ηj−1d​
则协方差阵为:
Σij=Aj−1Σij−1Aj−1⊤+Bj−1ΣηBj−1⊤\boldsymbol{\Sigma}_{i j}=\mathbf{A}_{j-1} \boldsymbol{\Sigma}_{i j-1} \mathbf{A}_{j-1}^{\top}+\mathbf{B}_{j-1} \boldsymbol{\Sigma}_{\eta} \mathbf{B}_{j-1}^{\top} Σij​=Aj−1​Σij−1​Aj−1⊤​+Bj−1​Ση​Bj−1⊤​

融合零偏更新

实际上,两个关键帧之间的陀螺仪和加速度计的零偏已经发生了变化δb\delta \mathrm{b}δb,在jjj时刻的零偏应该等于b=b‾+δb\mathrm{b}=\overline{\mathrm{b}}+\delta \mathrm{b}b=b+δb

所以,融合零偏更新后的相对运动关系为:

其中,

计算残差雅可比

相关参数:δϕi,δpi,δvi,δϕj,δpj,δvj,δ~big,δ~bia\delta \boldsymbol{\phi}_{i}, \delta \mathbf{p}_{i}, \delta \mathbf{v}_{i}, \delta \boldsymbol{\phi}_{j}, \delta \mathbf{p}_{j}, \delta \mathbf{v}_{j}, \tilde{\delta} \mathbf{b}_{i}^{g}, \tilde{\delta} \mathbf{b}_{i}^{a}δϕi​,δpi​,δvi​,δϕj​,δpj​,δvj​,δ~big​,δ~bia​

位置残差雅可比:

速度残差雅可比:

姿态残差雅可比:

IMU预积分公式汇总相关推荐

  1. VINS-Mono IMU 预积分公式及协方差、雅可比矩阵传递推导

    原论文链接:VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator 参考:崔华坤-<VINS论文推 ...

  2. IMU预积分公式推到及代码解析

    主要是各个公式与代码之间的变换: IMU器件的测量模型: 是陀螺仪实际的旋转值,是陀螺仪的测量值, 在测量值与真实值之间相差bias   和 噪声 aw 是物体的加速度在世界坐标系下的值,换言之,也可 ...

  3. VINS-mono之IMU预积分(IMU预积分引出)

    目录 1 滤波问题中的IMU积分 2 IMU预积分引出 3 离散时间的预积分 4 观测的置信度问题(协方差) 5 非常感谢您的阅读! 接 上篇. 1 滤波问题中的IMU积分 我们知道上式中的IMU积分 ...

  4. VINS-Mono理论学习——IMU预积分 Pre-integration (Jacobian 协方差)

    引言 VINS论文的IV-B. IMU Pre-integration介绍了IMU预积分模型,Foster的两篇论文对IMU预积分理论进行详细分析. 传统传统捷联惯性导航的递推算法,是在已知上一时刻的 ...

  5. IMU预积分及残差雅克比计算

    前段时间推了泡泡机器人邱笑晨博士的IMU预积分公式,收获很大,再看到VIORB的时候,大都用的这一套公式. 后再看VINS的时候,VINS用的是连续时间的预积分,看一些大佬的博客,说代码里写的是离散时 ...

  6. VINS-Mono之IMU预积分,预积分误差、协方差及误差对状态量雅克比矩阵的递推方程的推导

    文章目录 1. 前言 2. IMU模型 3. 基于世界坐标系下的IMU运动模型 3.1 连续形式下的IMU运动模型 3.2 离散形式下的IMU运动模型 3.2.1 欧拉法离散形式 3.2.2 中值法离 ...

  7. IMU预积分--详细推导过程

    一.提前了解 二.预积分的目的 1.IMU通过加速度计和陀螺仪测出的是加速度和角速度,通过积分获得两帧之间的旋转和位移的变换: 2.在后端非线性优化的时候,需要优化位姿,每次调整位姿都需要在它们之间重 ...

  8. VINS-Mono 代码详细解读——IMU预积分的残差、Jacobian和协方差

    前言: 对第k帧和第k+1帧之间所有的IMU进行积分,可得到第K+1帧的PVQ(位置.速度.旋转),作为视觉估计的初始值. 每次qwbt优化更新后,都要重新进行积分,运算量较大.将积分模型转为预积分模 ...

  9. 3d激光SLAM:LIO-SAM框架—IMU预积分功能数据初始化

    前言 LIO-SAM的全称是:Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 从全称上可以看出,该算法是一个紧耦合的 ...

  10. VIO残差函数的构建以及IMU预积分和协方差传递

    基于滑动窗口的 VIO Bundle Adjustment,为了节约计算量采用滑动窗口形式的 Bundle Adjustment,在 i 时刻, 滑动窗口内待优化的系统状态量定义如下: χ=[Xn,X ...

最新文章

  1. Docker Compose安装
  2. Linux非阻塞IO(八)使用epoll重新实现非阻塞的回射服务器
  3. python有用知识
  4. union和union all有什么区别_什么是Python Wheels?为什么要关心它?
  5. excel只对筛选后的结果单独用公式
  6. Android判断网络连接是否可用【从新浪云搬运】
  7. 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步...
  8. 美团性能分析框架和性能监控平台
  9. vscode写python_vscode如何编写python?
  10. SDOI2010 代码拍卖会
  11. 计算机 学术论文写作,计算机辅助学术论文写作系统的研制策略与方法.pdf
  12. mybatis 插入一条记录 参数为map的写法【用遍历Map的key和value的方式,可以实现只插入有效值】...
  13. 试卷自动生成工具使用说明
  14. python3的spyder安装_Python开发环境Spyder安装教程
  15. 数学模型--预测模型、BP神经网络预测
  16. 基于java设计小游戏目的_java小游戏设计
  17. 英文卡通字体_40种独特的卡通和漫画字体
  18. CSTC—基于零仲裁证明的价值协议
  19. 如何提高CSDN博客排名
  20. Qt QSet 详解:从底层原理到高级用法

热门文章

  1. 对话张冬洪 | 全面解读NoSQL数据库Redis的核心技术与应用实践
  2. 有容云:梁胜-如何让Docker容器在企业中投产(上)
  3. 获取上周一及上周天日期
  4. w3c怎么检测html5,HTML5教程:html标签属性通过w3c验证
  5. 5.3 - 抽屉新热榜
  6. 湖南师范大学2018年大学生程序设计竞赛新生赛 F-小名的回答
  7. python math类
  8. 测试用例Passed和Failed有效性问题
  9. Java String、StringBuffer和StringBuilder的区别
  10. 转(js幻灯片,jQuery幻灯,js焦点轮换图,js幻灯轮播代码大全(2) - 酷站代码)...