PX4 与 Gazebo 仿真环境复现
复现既有 PX4 v1.16.2 仿真环境时的版本边界、最小检查步骤和迁移原则。
- 问题
- 复现既有 PX4 v1.16.2 仿真环境时的版本边界、最小检查步骤和迁移原则。
- 环境
- PX4 · Gazebo · SITL · ROS2
- 状态
- 待发布
- 首次发布
- 2026年8月8日
- 最后更新
- 2026年8月10日
- 预计阅读
- 3 分钟
警告:历史环境,不是新项目模板 本文保留给既有 PX4 v1.16.2 工程的复现和排障。ROS 2 Foxy 已结束支持,Gazebo Classic 已结束维护;新部署应从 PX4 开发环境说明 和 PX4 仿真文档 选择当前受支持的 Ubuntu、ROS 2 与现代 Gazebo 组合。
先固定版本矩阵
仿真问题往往来自版本混用,而不是某一条命令。复现旧工程前,把 PX4 标签、操作系统、Gazebo 代际、ROS 2 发行版和桥接方式记录到同一份环境文件中。历史记录中常见的两种组合如下:
| 目的 | 组合 | 生命周期 |
|---|---|---|
| 复现旧工程 | Ubuntu 20.04、ROS 2 Foxy、Gazebo Classic 11 | 仅限隔离复现 |
| 过渡期 WSL2 环境 | Ubuntu 22.04、PX4 v1.16.2、Gazebo Harmonic | 先按当前 PX4 文档复核 |
不要把 Gazebo Classic 的命令、插件或模型目录复制到现代 Gazebo 环境,也不要在同一个终端中叠加 Foxy 与其他 ROS 2 发行版。
最小复现步骤
- 从项目记录中的标签检出 PX4 源码,并保留提交号或版本标签。
- 按该标签对应的 PX4 文档安装依赖;不要通过来历不明的 HTTP 脚本以高权限执行安装。
- 先启动不含 ROS 2 桥接的 SITL,确认飞行器模型、仿真时钟和控制台正常。
- 再接入 ROS 2,检查 DDS Agent、消息类型和发布频率。
- 最后记录能复现的启动命令、模型、话题和验证现象,而非只记录“安装成功”。
验证清单
# 以下命令仅用于观察,不替代项目对应的启动命令ros2 topic listros2 topic echo <topic>ros2 topic hz <topic>重点核对:SITL 是否运行、仿真器是否连接、桥接组件是否在线、预期话题的类型是否一致,以及控制指令是否在安全的仿真模型中产生预期状态变化。
迁移原则
旧环境能启动不代表它适合继续开发。迁移时先从当前 PX4 ROS 2 用户指南 确认通信接口,再逐步替换操作系统、ROS 2 和仿真器。每次只改变一个版本维度,并保留前一组可工作的锁定依赖,避免出现无法归因的组合问题。
ROS 2 工作空间的构建与测试步骤见 ROS 2 工作空间编译与运行。