Skip to content

Commit 28b050c

Browse files
JohnYanxinLiuandrewjong
authored andcommitted
Updated Pegasus Scene Setup Docs + added deprecation message to Ascent SITL (#297)
1 parent eaf5474 commit 28b050c

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

docs/simulation/isaac_sim/ascent_sitl_extension.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The AirStack extension for IsaacSim does two main things. It creates an Ascent Omnigraph Node which runs the Ascent SITL and updates the position of a drone model in IsaacSim based on the SITL. It also creates a panel for listing, attaching to, and killing tmux sessions.
44

5-
## Ascent OmniGraph Node
5+
## Ascent OmniGraph Node (Deprecated as of November 2025)
66

77
The Ascent OmniGraph node takes as input a domain id, node namespace and drone prim. It runs the Ascent SITL, mavproxy, and mavros and takes care of keeping the SITL time synced with IsaacSim's time. Mavros is run using the inputted domain id and node namespace. The drone prim's position is set based off of the position of the drone in the SITL. The drone prim doesn't do collision and will pass through objects in the IsaacSim world.
88

docs/simulation/isaac_sim/pegasus_scene_setup.md

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
# Pegasus Simulator
22

3-
Pegasus Simulator is a high-fidelity multirotor simulation and control framework built on top of NVIDIA Isaac Sim’s physics engine.
4-
While Isaac Sim provides the underlying physics and rendering, Pegasus Simulator implements the drone flight dynamics, control algorithms, and PX4 integration that enable realistic autonomous flight simulation.
3+
Pegasus Simulator is a multirotor simulation and control framework built on top of NVIDIA Isaac Sim’s physics engine.
4+
Isaac Sim provides the underlying physics and rendering and Pegasus Simulator implements the drone flight dynamics, control algorithms, and PX4 integration.
55

6-
Pegasus Sim focuses on accurate modeling of multirotor dynamics and environment interaction, providing a physically grounded foundation for UAV testing and validation.
7-
Through its integration with PX4 MAVLink, Pegasus connects directly to the AirStack autonomy stack, allowing AirStack’s higher-level planning and perception components to control a realistically simulated drone as if it were a physical vehicle.
6+
Pegasus Sim accurately models multirotor dynamics and environment interaction, providing a physically grounded foundation for UAV simulation.
7+
Pegasus connects directly to the AirStack autonomy stack with its PX4 MAVLink integration, allowing AirStack’s higher-level planning and perception components to control a realistically simulated drone as if it were a physical vehicle.
88

99
## Custom Pegasus Node in AirStack
1010

1111
AirStack extends the core Pegasus Simulator through a Custom Pegasus OmniGraph Node.
12-
This node serves as an Isaac Sim OmniGraph action graph wrapper, encapsulating both:
13-
14-
- The Pegasus simulation code, and
15-
16-
- The drone primitive within the USD scene.
17-
18-
This design allows Pegasus-based simulations to be defined entirely in USD, enabling scenario reusability and modular composition.
12+
This node serves as an Isaac Sim OmniGraph action graph wrapper around the Pegasus Sim code which can then be saved in Universal Scene Description (USD) format which are easily readable in Isaac-Sim. This design allows Pegasus-based simulations to be defined entirely in USD, enabling scenario reusability and modular composition.
1913
Users can drop the same Pegasus node into different environments or swap robots while maintaining consistent physics and control behavior.
2014

2115
Through this approach, AirStack leverages Pegasus to create a flexible, reusable, and realistic simulation framework for aerial robotics research and development.
@@ -28,7 +22,7 @@ At the top level of the AirStack simulation environment, a `.env` file controls
2822
```bash
2923
ISAAC_SIM_GUI="omniverse://airlab-nucleus.andrew.cmu.edu/Library/Assets/Pegasus/iris_with_sensors.pegasus.robot.usd"
3024
# Set to "true" to launch Isaac Sim using a standalone Python script instead of a USD file
31-
ISAAC_SIM_USE_STANDALONE_SCRIPT="true" # "true" or "false"
25+
ISAAC_SIM_USE_STANDALONE_SCRIPT="false" # "true" or "false"
3226
# Script name (must be in /AirStack/simulation/isaac-sim/launch_scripts/)
3327
ISAAC_SIM_SCRIPT_NAME="example_one_px4_pegasus_launch_script.py"
3428
PLAY_SIM_ON_START="false" # Not supported in standalone script mode
@@ -38,11 +32,11 @@ There are *two modes* for launching Pegasus simulations:
3832
- Load an existing USD file (e.g. *.pegasus.robot.usd) — to simulate a prebuilt robot/environment setup.
3933
- Use a standalone Python script — to dynamically generate a USD and configure the world from scratch.
4034

41-
## Scripted Scene Generation
35+
This is toggled by the `ISAAC_SIM_USE_STANDALONE_SCRIPT` variable in the `.env` file. If set to `false`, the file specified by `ISAAC_SIM_GUI` is loaded directly. If set to `true`, the script named in `ISAAC_SIM_SCRIPT_NAME` is executed to generate the scene. It is generally recommended to use the scripted approach to generate new scenes (or at least the pegasus drone) since it handles a lot of the OmniGraph and sensor configurations automatically, then saving it, for future reuse and setting `ISAAC_SIM_USE_STANDALONE_SCRIPT` to `false` afterwards with `ISAAC_SIM_GUI` pointing to your saved file.
4236

43-
In AirStack, users can either load a pre-existing USD file or use a launch script to generate a new simulation scene programmatically.
37+
## Scripted Scene Generation
4438

45-
Example scripts for spawning vehicles are provided in `AirStack/simulation/isaac-sim/launch_scripts/`
39+
Example scripts for generating a scene are provided in `AirStack/simulation/isaac-sim/launch_scripts/`
4640
You can also write your own scripts for your own custom scenarios.
4741

4842
When using the scripted launch method:
@@ -62,7 +56,7 @@ This is necessary before editing the OmniGraph.
6256
- Right-click the graph and choose “Open Graph.”
6357
- Connect the ROS2Context node so that it feeds into all desired sensor subgraphs (e.g., cameras, LiDARs).
6458
![Connected Subgraphs](pegasus_setup_images/connected_sensor_subgraphs.png)
65-
> This manual step is temporarily required due to a known bug. Automation is planned in a future update.
59+
> This manual step is temporarily required due to a known bug. Automation of this is planned in a future update.
6660
6761
4. Save the scene and drones once everything is connected.
6862
- You can save both the stage and the drone USDs for future reuse.

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ exclude_docs: |
88
**/ros_ws/build
99
**/ros_ws/install
1010
**/kit-app-template/**
11+
**/isaac_sim_data/**
1112
extra:
1213
version:
1314
provider: mike
@@ -123,6 +124,7 @@ nav:
123124
- docs/simulation/isaac_sim/index.md
124125
- docs/simulation/isaac_sim/export_stages_from_unreal.md
125126
- docs/simulation/isaac_sim/scene_setup.md
127+
- docs/simulation/isaac_sim/pegasus_scene_setup.md
126128
- docs/simulation/isaac_sim/ascent_sitl_extension.md
127129
- Real World:
128130
- docs/real_world/index.md

0 commit comments

Comments
 (0)