vSLAM中IMU预积分的作用--以惯性导航的角度分析

作为一个学过一点惯导的工程师,在初次接触视觉slam方向时,最感兴趣的就是IMU预积分了。但为什么要用这个预积分,在看了很多材料和书后,还是感觉模模糊糊,云里雾里。

在接触了vSLAM的更多内容后,站在历史研究者的角度去分析,得到了一个更为清晰的作用分析。

首先,需要明确IMU与相机这两种传感器的互补作用,这是为什么要用IMU的原因。直接贴出程博书中的内容,总结的比较全面了。

总之,就是相机成像的缺点可以由IMU来解决,IMU可以起到很好的辅助作用。此外,IMU漂移的缺点,也会被相机抑制。二者优势互补,劣势互容,相机+IMU进行组合使用,可以得到比单独一种传感器更好的位姿估计。

其次,需要考虑如何使用IMU数据。

对于该问题,程博在书中提到了两种思路,分别为松耦合和紧耦合。

在上面的松耦合方案中,用KF实现的话,就是二者位姿作差,送到KF中进行更新,相当于ins/gps的松耦合方案。对于优化思路的话,二者位姿作差,最小化该残差模值的和即可。这样做的话,用起来就是单帧更新,两图像帧之间的约束就无法纳入到考虑中,也就是图上所说的割裂了状态估计的联系。这是一种较低层次的融合。说起来,这种方法感觉更像是以相机辅助IMU。

紧耦合方案的话,滤波方向可以看看MSCKF等方案。但对于优化方向,以VINS为例,可以将两个关键帧之间的IMU积分,积分所得的"广义位速姿bias增量"作为图优化的"边",从而限制两个关键帧之间位速姿bias的变化量。真正执行时,优化迭代过程中,两个关键帧的位姿进行广义减法可以得到"广义位速姿bias增量"的估计值,而IMU积分得到"广义位速姿bias增量"的测量值,由二者相减可得残差项。

注意上图中,IMU积分认为bias一阶导为0(只剩下高斯白噪声),积分就不必了,增量默认就是0了。所以相减的话,也只有优化得到的bias增量剩下了。

预积分的"预"字含义就是,在优化的多次迭代过程中,两关键帧间的IMU积分(所得的广义位姿增量)是基本不变的,可以预先积分好直接在整个优化过程中去用。即便bias变化,还有相应的一阶雅克比近似去更新预积分,除非bias变化较大,那就需要对(两关键帧间)每个IMU都积分一遍才能得到相应的位速姿变化量了。

相关推荐
一直在想名1 天前
Flutter 框架跨平台鸿蒙开发 - 胶片相机模拟
数码相机·flutter·华为·harmonyos
CoderIsArt1 天前
半导体加工平台的视觉定位方案
数码相机
格林威1 天前
GigE Vision 多相机同步终极检查清单(可直接用于项目部署)
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·工业相机
Utopia^1 天前
Flutter 框架跨平台鸿蒙开发 - 闪回相机
数码相机·flutter·华为·harmonyos
宇卿.1 天前
机器视觉硬件【相机篇】
数码相机·计算机视觉
格林威2 天前
SSD 写入速度测试命令(Linux)(基于工业相机高速存储)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·工业相机
格林威3 天前
工业相机异常处理实战:断连重连、丢帧检测、超时恢复状态机
开发语言·人工智能·数码相机·计算机视觉·视觉检测·机器视觉·工业相机
_李小白4 天前
【OSG学习笔记】Day 31: 渲染到纹理(RTT)
笔记·数码相机·学习
双翌视觉5 天前
基于机器视觉实现开口卡簧自动化装配
运维·数码相机·自动化
ZHANG13HAO5 天前
大尺寸柔性基板(20×40cm)线阵相机检测系统落地指南
数码相机