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

相关推荐
TTGGGFF3 小时前
具身智能:零基础入门睿尔曼机械臂(六)——手眼标定代码库详解,从原理到实践
数码相机·机械臂·具身智能
SPFFC189380330533 小时前
抗干扰磁环排线 | Magnetic Ring Flat Cable - 高磁导率EMI抑制解决方案
服务器·数码相机·车载系统·机器人·音频·智能音箱·智能电视
carver w3 小时前
轮询和回调 --SDK
数码相机
字节数据平台4 小时前
6000字技术向拆解 “大晓机器人”携手火山引擎多模态数据湖探索视频处理新路径
人工智能·数码相机
码界奇点1 天前
Python与OpenCV集成海康威视工业相机从基础配置到高级应用的全方位指南
python·数码相机·opencv·相机·python3.11
broad-sky1 天前
Ubuntu上查看USB相机连接的是哪个口,如何查看
linux·数码相机·ubuntu
TNTLWT1 天前
机器视觉:工业镜头
数码相机
PHOSKEY1 天前
3D工业相机量化管控耳机充电弹针关键尺寸
数码相机·3d
春日见1 天前
用matlab对相机进行标定获取相机内参
开发语言·数码相机·matlab
适应规律1 天前
结构光三维视觉与激光条纹提取方法,以及高斯模拟
人工智能·数码相机·计算机视觉