说明目标:
前置条件:
验证目标:
Pegasus 插件安装分为两个步骤:将 Pegasus 安装到 Isaac Sim 使用的 Python 环境,然后在 Isaac Sim GUI 中添加 extension 路径并启用插件。
验证环境中的 Pegasus 源码位置:
/home/robot-a/Documents/PegasusSimulator如需复现 Pegasus 安装流程,可使用 Isaac Sim 环境中的 Python:
xexport ISAACSIM_BIN=/home/robot-a/miniconda3/envs/env_isaacsim/bin/isaacsimexport ISAACSIM_PYTHON=/home/robot-a/miniconda3/envs/env_isaacsim/bin/pythonexport PEGASUS_ROOT=/home/robot-a/Documents/PegasusSimulatorcd ${PEGASUS_ROOT}git status --short --branch${ISAACSIM_PYTHON} -c "import sys; print(sys.executable)"${ISAACSIM_PYTHON} -m pip install -e ${PEGASUS_ROOT}/extensions/pegasus.simulator当前项目脚本会通过 sys.path 加入 /home/robot-a/Documents/PegasusSimulator/extensions/pegasus.simulator,因此脚本加载目标无人机时可以直接找到 Pegasus Python 包。
安装完成后,启动 Isaac Sim GUI。在菜单栏进入:
xxxxxxxxxxWindow -> Extensions
在 Extensions 界面右上角打开 Settings,把 Pegasus extension 路径加入 Isaac Sim 的搜索路径。

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

选择和 Isaac Sim 版本匹配的插件版本。验证环境使用本地 /home/robot-a/Documents/PegasusSimulator,添加路径后勾选 Enabled。
本节说明验证环境中已安装的软件包,并给出在单独目录中重新下载和编译的复现流程。复现安装流程时,应避免移动或删除现有可用目录。
验证环境关键路径:
xxxxxxxxxxPX4-Autopilot: /home/robot-a/PX4-Autopilotpx4_msgs: /home/robot-a/ros2_ws/src/px4_msgsMicro XRCE-DDS Agent: /home/robot-a/px4_agent_ws/src/Micro-XRCE-DDS-AgentMicro XRCE-DDS Agent binary: /home/robot-a/px4_agent_ws/install/microxrcedds_agent/bin/MicroXRCEAgentQGroundControl: /home/robot-a/Downloads/QGroundControl.AppImage系统版本和 ROS 2 版本按下表对应:
| Ubuntu | ROS 2 | source 命令 |
|---|---|---|
| 20.04 | Foxy | source /opt/ros/foxy/setup.bash |
| 22.04 | Humble | source /opt/ros/humble/setup.bash |
| 24.04 | Jazzy | source /opt/ros/jazzy/setup.bash |
验证环境为 Ubuntu 24.04.4,宿主机 ROS 2 控制终端使用 Jazzy:
xxxxxxxxxxsource /opt/ros/jazzy/setup.bashsource /home/robot-a/ros2_ws/install/setup.bash需注意:/home/robot-a/run_isaacsim.sh 内部会为 Isaac Sim ROS 2 Bridge 设置 ROS_DISTRO=humble 和 RMW_IMPLEMENTATION=rmw_cyclonedds_cpp。这属于 Isaac Sim 启动环境,不等同于控制终端需要 source Humble。
安装基础工具:
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 发行版已安装:
Ubuntu 20.04 + Foxy:
xxxxxxxxxxls /opt/rossource /opt/ros/foxy/setup.bashros2 --versionUbuntu 22.04 + Humble:
xxxxxxxxxxls /opt/rossource /opt/ros/humble/setup.bashros2 --versionUbuntu 24.04 + Jazzy:
xxxxxxxxxxls /opt/rossource /opt/ros/jazzy/setup.bashros2 --version初始化 rosdep:
xxxxxxxxxxsudo rosdep initrosdep update每个新的 ROS 2 控制终端均需要 source:
Ubuntu 20.04 + Foxy:
xxxxxxxxxxsource /opt/ros/foxy/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashUbuntu 22.04 + Humble:
xxxxxxxxxxsource /opt/ros/humble/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashUbuntu 24.04 + Jazzy:
xxxxxxxxxxsource /opt/ros/jazzy/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashPX4-Autopilot 是飞控代码仓库。仿真时运行的是 PX4 SITL。Pegasus 通过 PX4 MAVLink backend 启动或连接它。
PX4-Autopilot 负责这些飞控逻辑:
验证环境位置:
xxxxxxxxxx/home/robot-a/PX4-Autopilot验证已有安装时执行:
xxxxxxxxxxcd /home/robot-a/PX4-Autopilotgit describe --tags --always --dirtymake px4_sitl_default如需重新下载并编译,安装目录可自行选择:
xxxxxxxxxxmkdir -p /home/robot-a/px4_install_democd /home/robot-a/px4_install_demogit clone https://github.com/PX4/PX4-Autopilot.git --recursivecd PX4-Autopilotbash ./Tools/setup/ubuntu.shmake px4_sitl_default如果 Pegasus 要自动启动 PX4,Pegasus UI 里的 PX4 路径应指向这个目录:
xxxxxxxxxx/home/robot-a/PX4-Autopilot版本要对齐:
px4_msgs 要匹配。/home/robot-a/PX4-Autopilot,当前描述版本类似 v1.17.0-alpha1-1219-g30bbd6ecd4。px4_msgs 和 PX4 版本不一致时,ROS 2 topic 可能出现,但消息字段会对不上。px4_msgs 是 PX4 和 ROS 2 通信用的消息定义包。ROS 2 节点要发布 OffboardControlMode、TrajectorySetpoint、VehicleCommand,就需要它。
它的作用包括:
验证环境位置:
xxxxxxxxxx/home/robot-a/ros2_ws/src/px4_msgs验证已有安装时执行:
Ubuntu 20.04 + Foxy:
xxxxxxxxxxsource /opt/ros/foxy/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashros2 interface show px4_msgs/msg/TrajectorySetpointUbuntu 22.04 + Humble:
xxxxxxxxxxsource /opt/ros/humble/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashros2 interface show px4_msgs/msg/TrajectorySetpointUbuntu 24.04 + Jazzy:
xxxxxxxxxxsource /opt/ros/jazzy/setup.bashsource /home/robot-a/ros2_ws/install/setup.bashros2 interface show px4_msgs/msg/TrajectorySetpoint如需在重新下载和编译px4_msgs ,流程如下:
Ubuntu 20.04 + Foxy:
xxxxxxxxxxmkdir -p /home/robot-a/px4_install_demo/ros2_ws/srccd /home/robot-a/px4_install_demo/ros2_ws/srcgit clone https://github.com/PX4/px4_msgs.gitcd /home/robot-a/px4_install_demo/ros2_wssource /opt/ros/foxy/setup.bash/usr/bin/python3 -m colcon build --symlink-install --packages-select px4_msgssource install/setup.bashUbuntu 22.04 + Humble:
xxxxxxxxxxmkdir -p /home/robot-a/px4_install_demo/ros2_ws/srccd /home/robot-a/px4_install_demo/ros2_ws/srcgit clone https://github.com/PX4/px4_msgs.gitcd /home/robot-a/px4_install_demo/ros2_wssource /opt/ros/humble/setup.bash/usr/bin/python3 -m colcon build --symlink-install --packages-select px4_msgssource install/setup.bashUbuntu 24.04 + Jazzy:
xxxxxxxxxxmkdir -p /home/robot-a/px4_install_demo/ros2_ws/srccd /home/robot-a/px4_install_demo/ros2_ws/srcgit clone https://github.com/PX4/px4_msgs.gitcd /home/robot-a/px4_install_demo/ros2_wssource /opt/ros/jazzy/setup.bash/usr/bin/python3 -m colcon build --symlink-install --packages-select px4_msgssource install/setup.bashJazzy 对应系统 Python 3.12。应避免使用 conda Python 3.13 编译 px4_msgs,否则运行控制脚本时可能出现 libpython3.13.so.1.0 或 UnsupportedTypeSupport 相关错误。这个部分需要注意自身的python版本的问题。
检查消息是否可用:
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/*,或者话题有了但没有数据。常见启动形式:
xxxxxxxxxxsource /home/robot-a/px4_agent_ws/install/setup.bashMicroXRCEAgent udp4 -p 8888如果没有 source 到 PATH,也可以直接使用绝对路径:
xxxxxxxxxx/home/robot-a/px4_agent_ws/install/microxrcedds_agent/bin/MicroXRCEAgent udp4 -p 8888端口和启动方式以实际 PX4 / Pegasus 配置为准。常用端口是 8888。
如果系统里没有 MicroXRCEAgent,可以从源码编译:
xxxxxxxxxxmkdir -p /home/robot-a/px4_install_demo/px4_agent_ws/srccd /home/robot-a/px4_install_demo/px4_agent_ws/srcgit 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 通常可以直接显示原因。
通用下载方式以 QGroundControl 官方下载页为准:
xxxxxxxxxxhttps://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html进入该页面后,选择 Linux 版本的 AppImage,下载到系统后赋予执行权限:
xxxxxxxxxxcd ~/Downloadschmod +x QGroundControl*.AppImage./QGroundControl*.AppImage验证环境已有 QGroundControl AppImage 时,也可以直接使用示例路径:
xxxxxxxxxxchmod +x /home/robot-a/Downloads/QGroundControl.AppImage/home/robot-a/Downloads/QGroundControl.AppImage如果 AppImage 报 FUSE 相关错误,按系统安装兼容包。
Ubuntu 20.04 / Ubuntu 22.04:
xxxxxxxxxxsudo apt updatesudo apt install -y libfuse2Ubuntu 24.04:
xxxxxxxxxxsudo apt updatesudo apt install -y libfuse2t64本流程要求 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 的常见命令:
xxxxxxxxxxcd ~/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。