3、软件参数调优:EKF2 核心参数详解

电调校准完了,飞控也重启了,结果一解锁飞机还是飘?

别急。很多时候,定位漂移的根子不在硬件,而在 EKF2 的这几个参数上。我见过不少团队,换 GPS、换飞控板,折腾半天,最后发现就是 EKF2_AID_MASK 没设对。

今天咱们就把它讲透。

3.1 EKF2_AID_MASK:告诉 EKF 用哪些传感器

这个参数说白了,就是一张“传感器准入名单”。EKF2 会根据这个掩码决定:GPS 数据能不能用?光流能不能用?视觉能不能用?

核心原则:只开启你实际安装且可靠的传感器。多开一个不可靠的源,EKF 就会被“带偏”。

Bit 位 值 含义 我的建议
Bit 0 1 启用 GPS 位置/速度 必开(除非室内)
Bit 1 2 启用光流 有光流才开
Bit 2 4 启用视觉位置 谨慎,需标定
Bit 3 8 启用视觉速度 同上
Bit 4 16 启用外部航向 一般不开
Bit 5 32 启用外部气压计 很少用

我的习惯:室外标准配置,EKF2_AID_MASK 设成 1(仅 GPS)。如果装了光流,设成 3(1+2)。千万别图省事直接设成 63 全开——我吃过这个亏,飞机在天上乱窜,最后发现视觉没标定,EKF 被假数据污染了。

3.2 EKF2_HGT_REF:高度参考源的选择

高度漂移是另一个常见问题。EKF2_HGT_REF 决定了 EKF 用哪个传感器作为高度主参考。

值 参考源 适用场景 注意
0 气压计 室外飞行 受温度、气流影响
1 GPS 高度 开阔环境 精度差,易跳变
2 激光雷达/声纳 室内/低空 量程有限
3 视觉高度 VIO 系统 需标定
4 气压计+GPS 融合 默认推荐 兼顾动态与稳态

我个人建议,大多数情况下用 4(气压计+GPS 融合)。纯气压计在快速爬升时会滞后,纯 GPS 高度又太糙。融合一下,两边互补。

我曾经遇到过一个案例:用户反映飞机悬停时高度忽上忽下,换了三个气压计都没用。最后发现是 EKF2_HGT_REF 设成了 1(纯 GPS),而当天卫星几何分布很差,高度误差达到 ±5 米。改成 4 之后,问题立刻消失。

3.3 EKF2_MAG_TYPE:磁力计融合策略

磁力计是 EKF 里最“娇气”的传感器。EKF2_MAG_TYPE 控制着磁力计数据怎么参与航向估计。

值 模式 说明
0 自动 由 EKF 自行判断
1 仅 3D 磁力计 标准模式
2 仅 2D 磁力计 忽略倾角补偿
3 无磁力计 纯 GPS 航向

关键点:如果你发现飞机在悬停时不断“画圈”或者航向慢慢偏转,多半是磁力计干扰。这时候可以试试 EKF2_MAG_TYPE = 3,让 EKF 只用 GPS 速度推算航向。代价是起飞前需要先让飞机移动一段距离才能收敛。

3.4 通过 QGC 实时调整

参数改完不用重启飞控?对,QGC 支持在线调参。

  1. 打开 QGC,连接飞控。
  2. 进入 参数 页面,搜索 EKF2_。
  3. 修改目标参数,点击 保存。
  4. 观察 HUD 上的 EKF 状态指示器——如果变成绿色,说明参数生效。

一个小技巧:改完 EKF2_AID_MASK 后,最好在 QGC 的 MAVLink Inspector 里检查一下 GPS_GLOBAL_ORIGIN 和 EKF_STATUS_REPORT 这两个消息。前者告诉你 EKF 的参考原点,后者告诉你当前融合了哪些传感器。如果发现不该有的传感器被激活了,赶紧回头检查掩码。

3.5 知识体系总览

下面这张图帮你理清三个参数的关系:

EKF2 核心参数关系图 EKF2 状态估计器 EKF2_AID_MASK EKF2_HGT_REF EKF2_MAG_TYPE 传感器准入 GPS / 光流 / 视觉 只开可靠的源 高度参考 气压计 / GPS / 激光 推荐融合模式 磁力计策略 3D / 2D / 关闭 干扰时切无磁 调优顺序:先 AID_MASK → 再 HGT_REF → 最后 MAG_TYPE 每改一个参数,观察 30 秒 EKF 状态再改下一个

3.6 调优实战建议

嗯,这里要注意。参数调优不是一蹴而就的。我一般按这个顺序来:

  • 第一步:确认 EKF2_AID_MASK。关掉所有不用的传感器源。
  • 第二步:检查 EKF2_HGT_REF。如果高度漂移明显,先切到 4 试试。
  • 第三步:观察航向稳定性。如果飞机“画圈”,考虑 EKF2_MAG_TYPE = 3。

重要提醒:每次只改一个参数。改完后在 QGC 里观察至少 30 秒,看 EKF 状态是否稳定。如果同时改多个参数,出了问题你根本不知道是哪个引起的——我当年就犯过这个错,排查了整整两天。

这三个参数调好了,定位漂移的问题基本能解决七八成。剩下的,就要看传感器本身的硬件质量了。