第3章:传感器校准与EKF调优
传感器校准,说白了就是让飞控知道「什么是正的,什么是北」。
我见过太多炸机案例,最后查出来都是加速度计偏了2度,或者罗盘被机臂上的大电流干扰了。嗯,这章咱们就把这些坑一个一个填上。
3.1 加速度计校准
加速度计负责告诉飞控「哪边是地」。如果它不准,飞控会以为飞机在倾斜,然后拼命往反方向打舵——结果就是起飞瞬间翻车。
校准步骤
- 把飞机放水平,点击
Calibrate Accel - 按提示翻转6个面(每个面保持静止2秒)
- 检查校准结果:
ACCx/y/z的偏置值应在 ±0.1 以内
注意:校准面不平整会导致偏置误差。我习惯在桌面上垫一块水平泡,确保每个面都真正水平或垂直。
常见问题
- 偏置过大:检查飞控安装是否松动,或者有没有减震棉压得太紧
- 校准失败:多半是某个面没放稳,或者翻转太快
3.2 罗盘校准
罗盘是飞控的「指南针」。但机臂上的大电流、电机磁场、甚至地磁异常都会让它发疯。
我曾经遇到过一架四轴,罗盘在机臂上电后偏了30度。查了半天,发现是电源线离罗盘太近。
校准方法
- 进入
COMPASS_CAL页面 - 点击
Start,然后拿着飞机在空中画「8」字 - 等待进度条走完,保存
技巧:校准后查看
COMPASS_OFS_X/Y/Z,如果某个轴超过 300,说明干扰严重。我一般要求三个轴都在 ±200 以内才放心。
罗盘干扰排查
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 罗盘偏置 > 300 | 电源线干扰 | 远离电源线,或加磁屏蔽 |
| 罗盘值随油门变化 | 电机磁场干扰 | 加长罗盘支架,或使用外置罗盘 |
| 罗盘值跳动 | 附近有强磁源 | 检查机架螺丝、扬声器等 |
3.3 水平/空速校准
水平校准其实就是让飞控知道「机头朝哪」。空速校准则针对固定翼,告诉飞控「风吹得有多快」。
水平校准
在 AHRS_TRIM_X/Y 里微调。我习惯在无风环境下,把飞机放平,然后看 AHRS_ROLL/PITCH 是否接近0。如果差0.5度以上,就手动调一下。
空速校准
空速管容易堵,尤其是飞沙尘环境。校准步骤:
- 堵住空速管动压口,点击
Calibrate - 等读数稳定在0附近
- 飞行中对比GPS地速和空速,差值应在10%以内
警告:空速管堵了会导致失速判断错误。我有个朋友就是没检查空速,结果降落时失速炸了。
3.4 EKF3参数详解
EKF3是ArduPilot的卡尔曼滤波器,负责融合所有传感器数据。说白了,它就是个「猜位置」的算法——猜得准不准,全看参数设得好不好。
核心参数
| 参数 | 作用 | 推荐值 |
|---|---|---|
EK3_ENABLE |
启用EKF3 | 1 |
EK3_IMU_MASK |
选择使用哪个IMU | 默认0(自动) |
EK3_VELNE_NOISE |
水平速度噪声 | 0.5(室内)/ 1.0(室外) |
EK3_POSNE_NOISE |
位置噪声 | 1.0(GPS)/ 0.1(光流) |
EK3_MAG_CAL |
罗盘校准模式 | 3(飞行中持续校准) |
调优思路
我个人习惯按这个顺序调:
- 先看
EKF3 innovation日志,哪个传感器创新值大,就调哪个噪声 - 如果GPS创新大,加大
EK3_POSNE_NOISE - 如果罗盘创新大,检查罗盘干扰,或加大
EK3_MAG_NOISE - 如果加速度计创新大,检查振动,或加大
EK3_ACC_NOISE
核心原则:噪声参数越大,EKF越「不相信」这个传感器。但噪声太大,位置估计会变慢。找到平衡点才是关键。
3.5 故障排查
EKF报错是最让人头疼的。我总结了几种常见情况:
- EKF3 check failed:多半是传感器没校准,或者IMU坏了
- GPS glitch:GPS信号差,或者天线位置不对
- Mag variance:罗盘干扰,检查机架布线
- Bad velocity:空速管堵了,或者光流传感器脏了
排查技巧:打开Mission Planner的EKF页面,看每个传感器的innovation曲线。哪个曲线超出±3,就优先排查哪个。
3.6 知识体系图
下面这张图总结了传感器校准与EKF调优的完整流程:
嗯,到这里传感器校准和EKF调优的核心内容就讲完了。记住一句话:传感器不准,EKF再牛也救不了。先把校准做好,再谈调参。