模块二:Isaac Sim + Pegasus + PX4 官方 Iris 试飞

学习目标:

前置条件:

完成要求:

01 Pegasus 插件安装与启用

流程分两步:先把 Pegasus 安装到 Isaac Sim 自己的 Python 环境,再到 Isaac Sim GUI 里添加 extension 路径并启用插件。

安装 Pegasus Simulator 源码:

如果上面命令不生效,换成下面写法:

本机路径可能不同。比如 Pegasus 源码可能在:

Python 环境是常见错误来源。安装 Pegasus 插件时应使用 Isaac Sim 自带的 Python,不应使用系统 Python 或 conda Python。否则 GUI 里可能找不到插件,或者插件能显示但 import 失败。

安装完成后,启动 Isaac Sim GUI。在菜单栏进入:

Extensions 入口

在 Extensions 界面右上角打开 Settings,把 Pegasus extension 路径加入 Isaac Sim 的搜索路径。

Extensions 设置界面

点击路径列表旁边的加号,添加 Pegasus 源码里的 extensions 目录。注意添加的是 extensions 目录,不是里面的 pegasus.simulator 子目录。

常见路径:

点击加号添加 Pegasus extensions 路径

路径添加完成后,在左上角搜索 pegasus。路径正确时,列表里会出现 Pegasus 插件。点击 Install 安装。

搜索并安装 Pegasus 插件

选择和当前 Isaac Sim 匹配的插件版本。Isaac Sim 4.5 对应 4.5.0;其他版本按实际情况选。安装后勾选 Enabled

 

02 PX4-Autopilot、px4_msgs、Micro XRCE-DDS Agent、QGC 的作用

这一节安装无人机控制需要的依赖。下面命令以 Ubuntu 20.04 + ROS 2 Foxy 为准。Ubuntu 24.04 和 26.04 可以参考思路,但 ROS 2 发行版、Python 版本和 apt 源都可能不同,不能直接照抄。

Foxy 已经停止官方维护。本文档仍然使用 Foxy,是为了和 Ubuntu 20.04、PX4 v1.14.x 以及现有控制代码保持一致。

先装基础工具:

设置 locale:

安装 ROS 2 Foxy:

初始化 rosdep

每个新终端都需要 source ROS 2:

PX4-Autopilot 是飞控代码仓库。仿真时运行的是 PX4 SITL。Pegasus 通过 PX4 MAVLink backend 启动或连接它。

PX4-Autopilot 负责这些飞控逻辑:

常见位置:

Ubuntu 20.04 下可以这样下载和编译 PX4 v1.14:

执行完依赖脚本后,重新打开终端,检查 SITL 是否能编译:

如果 Pegasus 要自动启动 PX4,Pegasus UI 里的 PX4 路径应指向这个目录:

版本要对齐:

px4_msgs 是 PX4 和 ROS 2 通信用的消息定义包。ROS 2 节点要发布 OffboardControlModeTrajectorySetpointVehicleCommand,就需要它。

它的作用包括:

常见位置:

px4_msgs 应与 PX4 版本匹配。PX4 v1.14.x 通常使用 release/1.14 分支:

检查消息是否可用:

Micro XRCE-DDS Agent 是 PX4 和 ROS 2 DDS 网络之间的桥。

没有 Agent 时,常见现象是:

常见启动形式:

端口和启动方式以当前 PX4 / Pegasus 配置为准。

如果系统里没有 MicroXRCEAgent,可以从源码编译:

检查命令:

QGC 是地面站。它不是 ROS 2 控制的必需条件,但调试时建议打开。

它可以帮你确认这些状态:

部分飞控问题在终端中不够直观,QGC 通常可以直接显示原因。

Ubuntu 20.04 下可以使用 QGroundControl AppImage:

如果 AppImage 报 FUSE 相关错误,先安装:

如果最新 AppImage 在 Ubuntu 20.04 上启动失败,可以去 QGroundControl 的历史版本页面下载 4.3.x 或 4.4.x AppImage。培训只要求 QGC 能连接 PX4、显示状态并进行手动控制,不强制使用最新版。

Isaac Sim ROS 2 Bridge 需要在安装 Isaac Sim 时就安装好。它负责把仿真数据发布到 ROS 2,例如 /clock、TF、odometry、camera image。

03 Pegasus UI 配置与 PX4 路径检查

启用成功后,Isaac Sim 里会出现 Pegasus UI。使用前先检查:

如果 PX4 路径不对,Pegasus UI 可能能打开,但后面加载无人机或启动 PX4 backend 会失败。

Pegasus 插件界面和基础试飞入口

启动 QGC 的常见命令:

QGC 连接后看到 Ready To Fly,说明 Pegasus、PX4、QGC 的基础链路已经通了。

04 加载官方 Iris 无人机

Iris 是 PX4/Pegasus 常用的官方四旋翼示例机型。

Iris 的资产和动力学参数已经配好,PX4 airframe 通常也匹配。Iris 能飞,说明 Pegasus、PX4、QGC、MAVLink 这条基础链路基本正常。

Pegasus 插件界面和基础试飞入口

通用流程:

  1. 启动 Isaac Sim。
  2. 启用 Pegasus 插件。
  3. 在 Pegasus UI 中选择官方 Iris。
  4. 选择 PX4 backend。
  5. 加载场景。
  6. 等待 PX4 SITL 启动。
  7. 打开 QGroundControl。
  8. 确认 QGC 连接 PX4。
  9. 确认 Ready To Fly。
  10. 使用 QGC 虚拟摇杆或手柄起飞、移动、降落。

这条链路可以理解为:

整体仿真链路

Pegasus 负责在 Isaac Sim 里加载无人机和 PX4 backend;PX4 负责飞控状态机和控制器;QGC 负责地面站连接、状态检查和手动控制。

05 QGC 连接检查与 Ready To Fly 判断

进行代码控制时也建议打开 QGC。PX4 无法 arm、拒绝起飞、模式切换失败时,QGC 通常会直接显示原因。

QGC 可以用虚拟摇杆,也可以接手柄。测试时按这个顺序看:

QGroundControl 界面

06 手动 arm、takeoff、移动、land

Iris 手动试飞用于确认 Isaac Sim、Pegasus、PX4、QGC 之间的基础链路是否正常。

按以下顺序检查:

07 基础链路故障排查

QGC 连接不上时,先查:

Iris 不能起飞时,按下面顺序检查:

PX4 topic 不出现时,检查:

如果没有 /fmu/out/*

08 Iris 试飞检查清单