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都积分一遍才能得到相应的位速姿变化量了。

相关推荐
ffreask5 分钟前
2 硬件选型指南:如何为openclaw选择最佳小龙虾处理设备
数码相机·ai·编程·技术
Bnews1 小时前
动作捕捉技术:机器人科研的精准“眼睛”与NOKOV度量动捕的创新实践
数码相机·机器人
Mountain and sea1 小时前
工业机器人视觉系统配置与调试完全指南:从硬件选型到实战应用
数码相机·机器人
3DVisionary1 小时前
汽车玻璃曲面偏差难控?蓝光3D扫描仪精准把关整车装配面差
人工智能·数码相机·计算机视觉·热失控·xtdic·xtom·动力电池测试
格林威3 小时前
Halcon vs OpenCV 速度对比(表格)
人工智能·数码相机·opencv·机器学习·计算机视觉·视觉检测·halcon
格林威3 小时前
工业相机图像高速存储(C#版):先存内存,后批量转存方法,附海康相机实战代码!
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·海康相机
格林威5 小时前
工业相机图像高速存储(C++版):先存内存,后批量转存方法,附海康相机实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·工业相机·堡盟相机
格林威5 小时前
工业相机图像高速存储(C++版):内存映射文件(MMF)零拷贝方案,附堡盟 (Baumer) 相机实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
格林威6 小时前
工业相机图像高速存储(C++版):内存映射文件(MMF)零拷贝方案,附海康相机实战代码!
开发语言·c++·数码相机·计算机视觉·视觉检测·工业相机·海康相机
十八岁牛爷爷6 小时前
初识相机标定的意义
数码相机·目标检测·机器学习·计算机视觉