IMU
IMU(惯性测量单元,Inertial Measurement Unit)测量的是平台自身的运动:三轴加速度计给出线加速度(包含重力),三轴陀螺仪给出角速度,两者都以高频率输出——通常为 100–1000 Hz。它是典型的本体感知(proprioceptive)传感器:它感知的是自身,而不是外部世界。
IMU 实际测量的是什么
标准测量模型,以机体坐标系 、世界坐标系 写出:
有两点会让初学者感到意外。第一,加速度计测量的是比力(specific force),而不是加速度:重力始终存在于测量值中,这就是为什么一个静止的 IMU 读数约为 (方向向上)而不是零。这既是一个诅咒(必须先追踪并减去重力才能进行积分),也是一个福音(重力方向使横滚角和俯仰角可观测)。第二,每个轴都带有偏置(bias)——一个随温度和时间缓慢变化的偏移量,因此出厂标定永远不够, 需要作为 SLAM 状态的一部分在线估计。
三个特性决定了 IMU 在估计问题中的表现:
- 偏置:上面提到的缓慢变化的直流偏移 ,通常建模为随机游走。
- 噪声:每个测量轴上的白高斯噪声。(噪声密度和偏置不稳定性用 Allan 方差分析来刻画——在第 6 级的 IMU 噪声模型笔记中会讲到。)
- 积分漂移:要从 IMU 得到位姿就必须进行积分——姿态一次积分、速度和位置两次积分——因此误差是累积的,而不是相互抵消平均掉的。
为什么航位推算会发散
沿着积分链条走下去,失效模式就变得具体起来。姿态由陀螺仪积分得到;速度和位置则来自将测得的比力旋转到世界坐标系、加回重力,然后进行两次积分:
- 陀螺仪偏置误差会使姿态误差大致随时间线性增长。
- 姿态(倾角)误差会使重力减法出现偏差,导致一部分 “泄漏”进估计出的水平加速度中——这是一个恒定的虚假加速度,其二次积分会随时间二次方增长。
- 单独的加速度计偏置 会贡献一个量级为 的位置误差——同样是二次方增长。
这就是为什么使用消费级 MEMS IMU 做纯惯性航位推算会在几秒内发散,而导航级设备(偏置稳定性要好上几个数量级)则能进行更长时间的航位推算——但代价是数量级更高的成本、体积和功耗。
相机与 IMU 的联姻
单独的 IMU 无法完成 SLAM,但配合相机使用的 IMU 是机器人学中最成功的传感器组合之一。两者完美互补:
| 相机 | IMU | |
|---|---|---|
| 频率 | 10–60 Hz | 100–1000 Hz |
| 测量对象 | 外部世界(纠正漂移) | 自身运动(存在漂移) |
| 失效场景 | 快速运动、运动模糊、黑暗、低纹理 | 从不”失效”,但会漂移 |
| 尺度 | 不可观测(单目) | 可观测(通过加速度计) |
IMU 弥合了相机帧之间的空白,为特征跟踪提供运动预测,使得度量尺度和重力方向可观测,并能在短暂的视觉中断期间撑过去;而相机则反过来持续估计 IMU 的偏置,并将其漂移控制在合理范围内。
IMU 数据如何进入估计器
在 SLAM 的建模中,IMU 测量进入运动模型:,状态被扩展以包含速度和偏置。由于在两个关键帧之间会到达数百个 IMU 采样,现代系统使用预积分(preintegration):将两个关键帧之间的测量值累积成一个单一的相对运动约束,同时补偿偏置和重力,这样优化器只需处理一个因子,而不是上千个原始样本——而且当偏置估计发生变化时,这个因子可以被廉价地校正,而不需要重新积分。这个主题——连同噪声模型、运动学和可观测性——是第 6 级(VIO/VINS)的核心内容。
在进入第 6 级之前需要记住的实践要点:相机-IMU 融合的效果取决于外参标定(相机与 IMU 之间的刚体变换)以及两个传感器时钟之间的时间同步——这两者都可以用像 Kalibr 这样的工具估计,也都是造成 VIO 神秘失效的经典原因。
对SLAM的意义
几乎所有已部署的视觉跟踪系统——手机 AR、无人机、头显、机器人扫地机导航——都是视觉-惯性的,而不是纯视觉的,因为正是 IMU 使得跟踪在真实世界的运动速度下保持鲁棒,并具有度量尺度。理解 IMU 测量的是什么、其误差如何表现,以及为什么积分会漂移,是学习 VIO 这一级所有内容的前提。