偏航/航向 GPS(又称移动基线)

新型 RTK GPS 模块,如一对 Ublox F9、基于 Unicore UM-982 的设备或一些双天线设备,除了提供位置信息外,还可用于估算偏航。这样就无需使用指南针,因为指南针可能会受到地面或载具电机和电调的磁场干扰。即使 GPS 没有 RTK 定位(来自固定 RTK 站或 NTRIP 服务器的 RTCM 数据),也可以使用这种方法。

已知可正常工作的 ArduPilot 合作伙伴提供的 GPS 显示于 全球定位系统/指南针(登陆页面)

备注

Ublox F9P 模块必须运行 1.3.2 或更高版本的固件,并配置星座.湖泊 U-Blox F9P 固件更新.

硬件设置

GPS 偏航估算依赖于检测每颗卫星到达两个分离天线时的信号延迟。GPS 系统可以由双模块或单模块组成,但每种情况下都需要两根天线。

  • 天线必须与载具相距至少 30 厘米。

  • 对于双设备系统,第 1 个 GPS 和第 2 个 GPS 应连接到(飞行)控制器上的串行/天线端口或通过 DroneCAN 连接。以下参数说明假定串行 3 和串行 4 用于串行连接 GPS,但只要使用协议 5 的第一个端口连接到其中一个 GPS,任何串行端口都可以使用。

  • 双单元串行 GPS 模块必须通过其(而非(飞行)控制器的)UART1 连接器连接到 ArduPilot,DroneCAN 模块必须通过 CAN 连接,或按照其制造商的说明进行互连。

配置

备注

串行 GPS 和 DroneCAN GPS 应该可以混用,但这种配置尚未经过测试。

常用参数设置

  • AHRS_EKF_TYPE = 3(使用 EKF3)

  • EK2_ENABLE = 0(禁用 EKF2)

  • EK3_ENABLE = 1(启用 EKF3)

  • EK3_MAG_CAL 不用于该功能,因此可保留其默认值("0 "表示飞机,"3 "表示旋翼飞行器,"2 "表示漫游车)。

  • EK3_SRC1_YAW = 2("GPS")或 3("GPS 带指南针回退"),如果系统中还有指南针的话

备注

请勿使用 gps_auto_switch = 2(混合)。

双串行 F9P GPS

双 DRoneCAN F9P GPS

如果使用了 DroneCAN GPS,则应按照以下说明配置 CAN/DroneCAN 端口 DroneCAN 设置 并确保没有使用 GPS 协议("5")设置任何 SERIAL 端口,而不是设置上述 SERIAL 端口协议。还要确保两个 DroneCAN GPS 位于(飞行)控制器的同一条物理 CAN 总线上。这通常需要使用 CAN 总线分路器。然后设置这些参数:

上述双设备配置假定您希望两个 GPS 模块之间的 RTCMv3 数据通过(飞行)控制器板传输。

备注

您可以在两个 GPS 模块上的两个 UART2 连接器之间安装一条交叉 UART 电缆(假设它们是串行而不是 DroneCAN)。如果这样做,您就可以设置 gps_drv_options = 1,这将告诉 u-blox GPS 驱动程序配置两个 GPS 模块通过 UART2 发送 RTCMv2 数据。在 DroneCAN 模块上,提供了第二个 CAN 端口,允许直接连接 RTCMv2 数据。在这种情况下,设置 gps_drv_options = 8.

单一装置系统

这些设备有一个带有双天线的单模块。

备注

ArduPilot 最多允许两个 GPS。以下参数示例用于设置第一个 GPS 实例。

NMEA

  • serial3_protocol = 5("GPS"),假定 GPS 连接到 SERIAL3(除非连接了 GPS,否则任何编号较低的端口都不使用此协议)。

  • GPS1_TYPE = 5(NMEA)

其中一些系统要求 "主 "天线和 "从 "天线(请参阅制造商文件,了解哪根天线被指定为 "主 "天线)前后安装在载具上,与载具的 0 度偏航保持一致,并处于同一垂直水平,且至少相距 30 厘米。否则,天线在 x/y/z 方向的偏移距离必须详细填写在 "天线 "一栏中。 主从天线偏移 见下文。

备注

如果需要,这些设备可以只连接 "主 "天线,但不能使用偏航信息。

Unicore UM982

  • serial3_protocol = 5("GPS"),假定 GPS 连接到 SERIAL3(除非连接了 GPS,否则任何编号较低的端口都不使用此协议)。

  • GPS1_TYPE = 25(UnicoreMovingBaseline)

备注

如果需要,这些设备可以只连接 "主 "天线,但不能使用偏航信息。在这种情况下,设置 GPS1_TYPE = 24(UnicoreMaster)

对于基于 Unicore UM982 的 GPS,"主 "和 "从 "天线必须安装在载具上,相距至少 30 厘米。x/y/z 方向的偏移距离必须详细输入到 主从天线偏移 见下文。

DroneCAN

在 x/y/z 方向上的天线偏移距离必须详细输入到 主从天线偏移 见下文。

主从天线偏移

双单元或单单元/双天线系统(Blicube NEMA GRTK 除外)需要指定 "主 "和 "从 "天线的相对位置:

  • GPS1_MB_TYPE = 1(GPS1 移动基线主天线相对于从属天线的偏移,也可显示下一个参数)

  • GPS1_MB_OFS_X偏移:"从属 "天线到 "主控 "天线在 X 轴上的偏移量,以米为单位(偏航方向为 0 度,如果 "主控 "天线在 "从属 "天线前面,偏移量为正数)。

  • GPS1_MB_OFS_Y偏移: Y 轴上从 "从属 "天线到 "主控 "天线的偏移量,以米为单位(偏航/航向 0 度的 90 度(右侧)方向,如果 "主控 "天线在 "从属 "天线的右侧,偏移量为正数)。

  • GPS1_MB_OFS_ZZ:Z 轴上从 "从属 "天线到 "主控 "天线的偏移量,以米为单位(上下方向,如果 "主控 "天线低于 "从属 "天线,偏移量为正数)。

本图和照片说明了这些参数及其设置:

../_images/UnicoreMovingBaselineOffsets.png ../_images/X-500V2_MovingBaseline.png

Holybro X500V2 安装示例

RTK 校正

ArduPilot 会自动将通过 MAVLink 从 GCS 或遥测无线电(来自固定基线 RTK 基站)接收到的 RTCM 修正数据发送到这些 GPS。参见 RTK GPS 校正(固定基线).

主天线偏离载具 CG

为了达到厘米级的最终定位精度,可以选择输入 "主 "天线与载具 CG 的偏移量,以补偿姿态对 GPS 精度的影响。输入的 CG 偏移量包括

  • GPS1_POS_X偏移:从重心到 "主控 "天线在 X 轴上的偏移量,以米为单位(偏航方向为 0 度,如果 "主控 "天线在重心前方,偏移量为正数)。

  • GPS1_POS_Y偏移: Y 轴上从重心到 "主控 "天线的偏移量(以米为单位)(偏航/航向 0 度的 90 度(右)方向,如果 "主控 "天线在重心右侧,偏移量为正数)。

  • GPS2_POS_Z从重心到 Z 轴 "主控 "天线的偏移量(上下方向,如果 "主控 "天线低于重心,偏移量为正,单位为米)。

本图和照片说明了这些参数及其设置:

../_images/magoffsets.png

测试

在 GPS 接收良好的地点,将载具对准一定距离外的地标,然后检查地面站上的航向是否匹配。旋转载具,确保地面站上的航向更新正确。

如果航向相反,则可能是 GPS_POS_xxx 参数设置错误。

请注意,两个 GPS 模块可能需要一些时间才能获得足够好的偏航定位。ArduPilot GPS 驱动程序通过几种方式验证定位是否足够准确:

  • 漫游车 GPS 模块的固定类型为 6(固定 RTK)。

  • 两个模块之间报告的距离与 GPS 定位参数给出的距离吻合度在 20% 以内。

  • 两个全球定位系统模块报告的高度与载具姿态的吻合度在两个全球定位系统模块之间距离的20%以内

视频演示

利用移动基线偏航剔除磁场干扰