飞控算法从入门到精通 | 026 传感器校准:加速度计校准
从一次炸机说起
去年夏天,我在调试一台四轴无人机,起飞后三秒,飞机突然向右前方猛冲,然后翻倒炸机。地面站日志显示,起飞前加速度计读数在Z轴方向只有0.85g,而X轴和Y轴分别有0.12g和-0.08g的偏置。我当时用的是某宝上买的廉价IMU模块,出厂校准数据基本等于没有。那次炸机让我明白一个道理:不校准加速度计,飞控算法就是空中楼阁。
加速度计校准不是“锦上添花”,而是“生死攸关”。姿态解算的第一步就是利用加速度计测量重力向量,如果这个向量方向都错了,后续的互补滤波、卡尔曼滤波全都会跑偏。今天这篇笔记,我就把加速度计校准的底层逻辑、实操方法和踩过的坑一次性说清楚。
加速度计到底在测什么
先别急着写代码。理解加速度计的工作原理,校准才有方向。
MEMS加速度计内部是一个质量块-弹簧-阻尼系统。当芯片感受到加速度时,质量块发生位移,通过电容变化或压阻效应转换成电压信号。但问题是,这个电压信号和真实加速度之间不是简单的线性关系——有零偏(bias)、有尺度因子(scale factor)、还有交叉轴耦合(cross-axis sensitivity)。
理想情况下,加速度计三轴输出应该满足:
A_measured = S * A_true + B其中S是对角矩阵(尺度因子),B是零偏向量。但实际情况更复杂,S往往不是对角矩阵,因为工艺误差会导致X轴加速度在Y轴上产生串扰。更完整的模型是:</