飞控算法从入门到精通 · 012 · 传感器概述:IMU、磁力计、气压计、GPS
从一次炸机说起
去年夏天,我在一个四轴无人机上调试位置保持模式。GPS信号显示锁定12颗星,磁力计校准也通过了,气压计读数稳定。起飞后悬停,一切正常。三分钟后,飞机突然开始缓慢向东漂移,然后加速,最后侧翻炸机。
事后复盘,问题出在磁力计。那天下午,飞场附近有一根高压输电线,50Hz工频磁场把磁力计的地磁读数完全带偏了。飞控以为机头在转,实际上没有。位置环被误导,积分项越积越大,最终失控。
这个案例说明一件事:飞控算法再漂亮,传感器数据是脏的,输出就是垃圾。今天这篇笔记,我把四种核心传感器的坑和用法,按我自己的调试顺序写下来。
IMU:加速度计 + 陀螺仪,飞控的“小脑”
IMU是飞控里最忙的传感器,没有之一。加速度计测比力,陀螺仪测角速度。两者融合,给出姿态。
加速度计的坑:它测的不是重力,是“比力”。飞机做圆周运动时,加速度计会感受到向心加速度,这时候用它算俯仰和横滚,会得到错误的角度。所以姿态解算里,加速度计只用来修正长期漂移,不能直接当角度用。我见过有人直接用加速度计算角度做控制,结果飞机一转弯就翻。
陀螺仪的坑:零偏温漂。常温下校准好的零偏,温度变化10度,可能漂出0.5度/秒。别小看这个数,积分10秒就是5度。所以陀螺仪必须做温度补偿。我的做法是:在飞控上电后,先静止30秒,采集陀螺仪数据做初始零偏估计,然后每5分钟重新校准一次,或者用温度传感