四、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 转台标定——精度最高的方案
如果你追求高精度,那转台是绕不开的。转台可以提供精确的角度和角速度输入,这样陀螺仪的刻度因子和轴间耦合就能标得很准。
转台标定一般分两步走:
- 速率实验:让转台以不同角速度旋转,记录陀螺仪输出,拟合刻度因子
- 位置实验:将转台锁定在不同角度,记录加速度计输出,标定零偏和轴间耦合
| 实验类型 | 输入条件 | 标定参数 |
|---|---|---|
| 速率实验 | 角速度: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 知识体系总览
说了这么多,咱们用一张图把整个标定流程串起来:
这张图把整个标定流程串起来了。从标定目标出发,选择合适的方法,得到标定参数,再用Allan方差评估噪声特性,最后把标定参数和噪声模型一起喂给融合算法。
4.7 小结
标定这件事,说难不难,说简单也不简单。六面法适合快速入门,转台标定追求精度,多位置标定是没条件时的折中方案。而Allan方差,则是帮你把IMU的“脾气”摸清楚。
我个人习惯是:先用六面法快速标定一遍,再用转台做精细标定,最后用Allan方差验证噪声特性。三步走下来,IMU的数据质量基本就有保障了。
嗯,今天就聊到这儿。标定做得好,后面的融合才能稳。你想想看,如果输入的数据都是歪的,算法再牛也白搭,对吧?