Skip to content

GPS & 罗盘

任务模式以及一些其他自动和手动/辅助模式会用到GPS。 PX4支持全球导航卫星系统(GNSS),如GPS、格洛纳斯、伽利略、北斗、准天顶卫星系统(QZSS)和星基增强系统(SBAS)等。它通过u-blox、联发科(MTK)Ashtech 或 Emlid 协议,又或者是UAVCAN进行通信。

可通过通用异步收发传输器(UART)或CAN总线连接多达两个GPS模块:

GPS + 罗盘

INFO

PX4还支持实时动态定位(RTK)以及后处理动态定位(PPK) GNSS接收器,这些接收器可将GNSS系统的精度提升至厘米级。

支持的GPS模块

任何在PX4上运行的设备都应通过u-blox、MTK Ashtech 或 Emlid 协议,或者UAVCAN进行通信。

下表列出了一些无RTK功能的GPS模块(其中大部分也集成了指南针)。以下设备经过了PX4开发团队的测试,或者在PX4社区中颇受欢迎。

设备GPS罗盘CANBuzzer / SafeSw / LED备注
ARK GPSM9NBMM150+ 气压计、惯性测量单元(IMU)
ARK TESEO GPSTeseo-LIV4FBMM150+ 气压计、惯性测量单元(IMU)
Avionics Anonymous UAVCAN GNSS/磁强计SAM-M8QMMC5983MA
CUAV NEO 3 GPSM9NIST8310
CUAV NEO 3 Pro GPSM9NRM3100+ 气压计
CUAV NEO 3X GPSM9NRM3100✘✔✔+ 气压计。
CubePilot Here2 GNSS GPS(M8N)M8NICM20948已被HERE3取代
Emlid Reach M+支持PPK。预期支持RTK。
Holybro DroneCAN M8N GPSM8NBMM150+ 气压计
Holybro Micro M8N GPSM8NIST8310
Holybro Nano Ublox M8 5883 GPSUBX-M8030QMC5883
Holybro M8N GPSM8NIST8310
Holybro M9N GPSM9NIST8310
Holybro DroneCAN M9N GPSM9NBMM150
Holybro M10 GPSM10IST8310
Hobbyking u-blox Neo-M8N GPS & 罗盘M8N
LOCOSYS Hawk A1 GNSS接收器MC-1612-V2b可选✘✘✓
LOCOSYS Hawk R1MC-1612-V2b✘✘✓
LOCOSYS Hawk R2MC-1612-V2bIST8310✘✘✓
mRo GPS u-blox Neo-M8N双罗盘M8NLIS3MDL, IST8308
RaccoonLab L1 GNSS NEO-M8NNEO-M8NRM3100✘✘✓+ 气压计
Sky-Drones SmartAP GPSM8NHMC5983, IST8310, LIS3MDL+ 气压计
Zubax GNSS 2MAX-M8QLIS3MDL+ 气压计

备注:

  • “✔”或具体的部件编号表示该功能受支持,“✘”或空白表示该功能不受支持。“?”表示“未知”。
  • 在可能且相关的情况下,会使用部件名称(例如,GPS列中的“✔”表示存在GPS模块,但具体部件未知)。
  • 此列表可能未包含一些仍受支持但已停产的硬件(有关已停产模块的信息,请查阅早期版本)。移除的项目包括:
    • Here GPS
    • Drotek DP0804

GNSS/罗盘的安装

大多数GNSS模块还包含罗盘/磁力计部件(有关校准/设置信息,请参阅链接)。我们建议将GPS模块安装在尽可能远离电机/电子调速器(ESC)电源线的位置,通常可安装在起落架或机翼(固定翼飞机)上。

罗盘的安装介绍了如何安装带有罗盘的GNSS模块。

硬件安装

硬件设置取决于飞行控制器、GNSS模块及其支持的连接总线(UART/I2C或CAN)。

Pixhawk标准连接器

当使用支持Pixhawk连接器标准的飞行控制器时,连接GNSS/罗盘模块最为简便。所有遵循此标准的飞行控制器,包括大多数Pixhawk标准控制器(以及许多其他控制器),在连接GNSS模块时都使用相同的端口连接器和布线。由于这种标准化,许多常见的GNSS/罗盘模块可“即插即用”地直接连接到飞行控制器。

如果您使用的GNSS/罗盘模块通过通用UART和I2C等串行协议进行连接:

  • 主GNSS/罗盘模块应连接到标有GPS1GPS&SAFETYGPS的10针端口(此端口在连接器标准中被描述为“完整GPS + 安全开关端口”)。该GPS应集成蜂鸣器安全开关以及用户界面指示灯(UI LED)
  • (可选的)辅助模块可连接到6针的GPS2端口(如果有此端口),该端口在标准中称为“基本GPS端口”。
  • 这些端口通常仅对u-blox模块即插即用。

INFO

这些端口包括用于GNSS的UART和用于连接罗盘的I2C端口。“完整GPS + 安全开关端口”还包括用于指示灯、蜂鸣器和安全开关的额外I2C连接器。您也可以将GPS引脚连接到任何其他空闲的UART作为GNSS端口,并将罗盘或蜂鸣器连接到I2C端口。但是,如果您这样做,则需要配置端口

对于DroneCAN GNSS/罗盘模块:

  • DroneCan GPS模块连接到CAN总线端口,即标有CAN1CAN2的4针端口。

其他飞行控制器/GNSS模块

如果您使用的飞行控制器和GNSS模块组合不符合Pixhawk连接器标准,那么您需要特别注意飞行控制器和模块上的连接器引脚定义。您可能需要重新布线或焊接连接器。

WARNING

一些飞行控制器使用的端口虽然软件兼容,但连接器不兼容(即使它们使用相同的连接器!),因为它们使用不同的引脚排列顺序。

连接器标准的引脚定义在标准文档中有记录。其他控制器和GNSS模块的引脚定义应包含在其制造商文档中。

GNSS配置

以下是通过GPS串行端口连接的GPS模块的默认配置。PX4或制造商设备文档中可能会提供特定设备的其他配置(例如,天宝MB-Two > 配置)。

主GPS配置(UART)

对于U-Blox GPS模块,Pixhawk上的主GPS配置是透明处理的,只需将GPS模块连接到标有GPS1GPS&SAFETYGPS的端口(如果只有一个GPS端口),一切即可正常工作。

默认的串行端口配置使用GPS_1_CONFIGGPS1配置为GPS端口,使用GPS_1_PROTOCOL将协议设置为u-blox,并使用SER_GPS1_BAUD将波特率设置为0:自动

对于天宝(Trimble)、Emlid、联发科(MTK)等类型的GPS,您需要相应地更改GPS_1_PROTOCOL。对于_天宝MB-Two_,您还需要修改SER_GPS1_BAUD,将速率设置为115200波特。

辅助GPS配置(UART)

要使用辅助GPS,通常情况下,如果有GPS2端口,将其连接到该端口,否则连接到任何空闲的UART端口。该端口可能已预先配置,但与主端口不同,这并不能保证。

为确保端口设置正确,请执行串行端口配置,将GPS_2_CONFIG分配给所选端口。

以下步骤展示了如何在_QGroundControl_中配置GPS 2端口上的辅助GPS:

  1. 查找并设置参数GPS_2_CONFIGGPS 2

    • 打开_QGroundControl_,导航到“飞行器设置 > 参数”部分。
    • 选择“GPS”选项卡,然后打开GPS_2_CONFIG参数,并从下拉列表中选择GPS 2

    QGC串行示例

  2. 重启飞行器,以使其他参数可见。

  3. 选择“串行”选项卡,打开SER_GPS2_BAUD参数(GPS 2端口波特率),将其设置为“自动”(对于天宝设备,设置为115200)。

    QGC串行波特率示例

设置好第二个GPS端口后:

  1. 配置ECL/EKF2估计器,以融合来自两个GPS系统的数据。详细说明请参阅:使用ECL EKF > 双接收器

DroneCAN GNSS配置

DroneCAN GNSS配置在链接文档(以及特定模块的文档)中有介绍。

配置GPS作为偏航/航向源

当使用的模块支持输出偏航数据时,GPS可用作偏航融合的数据源。这在RTK GPS > 配置GPS作为偏航/航向源中有介绍。

罗盘配置

集成罗盘部件的罗盘校准内容在:罗盘配置中介绍。

GNSS数据概述

PX4使用大多数GNSS模块都能提供的部分信息。这些信息会写入SensorGps uORB消息,并由估计器用作全局位置估计的输入。它还通过MAVLink使用诸如GPS_RAW_INTGPS2_RAW等消息进行传输。

一些有助于解读数据的GNSS术语包括:

  • DOP:位置精度衰减因子(无量纲)。这是对卫星位置几何质量及其对GPS接收器计算精度影响的一种度量。
  • EPH:水平位置误差的标准偏差(米)。这表示GPS定位纬度和经度的不确定性。
  • EPV:垂直位置误差的标准偏差(米)。这表示GPS定位高度的不确定性。

DOP与EPH/EPV的关系

DOP是基于卫星位置对实现高精度潜力的一种度量。EPH/EPV更为全面,它们是对GPS位置误差的直接估计,同时考虑了卫星几何形状以及信号噪声和大气影响等其他误差源。即使DOP值较低(卫星几何形状良好),但如果存在显著的信号噪声或大气干扰,EPH/EPV值仍可能较高。

因此,EPH/EPV值能更直观、实际地估计在当前条件下您可预期的实际GPS精度。

开发人员信息