学习目标:
前置条件:
完成要求:
流程分两步:先把 Pegasus 安装到 Isaac Sim 自己的 Python 环境,再到 Isaac Sim GUI 里添加 extension 路径并启用插件。
安装 Pegasus Simulator 源码:
x# 如果在容器里操作,可以参考下面路径cd /rootgit clone --branch v4.5.1 --depth 1 https://github.com/PegasusSimulator/PegasusSimulator.gitcd /root/PegasusSimulator/extensions# Isaac Sim 插件需要安装到 Isaac Sim 自己的 Python 环境export ISAACSIM_PATH=/isaac-simexport ISAACSIM_PYTHON=/isaac-sim/python.shcd ~/PegasusSimulator/extensions/pegasus.simulator/isaac-sim/python.sh -m pip install --editable pegasus.simulator如果上面命令不生效,换成下面写法:
xxxxxxxxxx$ISAACSIM_PYTHON -m pip install -e ~/PegasusSimulator/extensions/pegasus.simulator本机路径可能不同。比如 Pegasus 源码可能在:
xxxxxxxxxx/home/robot-a/Documents/PegasusSimulatorPython 环境是常见错误来源。安装 Pegasus 插件时应使用 Isaac Sim 自带的 Python,不应使用系统 Python 或 conda Python。否则 GUI 里可能找不到插件,或者插件能显示但 import 失败。
安装完成后,启动 Isaac Sim GUI。在菜单栏进入:
xxxxxxxxxxWindow -> Extensions
在 Extensions 界面右上角打开 Settings,把 Pegasus extension 路径加入 Isaac Sim 的搜索路径。

点击路径列表旁边的加号,添加 Pegasus 源码里的 extensions 目录。注意添加的是 extensions 目录,不是里面的 pegasus.simulator 子目录。
常见路径:
xxxxxxxxxx/root/PegasusSimulator/extensions/home/robot-a/Documents/PegasusSimulator/extensions
路径添加完成后,在左上角搜索 pegasus。路径正确时,列表里会出现 Pegasus 插件。点击 Install 安装。

选择和当前 Isaac Sim 匹配的插件版本。Isaac Sim 4.5 对应 4.5.0;其他版本按实际情况选。安装后勾选 Enabled。
这一节安装无人机控制需要的依赖。下面命令以 Ubuntu 20.04 + ROS 2 Foxy 为准。Ubuntu 24.04 和 26.04 可以参考思路,但 ROS 2 发行版、Python 版本和 apt 源都可能不同,不能直接照抄。
Foxy 已经停止官方维护。本文档仍然使用 Foxy,是为了和 Ubuntu 20.04、PX4 v1.14.x 以及现有控制代码保持一致。
先装基础工具:
xxxxxxxxxxsudo apt updatesudo apt install -y \ git wget curl gnupg2 lsb-release software-properties-common \ build-essential cmake ninja-build python3-pip python3-venv设置 locale:
xxxxxxxxxxsudo apt updatesudo apt install -y localessudo locale-gen en_US en_US.UTF-8sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8export LANG=en_US.UTF-8安装 ROS 2 Foxy:
xxxxxxxxxxsudo add-apt-repository universesudo apt updatesudo apt install -y curl gnupg2 lsb-releasesudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc \ -o /usr/share/keyrings/ros-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \ | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/nullsudo apt updatesudo apt install -y ros-foxy-desktop python3-colcon-common-extensions python3-rosdep初始化 rosdep:
xxxxxxxxxxsudo rosdep initrosdep update每个新终端都需要 source ROS 2:
xxxxxxxxxxsource /opt/ros/foxy/setup.bashPX4-Autopilot 是飞控代码仓库。仿真时运行的是 PX4 SITL。Pegasus 通过 PX4 MAVLink backend 启动或连接它。
PX4-Autopilot 负责这些飞控逻辑:
常见位置:
xxxxxxxxxx/root/PX4-AutopilotUbuntu 20.04 下可以这样下载和编译 PX4 v1.14:
xxxxxxxxxxcd ~git clone --branch v1.14.3 --recursive https://github.com/PX4/PX4-Autopilot.gitcd PX4-Autopilotbash ./Tools/setup/ubuntu.sh执行完依赖脚本后,重新打开终端,检查 SITL 是否能编译:
xxxxxxxxxxcd ~/PX4-Autopilotmake px4_sitl_default none如果 Pegasus 要自动启动 PX4,Pegasus UI 里的 PX4 路径应指向这个目录:
xxxxxxxxxx/home/<用户名>/PX4-Autopilot版本要对齐:
px4_msgs 要匹配。px4_msgs 和 PX4 版本不一致时,ROS 2 topic 可能出现,但消息字段会对不上。px4_msgs 是 PX4 和 ROS 2 通信用的消息定义包。ROS 2 节点要发布 OffboardControlMode、TrajectorySetpoint、VehicleCommand,就需要它。
它的作用包括:
常见位置:
xxxxxxxxxx/root/px4_ros_ws/src/px4_msgs/home/robot-a/ros2_ws/src/px4_msgspx4_msgs 应与 PX4 版本匹配。PX4 v1.14.x 通常使用 release/1.14 分支:
xxxxxxxxxxsource /opt/ros/foxy/setup.bashmkdir -p ~/px4_ros_ws/srccd ~/px4_ros_ws/srcgit clone --branch release/1.14 https://github.com/PX4/px4_msgs.gitcd ~/px4_ros_wsrosdep install --from-paths src --ignore-src -r -ycolcon build --symlink-installsource ~/px4_ros_ws/install/setup.bash检查消息是否可用:
xxxxxxxxxxros2 interface show px4_msgs/msg/TrajectorySetpointros2 interface show px4_msgs/msg/OffboardControlModeros2 interface show px4_msgs/msg/VehicleCommandMicro XRCE-DDS Agent 是 PX4 和 ROS 2 DDS 网络之间的桥。
没有 Agent 时,常见现象是:
/fmu/in/* 的数据到不了 PX4。/fmu/out/*,或者话题有了但没有数据。常见启动形式:
xxxxxxxxxxMicroXRCEAgent udp4 -p 8888端口和启动方式以当前 PX4 / Pegasus 配置为准。
如果系统里没有 MicroXRCEAgent,可以从源码编译:
xxxxxxxxxxcd ~git clone --branch v2.4.3 https://github.com/eProsima/Micro-XRCE-DDS-Agent.gitcd Micro-XRCE-DDS-Agentmkdir -p buildcd buildcmake ..make -j$(nproc)sudo make installsudo ldconfig检查命令:
xxxxxxxxxxMicroXRCEAgent --helpMicroXRCEAgent udp4 -p 8888QGC 是地面站。它不是 ROS 2 控制的必需条件,但调试时建议打开。
它可以帮你确认这些状态:
部分飞控问题在终端中不够直观,QGC 通常可以直接显示原因。
Ubuntu 20.04 下可以使用 QGroundControl AppImage:
xxxxxxxxxxcd ~/Downloadswget -O QGroundControl.AppImage https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImagechmod +x QGroundControl.AppImage./QGroundControl.AppImage如果 AppImage 报 FUSE 相关错误,先安装:
xxxxxxxxxxsudo apt updatesudo apt install -y libfuse2如果最新 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。
启用成功后,Isaac Sim 里会出现 Pegasus UI。使用前先检查:
PX4-Autopilot 路径一致。Load Scene 是否能加载插件自带环境。Load Vehicle 是否能加载插件自带的 Iris。如果 PX4 路径不对,Pegasus UI 可能能打开,但后面加载无人机或启动 PX4 backend 会失败。

启动 QGC 的常见命令:
xxxxxxxxxx~/Downloads/QGroundControl.AppImageQGC 连接后看到 Ready To Fly,说明 Pegasus、PX4、QGC 的基础链路已经通了。
Iris 是 PX4/Pegasus 常用的官方四旋翼示例机型。
Iris 的资产和动力学参数已经配好,PX4 airframe 通常也匹配。Iris 能飞,说明 Pegasus、PX4、QGC、MAVLink 这条基础链路基本正常。

通用流程:
这条链路可以理解为:

Pegasus 负责在 Isaac Sim 里加载无人机和 PX4 backend;PX4 负责飞控状态机和控制器;QGC 负责地面站连接、状态检查和手动控制。
进行代码控制时也建议打开 QGC。PX4 无法 arm、拒绝起飞、模式切换失败时,QGC 通常会直接显示原因。
QGC 可以用虚拟摇杆,也可以接手柄。测试时按这个顺序看:

Iris 手动试飞用于确认 Isaac Sim、Pegasus、PX4、QGC 之间的基础链路是否正常。
按以下顺序检查:
xxxxxxxxxx1. QGC 能看到 PX4 连接2. QGC 显示 Ready To Fly3. 可以 arm4. 可以 takeoff5. 可以用虚拟摇杆或手柄控制方向6. 可以 landQGC 连接不上时,先查:
xxxxxxxxxx1. Pegasus 是否启动 PX4 backend2. PX4 SITL 是否正在运行3. MAVLink 端口是否被占用4. QGC 是否和 PX4 在同一网络可达范围5. 容器网络是否隔离Iris 不能起飞时,按下面顺序检查:
PX4 topic 不出现时,检查:
xxxxxxxxxxros2 topic list --no-daemon | grep fmu如果没有 /fmu/out/*:
px4_msgs 工作空间。Pegasus 能加载 Iris。
PX4 SITL 能启动。
QGC 能连接。
QGC 显示 Ready To Fly。
能 arm。
能 takeoff。
能通过摇杆或虚拟摇杆控制方向。
能 land。