Rationale

July 20, 2026 · View on GitHub

This project aims to speed up the ideation-development-simulation-deployment cycle of PX4/ArduPilot-based applications.

The Many Facets of the Sim2real Gap

The sim2real gap is a euphemism for robotic projects that work well on a developer's laptop but not so much in the field. Aerial sim2real research often focuses on modeling and simulation of complex aerodynamics effects.

Nonetheless, at deployment time, an equally important component of sim2real gap arises from system design—in particular, software tooling and engineering, where the dynamic range between "average and the best is 50-to-1, maybe 100-to-1".

This is the challenge—and good sport—of vertical/full-stack integration among:

  • the many frameworks that go into drone autonomy (a physics engine to simulate drone dynamics, a rendering engine to generate realistic imagery, a GPU-accelerated machine learning runtime for perception, one or more inter-process and inter-thread communication middleware, the interface to the microcontroller and autopilot software performing state-estimation and low-level control, the SDKs of the deployed embedded systems, etc.)
  • emulated inter-robot communication (in aerial systems, this is heavily affected by the actual flight plans and available RF hardware)

Design Manifesto

  • Simplicity ("simple is better than complex", "worse is better", and "no fat software" are the 3 slogans of the AAS)
  • おまかせ end-to-endness (from camera frames, to autopilot uORB/MAVLink commands)
  • Recentness (break and fix, rather than carrying technical debt)
  • Deployment focus
    • Clear, Dockerized split between aircraft, ground, and simulation software
    • ROS2 intra-companion board messaging
    • XRCE-DDS (PX4), MAVROS (ArduPilot) autopilot-to-companion board ROS2 bridge
    • GStreamer camera-to-companion board acquisition pipelines
    • Zenoh inter-vehicle ROS2 bridge, with networking over LAN (HITL) or emulated by docker network (SITL)
    • Dual network—in both SITL and HITL—to separate synthetic sensor data from inter-vehicle communication

Presentations and Papers

A summary of existing multi-drone flight stacks can be found in Table II of this paper. Notable ones are:

  • Universidad Politécnica de Madrid (UPM)'s aerostack2 (multicopter-only)
  • Czech Technical University in Prague (CTU)'s mrs_uav_system (multicopter-only)
  • Norwegian University of Science and Technology (NTNU)'s unified_autonomy_stack (multi-frame, high-level control-only)
  • Technische Universität (TU) Berlin's crazyswarm2 (indoor, crazyflie-only)
  • Peking University's XTDrone (PX4-only)
  • Carnegie Mellon University (CMU)'s AirStack (marked "only for internal usage")

A summary of aerial robotics simulators can be found in Table IV of this paper, these include:

  • Norwegian University of Science and Technology (NTNU)'s aerial_gym_simulator (high-performance simulator for RL)
  • University of Lisbon - Instituto Superior Técnico (IST)'s PegasusSimulator (IsaacSim PX4/ArduPilot SITL, multicopter-only)
  • University of Toronto (UofT)'s gym-pybullet-drones (simple simulator for education, control, and RL)
  • University of Pennsylvania (UPenn)'s RotorPy (high-fidelity simulator for control)
  • UZH's flightmare, ETH's RotorS, NYU's RotorTM, Microsoft's AirSim, etc.

For even more resources, check out aerial_robotic_landscape.