四、IMU标定技术:六面法标定、转台标定、多位置标定方法、Allan方差分析

说到IMU标定,我脑子里第一个蹦出来的画面,是几年前在实验室里对着一个六面体发呆的场景。那时候刚入行,总觉得标定不就是测几个数嘛,后来被现实狠狠教育了一顿。今天咱们就把这块硬骨头啃下来。

4.1 标定到底在干什么?

说白了,IMU标定就是给传感器“纠偏”。

你想想看,一个理想的加速度计,静止时应该只感受到重力。但实际器件呢?有零偏、有刻度因子误差、还有轴间耦合。陀螺仪也一样,不转的时候输出应该为零,但实际总有那么几个小数字在跳。

标定的目的,就是把这些误差参数找出来,然后在算法里补偿掉。

核心标定参数:

  • 零偏(Bias):静止时传感器的输出值
  • 刻度因子(Scale Factor):输入输出之间的比例偏差
  • 轴间耦合(Cross-axis Sensitivity):一个轴受到其他轴的影响

4.2 六面法标定——最朴素的入门方法

六面法,名字听着挺唬人,其实原理特别简单。就是把IMU放在六个不同的姿态上,每个姿态保持静止,记录数据。

哪六个姿态?

  • X轴朝上、X轴朝下
  • Y轴朝上、Y轴朝下
  • Z轴朝上、Z轴朝下

每个姿态下,理论上加速度计感受到的矢量大小应该是1g。但实际上测出来的值会有偏差。通过这六个方程,就能解出零偏和刻度因子。

我的经验:六面法对平台的水平度要求很高。我曾经用一块大理石平台,结果发现平台本身就有0.1度的倾斜,标出来的参数全偏了。后来我学乖了,先用水平仪校准平台,再放IMU。

六面法的数学模型其实是个线性方程组:

// 加速度计六面法标定模型
// 假设第i个姿态下,理论比力为 f_i
// 实际测量值为 a_i
// 标定参数:零偏 b,刻度因子 s
// 方程:a_i = s * (f_i + b)

// 六个姿态联立求解
// 通常用最小二乘法

嗯,这里要注意一点。六面法只能标定加速度计,陀螺仪的零偏需要另外想办法。我刚开始做的时候以为六面法能搞定一切,结果陀螺仪数据一直飘,后来才明白是方法没用对。

4.3 转台标定——精度最高的方案

如果你追求高精度,那转台是绕不开的。转台可以提供精确的角度和角速度输入,这样陀螺仪的刻度因子和轴间耦合就能标得很准。

转台标定一般分两步走:

  1. 速率实验:让转台以不同角速度旋转,记录陀螺仪输出,拟合刻度因子
  2. 位置实验:将转台锁定在不同角度,记录加速度计输出,标定零偏和轴间耦合
实验类型 输入条件 标定参数
速率实验 角速度:10°/s, 20°/s, 50°/s, 100°/s 陀螺仪刻度因子、轴间耦合
位置实验 角度:0°, 90°, 180°, 270° 加速度计零偏、刻度因子

避坑指南:转台标定最怕的是“对心不准”。IMU的敏感中心必须和转台旋转中心重合,否则会引入额外的向心加速度。我曾经因为固定夹具没做好,标出来的数据怎么看怎么不对,折腾了两天才发现是偏心问题。

4.4 多位置标定方法——没有转台怎么办?

说实话,不是每个人都有条件用转台。那怎么办?多位置标定就是为这种情况准备的。

多位置标定的思路是:利用重力矢量在不同姿态下的投影关系,通过采集大量不同姿态下的数据,用优化算法反推标定参数。

具体做法:

  • 手持IMU,随意旋转到不同姿态
  • 每个姿态保持静止3-5秒
  • 采集20-30个不同姿态的数据
  • 用非线性优化求解标定参数

这种方法的好处是不需要转台,坏处是精度受限于姿态的丰富程度。如果你只是随便晃几下,那标出来的参数可能还不如六面法。

我的建议:多位置标定适合消费级IMU,比如手机里的传感器。对于工业级IMU,我还是推荐用转台。精度差一个数量级呢。

4.5 Allan方差分析——噪声的“体检报告”

标定完参数,你以为就完事了?不,还得看看噪声特性。Allan方差就是干这个的。

Allan方差最早是用于原子钟的稳定性分析,后来被引入IMU领域。它能帮你把噪声分解成几个部分:

  • 角度随机游走(ARW):高频噪声,表现为输出抖动
  • 速率随机游走(RRW):低频漂移,表现为零偏缓慢变化
  • 零偏不稳定性(Bias Instability):中频段的噪声,是衡量IMU质量的关键指标
  • 量化噪声:ADC量化带来的误差

Allan方差的计算步骤:

// Allan方差计算伪代码
// 输入:陀螺仪或加速度计的静态数据序列
// 输出:Allan方差曲线

1. 采集静态数据,时长至少1小时
2. 将数据按不同时间长度 τ 分组
3. 计算每组数据的均值
4. 计算相邻组均值的方差
5. 绘制 log(τ) - log(σ) 曲线
6. 从曲线斜率识别噪声类型

为什么要做Allan方差?因为不同的噪声类型,在融合算法里的处理方式完全不同。比如角度随机游走可以用低通滤波,但速率随机游走就需要用高阶模型来补偿。

我的经验:有一次做无人机飞控,IMU的零偏不稳定性指标是0.5°/h,看起来不错。但Allan方差分析发现,这个IMU在100秒时间尺度上有明显的“驼峰”,说明存在周期性干扰。后来查出来是电源纹波的问题。如果没有Allan方差,这种问题根本发现不了。

4.6 知识体系总览

说了这么多,咱们用一张图把整个标定流程串起来:

IMU标定技术知识体系 标定目标:消除系统误差 六面法标定 转台标定 多位置标定 加速度计 零偏、刻度因子 轴间耦合 陀螺仪 零偏、刻度因子 轴间耦合 联合标定 杆臂效应 时间同步 Allan方差分析:噪声特性评估 标定参数 + 噪声模型 → 融合算法

这张图把整个标定流程串起来了。从标定目标出发,选择合适的方法,得到标定参数,再用Allan方差评估噪声特性,最后把标定参数和噪声模型一起喂给融合算法。

4.7 小结

标定这件事,说难不难,说简单也不简单。六面法适合快速入门,转台标定追求精度,多位置标定是没条件时的折中方案。而Allan方差,则是帮你把IMU的“脾气”摸清楚。

我个人习惯是:先用六面法快速标定一遍,再用转台做精细标定,最后用Allan方差验证噪声特性。三步走下来,IMU的数据质量基本就有保障了。

嗯,今天就聊到这儿。标定做得好,后面的融合才能稳。你想想看,如果输入的数据都是歪的,算法再牛也白搭,对吧?