嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载PX4 的数据链路Data Link是飞行控制器与地面站、RC 遥控器之间交换遥测数据位置、速度、电量等与地面指令的无线电通道通常与用于手动操控的 RC 遥控链路使用不同的射频设备。本文以 Data Links 索引文档 为主线系统讲解 PX4 中 MAVLink 遥测通道的配置方法含默认端口映射与实例参数、主流数传电台选型与频率法规、FrSky / TBS CrossfireCRSF两种 RC 接收机遥测方案以及基于 Iridium/RockBlock 的高延迟卫星通信系统搭建并给出对应源码与配置路径作为依据。读完本文你将能够独立完成遥测链路的硬件接线、PX4 参数配置与故障排查。数据链路在 PX4 中的角色数据链路承担两类任务将飞行遥测位置、速度、电池状态等从飞控发送到地面站以及部分 RC 遥控系统并将地面指令回传飞行器。PX4 通过 MAVLink 协议 在无线链路上传输串行数据这一点在 docs/en/data_links/index.md 中被明确说明。从源码结构看PX4 的遥测生态由三部分组成MAVLink 通道管理位于 src/modules/mavlink通过MAV_X_CONFIG等实例参数把某个串口/网口绑定到特定的 MAVLink 配置非 MAVLink 遥测驱动位于 src/drivers/telemetry包括frsky_telemetryFrSky D/S.Port、iridiumsbdIridium 卫星调制解调器、hottHoTT和bstBetaflight等安全兜底数据链路丢失触发的 failsafe 行为由 docs/en/config/safety.md 中的参数如COM_DL_LOSS_T、NAV_DLL_ACT控制。MAVLink 遥测通道配置GCS/OSD/相机/云台/伴机地面站GCS、MAVLink OSD、MAVLink 相机、云台、Remote ID、伴机Companion Computer、ADS-B 接收机等 MAVLink 外设都通过独立的 MAVLink 数据流与 PX4 交互每种外设走不同的串口。详细配置方法见 MAVLink Peripherals其底层机制是先做 串口配置再通过MAVLink 实例参数绑定通道属性。MAVLink 实例MAVLink Instances概念每个 MAVLink 实例代表一套可施加到某个端口上的 MAVLink 配置。当前定义了 3 个实例用参数MAV_X_CONFIGX 0、1、2表示。实例编号只是抽象概念数字本身没有优先级含义任何实例都可以分配到任意端口。每个实例关联以下关键参数完整参数见 Parameter Reference MAVLink参数作用MAV_X_CONFIG为该实例设置串口UART可以是任意未使用端口如TELEM2、TELEM3、GPS2等MAV_X_MODE指定该实例的 MAVLink profile如 Normal、Onboard、OSDprofile 决定具体流式消息集合及其速率MAV_X_RATE设置该实例的最大数据速率字节/秒。这是所有单条消息流的合计速率当总速率超过该值时会降低各条消息的速率。默认值通常可用若遥测链路饱和、丢包过多可调低。值为0表示设为理论值的一半MAV_X_FORWARD是否把当前实例收到的 MAVLink 包转发到其他接口。例如用于在 GCS 与伴机之间转发消息使 GCS 能与连接在伴机上的 MAVLink 相机通信随后需要为MAV_X_CONFIG指定的串口设置波特率如SER_GPS1_BAUD、SER_TEL2_BAUD等具体取值取决于连接类型和外设能力。参数在 QGroundControl 中可用前通常需要重启 PX4。默认 MAVLink 端口映射PX4 出厂固件对常用端口做了默认映射见 Serial Port Configuration Default Port MappingTELEM1地面站遥测默认参数值MAV_0_CONFIGTELEM 1MAV_0_MODENormalMAV_0_RATE1200Bytes/sMAV_0_FORWARDTrueSER_TEL1_BAUD57600TELEM2伴机遥测默认参数值MAV_1_CONFIGTELEM 2MAV_1_MODEOnboardMAV_1_RATE0理论最大值的一半MAV_1_FORWARDDisabledSER_TEL2_BAUD921600ETHERNETPixhawk 5x 及以后带网口的硬件默认对接 GCS参数值MAV_2_CONFIGEthernet(1000)MAV_2_BROADCAST1MAV_2_MODE0Normal/GCSMAV_2_RADIO_CTL0MAV_2_RATE100000MAV_2_REMOTE_PRT14550GCSMAV_2_UDP_PRT14550GCS以太网场景的完整配置参见 PX4 Ethernet Setup。若需接入 MAVLink 相机Camera Protocol v2或 MAVLink 云台分别参见 MAVLink Cameras PX4 Configuration 与 Gimbal Configuration MAVLink Gimbal (MNT_MODE_OUTMAVLINK)。数传电台Telemetry Radios选型与法规数传电台为地面站如 QGroundControl与 PX4 飞行器之间提供无线 MAVLink 连接支持飞行中调参、实时查看遥测、动态修改任务等。PX4 支持多类数传电台见 Telemetry Radios/ModemsSiK 固件电台一般地任何带 UART 接口的电台都应可用SiK Radio、HolyBro SiK Telemetry Radio、HolyBro SiK Long Range、RFD900、ThunderFly TFSIK01已停产的 HKPilot、3DR 电台标记为del。PX4 与 SiK 协议兼容通常开箱即用可能需要更换合适的连接器WiFi 数传Telemetry Wifi通常覆盖距离较短但数据率更高更便于承载 FPV/视频流其优点是飞行器端只需购买一个电台单元假设地面站已有 WiFiJ.Fi 无线数传模块J.Fi Wireless Telemetry ModuleMicrohard 串行数传电台Microhard Serial含 ARK Electron 与 Holybro Microhard P900CUAV 串行数传电台CUAV P8XBee 串行数传电台HolyBro XBP9X 已停产。重要限制PX4不支持将 LTE USB 模块直接连接到飞控并通过互联网发送 MAVLink 流量但可以将 LTE 模块接到伴机上由伴机转发来自飞控的 MAVLink 流量参见 Companion Computer Peripherals Data Telephony (LTE)。允许使用的频段允许用于无人机的无线电频段在不同大洲、地区、国家甚至州之间各不相同选择数传电台时必须确认其频段在计划飞行区域合法。低功率 SiK 电台如 HolyBro 数传电台通常提供 915 MHz 与 433 MHz 两种版本。大致而言915 MHz 可用于美国433 MHz 可用于欧盟、非洲、大洋洲和亚洲大部分地区——但仍需核对本国/本州法律。FrSky 遥测S.Port / D.PortFrSky 遥测允许在兼容的 RC 遥控器上查看飞行器状态信息包括飞行模式、电池电量、RC 信号强度、速度、高度等部分遥控器还能提供语音和振动告警对低电量等 failsafe 警告特别有用。PX4 同时支持较新的S.Port和较旧的D.Port两种端口详见 FrSky Telemetry。硬件接线FrSky 遥测需要兼容 FrSky 的 RC 发射机、支持遥测的 FrSky 接收机、以及把接收机 Smart Port 连接到飞控 UART 的线缆。接线分机型Pixhawk FMUv4 及更早UART 与接收机遥测端口通常不兼容Pixracer 除外。S.Port 信号通常是反相的需要转换线缆把 S.Port 拆成非反相 TX/RX 再接入 Pixhawk UART若接收机提供非反相输出引脚可直接接 UART 的 TX 引脚Pixhawk FMUv5/STM32F7 及以后PX4 可以直接读取反相或非反相的 S.Port 信号无需特殊线缆Durandal 的 STM32H7 同理只需把 UART 的 TX 引脚接到 S.Port 的反相或非反相引脚即可PX4 会自动检测并处理两种类型。PX4 参数配置用 TEL_FRSKY_CONFIG 配置 FrSky 运行的串口无需设置波特率由驱动自行配置。通常使用TELEM 2Pixracer 除外它默认预配置为 FrSky 端口。若 QGroundControl 中看不到该参数说明固件里没有编译对应驱动需要按 Serial Port Configuration Parameter Not In Firmware 把以下驱动加入固件drivers/telemetry/frsky_telemetry其余无需额外配置FrSky 遥测在连接后自动启动并自动检测 D 或 S 模式。源码侧的实现印证从源码看frsky_telemetry.cpp 中的get_telemetry_flight_mode()函数把 PX4 导航状态映射为 FrSky 遥测的飞行模式整数编码Manual18、Altitude23、Position22、Mission27、Hold26、Return28、Acro19、Offboard24、Stabilized20、Takeoff25、Land29、Follow Me30这与文档中Tmp1消息的取值表完全一致UART 打开逻辑则位于 sPort_open_uart()设置 8-N-1、无硬件流控等串口参数。遥测消息S.Port 接收机传输以下 PX4 消息AccX/AccY/AccZ加速度计、Alt气压计高度相对 Home、Curr电流、Fuel设置了battery_capacity且smartport_fuel_percent ON时显示剩余电量百分比否则显示已消耗 mAh、GAltGPS 高度海平面为 0、GPS坐标、GSpdGPS 水平地速、Hdg航向正北为 0°、VFAS电池电压、VSpd垂直速度 cm/s、Tmp1飞行模式整数编码见上文、Tmp2GPS 信息最右一位为定位类型 0无、22D、33D其余数字为卫星数。PX4不支持标准的ASpd、A4两条 S.Port 消息。D.Port 接收机传输AccX/AccY/AccZ、Alt气压计高度初始为 0、Cels平均电芯电压、Curr、Fuel、Date通电时间、GAlt、GPS、GSpd、Hdg、RPM解锁时输出油门值否则输出电池容量Taranis 中叶片数需设为 12、Tmp1、Tmp2、VFAS、VSpd。兼容的 RC 发射机与接收机常用发射机包括 FrSky Taranis X9D Plus推荐、X9D、X9E、Q X7、Turnigy 9XR Pro上述发射机无需额外配置即可显示遥测数据。Taranis 系列OpenTX 2.1.6 或更新还可使用 LuaPilot 脚本自定义遥测显示界面脚本中建议修改local BattLevelmAh -1使用飞行器的电量计算和local SayFlightMode 0PX4 飞行模式没有配套 WAV 文件。兼容接收机见下表X 系列如 XSR、X8R 为推荐型号R、G 系列未经测试团队验证但理论上可用接收机遥控距离组合输出数字遥测输入尺寸重量D4R-II1.5kmCPPM (8)D.Port40x22.5x6mm5.8gD8R-XP1.5kmCPPM (8)D.Port55x25x14mm12.4gD8R-II Plus1.5km无D.Port55x25x14mm12.4gX4R1.5kmCPPM (8)Smart Port40x22.5x6mm5.8gX4R-SB1.5kmS.Bus (16)Smart Port40x22.5x6mm5.8gX6R / S6R1.5kmS.Bus (16)Smart Port47.42×23.84×14.7mm15.4gX8R / S8R1.5kmS.Bus (16)Smart Port46.25 x 26.6 x 14.2mm16.6gXSR / XSR-M1.5kmS.Bus (16) / CPPM (8)Smart Port26x19.2x5mm3.8gRX8R1.5kmS.Bus (16)Smart Port46.25x26.6x14.2mm12.1gRX8R PRO1.5kmS.Bus (16)Smart Port46.25x26.6x14.2mm12.1gR-XSR1.5kmS.Bus (16) / CPPM (8)Smart Port16x11x5.4mm1.5gG-RX81.5kmS.Bus (16)Smart Port 内置垂直速度计55.26178mm5.8gR910kmS.Bus (16)Smart Port43.3x26.8x13.9mm15.8gR9 slim10kmS.Bus (16)Smart Port43.3x26.8x13.9mm15.8g线缆与适配成品线缆适用于 Pixhawk FMUv4 及更早Pixracer 除外有 DF-13 兼容 PicoBlade 接头FMUv2/3DR Pixhawk、FMUv2/HKPilot32与 JST-GH 接头FMUv3/Pixhawk 2 The Cube、FMUv4/PixRacer v1两种版本DIY 线缆Pixracer 板载了 S.PORT 与 UART 信号转换电路其他板卡需要 UART 转 S.PORT 适配器如 FrSky FUL-1、SPC。各机型接线要点Pixracer 接 S.Port 接收机时将 TX/RX 线并接后接到接收机 S.port 引脚接 D.Port 接收机时 FS out→RX、FS in→TXPixhawk 3 Pro 可接到 TELEM4无需额外软件配置FMUv5 及以后直接接一个 UART TX 引脚多数其他板卡如 Pixhawk 1、mRo Pixhawk、Pixhawk2通过 TELEM2 UART 连接。TBS CrossfireCRSF遥测CRSF 是既能用于 RC 控制、也能在兼容 RC 发射机上获取飞行器遥测的双向协议由 Team BlackSheep 为其 Crossfire 遥控系统开发也被 ExpressLRSELRS采用。它只需一个 UART即可同时通信 RC 与遥测详见 CRSF Telemetry。若不需要遥测也可把 Crossfire 接到RCIN端口并让接收机使用 S.BUSCrossfire 系统本身也可作为数传电台使用。硬件接线将飞控 UART 的 TX/RX 接到接收机对应通道信号通常是非反相的可直接连接无需额外的反相电路但请查阅具体接收机手册TBS 接收机以 Nano RX 为例FC TX → Ch2FC RX → Ch1ExpressLRS 接收机FC TX → RXFC RX → TXVCC → VCCGND → GND。PX4 配置需自编译固件PX4 默认固件不包含 CRSF 协议支持必须自行编译并上传包含crsf-rc、移除rc_input的自定义固件搭建 PX4 开发环境 并进入PX4-Autopilot目录用boardconfig启动 PX4 board config 工具menuconfig例如 ARKV6X 目标make ark_fmu-v6x_default boardconfig在配置工具中进入drivers子菜单取消rc_input的*勾选进入RC子菜单启用crsf_rc保存退出编译固件make ark_fmu-v6x_default上传固件make ark_fmu-v6x_default upload或使用 QGroundControl 安装自定义固件见 Installing PX4 main, beta, or custom firmware设置参数RC_CRSF_PRT_CFG设为连接 CRSF 接收机的端口如TELEM1。该参数会把串口配置为 CRSF 协议注意某些串口已有默认的 串口映射 或 MAVLink 默认端口映射使用前需先解除——例如要用TELEM1/TELEM2需先修改MAV_0_CONFIG/MAV_1_CONFIG停止占用。无需设置波特率由驱动配置RC_CRSF_TEL_EN启用以激活 Crossfire 遥测。RC 通道映射与校准参见 Radio Control Setup。支持与不支持的遥测数据点CRSF 遥测数据点摘自 TBS Crossfire 手册包括1RSS/2RSS上行的两根天线 RSSI、RQly上行链路质量、RSNR上行信噪比、RFMD上行更新率04Hz、150Hz、2150Hz、TPWR上行发射功率、TRSS/TQly/TSNR下行信号强度/链路质量/信噪比、ANT仅调试、GPS/Alt/Sats/Hdg来自 TBS GPS 或飞控、RXBt电池电压、Curr电流、Capa累计消耗、Ptch/Roll/Yaw飞控姿态角、FM飞行模式、Alt相对起飞点的融合高度、VSpd垂直速度。注意GPS 传感器中的GAlt是相对平均海平面的 GPS 高度而Alt/VSpd是 PX4 融合的局部高度与爬升率相对估计器原点大致为起飞点。PX4 以 CRSF 气压高度帧发送这些数据因此尽管帧名是气压计数值并非原始气压读数。VSpd使用线性垂直速度形式需要较新的 EdgeTX2.9高度显示需要 EdgeTX 2.7.1 及以上。卫星通信Iridium/RockBlock 高延迟链路卫星通信系统可提供地面站与飞行器之间的长距离、高延迟链路。PX4 文档描述了以 RockBlock 作为 Iridium SBD 卫星通信系统服务提供商的完整搭建方案信号良好时延迟约 10~15 秒详见 Iridium/RockBlock Satellite Communication System。系统由三部分组成连接了 RockBlock 9603 模块的 Pixhawk刷 PX4 固件、运行 Ubuntu 的消息中继服务器、以及运行 QGroundControl 的 Ubuntu 地面站。RockBlock 9603 模块推荐用于其更小更轻RockBlock MK2 也可用。成本方面每个模块每月激活费 £10每条消息每 50 字节消耗一个 creditcredit 套餐价格约 £0.04~£0.11/个。机载端设置接线RockBlock 模块需通过高功率串口供电最大 0.5 A 5 V若没有空闲高功率串口需另设与 Pixhawk 共地的电源。模块可用内置天线或通过 SMA 接口的外接天线需移动小型 RF 链路线切换使用外接天线时务必先接天线再上电避免损坏模块。模块配置模块默认波特率为 19200而 PX4 的iridiumsbd驱动要求 115200需用 AT 指令修改以 19200/8-N-1 连接模块用AT确认通信正常应答应为OK修改波特率ATIPR9以 115200/8-N-1 重新连接并保存配置ATW0软件配置用 ISBD_CONFIG 配置 RockBlock 运行的串口无需设置波特率。若 QGroundControl 中无此参数需把驱动加入固件drivers/telemetry/iridiumsbd从源码结构看该驱动位于 src/drivers/telemetry/iridiumsbd包含IridiumSBD.cpp/.h调制解调器通信实现、iridiumsbd_params.yaml参数定义与module.yaml模块元数据。RockBlock 账户设置首次购买模块时需创建 RockBlock 账户在My RockBLOCKs下注册模块、激活月租并确保账户内有足够 credit默认设置下飞行器每分钟向地面站发送一条消息。随后为消息中继服务器创建 delivery group 并将模块加入其中。中继服务器搭建中继服务器建议运行 Ubuntu 16.04 或 14.04需静态 IP 和两个公网 TCP 端口5672RabbitMQ 消息代理可在 rabbitmq 设置中修改与45679HTTP POST 接口可在 relay.cfg 中修改安装 Python 模块sudo pip install pika tornado future安装消息代理sudo apt install rabbitmq-server配置代理凭据PWD 换成你的密码sudo rabbitmqctl add_user iridiumsbd PWD与sudo rabbitmqctl set_permissions iridiumsbd .* .* .*克隆 SatComInfrastructure 仓库并配置队列./setup_rabbit.py localhost iridiumsbd PWD验证sudo rabbitmqctl list_queues应列出MO、MO_LOG、MT、MT_LOG四个队列编辑relay.cfg并以后台方式启动中继脚本screen -dm bash -c cd SatcomInfrastructure/; ./relay.pyctrla d脱离、ctrla :quit终止、screen -dr重新附着地面站设置与验证地面站同样安装pika tornado future、克隆 SatComInfrastructure 仓库、编辑udp2rabbit.cfg然后安装 QGroundControldaily build并添加 UDP 连接Listening port:10000Target hosts:127.0.0.1:10001High Latency: 勾选验证步骤运行./udp2rabbit.py在 RockBlock 账户的Test Delivery Groups标签页向 delivery group 发送测试消息若几秒内终端显示消息确认acknowledge说明 delivery group、中继服务器与 udp2rabbit 脚本配置正确。运行与链路优先级启动 QGroundControl 后先手动连接高延迟链路、再连接常规遥测链路启动udp2rabbit.py给飞行器上电等待 QGC 收到第一条HIGH_LATENCY2消息可通过 MAVLink Inspector 组件或工具栏 LinkIndicator 检查。链路优先级规则用户未指定时常规无线电遥测链路优先于高延迟链路当飞行器已解锁且常规遥测链路丢失一段时间未收到 MAVLink 消息时飞控与 QGC 会回退到高延迟链路链路恢复后自动切回用户可通过工具栏 LinkIndicator 手动选择优先级链路。卫星链路故障排查能收到飞行器消息但无法下发命令飞行器无反应检查中继服务器设置尤其是 IMEI地面站收不到任何卫星消息用系统控制台执行iridiumsbd status检查驱动是否启动、模块是否收到卫星信号验证中继服务器、delivery group 与udp2rabbit.py配置检查链路是否连接及设置是否正确IridiumSBD 驱动不启动重启飞行器若有效增大extras.txt中驱动启动前的休眠时间确认 Pixhawk 与模块共地、模块波特率为 115200地面能收到首条消息但飞行中无法发送或延迟明显增大分钟级飞行后检查信号质量若飞行中持续下降且使用内置天线考虑换外接天线外接天线尽量远离电子设备与干扰源并确认天线无损坏。数据链路丢失 Failsafe安全兜底数据链路丢失 failsafe 在到最后一个 MAVLink 地面站如 QGroundControl的连接丢失时触发详见 Safety Configuration Data Link Loss Failsafe。关键参数设置参数说明数据链路丢失超时COM_DL_LOSS_T丢失数据连接后触发 failsafe 前的等待时间Failsafe 动作NAV_DLL_ACTDisabled、Hold、Return、Land、Disarm、Terminate模式例外COM_DLL_EXCEPT在这些模式下忽略数据链路丢失大多数 failsafe 被触发后会先进入 Hold 模式并保持 COM_FAIL_ACT_T 秒再执行关联动作给用户接管时间。当多个 failsafe 同时触发时取更严重的动作执行例如 RC 与 GPS 同时丢失且分别配置为 Return 与 Land 时执行 Land。总结PX4 的数据链路体系覆盖从短距离高频的 MAVLink 遥测实例化串口/网口配置、默认端口映射、中距离的数传电台SiK/WiFi/Microhard 等注意频段法规到 RC 接收机遥测FrSky S/D.Port、CRSF/ELRS其中 CRSF 需要自编译固件再到超远距离的 Iridium/RockBlock 卫星链路含中继服务器与地面站搭建。配置的共通要点是先通过串口配置把协议绑定到正确的 UART 并解除默认 MAVLink 映射再设置实例参数与波特率或由驱动自管最后用参数启动对应驱动。配合 Data Link Loss Failsafe 兜底可构建完整的遥测与指令链路。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐ArduPilot 卫星遥测接入实战使用 RockBlock 9704 SBD 调制解调器传输 MAVLink 遥测ArduPilot 卫星遥测接入实战使用 RockBlock 9704 SBD 调制解调器传输 MAVLink 遥测 导读 RockBlock 9704 是嵌入式无人机自动驾驶机器人固件PX4 图传链路实战基于 WFB-ng 的 WiFi 原始模式Raw Mode视频与遥测数据链PX4 图传链路实战基于 WFB ng 的 WiFi 原始模式Raw Mode视频与遥测数据链 本指南围绕 PX4 无人机机载机companion co嵌入式物联网机器人自动驾驶智能硬件卫星遥感数据处理利器Satpy库完全指南 - 从入门到精通Satpy是一个强大的Python库专门用于处理地球观测卫星数据。这个开源项目提供了完整的遥感数据处理解决方案让科研人员和开发者能够轻松读取、处理和可视化各创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考