第3章:传感器校准与EKF调优

传感器校准,说白了就是让飞控知道「什么是正的,什么是北」。

我见过太多炸机案例,最后查出来都是加速度计偏了2度,或者罗盘被机臂上的大电流干扰了。嗯,这章咱们就把这些坑一个一个填上。

3.1 加速度计校准

加速度计负责告诉飞控「哪边是地」。如果它不准,飞控会以为飞机在倾斜,然后拼命往反方向打舵——结果就是起飞瞬间翻车。

校准步骤

  1. 把飞机放水平,点击 Calibrate Accel
  2. 按提示翻转6个面(每个面保持静止2秒)
  3. 检查校准结果:ACCx/y/z 的偏置值应在 ±0.1 以内
注意:校准面不平整会导致偏置误差。我习惯在桌面上垫一块水平泡,确保每个面都真正水平或垂直。

常见问题

  • 偏置过大:检查飞控安装是否松动,或者有没有减震棉压得太紧
  • 校准失败:多半是某个面没放稳,或者翻转太快

3.2 罗盘校准

罗盘是飞控的「指南针」。但机臂上的大电流、电机磁场、甚至地磁异常都会让它发疯。

我曾经遇到过一架四轴,罗盘在机臂上电后偏了30度。查了半天,发现是电源线离罗盘太近。

校准方法

  1. 进入 COMPASS_CAL 页面
  2. 点击 Start,然后拿着飞机在空中画「8」字
  3. 等待进度条走完,保存
技巧:校准后查看 COMPASS_OFS_X/Y/Z,如果某个轴超过 300,说明干扰严重。我一般要求三个轴都在 ±200 以内才放心。

罗盘干扰排查

现象 可能原因 解决办法
罗盘偏置 > 300 电源线干扰 远离电源线,或加磁屏蔽
罗盘值随油门变化 电机磁场干扰 加长罗盘支架,或使用外置罗盘
罗盘值跳动 附近有强磁源 检查机架螺丝、扬声器等

3.3 水平/空速校准

水平校准其实就是让飞控知道「机头朝哪」。空速校准则针对固定翼,告诉飞控「风吹得有多快」。

水平校准

在 AHRS_TRIM_X/Y 里微调。我习惯在无风环境下,把飞机放平,然后看 AHRS_ROLL/PITCH 是否接近0。如果差0.5度以上,就手动调一下。

空速校准

空速管容易堵,尤其是飞沙尘环境。校准步骤:

  1. 堵住空速管动压口,点击 Calibrate
  2. 等读数稳定在0附近
  3. 飞行中对比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(飞行中持续校准)

调优思路

我个人习惯按这个顺序调:

  1. 先看 EKF3 innovation 日志,哪个传感器创新值大,就调哪个噪声
  2. 如果GPS创新大,加大 EK3_POSNE_NOISE
  3. 如果罗盘创新大,检查罗盘干扰,或加大 EK3_MAG_NOISE
  4. 如果加速度计创新大,检查振动,或加大 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调优流程 加速度计校准 罗盘校准 水平/空速校准 EKF3参数设置(噪声、IMU选择、罗盘模式) 飞行验证(检查innovation日志) 故障排查(GPS glitch / Mag variance / Bad velocity) 提示:每次修改参数后,建议飞行5分钟以上再评估效果

嗯,到这里传感器校准和EKF调优的核心内容就讲完了。记住一句话:传感器不准,EKF再牛也救不了。先把校准做好,再谈调参。