PX4 v1.15 版本发布指南:导航与估计器重构、ROS 2 动态模式及 Gazebo 仿真升级

发布时间:2026/10/3 17:30:54
PX4 v1.15 版本发布指南:导航与估计器重构、ROS 2 动态模式及 Gazebo 仿真升级
嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载PX4 v1.15 是继 1.14 之后的一次大规模功能与稳定性升级重点包括 EKF2 误差状态卡尔曼滤波Error-State Kalman Filter重写、状态估计器选择参数重构、ROS 2 动态模式Dynamic Modes API与全新的 PX4 ROS 2 接口库以及 Gazebo 正式取代 jMAVSim 成为默认仿真引擎。阅读本文后你将掌握从 1.14 升级到 1.15 的完整操作步骤、新估计器参数的配置方法、ROS 2 模式扩展方式以及本版本在硬件、传感器、仿真与各类机型控制上的全部变化点。版本概览v1.15 带来了大量新升级与修复其背景是 1.14 发布后社区的巨大反馈。本版本的核心投入方向包括面向开发者/集成者的中间件升级通过 ROS 2 与 uXRCE-DDS 中间件 使用 PX4 的体验显著改善全新的 PX4 ROS 2 接口库实验性允许以 ROS 2 应用编写的飞行模式成为 PX4 原生飞行模式的同级实体peer导航代码的大量改进与缺陷修复带来更顺畅的飞行体验和更直接的调试手段广泛的新硬件支持从传感器到驱动众多行业合作伙伴参与赞助。四大主要变化导航navigation能力重大改进新增与更新的硬件支持Dynamic Modes API——在 ROS 2 中动态注册飞行模式实验性的 PX4 ROS 2 接口库大幅简化从 ROS 2 控制 PX4 的流程。升级指南仿真引擎Gazebo 取代 jMAVSimGazebo已取代jMAVSim成为 PX4-Autopilot 的默认仿真引擎。若你仍在使用 jMAVSim建议迁移到 Gazebo官方后续的仿真开发资源将集中投向 GazebojMAVSim 已降级为 社区支持仿真器不再是官方 PX4 开发工具链的一部分从 1.15 起SITL 仿真中 Gazebo 与 PX4 两部分相互分离可以任意顺序独立启动甚至可跨网络运行在不同主机上Gazebo 侧还支持通过 GUI 的资源生成器resource spawner拖放模型。状态估计器选择参数重构SYS_MC_EST_GROUP参数已被移除取而代之的是三个独立的启用参数详见 状态估计器切换指南参数对应估计器说明EKF2_ENEKF2默认且推荐绝大多数带 GNSS/GPS 的机型应启用默认值为1见 src/modules/ekf2/module.yamlATT_ENQ 估计器基于四元数的互补滤波器无需 GPS、磁力计和气压计常用于多旋翼竞速机LPE_ENLPE已废弃deprecated且不支持固定翼配置原则必须且只能启用一个估计器。若同时启用多个则以第一个发布vehicle_attitude/vehicle_local_positionuORB 话题的为准若全部禁用则这些话题不会被发布。从源码看estimatorCheck.cpp 中 commander 会直接读取EKF2_EN参数param_find_no_notification(EKF2_EN)来决定本地位置估计的健康检查逻辑。注意仅 FMU-v2 需要针对性地编译包含所需估计器的固件如 EKF2make px4_fmu-v2LPEmake px4_fmu-v2_lpe因为 FMU-v2 资源有限无法同时包含两种估计器其他 Pixhawk FMU 版本均同时包含。状态估计EKF2重大改进v1.15 的估计模块经历了底层重写属于本版本技术含量最高的部分。误差状态卡尔曼滤波Error-State Kalman Filter推导EKF2 的推导方式从「总状态」total state改为误差状态error state主要优势收敛特性更好对初始航向精度的敏感度更低数值稳定性更强计算开销更小使用李群理论Lie group theory正确描述四元数不确定性。协方差更新与自动生成采用Joseph 稳定化协方差更新算法改善协方差稳定性并允许使用「consider states」具有非零方差的非活动状态见 [PX4-Autopilot#22770] 对应实现协方差预测、量测雅可比矩阵、状态结构与协方差索引改为使用SymForce自动生成。仓库中可看到完整的推导脚本与生成代码derivation.py 以及 generated 目录 下的predict_covariance.h、compute_mag_innov_innov_var_and_hx.h等头文件新增通过 MAVLink 命令MAV_CMD_EXTERNAL_POSITION_ESTIMATE进行手动位置更新新增辅助全局位置Auxiliary Global Position, AGP融合适用于例如外部地图匹配视觉算法的场景。在 EKF2_SENS_EN 位掩码中位 4~7 对应 4 个 AGP 融合源。磁力计相关改进新的磁力计模式 InitEKF2_MAG_TYPE该模式下磁力计仅用于初始化滤波器航向此后航向仅由陀螺预测与位置/速度更新如 GNSS估计。从 params_magnetometer.yaml 可见其取值值含义0Automatic默认地面时用磁航向融合飞行中用三轴磁场融合1Magnetic heading始终使用磁航向融合5None任何情况下都不使用磁力计6Init仅用于初始化航向磁力计检查重构EKF2_MAG_CHECK由位掩码控制位 0 为磁场强度检查容差用EKF2_MAG_CHK_STR位 1 为磁倾角检查容差用EKF2_MAG_CHK_INC位 2 为等待 GNSS 后使用 WMM 理论值。默认1仅强度检查关键参数如下均见 params_magnetometer.yaml参数默认值范围说明EKF2_MAG_CHK_STR0.2 gauss0 ~ 1.0磁场强度允许的最大偏差EKF2_MAG_CHK_INC20.0 deg0 ~ 90磁倾角允许的最大偏差其余磁力计改进还包括重做磁航向融合以正确考虑磁偏置与地磁场不确定性、允许在所有磁力计模式下估计磁偏置、改善 GNSS 辅助下初始航向不佳时的航向收敛速度。IMU 偏置估计改善陀螺与加速度计偏置估计的数值稳定性将 delta angle / delta velocity 偏置改为 accel / gyro 偏置。对应地EKF2_IMU_CTRL 位掩码的位 0/1/2 分别控制陀螺偏置、加速度计偏置与重力向量融合默认7全开。光流与偏航应急估计器光流起飞前即可运行方便台架测试偏航应急估计器Yaw Emergency Estimator改为误差状态推导以获得更优性能并且现在可以在起飞前运行以初始化 EKF 航向。导航失败预警新增「导航失败即将到来」的提前告警当位置误差估计达到触发导航失效保护阈值COM_POS_FS_EPH的 90%或仅低于 10m时向用户发送Estimated position error is approaching the failsafe threshold告警建议切换到手动模式。其实现见 estimatorCheck.cpp 的warnOfImminentPositionFailure()该函数在进入惯性/风感推算dead-reckoning状态后根据gpos.eph与临界阈值比较触发。导航与任务改进任务恢复增强恢复任务时可重放测绘survey任务中的云台与相机指令任务恢复保留飞行速度恢复时沿用此前航点的飞行速度导航即将失败时警告用户见上文Navigator 地理围栏Geofence改进Commander 改进当因检查失败而拒绝解锁arming时触发明确警告缩短失效保护警告文本。硬件支持更新本版本新增/更新了大量硬件支持Pixhawk 标准Pixhawk Autopilot BusPAB拆分 Base ID 与 FMUM IDFMUv6X增大 TELEM2 接收缓冲区以提升吞吐量新硬件FMUv6XRTPixhawk 6X-RT、MicoAir H743、ARK Mosaic-X5 RTK GPS、ARK Pi6X Flow功能为 Auterion 电源模块增加电源模块选择器灯光新增 LP5562 RGBLED 驱动Holybro为 KakuteH7 / KakuteH7v2 / KakuteH7mini 启用 EKF2Cubepilot新增对 Orange 第 4 版的支持3DRControl Zero Classic 支持改进。上述硬件对应固件目标均可在仓库 boards 目录中找到例如 boards/ark/pi6x、boards/micoair/h743、boards/px4/fmu-v6xrt 等。传感器改进NXP UWB SR150 驱动修复Septentrio GPS 更新u-blox 新增UBX-RXM-RTCM报文用于 RTCM 输入状态新增 TDK IIM42653 IMU 驱动空速传感器配置简化使其与其他传感器的配置方式一致。新增参数SYS_HAS_NUM_ASPD与FW_USE_AIRSPD详见下文固定翼部分相关实现在 airspeedCheck 中logger记录全部 GPS 数据。仿真改进Gazebo新增 Advanced Plane 机型提供比普通固定翼更真实的空气动力学仿真PX4_SIM_MODEL环境变量用于指定仿真机型取代已废弃的PX4_GZ_MODELGazebo 与 PX4 SITL 分离可独立、任意顺序启动甚至跨网络运行在不同主机Gazebo 支持通过 GUI resource spawner 拖放模型默认加载 ApplyLinkWrench 插件允许用户指定 Gazebo Garden/Harmony 渲染引擎支持 SITL Gazebo 四旋翼尾座式 VTOL新增参数SIM_BAT_ENABLE用于启用/禁用 PX4 内部电池仿真器gz-bridge 修复慢启动仿真的超时问题。网络与中间件以太网默认 IP 变更以太网默认静态 IPDHCP 失败时的回退地址从192.168.0.3改为10.41.10.2以避免与路由器常用的192.168.0.x网段冲突WiFi/以太网。详见 以太网配置。uXRCE-DDS 接口DDS Topics YAML现在允许使用subscription_multi指定某些 ROS 2 话题发送到专为 ROS 2 保留的独立 uORB 话题实例。这样 PX4 可以区分来自 ROS 的更新与来自 PX4 自身 uORB 发布者的更新ROS 2 用户可自行决定发送给 PX4 的消息是与现有 uORB 话题重叠还是保留在独立实例中VOXL 从 microdds client 迁移到 UXRCE-DDS client新增参数UXRCE_DDS_SYNCT用于禁用 Agent 与 Client 之间的时间同步见 uxrce_dds_client/module.yaml。相关文档uXRCE-DDS 中间件、ROS 2 用户指南、Gazebo 仿真。MAVLink云台Gimbal修复自动 RC 与 MAVLink 模式切换。ROS 2 集成Dynamic Modes APIROS 2 用户现在可以通过动态模式 API 在运行时注册飞行模式使 ROS 2 侧实现的功能与飞控内部模式同级工作这是本版本 ROS 2 能力的基础。PX4 ROS 2 接口库实验性新增的 C 库含 Python 绑定大幅简化从 ROS 2 控制 PX4 的过程支持在 ROS 2 中新增与飞控上 PX4 模式同级的飞行模式模式行为与 FMU 内部模式一致可传播到地面站GCS并由用户选择提供解锁检查与模式需求arming checks and mode requirements接口集成进失效保护状态机。库内提供三个高层接口控制接口创建并动态注册用 ROS 2 编写的模式提供从高层导航任务到直接执行机构控制的各种设定值setpoint发送类导航接口允许 ROS 2 应用如 VIO 系统向 PX4 发送载体位置估计航点任务Waypoint Missions允许航点任务完全在 ROS 2 中运行。在既有 ROS 2 工作区中安装的典型流程cd $ros_workspace/src git clone --recursive https://github.com/Auterion/px4-ros2-interface-lib cd .. colcon build source install/setup.bash前提工作区内需有可用的 ROS 2 环境 且包含px4_msgs为保证兼容性PX4、px4_msgs与库均应使用最新的main分支。使用rmw_zenoh时该库要求 ROS 2 Jazzy 或更新版本不兼容 Humble 及更早版本。向 PX4 提交 PR 时CI 会运行该库的集成测试验证模式注册、失效保护与模式替换是否正常详见 PX4 ROS 2 接口库集成测试。另外offboard 模式 下的ROS 2 offboard 控制现在支持直接控制电机与舵机同时新增多旋翼 Go-to 接口。平台机型改进多旋翼新模式实验性Throw launch 抛飞启动——将多旋翼抛入空中即可启动新模式Position Slow Mode 慢速位置模式——位置模式的减速版最大水平/垂直速度与偏航角速度可通过参数、RC 旋钮/开关或 MAVLink 配置为更低值直升机新增尾舵机支持在新执行机构分配框架下恢复对共轴直升机的支持见 直升机文档改进多旋翼位置控制参数描述重写默认电机 PWM 限幅变化默认最小值/最大值改为 1100/1900µs原最小值从 900µs 改为 1000µs详见 ESC 校准文档。这是一个会影响既有机型的默认值变更升级后需重新检查电调设置。VTOL后过渡back-transition倾斜时间参数化并缩短整体时长新增参数VT_BT_TILT_DUR尾座式 VTOL在 Stabilized 模式下也加入自动俯仰斜坡pitch ramps前向推力辅助将 Descend 视为 Land 模式处理非指令下降 Quad-Chute 重构新增参数VT_QC_ALT_LOSS。固定翼空速传感器配置简化用SYS_HAS_NUM_ASPD取代CBRK_AIRSPD_CHK并将FW_ARSP_MODE更名为FW_USE_AIRSPD详见 无空速传感器 VTOL 配置无空速传感器即可解锁设置SYS_HAS_NUM_ASPD 0控制器不使用空速数据设置FW_USE_AIRSPD 0大动态风环境加固固定翼高动态风硬化姿态控制器清理FW TECS 参数更名FW_T_THR_DAMP→FW_T_THR_DAMPING、FW_T_I_GAIN_THR→FW_T_THR_INTEG语义已变化升级后需重新审视相关取值VTOL 高频率日志记录启用Acro 模式轴控制新增FW_ACRO_AXS_CTRL可禁用固定翼 Acro 模式中某些轴的速率控制见 fw_rate_control_params.yaml固定翼路径跟踪成为独立的控制器状态新增固定翼 PerformanceModel参数FW_S_CEILING服务升限。无人车RoverAion R1实验性面向 Roboclaw 电机控制器的 ESC 驱动附带构建说明并支持新的差速驱动无人车 Aion R1详见 Aion R1 文档为 px4/fmu-{v5,v5x,v6c,v6x} 新增专用的 Rover 构建变体。其他通用改进Bootloader新增强制擦除选项与 bootloader 版本信息uORB支持超过 255 个 uORB 消息类型实验性Zenoh Pico 支持进一步扩展了 DDS 之外的通信选项支持远程参数数据库新增平台无关的 UART 接口单向 Kill Gesture紧急停机手势可在任意时刻停止电机默认禁用详见 安全配置大型飞行器罗盘校准专为无法或不方便整体旋转的飞行器设计详见 罗盘校准。总结与升级建议PX4 v1.15 的核心价值可以归纳为三点估计与导航可靠性跃升EKF2 的误差状态重写、Joseph 协方差更新、SymForce 自动生成与 AGP 融合为后续飞行品质与定位精度改进打下基础ROS 2 一等公民化Dynamic Modes API 与 PX4 ROS 2 接口库让 ROS 2 开发者能够以飞控原生模式同等的地位扩展飞行模式仿真与工具链重心转移Gazebo 全面取代 jMAVSim仿真与 SITL 解耦更便于分布式开发与调试。从 1.14 升级时请特别关注以下必读变更SYS_MC_EST_GROUP已删除改用EKF2_EN/ATT_EN/LPE_EN三选一、固定翼空速相关参数更名CBRK_AIRSPD_CHK→SYS_HAS_NUM_ASPD、FW_ARSP_MODE→FW_USE_AIRSPD、TECS 参数更名、默认电机 PWM 限幅下限从 900µs 改为 1000µs以及以太网默认回退 IP 的变更。完整的 v1.14.0...v1.15.0 变更日志可在官方发布页面的 Changelog 部分查看。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐使用 Pixi 一键运行 ROS 2 Nav2 仿真Gazebo、RViz2 与 TurtleBot3 导航栈实战使用 Pixi 一键运行 ROS 2 Nav2 仿真Gazebo、RViz2 与 TurtleBot3 导航栈实战 本文以仓库 examples/ros2 n开发工具CLI包管理器任务调度PX4-Autopilot v1.16.0 版本发布详解双向 DShot、地面车重构、ROS 2 消息翻译与 Gazebo Harmonic 迁移PX4 Autopilot v1.16.0 版本发布详解双向 DShot、地面车重构、ROS 2 消息翻译与 Gazebo Harmonic 迁移 PX4 v嵌入式物联网机器人自动驾驶智能硬件无人机动态建模与仿真PX4-Autopilot与Gazebo联合仿真教程无人机动态建模与仿真PX4 Autopilot与Gazebo联合仿真教程 PX4 Autopilot是一款强大的开源无人机飞控软件支持多旋翼、固定翼等多种无嵌入式物联网机器人自动驾驶智能硬件上一篇GoogleTranslateIpCheck开源社区建设Issue模板与贡献指南设计下一篇Django-Vue3-Admin完全指南从入门到精通的企业级权限管理平台创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考