前言

在 PX4 无人机开发中,很多朋友花大价钱买了诸如 Ublox ZED-F9P和芯星通 UM982 这样的高端双天线 RTK 模块,结果插上飞控后却发现:定点疯狂画圈、定高上下漂移,表现甚至不如几十块钱的 M8N!

其实,这大概率不是硬件的问题,而是你选错了通信协议。今天就用实测数据,为大家扒一扒 PX4 底层 EKF2 算法与 GPS 协议之间那个极其隐蔽的坑——天向速度(Vertical Velocity)


核心结论提前看

  • ⚠️ 标准 NMEA 协议是残缺的:它只有水平对地速度(SOG),没有天向速度,会导致 PX4 垂直高度估计震荡。
  • ZED-F9P 千万别用 NMEA:实测使用 NMEA 协议水平和垂直表现极烂;必须切换为 Ublox 专有协议,瞬间稳如老狗。
  • UM982 用 NMEA 必须加拓展:厂商推荐加入 $AGRICA 拓展语句,补齐了天向速度,融合效果极佳。

一、 EKF2 到底想要什么数据?(底层原理)

要理解这个问题,我们得钻进 PX4 的 EKF2(扩展卡尔曼滤波)源码里看看。
在 EKF2 中,GPS 的融合不仅仅是融合经纬度(Position),更重要的是融合 3D 速度(Velocity)。高精度的 3D 速度(NED:北、东、地)能极大程度地抑制 IMU 积分带来的漂移,是无人机稳定悬停的灵魂。

但是,如果你打开标准 NMEA 协议的报文(如 $GPRMC$GPVTG),你会发现一个致命缺陷:
它们只提供 SOG(Speed Over Ground,对地速度)和 COG(航向)。

这意味着,标准的 NMEA 协议根本没有 Z 轴(天、地向)的速度信息!
当把残缺的 NMEA 送给飞控时,飞控在 Z 轴上失去了高精度的速度观测,只能依靠容易受风扰的气压计,或者通过 GPS 的绝对海拔进行粗糙的微分求导。结果就是:垂直高度估计崩溃,进而引发水平位置融合的连锁发散。


二、 实测案例 1:Ublox ZED-F9P

作为目前市面上最火的 RTK 模块之一,ZED-F9P 的性能毋庸置疑,但协议选择极其关键。

  • 测试场景 A(使用纯 NMEA 协议)
    • 现象:水平和垂直表现都很烂,无人机定点定高极不稳定。
    • 原因:如上所述,缺失垂直速度,且标准 NMEA 的解析延迟较大、数据位短,完全喂不饱 PX4 饥渴的 EKF 引擎。
  • 测试场景 B(使用 Ublox 专有协议)
    • 现象:定位死死钉住,高度极其稳定。
    • 原因:在 PX4 参数中将 GPS_1_PROTOCOL 设置为 1 (UBX) 后,飞控会直接读取 Ublox 的私有二进制报文(如 UBX-NAV-PVTUBX-NAV-VELNED)。这个报文包含了极低延迟、高精度的 3D 速度向量(含极其精确的上下速度) 和 3D 位置误差方差。EKF2 拿到这些数据,立刻就能算出完美的卡尔曼增益。

三、 实测案例 2:和芯星通 UM982

UM982 是一款优秀的国产双天线测向 RTK 模块,默认输出通常是 NMEA 格式。那它为什么能用?

  • 厂家的隐藏绝招:$AGRICA 拓展语句
    • 如果你直接拿标准的 UM982 NMEA 语句喂给 PX4,效果依然不会好。
    • 但是,和芯星通官方强烈推荐在 NMEA 中配置开启一条私有的拓展语句——AGRICA
    • 为什么加了这条语句就神了? 因为这条拓展语句硬生生地在 NMEA 协议流中补充了天向速度(Vertical Velocity)以及高精度的位置协方差信息!
  • 测试现象
    • 在使用包含 AGRICA 扩展语句的 NMEA 数据流时,PX4 的 EKF2 终于拿到了完整的 3D 速度数据。
    • 实测表现:垂直方向高度估计非常精准,不再上下乱窜;配合 UM982 本身极其优秀的水平和双天线航向(Heading)解算能力,整体悬停和航线表现堪称完美。

四、 避坑指南与总结

对于广大 PX4/ArduPilot 的开发者,如果在集成高精度 GNSS 模块时遇到悬停不稳、高度乱跳的问题,请优先检查以下几点:

  1. 放弃标准 NMEA:尽量不要在高级飞控上使用纯净版的标准 NMEA 协议,它的信息量太少,完全限制了 EKF 算法的发挥。
  2. Ublox 认准 UBX:只要是 Ublox 的芯片(M8N, M9N, F9P 等),飞控端务必强制指定使用 Ublox 协议。
  3. 国产 RTK 认准拓展语句:如果是 UM982 等国产优秀模块,请务必联系厂家拿到适配飞控的配置脚本,确保开启类似 AGRICA 这种包含 3D 速度和姿态/航向拓展的私有 NMEA 语句

只有喂给 EKF2 完整的 3D 速度,你的无人机才能真正展现出 RTK 该有的实力!

作者注:
本文测试基于真实飞行日志与 PX4 底层源码分析得出。如果你在无人机硬件集成中也遇到过类似的“玄学”问题,欢迎在评论区交流探讨!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐