IMU

IMU(惯性测量单元,Inertial Measurement Unit)测量的是平台自身的运动:三轴加速度计给出线加速度(包含重力),三轴陀螺仪给出角速度,两者都以高频率输出——通常为 100–1000 Hz。它是典型的本体感知(proprioceptive)传感器:它感知的是自身,而不是外部世界。

IMU 实际测量的是什么

标准测量模型,以机体坐标系 BB、世界坐标系 WW 写出:

ωm=ω+bg+ng,am=RBW(aWgW)+ba+na\boldsymbol{\omega}_m = \boldsymbol{\omega} + \mathbf{b}^g + \mathbf{n}^g, \qquad \mathbf{a}_m = R_{BW}\,(\mathbf{a}_W - \mathbf{g}_W) + \mathbf{b}^a + \mathbf{n}^a

有两点会让初学者感到意外。第一,加速度计测量的是比力(specific force),而不是加速度:重力始终存在于测量值中,这就是为什么一个静止的 IMU 读数约为 9.81m/s29.81\,\text{m/s}^2(方向向上)而不是零。这既是一个诅咒(必须先追踪并减去重力才能进行积分),也是一个福音(重力方向使横滚角和俯仰角可观测)。第二,每个轴都带有偏置(bias)——一个随温度和时间缓慢变化的偏移量,因此出厂标定永远不够,ba,bg\mathbf{b}^a, \mathbf{b}^g 需要作为 SLAM 状态的一部分在线估计。

三个特性决定了 IMU 在估计问题中的表现:

为什么航位推算会发散

沿着积分链条走下去,失效模式就变得具体起来。姿态由陀螺仪积分得到;速度和位置则来自将测得的比力旋转到世界坐标系、加回重力,然后进行两次积分:

这就是为什么使用消费级 MEMS IMU 做纯惯性航位推算会在几秒内发散,而导航级设备(偏置稳定性要好上几个数量级)则能进行更长时间的航位推算——但代价是数量级更高的成本、体积和功耗。

相机与 IMU 的联姻

单独的 IMU 无法完成 SLAM,但配合相机使用的 IMU 是机器人学中最成功的传感器组合之一。两者完美互补:

相机IMU
频率10–60 Hz100–1000 Hz
测量对象外部世界(纠正漂移)自身运动(存在漂移)
失效场景快速运动、运动模糊、黑暗、低纹理从不”失效”,但会漂移
尺度不可观测(单目)可观测(通过加速度计)

IMU 弥合了相机帧之间的空白,为特征跟踪提供运动预测,使得度量尺度和重力方向可观测,并能在短暂的视觉中断期间撑过去;而相机则反过来持续估计 IMU 的偏置,并将其漂移控制在合理范围内。

IMU 数据如何进入估计器

在 SLAM 的建模中,IMU 测量进入运动模型:xt+1=f(xt,ut)+wt\mathbf{x}_{t+1} = f(\mathbf{x}_t, \mathbf{u}_t) + \mathbf{w}_t,状态被扩展以包含速度和偏置。由于在两个关键帧之间会到达数百个 IMU 采样,现代系统使用预积分(preintegration):将两个关键帧之间的测量值累积成一个单一的相对运动约束,同时补偿偏置和重力,这样优化器只需处理一个因子,而不是上千个原始样本——而且当偏置估计发生变化时,这个因子可以被廉价地校正,而不需要重新积分。这个主题——连同噪声模型、运动学和可观测性——是第 6 级(VIO/VINS)的核心内容。

在进入第 6 级之前需要记住的实践要点:相机-IMU 融合的效果取决于外参标定(相机与 IMU 之间的刚体变换)以及两个传感器时钟之间的时间同步——这两者都可以用像 Kalibr 这样的工具估计,也都是造成 VIO 神秘失效的经典原因。

对SLAM的意义

几乎所有已部署的视觉跟踪系统——手机 AR、无人机、头显、机器人扫地机导航——都是视觉-惯性的,而不是纯视觉的,因为正是 IMU 使得跟踪在真实世界的运动速度下保持鲁棒,并具有度量尺度。理解 IMU 测量的是什么、其误差如何表现,以及为什么积分会漂移,是学习 VIO 这一级所有内容的前提。

相关条目