JacopoPan/aerial-autonomy-stack
An open harness to simulate and deploy perception-based PX4/ArduPilot/Betaflight swarms with ROS2, YOLO, NVIDIA Jetson
Aerial‑Autonomy‑Stack (AAS)
What it is – AAS is an open‑source software stack that lets you develop, simulate, and run multi‑drone missions on real hardware. It ties together popular autopilots (PX4, ArduPilot), the ROS 2 robotics framework, and NVIDIA‑accelerated perception (YOLO, LiDAR odometry). The goal is a “batteries‑included” pipeline that works from a laptop simulation all the way to a Jetson‑based drone.
Key capabilities
- Multi‑vehicle simulation – quadrotors, VTOLs and tailsitters can be run together in Gazebo, with wind and wave plugins. The simulation can run faster‑than‑real‑time and supports many parallel instances.
- ROS 2‑centric control – autopilot interfaces are exposed as ROS 2 actions/services (via MAVROS or XRCE‑DDS). You can command take‑off, land, orbit, off‑board controllers, or run custom behavior‑tree missions.
- Perception stack – YOLO object detection (ONNX GPU runtime) and LiDAR odometry (KISS‑ICP). Optional VIO/LIVO packages (openvins, fastlio, superodom, mimosa) are available for GNSS‑denied flight.
- Dockerised environments – separate containers for simulation, ground‑station, and aircraft. Images are provided for both amd64 (desktop) and arm64 (Jetson) and can be built locally or pulled from GitHub Container Registry.
- Hardware deployment – tested on Holybro Jetson baseboards with Pixhawk 6X, IMX219 camera and Livox Mid‑360S LiDAR. Scripts handle building, launching, and HITL (hardware‑in‑the‑loop) testing.
- Gymnasium RL interface – a Python package (
aas‑gym) wraps the stack as a Gymnasium environment, enabling reinforcement‑learning experiments at various speeds (step, speed‑up, vectorised).
Typical workflow
- Install on Ubuntu 24.04 (or WSL) and pull the Docker images.
- Run a simulation with
sim_run.sh, choosing autopilot, vehicle count, world, and real‑time factor. - Control drones via ROS 2 actions/services, a ground‑station node (
dtc_controller), or QGroundControl. - Analyze logs with PX4 flight_review, MAVExplorer, or PlotJuggler.
- Deploy to a Jetson board using
deploy_build.sh/deploy_run.sh, optionally linking the Jetson to a real‑world network (AIR_SUBNET) and performing HITL tests.
Who it’s for – Researchers and engineers building perception‑driven autonomy for aerial robots, especially those needing fast simulation, ROS 2 integration, and NVIDIA GPU acceleration. The stack abstracts low‑level autopilot details while still allowing custom controllers and behavior trees.
Where to start – Read the BOM.md for hardware, RATIONALE.md for design goals, and follow the quick‑start commands in the README. The repository also includes a citation for academic use.
Related
- Project
- Project
- Dispatch
- Project
- Project