ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PX4 Autopilot GNSS 指南:从硬件连接、双 GPS 配置到数据融合与源码实现

PX4 Autopilot GNSS 指南:从硬件连接、双 GPS 配置到数据融合与源码实现 嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载本篇围绕 PX4 的 GNSSGPS/罗盘子系统展开覆盖多接收机型号支持、Pixhawk 标准端口接线、主/从 GPS 串口配置、DroneCAN GNSS 接入并结合 GPS 驱动源码 与 SensorGps uORB 消息定义 深入讲解位置/速度数据流、DOP 与 EPH/EPV 的差别以及位置融合的前置条件帮助你在实际飞控上完成 GNSS 的选型、接线、参数配置与数据解读。一、GNSS 子系统架构最多两块 GNSS 模块任务飞行以及部分自动和手动辅助模式都依赖 GNSS。PX4 支持通过 u-blox、MTK、Ashtech/Trimble、Emlid 协议或 UAVCAN 通信的 GPS、GLONASS、Galileo、BeiDou、QZSS、SBAS 等全球导航卫星系统。系统最多可连接两块 GPS 模块通过 UART 或 CAN 总线接入主 GNSS 模块primary通常还集成 磁罗盘、蜂鸣器buzzer、安全开关safety switch和 UI LED可选的从 GNSS/罗盘模块secondary作为后备使用。它可能带蜂鸣器、安全开关和 LED但这些部件不会被 PX4 使用。在源码层面这一主/从双实例设计直接体现在驱动中GPS 驱动类 定义了Instance::Main和Instance::Secondary两个实例src/drivers/gps/gps.cpp#L167-L172并分别为两个实例提供任务启动跳板run_trampoline与run_trampoline_secondary。每个实例独立解析串口数据并发布自己的 SensorGps uORB 消息供估计器融合使用。PX4 还支持 RTK实时动态差分 与PPK后处理动态差分GNSS 接收机可将精度扩展到厘米级。二、支持的 GNSS 接收机PX4 理论上应兼容任何使用 u-blox、MTK、Ashtech 或 Emlid 协议、或通过 UAVCAN 通信的模块。下表为非 RTK GNSS 模块其中大多数同时集成罗盘均为 PX4 开发团队测试过或在社区中流行的型号设备GPS 芯片罗盘芯片CAN蜂鸣器/安全开关/LED备注ARK GPSM9NBMM150✓✓ 气压计、IMUARK DAN GPSDAN-F10NIIS2MDC✓ARK SAM GPSSAM-M10QIIS2MDC✓ARK SAM GPS MINISAM-M10QIIS2MDC✓ARK TESEO GPSTeseo-LIV4FBMM150✓✓ 气压计、IMUAvionics Anonymous UAVCAN GNSS/MagSAM-M8QMMC5983MA✓✘CUAV NEO 3 GPSM9NIST8310✓CUAV NEO 3 Pro GPSM9NRM3100✓✓ 气压计CUAV NEO 3X GPSM9NRM3100✓✘✓✓ 气压计CubePilot Here2 GNSS GPSM8NICM20948✓已被 HERE3 取代Emlid Reach M✓✘✘支持 PPKRTK 待支持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 CompassM8N✓✘LOCOSYS Hawk A1 GNSS receiverMC-1612-V2b可选✘✘✓LOCOSYS Hawk R1MC-1612-V2b✘✘✓LOCOSYS Hawk R2MC-1612-V2bIST8310✘✘✓mRo GPS u-blox Neo-M8N Dual CompassM8NLIS3MDL, IST8308✘RaccoonLab L1 GNSS NEO-M8NNEO-M8NRM3100✓✘✘✓ 气压计Sky-Drones SmartAP GPSM8NHMC5983, IST8310, LIS3MDL✓ 气压计Zubax GNSS 2MAX-M8QLIS3MDL✘ 气压计注✓ 或具体芯片型号表示支持该特性✘ 或留空表示不支持? 表示未知可能且相关时优先标注芯片型号GPS 列的 ✓ 表示有 GPS 模块但具体型号未知列表可能省略部分已停产但仍受支持的硬件如HereGPS、Drotek DP0804可查阅旧版本文档。各型号的详细资料可参考对应文档如 ARK GPS、ARK DAN GPS、ARK SAM GPS、CUAV NEO 3 GPS、Holybro M8N/M9N GPS、Sky-Drones SmartAP GPS、LOCOSYS Hawk A1、LOCOSYS Hawk R1、LOCOSYS Hawk R2、CubePilot Here2 等。三、GNSS/罗盘的安装大多数 GNSS 模块都包含 磁罗盘校准与设置见该文档。因此 GNSS 模块应尽量远离电机/电调供电线——通常安装在支柱pedestal上固定翼则安装在机翼上。安装带罗盘的 GNSS 模块的详细方法见 安装罗盘。四、硬件连接硬件连接方式取决于飞控、GNSS 模块及其支持的总线UART/I2C 或 CAN。Pixhawk 标准连接器使用支持 Pixhawk 连接器标准 的飞控时GNSS 连接最省事遵循该标准的飞控包括绝大多数 Pixhawk 标准飞控使用相同的端口连接器和接线因此许多流行 GNSS/罗盘模块可以开箱即插。通过通用 UART 及 I2C 等串口协议连接 GNSS/罗盘模块时主 GNSS/罗盘模块应连接到标注为GPS1、GPSSAFETY或GPS若只有一个 GPS 端口的 10 针端口即连接器标准中的 Full GPS Safety Switch Port。该 GPS 模块应集成蜂鸣器、安全开关 与 UI LED可选的从模块可连接到 6 针GPS2端口若存在标准中称 Basic GPS Port这些端口对 u-blox 模块仅通常是即插即用的。端口内部包含用于 GNSS 的 UART 和用于连接罗盘的 I2C。Full GPS Safety Switch Port 还包含连接 LED、蜂鸣器和安全开关的 I2C。你也可以把 GPS 引脚接到其他空闲 UART 上作为 GNSS 端口、把罗盘或蜂鸣器接到 I2C 端口但这样做就需要手动配置端口。对于 DroneCAN GNSS/罗盘模块DroneCAN GPS 模块连接到标注为CAN1或CAN2的 4 针 CAN 总线端口。其他飞控/GNSS 模块如果你使用的飞控与 GNSS 模块组合不符合 Pixhawk 连接器标准需要特别注意两侧连接器的引脚定义pinout可能重新接线/焊接。警告有些飞控的端口在软件上兼容但连接器不兼容即使使用相同的连接器因为它们使用了不同的引脚排列顺序。连接器标准的引脚定义见标准文档本身其他飞控和 GNSS 模块的引脚定义应查阅厂商资料。五、GNSS 配置通过 GPS 串口连接的模块默认配置如下。设备级的额外配置可能由 PX4 或厂商文档提供例如 Trimble MB-Two 配置。主 GPS 配置UART在 Pixhawk 上主 GPS 对 U-Blox 模块是透明处理的——只需把 GPS 模块插到标注GPS1、GPSSAFETY或GPS只有一个端口时的端口即可。默认串口端口配置会将GPS1配置为 GPS 端口使用 GPS_1_CONFIG 指定端口GPS_1_PROTOCOL 将协议设为u-bloxSER_GPS1_BAUD 波特率设为0: Auto。对于 Trimble、Emlid、MTK 类型的 GPS需要相应修改GPS_1_PROTOCOL对Trimble MB-Two还需修改SER_GPS1_BAUD将波特率设为 115200。从 GPS 驱动参数定义 可以看到GPS_1_PROTOCOL/GPS_2_PROTOCOL的完整取值默认均为 1即 u-blox值协议说明0Auto detect自动探测会依次尝试所有协议速度略慢1u-blox默认值2MTKMediaTek 私有二进制协议3Ashtech / TrimbleRTK 常用4Emlid ReachERB 协议5Femtomes6NMEA (generic)通用 NMEA不会被自动探测命中自动探测的行为在源码中明确gps.cpp 的kAutoDetectModes[]数组按编译配置依次列出 UBX、MTK、ASHTECH、EMLIDREACH、FEMTOMES 五种可探测协议并附注释说明NMEA 被排除在自动探测之外因为它容易产生误检false-positive detections。这与 Kconfig 中GPS_NMEA的说明一致Never auto-detected: it must be selected explicitly viaGPS_x_PROTOCOLor the -p command line option。协议解析器本身由 Kconfig 开关控制编译src/drivers/gps/KconfigGPS_UBXu-blox 协议默认启用GPS_MTK/GPS_ASHTECH/GPS_EMLIDREACH/GPS_FEMTOMES/GPS_NMEA在非受限 Flash 平台上默认启用GPS_SPARTNSPARTN 修正数据封装如 u-blox PointPerfect默认关闭GPS_UBX_SPAN处理 UBX_MON_SPAN 频谱消息默认关闭。此外u-blox 接收机可通过 GPS_1_GNSS / GPS_2_GNSS 位掩码控制启用的 GNSS 系统bit 0 GPS含 QZSS、bit 1 SBAS、bit 2 Galileo、bit 3 BeiDou、bit 4 GLONASS、bit 5 NAVIC。全部为 0 时使用接收机出厂默认配置该功能目前仅对 u-blox 接收机实现见 params.yaml。从 GPS 配置UART使用从 GPS 时通常将其插到GPS2端口若存在否则接任意空闲 UART。该端口可能已预配置但与主端口不同不能保证已配置好。为确保端口设置正确执行一次串口端口配置将 GPS_2_CONFIG 分配给选定端口。以下以 QGroundControl 上GPS 2端口的配置步骤为例查找并设置 参数 GPS_2_CONFIG 为GPS 2打开 QGroundControl进入Vehicle Setup Parameters选择GPS选项卡打开GPS_2_CONFIG参数从下拉列表选择GPS 2。重启飞行器使其他参数可见。选择Serial选项卡打开 SER_GPS2_BAUDGPS 2端口波特率参数设为AutoTrimble 设为 115200。配置好第二个 GPS 端口后配置 ECL/EKF2 估计器融合两个 GPS 的数据源。详细步骤见 调优 ECL EKF 双接收机。GPS_2_PROTOCOL的取值范围与主端口相同但上界略小max 为 6见 params.yaml。DroneCAN GNSS 配置DroneCAN GNSS 的配置详见其专门文档以及具体模块的文档。将 GPS 配置为偏航/航向源当所用模块支持偏航输出时GPS 可用作航向融合源。相关说明见 RTK GPS 将 GPS 配置为偏航/航向源。从源码看双天线航向信息通过 SensorGps.msg 的heading、heading_offset、heading_accuracy字段传入估计器而 GPS_YAW_OFFSET 参数用于修正天线阵相对机体前向的固定安装角度0–360°顺时针增大默认 0。六、罗盘配置模块自带罗盘的校准见 罗盘配置。七、GNSS 数据总览PX4 使用大多数 GNSS 模块能提供的信息子集。这些数据写入 SensorGps uORB 消息作为估计器全球位置估计的输入同时通过 MAVLink 以GPS_RAW_INT、GPS2_RAW等消息流出。SensorGps 消息关键字段对照仓库中的 msg/SensorGps.msg 定义几个关键字段包括字段含义latitude_deg/longitude_deg/altitude_msl_m/altitude_ellipsoid_mWGS84 经纬度与海拔float64支持厘米级 RTK 精度fix_type定位类型1无、22D、33D、4RTCM 差分码、5RTK 浮点、6RTK 固定、8外推eph/epv水平/垂直位置精度米hdop/vdop水平/垂直精度因子satellites_used使用的卫星数jamming_state/spoofing_state/jamming_indicator干扰/欺骗检测状态Unknown/OK/Mitigated/Detectedheading/heading_offset/heading_accuracy双天线 GPS 的航向、安装偏移与精度vel_m_s/vel_n_m_s/vel_e_m_s/vel_d_m_s/cog_rad地速与 NED 速度、对地航向system_error接收机综合错误位掩码差分修正输入、配置、软件、天线、拥塞、CPU 过载等corrections_protocol/corrections_msg_used最近解析的修正数据协议RTCM3/SPARTN/HAS/PMP/QZSS L6及是否被使用antenna_offset_x/y/zGNSS 天线在机体坐标系中的安装偏移u-blox 接收机还可通过GPS_UBX_JAM_DET默认开启启用高灵敏度干扰检测并可通过GPS_SAT_INFO发布卫星信息、GPS_UBX_SPECTRUM需编译GPS_UBX_SPAN发布频谱分析数据见 params.yaml。DOP 与 EPH/EPV用于解读 GNSS 数据的常用术语DOPDilution of position无量纲衡量卫星几何构型质量及其对 GPS 解算精度影响的指标EPH米水平位置误差的标准差表示经度/纬度定位的不确定度EPV米垂直位置误差的标准差表示高度定位的不确定度。DOP vs EPH/EPVDOP 只反映基于卫星位置的潜在精度上限EPH/EPV 更综合——它们是 GPS 位置误差的直接估计同时考虑了卫星几何与信号噪声、大气效应等其他误差源。因此完全可能出现 DOP 很低卫星几何好而 EPH/EPV 仍然很高的情况存在明显信号噪声或大气干扰。EPH/EPV 更能即时、实用地反映当前条件下可预期的实际 GPS 精度。GNSS 位置融合与偏航对齐GNSS 位置融合position fusion在偏航对齐建立之前不会开始如果有磁罗盘可用EKF 用磁航向完成偏航对齐GPS 位置融合可在开机后很快开始如果没有磁罗盘系统必须依赖 GPS 偏航双天线方案或基于运动的偏航估计在这些手段提供有效航向之前EKF 不会启动 GPS 位置融合飞行器将保持无位置状态即使姿态数据有效。这一行为可以防止在偏航参考不确定时产生较大的位置误差。八、调试与开发者信息日志转储GPS_DUMP_COMM 设为 1 时全部 GPS 通信数据经 uORB 发布并写入日志gps_dump消息设为 2 时主 GPS 被配置为输出 RTCM 数据并记录可用于PPK后处理动态平台模型GPS_UBX_DYNMODEL 调整 u-blox 导航引擎的匹配模型PX4 默认值为 72g 加速度的空中平台取值 0便携式、2静止、3步行、4汽车、5海洋、6/7/8不同加速度等级的空中平台RTK/PPK 相关模式GPS_UBX_MODE 支持 0–8 多种模式涵盖双 F9P 航向模式、移动基准站、UART2 静态基准站、地面站 NMEA 输出、u-center 诊断口以及 Galileo HAS PPP 等PPK 工作流GPS_UBX_PPK开启 MSM7 消息输出配置擦除GPS_CFG_WIPE在开机时擦除 UBX 模块 Flash 中的持久配置避免 PX4 未覆写的残留参数在飞行中引发意外HITL 禁用从启动脚本 rcS 可见当SYS_HITL 0时飞控会执行param set GPS_1_CONFIG 0禁用 GPS 驱动防止 HITL 环境误用真实 GNSS开发向文档索引RTK-GPS、PPS 时间同步、GPS 驱动模块说明、PPS 驱动、DroneCAN 示例、u-center 诊断罗盘驱动源码位于src/drivers/magnetometer。九、关键参数速查参数作用默认值GPS_1_CONFIG主 GPS 所接串口端口功能分配由板级默认映射决定GPS_2_CONFIG从 GPS 所接串口0未配置GPS_1_PROTOCOL / GPS_2_PROTOCOL串口协议选择0自动1u-blox2MTK3Ashtech/Trimble4Emlid5Femtomes6NMEA1u-bloxSER_GPS1_BAUD / SER_GPS2_BAUD对应端口波特率0AutoGPS_1_GNSS / GPS_2_GNSS启用的 GNSS 系统位掩码u-blox0接收机默认GPS_UBX_DYNMODELu-blox 动态平台模型7GPS_UBX_MODEu-blox RTK/双 F9P 工作模式0GPS_DUMP_COMM通信数据日志/RTCM 转储0GPS_CFG_WIPE开机擦除 UBX Flash 配置0GPS_YAW_OFFSET双天线航向偏移角度0所有修改协议、波特率或接收机配置的参数都需要重启飞控后生效参数定义中标注reboot_required这也解释了从 GPS 配置流程中设置GPS_2_CONFIG后需重启的步骤要求。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐PX4 RTK GNSS/GPS 厘米级定位实战指南硬件选型、Survey-In 配置与 GPS 定向融合PX4 RTK GNSS/GPS 厘米级定位实战指南硬件选型、Survey In 配置与 GPS 定向融合 导读 本文基于 PX4 Autopilot 仓库的嵌入式物联网机器人自动驾驶智能硬件PX4-Autopilot 中的 Avionics Anonymous 激光测距仪 DroneCAN 接口硬件连接与 UAVCAN 参数配置指南PX4 Autopilot 中的 Avionics Anonymous 激光测距仪 DroneCAN 接口硬件连接与 UAVCAN 参数配置指南 本篇技术指南嵌入式物联网机器人自动驾驶智能硬件PX4 Autopilot 接入 LOCOSYS Hawk A1 双频多模 GNSS 接收机配置、接线与状态指示完全指南PX4 Autopilot 接入 LOCOSYS Hawk A1 双频多模 GNSS 接收机配置、接线与状态指示完全指南 本篇指南基于 PX4 官方文档 GP嵌入式物联网机器人自动驾驶智能硬件上一篇X-R1部署指南如何在云端和生产环境中运行强化学习训练下一篇Silero VAD ONNX 转换实战PyTorch 到跨平台推理的完整路径创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表