4. IMU模型与标定
视觉惯性里程计(VIO)的核心在于将视觉几何信息与惯性测量单元(IMU)的动力学信息进行紧耦合。IMU 提供了高频的角速度与加速度测量,弥补了视觉在快速运动、纹理缺失或光照变化时的不足。然而,IMU 的原始测量值并非理想值,其中包含确定性误差(如尺度因子、轴偏差)与随机误差(如高斯白噪声、随机游走)。若不对这些误差进行建模与标定,融合后的位姿估计将迅速发散。本章将系统拆解 IMU 的测量原理、误差来源、Allan 方差分析方法以及内参标定的完整流程,为后续 VIO 的状态估计打下坚实的传感器基础。
4.1 IMU 测量原理与理想模型
IMU 通常包含三轴加速度计与三轴陀螺仪。MEMS 加速度计基于电容检测原理:当质量块受到加速度作用时发生位移,导致差分电容变化,通过闭环力反馈电路将电容变化转换为与加速度成正比的电压信号。MEMS 陀螺仪则利用科里奥利效应——质量块在驱动轴方向做高频振动,当有角速度输入时,在检测轴方向产生与角速度成正比的科里奥利力,同样通过电容检测输出。理想情况下,IMU 的测量模型可以表示为:
理想模型:
ω_meas = ω_true (陀螺仪)
a_meas = a_true - g (加速度计,g 为重力矢量)
但在实际工程中,由于 MEMS 加工误差、封装应力、温度漂移等因素,测量值包含多种误差。VIO 系统中,IMU 的测量频率通常为 200Hz~1000Hz,而视觉帧率仅为 15~60Hz,因此 IMU 在帧间提供了丰富的运动约束。理解 IMU 的误差特性,是设计 VIO 预积分、协方差传播和状态更新方程的前提。
4.2 噪声与偏差模型:从确定性到随机性
IMU 误差可分为两大类:确定性误差与随机误差。确定性误差包括尺度因子误差、轴偏差(交轴耦合)和常值零偏;随机误差包括高斯白噪声与随机游走(Bias Instability)。在 VIO 中,我们通常将零偏建模为随机游走过程,即其导数服从高斯分布。
| 误差类型 | 物理来源 | 数学模型 | VIO 处理方式 |
|---|---|---|---|
| 尺度因子 S | ADC 参考电压偏差、MEMS 灵敏度不一致 | ω_meas = S·ω_true | 离线标定补偿 |
| 轴偏差 T | 芯片封装时三轴非正交 | ω_meas = T·ω_true | 离线标定补偿 |
| 常值零偏 b | 电路偏置、温度梯度 | ω_meas = ω_true + b | 在线估计(状态向量) |
| 高斯白噪声 n | 电子热噪声、ADC 量化噪声 | n ~ N(0, σ²) | 协方差矩阵建模 |
| 随机游走 b_dot | 温度缓慢变化、材料老化 | b_dot = w, w ~ N(0, σ_b²) | 零偏动态更新 |
在 VIO 的误差状态卡尔曼滤波(ESKF)中,我们通常将陀螺仪和加速度计的零偏作为状态向量的一部分,通过观测方程不断修正。而白噪声则体现在测量协方差矩阵 R 中。若离线标定不准确,尺度因子误差和轴偏差会直接导致 VIO 在快速旋转时产生尺度漂移和轨迹弯曲。
4.3 Allan 方差分析:随机误差的“指纹”提取
Allan 方差是 IEEE 标准(IEEE Std 952-1997)推荐的 IMU 随机误差辨识方法。其核心思想是:对静止状态下的 IMU 数据进行长时间采集(通常 2~4 小时),将数据按不同时间簇长度 τ 进行划分,计算相邻簇均值之差的方差,得到 Allan 方差 σ²(τ) 与 τ 的双对数曲线。不同随机误差在曲线上呈现不同斜率的线段:
- 斜率 -1/2 段:对应角度随机游走(ARW)或速度随机游走(VRW),即白噪声积分后的结果。
- 斜率 0 段(平台):对应零偏不稳定性(Bias Instability),是 Allan 方差曲线的最低点。
- 斜率 +1/2 段:对应速率随机游走(RRW),即零偏的漂移速率。
- 斜率 +1 段:对应速率斜坡(Rate Ramp),通常由温度单调变化引起。
实际操作流程如下:
- 将 IMU 固定于光学平台或大理石台上,确保无振动干扰,静止采集数据至少 2 小时,采样率 200Hz 以上。
- 将数据按时间簇 τ 从 0.01s 到 1000s 进行对数均匀划分,每个 τ 下计算 Allan 方差。
- 绘制 log(σ(τ)) - log(τ) 曲线,识别各斜率段。
- 通过最小二乘拟合,提取 ARW 系数(单位 °/√h 或 m/s/√h)、零偏不稳定性(单位 °/h 或 m/s²)等关键参数。
4.4 IMU 内参标定:确定性误差的补偿
内参标定的目标是估计尺度因子矩阵 S、轴偏差矩阵 T 和零偏 b。对于三轴 IMU,完整的标定模型为:
加速度计:
a_meas = T_a · S_a · a_true + b_a + n_a
陀螺仪:
ω_meas = T_g · S_g · ω_true + b_g + n_g
其中:
S = diag(s_x, s_y, s_z) —— 尺度因子
T = [[1, -α_yz, α_zy],
[α_xz, 1, -α_zx],
[-α_xy, α_yx, 1]] —— 轴偏差(小角度近似)
标定方法通常分为两类:转台标定与多位置静态标定。转台标定精度高,但设备昂贵;多位置静态标定利用重力矢量作为参考,成本低且精度足够 VIO 使用。多位置标定的核心思想是:在 N 个不同姿态下,加速度计的测量值应满足模长等于当地重力加速度 g。通过非线性优化(如 Levenberg-Marquardt)求解使残差最小的参数。
对于陀螺仪,则需要转台提供已知角速率,或者利用地球自转角速率(约 15°/h)作为参考——但后者对 MEMS 陀螺仪精度要求过高,通常不采用。工程上更常用的是:在完成加速度计标定后,利用多组旋转运动,通过积分角速度与视觉/磁力计参考对比来估计陀螺仪参数。
4.5 案例拆解:消费级 IMU 标定实战
背景与约束:某移动机器人项目采用 ICM-20602 六轴 IMU,需要与双目相机融合实现室内定位。项目要求 VIO 在 10 米路径上的位置误差小于 2%。初始状态下,IMU 未标定,VIO 在快速旋转后出现明显的尺度漂移,轨迹弯曲约 15°。
初始现象与目标:通过 rosbag 录制静止数据 2 小时,采样率 500Hz。初步分析发现,加速度计三轴模长在静止时波动达 ±0.15 m/s²,陀螺仪零偏在 30 分钟内漂移了 0.8°/s。目标是将加速度计模长误差降至 ±0.02 m/s² 以内,陀螺仪零偏稳定性提升至 0.1°/s 以内。
关键输入数据:使用 Allan 方差工具(如 imu_utils)分析,得到加速度计白噪声 0.02 m/s/√Hz,零偏不稳定性 0.05 m/s²;陀螺仪白噪声 0.03 °/s/√Hz,零偏不稳定性 0.2 °/h。
分析判断过程:Allan 曲线显示陀螺仪在 τ=100s 处出现明显上翘,表明存在较大的速率随机游走,这解释了 VIO 在长时间静止时零偏估计缓慢漂移的问题。加速度计轴偏差估计值约为 0.8°,这会导致在倾斜姿态下重力投影误差放大。
实际操作步骤:
- 使用 6 位置静态标定法(三轴正反共 6 个方向),每个位置静止采集 30s,取均值作为测量值。
- 构建优化问题:最小化 Σ(||a_meas|| - g)²,使用 Ceres 求解 S_a, T_a, b_a。
- 陀螺仪标定:将 IMU 固定在转台上,以 10°/s、50°/s、100°/s 三档速率正反转各 3 次,记录角速率参考值。
- 联合优化陀螺仪 S_g, T_g, b_g,使 ω_meas 与参考角速率残差最小。
- 标定后重新录制静止数据,验证 Allan 方差曲线:零偏不稳定性从 0.2°/h 降至 0.08°/h。
结果对比:标定后,VIO 在相同测试路径上的位置误差从 1.8m 降至 0.35m(10m 路径),轨迹弯曲从 15° 降至 2°。加速度计模长波动从 ±0.15 m/s² 降至 ±0.018 m/s²。
风险与代价:多位置标定法对操作者的姿态摆放精度有一定要求,若姿态角偏差超过 2°,会引入额外的参考误差。转台标定虽然精度高,但设备成本约 20 万元,且标定时间较长(含温控约 4 小时)。对于量产场景,建议采用“出厂标定 + 在线估计”的组合策略。
复盘经验:IMU 标定不是一次性工作。MEMS 器件随温度和时间会缓慢老化,建议每 3 个月或温度变化超过 20°C 时重新标定。在 VIO 系统中,将零偏作为状态向量在线估计可以吸收部分残余误差,但尺度因子和轴偏差必须离线标定,否则无法通过滤波收敛。
4.6 常见误区与总结
误区一:认为 IMU 标定只需要做一次,忽略温度影响。实际上,MEMS 陀螺仪的零偏随温度变化可达 ±2°/s(全温区),必须进行温度补偿或采用温控方案。
误区二:将 Allan 方差分析中的白噪声系数直接作为滤波器的测量噪声。Allan 方差给出的是功率谱密度特征,而滤波器中的 R 矩阵需要根据实际运动状态调整,通常需要乘以 2~5 倍的安全系数。
误区三:忽略轴偏差的影响。在低成本 IMU 中,轴偏差可能达到 1°~2°,这相当于在旋转 90° 时引入 1.5~3cm 的位置误差(对于 1m 臂长)。
误区四:标定数据采集时未充分静止。IMU 对振动极其敏感,若采集时桌面有风扇或人员走动,Allan 方差曲线会出现异常上翘,导致随机游走系数被高估。