3. IMU误差源分析

IMU预积分能否在长时间、强机动场景下保持可用,很大程度上取决于我们对误差源的认识是否完整。IMU的原始测量并不是“真值加一点白噪声”这么简单:它同时受到确定性误差、随机误差和环境耦合误差的影响。若把误差建模错,预积分残差就会带有系统性偏置,优化器会把这种偏置错误地分配给位姿、速度甚至地图点,最终表现为轨迹缓慢漂移或尺度不一致。因此,本节从工程视角梳理七类主要误差源,并说明它们在预积分与标定中的处理方式。

一、核心原理:从测量模型看误差来源

理想情况下,加速度计与陀螺仪的测量可写为:

a_meas = R^T (a_world - g) + b_a + s_a * a_true + N * a_true + n_a
ω_meas = ω_true + b_g + s_g * ω_true + M * ω_true + n_g

其中 b 为零偏,s 为尺度因子,N/M 表示轴间非正交与交叉耦合,n 为白噪声。温度漂移会让 b 与 s 随温度变化,动态误差则在剧烈运动时由振动、冲击和带宽限制引入。预积分中,零偏和尺度因子通常作为待估状态或标定参数,而白噪声与随机游走通过协方差传播进入信息矩阵。

关键认识:确定性误差可标定补偿,随机误差只能通过建模与滤波抑制,动态误差则依赖时间同步、带宽匹配和机械安装质量。

二、七类误差源的工程特征

误差源典型表现是否可标定预积分中的处理
零偏 b静止时输出非零,积分后速度/位置线性漂移可估计,但随温度和时间变化作为状态量在线估计,预积分对 b 求雅可比
尺度因子 s大机动时测量被放大或缩小,尺度不一致可离线标定标定后补偿,或加入状态向量
非正交误差三轴不正交,产生轴间耦合可标定用 3×3 安装矩阵校正
白噪声 n高频随机抖动,短时影响小不可标定通过噪声密度传播协方差
随机游走零偏缓慢随机变化,长时间漂移主因不可标定用随机游走噪声密度建模
温度漂移温升后零偏与尺度缓慢变化可建模补偿温度多项式或查表补偿
动态误差振动、冲击、带宽不足导致瞬时失真部分可抑制时间同步、低通滤波、鲁棒核

三、方法流程:误差标定与补偿的典型步骤

  1. 静态采集:将IMU静置,采集数分钟数据,估计零偏初值与白噪声密度。
  2. 多位置标定:利用六面法或转台,分离尺度因子、非正交误差与零偏。
  3. 温控实验:在温箱中缓慢升降温,记录零偏与温度关系,拟合补偿曲线。
  4. 动态激励:用振动台或手持剧烈运动,评估带宽与动态误差。
  5. 参数写入:将标定结果写入配置文件,供预积分模块读取。
# 典型标定参数配置
accel:
  bias: [0.012, -0.008, 0.021]      # m/s^2
  scale: [1.0021, 0.9987, 1.0013]
  misalignment: [[1, 0.0012, -0.0008],
                 [0.0009, 1, 0.0015],
                 [-0.0011, 0.0007, 1]]
  noise_density: 0.0025             # m/s^2/√Hz
  random_walk: 0.0004               # m/s^3/√Hz
gyro:
  bias: [0.0003, -0.0002, 0.0005]   # rad/s
  noise_density: 0.0002             # rad/√Hz
  random_walk: 0.00002              # rad/s/√Hz

四、案例场景:温度漂移如何毁掉一次预积分

某四足机器人从室内(25℃)走到室外(5℃),IMU零偏随温度下降发生约 0.02 m/s² 的偏移。若预积分仍使用室内标定的零偏,10 秒后速度误差约 0.2 m/s,位置误差约 1 m。视觉惯性里程计中,这种误差会被错误地解释为相机外参或尺度变化,导致地图尺度缓慢收缩。解决方式不是简单增大噪声,而是引入温度补偿模型,并在预积分中对零偏变化量做一阶雅可比更新。

工程建议:零偏不是常数,而是“慢变量”。在预积分中保留对零偏的雅可比,可以在优化时快速重线性化,避免每次零偏更新都重新积分。

五、误区与复盘

  • 误区一:把随机游走当成白噪声。白噪声影响短时方差,随机游走决定长期漂移,二者噪声密度量纲不同,混用会导致协方差失真。
  • 误区二:只标零偏不标尺度。大机动场景下尺度误差会被误认为加速度变化,预积分残差出现方向性偏置。
  • 误区三:忽略非正交误差。三轴耦合在旋转剧烈时表现为交叉轴干扰,容易被误判为外部扰动。
  • 误区四:用低通滤波解决动态误差。过度滤波会引入相位延迟,破坏预积分与视觉的时间一致性。

复盘时建议建立误差清单:每次轨迹漂移后,先检查零偏是否随温度变化,再检查尺度与安装矩阵是否被正确补偿,最后评估动态段的时间同步与带宽匹配。只有把七类误差源分别定位,预积分与标定才能真正形成闭环。

IMU误差源分类与预积分处理路径 IMU 原始测量 a_meas / ω_meas 确定性误差(可标定) • 零偏 b:静止非零,积分漂移 • 尺度因子 s:大机动放大/缩小 • 非正交误差:轴间耦合 • 温度漂移:随温变慢漂 随机与动态误差 • 白噪声 n:高频抖动 • 随机游走:零偏慢变 • 动态误差:振动/冲击 • 带宽不足:相位延迟 标定补偿 零偏/尺度/安装矩阵 噪声建模 协方差传播/随机游走 动态抑制 时间同步/滤波/鲁棒核 预积分残差与信息矩阵