资讯动态

PX4 v1.14 版本升级指南:动态控制分配、新安全机制与 ROS 2 uXRCE-DDS 迁移

发布时间:2026/10/3 8:15:09 来源:尧图企业网站定制
嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载PX4-Autopilot v1.14 是一次面向飞行控制架构的重大版本升级它用动态控制分配取代了沿用多年的 mixer 混控文件体系简化了失效保护状态机并引入了可视化仿真同时用 uXRCE-DDS 全面替换了 Fast-RTPS 桥接以改善 ROS 2 集成体验。本文以官方 1.14 Release Notes 为骨架结合当前仓库源码与配置逐项拆解这些改动背后的原理与升级操作帮助你在升级前完成风险评估、升级后快速完成舵机/电机映射重配与 ROS 2 代码迁移。升级前必读v1.14 的两项破坏性变更v1.14 对从旧版本升级的用户包含两项破坏性变更升级前务必了解混控体系变更PX4 不再依赖 mixer 文件来定义飞行器几何结构、电机映射与执行机构actuator。取而代之的是运行时可配置的动态控制分配用户可以在 QGroundControl 的 Actuator 配置面板中直接定义机身几何与输出映射。ROS 2 接口替换Fast-RTPS 接口被弃用改用更干净的 uXRCE-DDS 方案。这一改动消除了自定义构建目标_rtpsbuild target以及额外的消息生成步骤接口默认在更多目标板上可用。下文将先梳理五项主要变更再给出逐项的升级操作与源码级原理说明。主要变更总览变更一句话说明动态控制分配Dynamic Control Allocation无需 mixer 文件即可在运行时定义飞行器几何与电机/舵机映射改进的预飞失败检查报告QGC Arming Check Report通过 events 接口提供更详细的解锁失败原因报告失效保护简化与仿真Failsafe Simplification and Simulation引入 hold 延迟、更严重动作优先策略与在线仿真工具默认仿真切换到新 GazeboGazebo新取代 Ignition Gazebo 命名构建目标改为gz_前缀基于 uXRCE-DDS 的 ROS 2 接口取代 Fast-RTPS免去_rtps自定义构建目标动态控制分配告别 mixer 文件动态控制分配是 v1.14 最核心的架构升级。PX4 的核心控制器姿态/角速率控制器只输出期望的力矩与推力指令由控制分配层根据机身几何把指令换算成电机/舵机命令。在 v1.13 及更早版本中这一混控逻辑依赖 mixer 文件v1.14 起改由 control_allocator 模块 根据配置参数在运行时完成。从源码结构看控制分配模块的核心参数包括CA_AIRFRAME机身几何类型多旋翼、固定翼、标准 VTOL、倾转旋翼、尾座式等CA_METHOD分配算法与去饱和desaturation方法可设为 Automatic此时按CA_AIRFRAME自动选择CA_FAILURE_MODE电机故障时的降级策略CA_R_REV与CA_REV_THR_FRAC可反转reversible电机相关参数CA_ICE_PERIOD桨叶结冰检测ICE shedding周期参数。这些参数的完整定义位于 src/modules/control_allocator/module.yaml其 schema 在 validation/module_schema.yaml 中可搜索mixer:键。当你在 QGC 中选定某个新机型后CA_AIRFRAME会被自动设置为对应值例如CA_AIRFRAME 1固定翼CA_AIRFRAME 2标准 VTOLCA_AIRFRAME 3VTOL 倾转旋翼CA_AIRFRAME 4VTOL 尾座式含 Quad-tailsitterCA_AIRFRAME 5Ackermann 地面车CA_AIRFRAME 8带倾转机构的通用多旋翼。这些默认值可以在各机型的初始化脚本中直接看到例如 13200_generic_vtol_tailsitterparam set-default CA_AIRFRAME 4 param set-default CA_ROTOR_COUNT 2 param set-default CA_ROTOR0_KM -0.05 param set-default CA_ROTOR0_PY 0.2 ...控制分配流水线控制分配流水线可概括为角速率控制器输出力矩与推力设定值control_allocator模块根据配置参数处理不同几何、完成混控、处理电机故障并发布电机/舵机控制信号舵机 trim 单独发布以便在执行机构测试Actuator Testing中用滑块叠加偏移输出驱动output drivers完成硬件初始化与更新使用共享库 src/lib/mixer_module 按param_prefix_FUNCx参数把输出函数映射到具体物理端口。例如PWM_MAIN_FUNC3设为 Motor 2 时第 3 路输出即输出actuator_motors主题中的第 2 号电机数据输出函数的枚举定义在 src/lib/mixer_module/output_functions.yaml。若想从 MAVLink 直接控制某个输出可将对应输出函数设为Offboard Actuator Set x再发送MAV_CMD_DO_SET_ACTUATOR命令。关于混控的整体流程可参考架构图 docs/assets/diagrams/mixing_overview.png。在 QGC 中完成几何与输出配置新的 Actuator 配置界面QGroundControl 4.2.0 及以上分为三个区域详见 Actuator Configuration and TestingGeometry几何配置所选机型的电机数量、相对位置与属性以及舵面、倾转舵机的数量与属性。电机位置采用 FRD 机体坐标系X 向前、Y 向右、Z 向下原点为飞行器重心COG注意重心未必等于飞控安装位置多旋翼可配置Position X/Y/Z米、Direction CCW旋向、Bidirectional可反转电机、Slew Rate输出速率限制等字段标准 VTOL 电机多一个Axis字段Upwards/Downwards/Forwards/Backwards/Leftwards/Rightwards/Custom用于指明电机推动机身的方向倾转旋翼 VTOL 的电机有Tilted by字段关联对应的倾转舵机。Actuator Outputs输出映射把电机、舵面与其他执行机构分配到具体的飞控输出端口并指定 ESC 类型。Actuator Testing执行机构测试用滑块验证电机转速与舵面偏转方向和预期一致滑块可用来确认电机接线是否正确。要点提示默认只显示常用设置勾选右上角Advanced复选框可显示全部配置项。升级操作一核对机身几何与电机/舵机映射升级到 v1.14 后请按以下步骤操作在 QGC 中打开Actuator Configuration DashboardQ菜单 Vehicle Setup Actuators。核对机身几何是否与实物一致包括电机数量、位置FRD 坐标相对重心以及舵面配置。核对电机与舵机到输出的映射是否与实机接线一致并选择正确的 ESC 类型。善用界面中的滑块它们可以用来确认电机接线每个滑块对应一路输出。如果使用 PWM ESC 电机强烈建议执行一次 ESC Calibration然后在 Actuator 界面中设置合适的解锁后最小/最大 PWM 值。以下几点需要特别留意如果你此前使用了自定义 mixer 文件或者旧版本分配的机型在 v1.14 中已不存在ESC 校准是必须的即使你选用的机型与 Airframe Reference 中的某个机型例如 Holybro X500 V2完全一致也仍然建议执行 ESC 校准因为你的实际接线和 ESC 标定很可能与默认值不一致。注意默认解锁后 PWM从 900us 变为 1000usv1.14 将默认的解锁后disarmedPWM 从 900us 改为 1000us。如果你此前直接使用默认的 disarmed PWM 值请确认这一变化是否影响你的设备。相关细节见 ESC 校准文档第 7 步。这一默认值变更与 Default motor PWM configurationPX4-Autopilot#21800以及 Fix PWM/Oneshot calibrationPX4-Autopilot#21726等改动有关属于常见 PWM 配置的默认值调整。升级操作二了解改进的预飞失败检查报告v1.14 通过 events 接口 大幅改进了预飞失败检查的报告能力。当飞行器无法解锁时QGC 的Arming Check ReportQGC Daily Build即 v4.2.0 及以后版本可用会直接告诉你失败原因——不再需要猜测是安全开关、标定不良还是估计器内部问题。与这一改动相关的行为变化解锁状态下现在可以切换到任意模式旧版本中若没有良好的位置估计则无法切换到需要 GPS 的模式PX4 只会在当前模式所需条件满足时才允许解锁与当前模式无关的失败检查项会以警告形式报告。更详细的说明参见 QGroundControl Flight-Readiness Status。升级操作三掌握简化后的失效保护状态机Safety Failsafe 处理逻辑在 v1.14 中做了简化核心变化有两点Hold 延迟动作执行前存在 hold 延迟由参数 COM_FAIL_ACT_T 控制单位为秒给用户留出覆盖override失效保护的时间。在 hold 期间可以通过 RC 或地面站切换模式来覆盖注意此时推动 RC 摇杆本身并不会触发覆盖。更严重的动作优先多个失效保护同时触发时取更严重的动作。例如 RC 与 GPS 同时丢失若手动控制丢失设置为 Return返航、GCS 链路丢失设置为 Land降落则最终执行 Land。所有失效保护动作按严重程度递增排列如下不同失效保护不一定支持全部动作动作说明None/Disabled无动作失效保护被忽略Warning发送警告消息例如发送到 QGCHold mode进入悬停多旋翼或盘旋固定翼VTOL 按当前模式保持Return mode进入返航模式返航行为可在 Return Home Settings 中配置Land mode进入降落模式VTOL 先切换到多旋翼模式再降落Disarm立即停转电机Flight termination关闭所有控制器所有 PWM 输出置为失效保护值如 PWM_MAIN_FAILn可用于展开降落伞、放下起落架等用 Failsafe State Machine Simulation 验证行为新增的 Failsafe State Machine Simulation 可以在浏览器中实时运行与机载完全相同的失效保护状态机代码自动与最新代码保持同步用于在所有可能的配置与条件下测试失效保护行为。注意任何延迟动作COM_FAIL_ACT_T也会在仿真中被延迟。使用方法在左侧配置参数初始值对应 PX4 默认值设置飞行器类型在State或Conditions下设置状态与条件标志Intended Mode对应通过 RC/GCS/外部脚本指令的模式状态机会在失效保护时覆盖它查看Output中的动作尝试切换模式或推动 RC 摇杆观察行为变化调整不同设置与条件进行验证。也可以在本地运行指定版本或改动后的仿真make run_failsafe_web_server升级操作四默认仿真切换到新 Gazebo由于 Open Robotics 对 Gazebo 的命名调整v1.14 起 PX4 的仿真命名同步变更Ignition Gazebo→Gazebo文档见 sim_gazebo_gzGazebo→Gazebo Classic文档见 sim_gazebo_classic。这主要影响 PX4 的构建目标名称新 Gazebo 目标以gz_为前缀例如make px4_sitl gz_x500Gazebo Classic 目标以gazebo-classic_为前缀例如make px4_sitl gazebo-classic_cloudship。仿真相关补充进展还包括PX4 在 Ignition Fuel 上建立了官方模型仓库https://app.gazebosim.org/PX4GazeboGarden增加了原生 ignition transport 支持可直接与仿真交互支持的机型包括 X500多旋翼、Plane 与 Standard VTOLGazebo Classic 侧则新增了 Omnicopter全向驱动模型、基于 AVL 的 Advanced liftdrag 空气动力学插件、安全降落世界safe landing world以及作为 ros2 插件的电机故障插件。另外原来属于 SIH 的机载传感器仿真已独立为通用传感器仿真模块磁力计、GPS、气压计、空速等相关实现位于 src/modules/simulation/sensor_airspeed_sim并支持电池仿真故障注入。升级操作五Fast-RTPS 到 uXRCE-DDS 迁移v1.14 用 uXRCE-DDS 取代了 v1.13 的 Fast-RTPS 桥接micro-RTPS整体集成体验显著改善不再需要_rtps构建目标也不再需要额外的消息生成步骤接口默认在更多目标上可用。架构速览uXRCE-DDS 中间件由两部分组成uxrce_dds_client运行在 PX4 上构建时由代码生成器根据msg目录下的 uORB 消息定义生成默认包含在固件中但除仿真构建外默认不会自动启动Micro XRCE-DDS Agent运行在配套计算机companion上作为客户端在 DDS 数据空间中的代理负责发布/订阅全局 DDS 主题。二者通过串口、UDP、TCP 或自定义链路双向交换数据。PX4 侧发布的 uORB 主题子集由 src/modules/uxrce_dds_client/dds_topics.yaml 指定。ROS 2 应用需要在包含相同消息定义的工作空间中构建消息定义来自px4_msgs接口包仓库分支与不同 PX4 版本对应。迁移要点主题命名变化Fast-RTPS 用户必须把代码迁移到新的 uXRCE-DDS 接口应用代码通常只需少量修改最少包括主题命名变化发布主题/fmu/topic_name/outFast-RTPS→/fmu/out/topic_nameuXRCE-DDS订阅主题/fmu/topic_name/inFast-RTPS→/fmu/in/topic_nameuXRCE-DDS。例如 Fast-RTPS 下的fmu/vehicle_odometry/out在 v1.14 中应写作fmu/out/vehicle_odometry。uXRCE-DDS 的默认命名空间为PX4 发布的主题用/fmu/out/PX4 订阅的主题用/fmu/in/见 dds_topics.yaml 结构说明。如果你确实想沿用旧命名也可以编辑dds_topics.yaml改回旧约定但推荐直接更新应用代码。QoS 设置调整需要按照 ROS 2 Subscriber QoS Settings 调整 QoS 设置确保与 PX4 发布端的 QoS 匹配。更多细节见 Fast-RTPS to uXRCE-DDS Migration Guidelines。迁移后原先用于同步桥接主题列表的update_px4_ros2_bridge.sh脚本已不再需要。其他值得关注的变更硬件支持Cubepilot Cube Orange 支持PX4-Autopilot#20304Holybro Unicore UM982 GPS 支持PX4-Autopilot#21214VOXL2 支持改进PX4-Autopilot#21426修复 Cube Black 与 Pixhawk 2 在连接 CAN1 时的检测问题PX4-Autopilot#21342。通用与消息任务中的载荷投递Package delivery in mission为夹爪gripper执行机构增加了任务中投递载荷的初始支持manual_control_setpoint消息重新定义x、y、z、w改为roll、pitch、yaw、throttle且 throttle 量程从[0,1]变为[-1,1]PX4-Autopilot#15949。控制任务中着陆后不解除武装只要任务未完成修复了着陆即断电导致任务中断的问题PX4-Autopilot#19659轨迹设定值消息独立从vehicle_local_position_setpoint消息中拆分出独立的 trajectory setpoint 消息PX4-Autopilot#19622修复起飞/模式切换时的 Invalid setpoint 误报PX4-Autopilot#20581修复 Altitude→Position 模式切换时的速度阶跃问题PX4-Autopilot#20905。估计Estimation支持多个高度源融合Multiple height source fusionEKF2 可在无磁力计与气压计数据的情况下启动此前二者为运行 EKF2 的强制条件PX4-Autopilot#20021多旋翼风估计改进更精确的钝体阻力bluff body drag模型PX4-Autopilot#20848。传感器DroneCAN 传感器现在需要通过UAVCAN_SUB_*参数逐个启用见 DroneCAN 订阅/发布PX4-Autopilot#18471电池估计默认值与报告改进默认启用基于电流的负载补偿、更高的空载截止电压、更短的动作延迟PX4-Autopilot#19429 等新增 SF45 旋转激光雷达串口驱动PX4-Autopilot#19891。MAVLink默认通过 USB 转发 MAVLink 流量PX4-Autopilot#20745。多旋翼Follow-Me 模式改进提升用户体验PX4-Autopilot#18026直升机支持改进Helicopter Configuration基于方向的速度限制可为多旋翼分别定义前向、后向与侧向速度PX4-Autopilot#19257允许在 Hold 模式下偏航PX4-Autopilot#21399。VTOLQuad-chute 故障状态复位操作员再次触发转固定翼FW时复位故障状态PX4-Autopilot#20913简化尾座式在 Stabilized 模式下向 FW 的过渡根据配置的最大倾转设置自动调整倾斜阈值PX4-Autopilot#21582重构非指令下降 Quad-Chute可设置高度误差阈值来触发 Quad-chutePX4-Autopilot#21598支持无舵面的 Quad-tailsitter在尾座式 FW 模式下使用差速推力控制机体全姿态PX4-Autopilot#20511已在空中时跳过VTOL_Takeoff任务项PX4-Autopilot#19985。固定翼襟翼/扰流板重构PX4-Autopilot#19329FW 位置控制从 L1 制导切换为 NPFG 制导PX4-Autopilot#19603在空中自动应用已学习的空速比例PX4-Autopilot#19787起飞重构/增强PX4-Autopilot#19869与 FW 降落重构/增强PX4-Autopilot#19871FW 位置控制支持按风速大小缩放最小空速PX4-Autopilot#20259改进 FW 手抛起飞PX4-Autopilot#20557与加速失速保护PX4-Autopilot#20636增加禁用手动偏航输入选项PX4-Autopilot#20647由于空速速率估计不可靠暂时禁用空速速率输入到 TECSPX4-Autopilot#21317TECS 增加空速到巡航油门trim throttle映射支持以不同空速飞行PX4-Autopilot#21345修复 FWPositionControl 航点导航中已越过航点时的逻辑问题PX4-Autopilot#21642。升级检查清单升级到 PX4 v1.14 前建议按以下清单逐项确认在 QGC≥ v4.2.0的 Actuator 面板中核对机身几何与电机/舵机输出映射必要时使用滑块验证接线PWM ESC 用户执行 ESC Calibration并在 Actuator 界面中设置合理的解锁后最小/最大 PWM 值注意默认 disarmed PWM 已从 900us 改为 1000us自定义 mixer 文件用户确认目标机型在 v1.14 中的对应 airframe并在 QGC 中重新定义几何ROS 2 用户把主题命名从fmu/topic/out迁移为fmu/out/topic并按 迁移指南 调整 QoS利用 Failsafe State Machine Simulationmake run_failsafe_web_server可本地运行验证你的失效保护配置在各类故障组合下的行为是否符合预期。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐PX4 与 ROS 2 深度集成实战uXRCE-DDS / Zenoh 中间件、消息桥接与机外控制PX4 与 ROS 2 深度集成实战uXRCE DDS / Zenoh 中间件、消息桥接与机外控制 本篇技术指南以 PX4 Autopilot 仓库中的 RO嵌入式物联网机器人自动驾驶智能硬件PX4 uXRCE-DDS 桥接详解PX4-ROS 2/DDS 通信中间件架构、配置与实战指南PX4 uXRCE DDS 桥接详解PX4 ROS 2/DDS 通信中间件架构、配置与实战指南 PX4 使用 uXRCE DDSMicro XRCE DDS嵌入式物联网机器人自动驾驶智能硬件PX4 ROS 2 通信架构与实战指南从 uXRCE-DDS/Zenoh 中间件选型到机载控制开发PX4 ROS 2 通信架构与实战指南从 uXRCE DDS/Zenoh 中间件选型到机载控制开发 导读 本文基于 PX4 Autopilot 仓库的 ROS嵌入式物联网机器人自动驾驶智能硬件上一篇IronOS项目TS80/TS80P焊台固件刷写指南下一篇如何用hello-pangea/dnd实现虚拟列表支持10,000项目的60fps流畅拖拽创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑