3、IMU测量模型与噪声:加速度计与陀螺仪模型、Allan方差分析、IMU噪声特性、零偏与随机游走

好,咱们今天来聊聊IMU的“脾气”。说白了,IMU就是两个传感器:一个加速度计,一个陀螺仪。它们测量的是啥?加速度计测的是比力,陀螺仪测的是角速度。但问题是,它们测出来的数据,从来都不是“干净”的。

我刚开始做VIO的时候,拿到IMU数据直接往优化里塞,结果轨迹飞得跟喝醉了似的。后来才明白,不把IMU的噪声模型搞清楚,后面全是白搭。今天这一讲,咱们就把IMU的“底细”摸清楚。

3.1 加速度计与陀螺仪的测量模型

先看公式。加速度计的测量模型长这样:

a_m = R^T * (a - g) + b_a + n_a

陀螺仪的测量模型:

ω_m = ω + b_g + n_g

这里面的符号,我一个个解释:

  • a_mω_m:传感器读出来的原始值,也就是你从IMU驱动里拿到的数据。
  • aω:真实的加速度和角速度。注意,这个真实值我们永远不知道,只能估计。
  • R:从世界坐标系到IMU坐标系的旋转矩阵。加速度计测的是比力,所以要把重力加速度g给减掉。
  • b_ab_g:零偏(Bias)。这是IMU最让人头疼的东西,后面细说。
  • n_an_g:白噪声。可以理解为测量值上的随机抖动。

嗯,这里要注意一点:加速度计测的是“比力”,不是“加速度”。比力 = 加速度 - 重力。所以当IMU静止放在桌上时,加速度计读出来的是重力加速度的反方向,也就是(0, 0, -9.8)左右。我第一次测的时候还以为是传感器坏了,后来才反应过来。

个人经验: 我在项目中遇到过IMU安装方向搞反的情况。加速度计的三个轴和车体坐标系对不上,导致初始化时重力方向估计错误。建议拿到新IMU后,先做一次静态测试,确认各轴的正负方向。

3.2 IMU噪声特性:白噪声与零偏

IMU的噪声,主要分两类:

  1. 白噪声(White Noise):高频随机抖动。说白了就是每次测量都带一点随机误差,但均值是零。这个好处理,一般用滤波器就能压下去。
  2. 零偏(Bias):低频漂移。这个才是大麻烦。零偏不是固定的,它会随着时间、温度、甚至IMU的运动状态慢慢变化。

为什么会这样?因为IMU的物理结构决定了它不可能完美。MEMS加速度计里的微机械结构,受温度影响会热胀冷缩;陀螺仪的谐振频率也会随温度漂移。所以零偏是IMU天生的“原罪”。

在VIO初始化中,零偏的估计至关重要。如果零偏没估准,积分出来的位置和姿态会越偏越远。你想想看,一个0.01 rad/s的陀螺零偏,积分10秒就是0.1 rad的误差,这已经够让视觉匹配对不上了。

3.3 Allan方差分析:IMU噪声的“体检报告”

怎么定量分析IMU的噪声特性?Allan方差是工业界最常用的方法。说白了,它就是把IMU的静态数据,按不同的时间窗口做平均,然后看方差的变化规律。

Allan方差曲线长这样:

σ²(τ) = (1/2) * E[(y(t+τ) - y(t))²]

其中τ是时间窗口长度。画出来是一条双对数曲线,不同斜率对应不同的噪声源:

斜率 噪声类型 物理含义
-1/2 角度/速度随机游走 白噪声积分后的结果
0 零偏不稳定性 零偏的长期漂移幅度
+1/2 速率随机游走 零偏的缓慢变化
+1 量化噪声 ADC采样精度限制

我个人习惯,拿到一个新IMU后,第一件事就是做Allan方差分析。把IMU静止放置至少1小时,采集数据,然后画Allan方差曲线。从曲线上可以读出三个关键参数:

  • 角度随机游走(ARW):陀螺仪白噪声的强度,单位 °/√h
  • 速度随机游走(VRW):加速度计白噪声的强度,单位 m/s/√h
  • 零偏不稳定性(Bias Instability):零偏长期漂移的RMS值
避坑指南: 我曾经在Allan方差分析上栽过跟头。有一次采集数据只采了10分钟,画出来的曲线根本看不到零偏不稳定性那个“谷底”。后来才知道,要看到零偏不稳定性,至少需要采集1小时以上的数据。短时间的数据只能看到白噪声部分。

3.4 零偏与随机游走:IMU的“慢性病”

零偏和随机游走,其实是同一个问题的不同侧面。零偏是“当前值”,随机游走是“变化率”。

在VIO中,我们通常把零偏建模为一个随机游走过程:

ḃ = n_b

也就是说,零偏的变化率是一个白噪声。这个白噪声的强度,就是Allan方差曲线上读出来的“速率随机游走”系数。

为什么这么建模?因为零偏的变化是随机的、不可预测的。我们没法用一个确定性的模型去描述它,只能用随机过程去近似。在VIO的优化框架里,零偏会被当作一个状态变量,和位姿一起优化。

嗯,这里有个关键点:零偏的随机游走模型,决定了我们在优化中给零偏加多大的“先验约束”。如果随机游走系数很大,说明零偏变化很快,我们就得给零偏更大的自由度;反之,如果随机游走系数很小,说明零偏很稳定,我们就可以用更强的先验把它约束住。

注意: 不同IMU的噪声参数差异很大。消费级IMU(比如手机里的)和工业级IMU(比如ADIS系列)的Allan方差参数可能差一个数量级。千万不要用别人的参数直接套到自己的IMU上,一定要自己做标定。

3.5 知识体系总览

为了让你更直观地理解这一章的知识结构,我画了一张图:

IMU测量模型与噪声知识体系 IMU测量模型 加速度计模型 陀螺仪模型 白噪声 n_a, n_g 零偏 b_a, b_g Allan方差分析 静态数据采集 方差曲线绘制 角度随机游走 零偏不稳定性 速率随机游走 零偏随机游走模型:ḃ = n_b VIO初始化中,零偏作为状态变量与位姿一起优化 Allan方差参数需针对具体IMU实测标定

这张图把这一章的核心逻辑串起来了。左边是IMU的测量模型,右边是Allan方差分析,底部是零偏的随机游走模型。你仔细看,其实所有内容都围绕着“如何描述和量化IMU的噪声”这个核心问题。

好了,这一章就到这里。IMU的噪声模型是VIO的基石,后面所有的初始化方法,都建立在对这些噪声的正确理解之上。下一章我们会聊IMU预积分,到时候你会看到,这些噪声参数是怎么具体影响积分结果的。


公众号:蓝海资料掘金营,微信deep3321