AirStack is a comprehensive, modular autonomy stack for embodied AI and robotics developed by the AirLab at Carnegie Mellon University's Robotics Institute. It provides a complete framework for developing, testing, and deploying autonomous mobile systems in both simulated and real-world environments.
- Modular Architecture: Easily swap out components to customize for your specific needs
- ROS 2 Integration: Built on ROS 2 for robust inter-process communication
- Simulation Support: Integrated with NVIDIA Isaac Sim for high-fidelity simulation
- Multi-Robot Capability: Control and coordinate multiple robots simultaneously
- Ground Control Station: Monitor and control robots through an intuitive interface
- Comprehensive Autonomy Stack:
- Robot Interface Layer
- Sensor Integration
- Perception Systems
- Local Planning & Control
- Global Planning
- Behavior Management
- Docker: With NVIDIA Container Toolkit support
- NVIDIA GPU: RTX 3070 or better (for local Isaac Sim)
- Storage: At least 25GB free space for Docker images
- OS: Ubuntu 22.04 recommended
git clone --recursive -j8 git@github.com:castacks/AirStack.git
cd AirStack
Follow NVIDIA's instructions for installing Docker with NVIDIA GPU support. Make sure docker-compose-plugin
is also installed.
./configure.sh
Follow the prompts to complete the initial configuration.
docker login airlab-storage.andrew.cmu.edu:5001
# Enter your andrew id (without @andrew.cmu.edu)
# Enter your andrew password
# Pull the images in the docker compose file
docker compose pull
# Download the Ascent Spirit SITL software package
bash simulation/isaac-sim/installation/download_sitl.bash
# Build the images locally (requires NVIDIA NGC access)
docker compose build
xhost + # allow docker access to X-Server
# Start docker compose services
docker compose up -d
# For multiple robots: docker compose up -d --scale robot=3
This will automatically launch and play the Isaac Sim scene specified in the .env
file.
Find the RQT GUI window:
- Click "Arm and Takeoff"
- Click "Global Plan" in the trajectory window
You can also switch to "Fixed Trajectory" mode and click "Publish" to follow a predefined trajectory.
docker compose down
AirStack follows a layered architecture approach:
Robot
βββ Interface Layer: Communication with robot controllers
βββ Sensors Layer: Data acquisition from various sensors
βββ Perception Layer: State estimation and environment understanding
βββ Local Layer:
β βββ World Model: Local environment representation
β βββ Planning: Trajectory generation and obstacle avoidance
β βββ Controls: Trajectory following
βββ Global Layer:
β βββ World Model: Global environment mapping
β βββ Planning: Mission-level path planning
βββ Behavior Layer: High-level decision making
robot/
: Contains the ROS 2 workspace for the robot autonomy stackground_control_station/
: Software for monitoring and controlling robotssimulation/
: Integration with Isaac Sim and simulation environmentsdocs/
: Comprehensive documentationcommon/
: Shared libraries and utilitiestests/
: Testing infrastructure
AirStack is designed with modularity in mind, making it straightforward to extend or replace components. The development workflow is centered around Docker containers for consistent environments.
For detailed development guidelines, see the Developer Guide.
Comprehensive documentation is available at https://docs.theairlab.org/docs/
The documentation covers:
- Getting started guides
- Development workflows
- Component descriptions
- API references
- Simulation setup
- Real-world deployment
We welcome contributions to AirStack! Please see our Contributing Guidelines for more information.
AirStack is licensed under the Apache 2.0 or MIT license (to be finalized).
For questions or support, please contact the AirLab team at theairlab.org.