Based on this discussion in Discourse and our startup meeting, we can define an aerial autonomy stack as follows:
An aerial autonomy robotics stack is a collection of building blocks that enable the development of autonomous aerial vehicles, by providing a modular and scalable architecture for sensing, perception, planning, and control tasks. It allows unmanned aerial vehicles to perform complex missions without human intervention, while accommodating different hardware configurations and simulation environments.
Adapted and appended from the paper:
Fernandez-Cortizas, Miguel, et al. "Aerostack2: A Software Framework for Developing Multi-robot Aerial Systems." arXiv preprint arXiv:2303.18237 (2023).
the following autonomy stack table was extracted and adapted.
Flight stack | Middleware | last update |
---|---|---|
Aerostack(1) | ROS | 10/2021 |
Aerostack2 | ROS 2 | 08/2024 |
Agilicious | ROS | 03/2023 |
KumarRobotics Autonomy Stack | ROS | 2022 |
CrazyChoir | ROS 2 | 09/2024 |
UAL | ROS | 12/2022 |
XTDrone | ROS | 03/204 |
RotorS | ROS | 07/2021 |
GAAS | ROS | 10/2021 |
MRS AUV System | ROS | 10/2024 |
Crazyswarm2 | ROS 2 | 11/2024 |
Crazyswarm(1) | ROS | 12/2022 |
Other Autonomy stacks:
Visual Inertial Odometry packages is an very important strategy of positioning within GPS deprived environments. Since UAVs can not use wheel odometry and heavily relient on cameras, this is one of the main drivers for autonomous exploration with these vehicles.
Here is a list of VIO packages that people can use if they have a depth camera on their platform.
- OpenVins (ROS1/ROS2):
- VINS-Fusion stand alone
- SLAMcore stand alone SDK
- ORB-SLAM3 ROS2
- Kaggle Zurich Urban Micro Aerial Vehicle
- Kaggle Underwater forward-looking VI dataset
- The Air Lab Datasets
- The UZH FPV Dataset
A list of packages which don't comprise a full stack but do offer value on top of basic flight controller firmware.
Given the above Aerial Autonomy Stacks, the list below outlines specific implementations of indoor navigation software packages in ROS, running on aerial vehicle platforms. The list, though not exhaustive, provides a good overview of available off-the-shelf non-commercial software.
Package name | OS/OC | Sensors required | Middleware | Simulator | Platform/controller | Last updated |
---|---|---|---|---|---|---|
Ardupilot ROS | ✓ | LiDAR | ROS 2 | Gazebo | Iris coptor,Ardupilot | 02/2024 |
as2_behaviour_tree | ✓ | Unknown | ROS 2 | Gazebo | Crazyflie,DJI,Tello | 02/2024 |
Teach-Repeat-Replan | ✓ | Stereo camera | ROS 1 | MockaFly | DJI N3 | 11/2020 |
rtabmap | ✓ | Stereo camera | ROS 1 | Gazebo | PX4 | 05/2023 |
ORB_SLAM_3 | ✓ | Mono/stereo camera | ROS 1 | N/A | Bebop 2 | 06/2023 |
relative_nav | ✗ | Stereo camera | ROS 1 | N/A | Rotorcraft | 04/2017 |
zephyr | ✓ | LiDAR | ROS 1 | RotorS/Gazebo | AscTec Firefly | 11/2018 |
tum_ardrone | ✓ | Mono camera | ROS 1 | N/A | AR.Drone | 05/2014 |
kr_autonomous_flight | ✓ | Stereo camera/LiDAR/IMU | ROS 1 | Gazebo | Pixhawk | 08/2023 |
px4_sim_ros2 | ✓ | Stereo camera | ROS 2 | Gazebo | PX4 | 04/2024 |
pidrone_pkg | ✓ | Mono camera/IR | ROS 1 | N/A | Duckiedrone | 05/2024 |
This page was last updated: {{ git_revision_date_localized }}
--8<-- "docs/goatcounter.html"