在 Isaac Sim 中加载无人机,并通过 QGC 或 ROS 2 进行控制。
Pegasus 负责将仿真中的无人机接入 PX4。PX4 接收 QGroundControl 或 ROS 2 的控制命令,并驱动无人机运动。
典型验证流程为:使用官方 Iris 验证基础链路,使用 ROS 2 控制无人机,再替换为目标无人机资产。
支持的系统组合:
| Ubuntu | ROS 2 | 说明 |
|---|---|---|
| 20.04 | Foxy | 历史兼容环境,保留兼容指令 |
| 22.04 | Humble | 中间版本环境,适合较新的 ROS 2 Bridge / PX4 工作流 |
| 24.04 | Jazzy | 验证环境示例,用于说明本项目包的默认配置 |
适配环境示例:
Ubuntu 24.04.4ROS 2 JazzyPX4-Autopilot: /home/robot-a/PX4-Autopilotpx4_msgs: /home/robot-a/ros2_ws/src/px4_msgsMicro XRCE-DDS Agent: /home/robot-a/px4_agent_wsIsaac Sim: /home/robot-a/miniconda3/envs/env_isaacsim/bin/isaacsimPegasus Simulator: /home/robot-a/Documents/PegasusSimulator本文档在保留 Ubuntu 20.04 + ROS 2 Foxy 历史指令的基础上,补充 Ubuntu 22.04 + ROS 2 Humble、Ubuntu 24.04 + ROS 2 Jazzy 的指令。宿主机 ROS 2 控制终端应按实际系统选择对应发行版;验证环境使用 Jazzy。Isaac Sim 启动脚本内部为了 ROS 2 Bridge 可能设置 ROS_DISTRO=humble,需避免在同一个终端中反复 source 多套 ROS 2 环境。
核心链路是:
xxxxxxxxxxIsaac Sim 场景 -> Pegasus Simulator 加载无人机并连接 PX4 -> PX4 SITL 执行飞控逻辑 -> QGroundControl 做状态监控和手动控制 -> ROS 2 / px4_msgs 做 Offboard 自动控制 -> 替换为自定义目标无人机 -> 单独加载和控制货舱资产| 模块 | 说明内容 | 验证目标 |
|---|---|---|
| 模块一:基础认知与仿真控制链路 | 系统架构 | 理解 Isaac Sim、Pegasus、PX4、QGC、ROS 2 的职责 |
| 模块二:Isaac Sim + Pegasus + PX4 官方 Iris 试飞 | 官方 Iris 基础飞行 | QGC 可以连接 PX4,Iris 可以 arm、takeoff、move、land |
| 模块三:PX4 Offboard 与 ROS 2 代码控制 | ROS 2 自动控制 | 理解 ROS 2 控制流程,并使用代码完成 takeoff、move、hover、land |
| 模块四:自定义无人机接入与资产说明 | 自定义无人机资产接入 | 加载 Sunray150,并判断问题所在层级 |
| 模块五:货舱资产加载与控制 | 独立货舱资产验证 | 单独加载货舱 USD,并通过 ROS 2 字符串话题控制舱门 |
| 问题排查 | 安装、通信、Offboard、自定义资产问题 | 按现象定位到 Isaac Sim、Pegasus、PX4、ROS 2 或 USD 资产 |
验证顺序:
| 顺序 | 主题 | 目标 |
|---|---|---|
| 1 | 基础链路 + Pegasus + PX4 + QGC + Iris 手动试飞 | 在 Isaac Sim 中加载 Iris,QGC 显示 Ready To Fly,并完成手动起飞、移动、降落 |
| 2 | 坐标系 + ROS 2 Offboard + 代码控制 | 查看 /fmu/out/* 状态话题,运行控制菜单,并理解 z=-1 表示上升的原因 |
| 3 | 自定义无人机 + 目标资产 + 接入排查 | 加载自定义无人机资产,确认 /World/quadrotor 和 /World/quadrotor/body,并通过 QGC 或 ROS 2 控制 |
| 4 | 独立货舱资产加载 + 字符串话题控制 | 单独加载货舱 USD,测试 left_open、bottom_open 等货舱指令 |
运行异常时可查看 docs/06_疑难杂症_QA.md。该文件为问题排查文档,按报错现象整理检查顺序。