Aerostack2

DocsAerial Platforms

Overview

The simulators and drones Aerostack2 can fly, and how to pick and run a platform.

Authored by
  • @alvgaona

An aerial platform connects Aerostack2 to one kind of drone or simulator. Everything above it stays the same, so a mission tested in simulation flies a real drone once you change the platform. How platforms work, their state machine and their control modes are explained on the aerial platform concept page.

Available platforms

PlatformPackageFliesROS 2
Multirotor simulatoras2_platform_multirotor_simulatorA lightweight simulated multirotorHumble, Jazzy
Gazeboas2_platform_gazeboSimulated drones in 3D worlds with sensorsHumble, Jazzy
Pixhawkas2_platform_pixhawkDrones with a PX4 autopilot, over uXRCE-DDSHumble, Jazzy
MAVLinkas2_platform_mavlinkPX4 autopilots over MAVLink, through MAVROSHumble, Jazzy
Crazyflieas2_platform_crazyflieBitcraze Crazyflie nano quadcoptersHumble
DJI OSDKas2_platform_dji_osdkDJI Matrice 210 V2 and M300 through the Onboard SDKHumble
DJI PSDKas2_platform_dji_psdkDJI Matrice 300, 350 and M30 through the Payload SDKHumble
Ryze Telloas2_platform_telloThe Ryze Tello over Wi-FiHumble, Jazzy
Betaflightas2_platform_betaflightFlight controllers running Betaflight, over MSP. DeprecatedHumble

The two simulators ship with Aerostack2. The others live in their own repositories under the aerostack2 organization and are built from source in your workspace, next to Aerostack2.

Crazyflie and both DJI platforms aren't supported on Jazzy yet. The Betaflight platform is deprecated and no longer maintained.

Which simulator

Start with the multirotor simulator. It needs no 3D engine, starts in a second and runs anywhere, including macOS. Move to Gazebo when a mission needs sensors that see the world, like cameras and lidars, or a 3D world to fly in.

Running a platform

Each drone runs its own platform node, named platform, in the drone's namespace. Every platform has a launch file that takes the namespace and its configuration files, for example:

ros2 launch as2_platform_multirotor_simulator as2_platform_multirotor_simulator.launch.py \
  namespace:=drone0

The rest of the stack runs next to it, and two choices depend on the platform:

  • The state estimator plugin. Simulators provide ground truth, while real drones usually provide their own odometry.
  • The motion controller plugin, which has to produce a control mode the platform accepts.

Your own drone

If your drone isn't listed, a platform for it is a single node with a handful of methods. See writing a platform and the platform guide.

Last updated on November 3, 2026

On this page

Last updated on November 3, 2026