Simulation¶
AirStack provides high-fidelity simulation environments for developing and testing autonomous systems before deploying to hardware. Simulation enables rapid iteration, safe testing of edge cases, and multi-robot scenarios.
Directory Structure¶
The simulation components are organized under simulation/:
simulation/
├── isaac-sim/
│ ├── docker/ # Isaac Sim containerization
│ │ ├── docker-compose.yaml # Main launch configuration
│ │ └── Dockerfile.isaac-ros # Image definition
│ ├── assets/ # 3D models and props
│ ├── config/ # Simulation configurations
│ ├── extensions/ # Custom Isaac Sim extensions
│ ├── launch_scripts/ # Python launch scripts
│ └── standalone_examples/ # Example scenes and scripts
└── simple-sim/
├── docker/ # Simple simulator container
│ └── docker-compose.yaml # Launch configuration
├── models/ # Lightweight simulation models
└── ros_ws/ # Simple sim ROS workspace
Launch Structure¶
Simulation components are launched via Docker Compose. Each simulator has its own configuration:
- Isaac Sim:
simulation/isaac-sim/docker/docker-compose.yaml - Simple Sim:
simulation/simple-sim/docker/docker-compose.yaml
Key launch points:
- Launch command:
airstack up isaac-simorairstack up simple-sim - Main process: The
command:in docker-compose.yaml starts the simulator - Scene selection: Set via
ISAAC_SIM_SCENEenvironment variable (Isaac Sim) - Auto-launch: Controlled by
PLAY_SIM_ON_STARTvariable
Example:
# Launch Isaac Sim with custom scene
ISAAC_SIM_SCENE=scenes/custom_scene.usd airstack up isaac-sim
# Launch simple simulator
airstack up simple-sim
Learn more: Docker Workflow
Simulation Platforms¶
NVIDIA Isaac Sim (Primary)¶
Isaac Sim is our primary simulation platform, offering:
- Photorealistic rendering with ray-traced graphics
- Accurate physics simulation via NVIDIA PhysX
- ROS 2 integration through Pegasus extension
- Multi-robot support with independent namespaces
- Sensor simulation (cameras, depth, IMU, GPS, LiDAR)
- Custom scene creation with USD format
Getting Started:
Simple Sim (Lightweight)¶
A lightweight 2D/3D simulator for basic testing and development when full Isaac Sim fidelity isn't needed.
Use cases:
- Quick algorithm prototyping
- CI/CD testing
- Lower hardware requirements
- Faster iteration cycles
Launch: airstack up simple-sim
Location: simulation/simple-sim/
Common Workflows¶
Single Robot Simulation¶
-
Launch the full stack:
-
Isaac Sim starts with the configured scene
- Robot autonomy stack connects and begins operation
- Monitor via Ground Control Station
See: Getting Started
Multi-Robot Simulation¶
-
Launch multiple robots:
-
Each robot gets independent ROS 2 namespace
- All robots visible in same Isaac Sim scene
- Coordinate via ground control station
Learn more: Docker Workflow
Custom Scenes¶
Create custom Isaac Sim scenes with:
- Custom environments (buildings, forests, urban)
- Multiple robots
- Specific sensor configurations
- Dynamic obstacles
See: Pegasus Scene Setup
Configuration¶
Key environment variables for simulation (set in .env or at runtime):
| Variable | Description | Default |
|---|---|---|
ISAAC_SIM_SCENE |
Path to USD scene file | simulation/isaac-sim/scenes/... |
PLAY_SIM_ON_START |
Auto-start simulation | true |
NUM_ROBOTS |
Number of robots to spawn | 1 |
Example:
# Custom scene
ISAAC_SIM_SCENE=scenes/custom.usd airstack up isaac-sim
# Don't auto-play
PLAY_SIM_ON_START=false airstack up isaac-sim
Pre-built scenes: Located in scenes/ directory
two_drone_fire_new.usd- Fire academy scenariotwo_drone_RetroNeighborhood.usd- Urban neighborhood
Learn more: Docker Workflow
Troubleshooting¶
Isaac Sim won't start:
- Check GPU requirements (RTX 3070+ recommended)
- Verify NVIDIA Container Toolkit installation
- Check disk space (25GB+ free required)
ROS 2 communication issues:
- Verify all containers on same Docker network (
docker network ls) - Check
ROS_DOMAIN_IDsettings in containers - See Docker Workflow
Performance issues:
- Reduce scene complexity
- Lower rendering quality in Isaac Sim settings
- Close unnecessary applications
- Use simple-sim for lighter workloads
Next Steps¶
- Getting Started - Complete setup and first simulation
- Isaac Sim Overview - Learn Isaac Sim capabilities
- Pegasus Scene Setup - Create custom scenes
- Development Guide - Develop autonomy algorithms