4. 惯性传感器数据采集与预处理

姿态航向参考系统(AHRS)的输出质量,几乎完全由惯性传感器原始数据的质量决定。IMU 中的三轴陀螺仪与三轴加速度计即使标称精度很高,若采集环节存在时间错位、量程溢出、温漂未补偿或零偏未估计,后续的姿态解算与卡尔曼滤波都会把误差当作真实运动来跟踪。本节围绕“从传感器寄存器到可信角速度/比力数据”这条链路,讲清采样同步、量程配置、温度补偿、零偏估计、标定方法与数据质量评估六个关键环节的实际做法。

一、采样同步:先解决“同一时刻”问题

陀螺与加速度计通常集成在同一颗 IMU 内,但两者可能走不同的内部采样通道,输出速率也不一致(例如陀螺 1 kHz、加速度计 200 Hz)。若直接按到达顺序拼接,姿态解算会把相差数毫秒的角速度和比力当成同一时刻的量,在振动或快速机动下引入明显误差。工程上常用三种同步策略:

  • 硬件同步:由 MCU 定时器输出 DRDY(Data Ready)触发信号,IMU 在固定相位采样,MCU 用同一时基读取,抖动可控制在微秒级。
  • 时间戳对齐:每个采样点附带 MCU 定时器计数值,按时间戳插值到统一网格(如 200 Hz),适合两路速率不同的情况。
  • FIFO 批量读取:IMU 内部 FIFO 按采样顺序缓存,MCU 周期性突发读取,减少总线竞争,同时保留每个样本的采样序号。

实际配置时,建议把陀螺与加速度计都设为同一 ODR(输出数据率),并让 MCU 读取周期略快于 ODR,避免 FIFO 溢出。若必须使用不同速率,则以较低速率为基准做插值,且插值只用于姿态解算,不用于标定数据。

二、量程配置:在分辨率与饱和之间取舍

量程决定了每个 LSB 对应的物理量,也决定了会不会削顶。以常见 16 位 IMU 为例,陀螺量程 ±250 °/s 时分辨率约 0.0076 °/s,±2000 °/s 时约 0.061 °/s;加速度计 ±2 g 时约 0.061 mg,±16 g 时约 0.49 mg。量程越小分辨率越高,但机动或振动一旦超过量程,输出会被限幅,滤波器的创新序列会出现异常大的残差。

配置原则是:先估计任务中可能出现的最大角速度和最大比力,再留 1.5~2 倍余量。例如小型无人机悬停时角速度通常小于 100 °/s,可选 ±500 °/s;但遇到阵风或失控恢复时可能瞬时超过 300 °/s,因此不建议选 ±250 °/s。加速度计在起降冲击下可能达到 3~5 g,选 ±8 g 比 ±2 g 更稳妥。量程一旦确定,标定系数和零偏估计都必须在该量程下进行,换量程后需重新标定。

三、温度补偿与零偏估计

MEMS 陀螺的零偏随温度变化可达数十 °/h/°C,是长时间姿态漂移的主要来源。温度补偿的常规做法是:在温箱中让 IMU 从低温到高温缓慢变化,每个温度点静置采集若干分钟,计算该温度下的零偏,再拟合零偏—温度曲线。工程上常用分段线性或二次多项式:

bias_gyro(T) = a0 + a1*(T - T0) + a2*(T - T0)^2

其中 T0 为参考温度(如 25 °C),a0、a1、a2 由最小二乘拟合得到。运行时用片上温度传感器读数代入该式,从原始角速度中减去补偿量。注意温度传感器与敏感质量块之间存在热阻,读数会滞后,因此补偿曲线最好用“温度变化率受限”的慢速温变数据拟合,避免把热滞后误当成非线性。

零偏估计则分静态与动态两类。静态零偏在设备静止时采集 N 个样本求均值,样本数建议不少于 2000,同时计算标准差用于判断静止是否可信。动态零偏(如陀螺的 g 敏感零偏)需要在不同姿态下静置,用最小二乘估计与比力相关的系数。实际系统中常把温度补偿后的残余零偏再交给在线估计:当检测到加速度计模长接近 1 g 且角速度方差很小时,认为处于准静止,用低通更新零偏估计值。

四、标定方法:从六面法到椭球拟合

标定要解决的是比例因子、非正交误差和零偏。加速度计常用六面法:将 IMU 分别以 ±X、±Y、±Z 六个方向朝下静置,每个位置采集数百个样本取均值,得到六个输出向量。理想情况下,朝下轴输出应为 +1 g 或 −1 g,其余轴为 0。用这六组数据可以解出 3×3 的标定矩阵 M 和零偏向量 b:

a_cal = M * (a_raw - b)

更通用的方法是椭球拟合:在多个随机姿态下采集加速度计数据,拟合一个椭球面,把椭球中心作为零偏,把椭球轴长和轴向作为比例因子与安装误差。陀螺标定则常用转台:给定精确角速度输入,比较陀螺输出,得到比例因子和零偏;没有转台时可用“已知转角积分法”做粗略标定,但精度有限。

标定顺序建议为:先做温度补偿,再做零偏和比例因子标定,最后做非正交/安装误差修正。标定参数应写入非易失存储,并在每次上电时加载;若更换 IMU 或量程,必须重新标定。

五、数据质量评估:让异常可被发现

采集与预处理完成后,需要一套可量化的质量指标来判断数据是否可信。常用指标包括:

  • 饱和计数:统计落在量程边界附近的样本比例,超过 0.1% 即提示量程偏小。
  • 静止零偏稳定性:静止时角速度均值的标准差,反映零偏噪声水平。
  • 加速度计模长偏差:静止时 |a| 与 1 g 的偏差,用于判断标定是否有效。
  • 时间戳抖动:相邻样本时间间隔的标准差,反映采样同步质量。
  • 温度变化率:温变过快时补偿曲线可能失配,应标记该段数据为低置信。

下面这张图把从传感器到可信数据的处理链、关键参数与质量判据放在一起,便于对照检查。

惯性传感器数据采集与预处理链路 三轴陀螺仪 角速度 ω (LSB) ODR / 量程 / FIFO 三轴加速度计 比力 a (LSB) ODR / 量程 / FIFO 采样同步 DRDY 触发 时间戳对齐 统一 200 Hz 网格 量程配置 陀螺 ±500 °/s 加计 ±8 g 留 1.5~2 倍余量 温度补偿 bias(T)=a0+a1ΔT+a2ΔT² 片上温度传感器 慢速温变拟合 零偏估计 静态:N≥2000 均值 准静止在线更新 |a|≈1g 且 ω 方差小 标定 六面法 / 椭球拟合 a_cal=M(a_raw−b) 比例因子+非正交 数据质量评估 饱和计数 <0.1% 静止零偏标准差 |a|−1g 偏差 时间戳抖动 温度变化率 残差创新序列 质量不合格→重标定/调量程

六、一个可执行的采集配置示例

以某 6 轴 IMU(SPI 接口,16 位输出)为例,给出上电初始化与预处理的关键参数,供实际开发时参考:

陀螺 ODR      = 1000 Hz
加计 ODR      = 1000 Hz
陀螺量程      = ±500 °/s   (灵敏度 65.5 LSB/°/s)
加计量程      = ±8 g       (灵敏度 4096 LSB/g)
FIFO 水位     = 32 样本
MCU 读取周期  = 1 ms
同步方式      = DRDY 中断 + 定时器时间戳
温度补偿      = 二次多项式,T0 = 25 °C
静态零偏样本  = 3000
准静止判据    = |a|∈[0.95,1.05] g 且 σ_ω < 0.5 °/s

按上述配置,MCU 每 1 ms 读取一次 FIFO,得到带时间戳的原始数据;先做温度补偿,再减零偏,再乘标定矩阵,最后按时间戳插值到 200 Hz 统一网格。质量评估模块持续统计饱和计数、静止零偏标准差和 |a| 偏差,一旦超限就标记该段数据并触发重新标定提示。

温度补偿曲线必须在实际使用的量程和 ODR 下拟合。换量程后,灵敏度变化会改变 LSB 到物理量的换算,原补偿系数不再适用。
不要用机动飞行中的数据做零偏估计。准静止判据必须同时满足加速度模长接近 1 g 和角速度方差足够小,否则会把真实转弯误判为静止,导致零偏被“学”错。

把采样同步、量程、温度补偿、零偏估计、标定和质量评估作为一个整体来设计,才能让 AHRS 拿到真正可用的角速度和比力数据。后续的姿态解算与滤波,才有可靠的基础。