finds.dev← search

// the find

JacopoPan/aerial-autonomy-stack

★ 610 · C++ · MIT · updated Oct 2026

An open harness to simulate and deploy perception-based PX4/ArduPilot drone swarms with ROS2, YOLO, LiDAR, NVIDIA Jetson

A Docker-based simulation and deployment stack for multi-drone autonomy on PX4 and ArduPilot, covering quadrotors, quadplane VTOLs, and tailsitters under ROS2. It is aimed at researchers and small teams who want to run YOLO and LiDAR odometry experiments faster than real time, then ship the same aircraft image to a Jetson Orin.

- The sim-to-hardware path is real. The aircraft image is built for both amd64 and arm64, and the README documents a Jetson HITL setup on a Pixhawk 6X with an Orin NX, which is more than most drone repos attempt.

- The autopilot abstraction sits in the right place. autopilot_interface exposes Takeoff, Land, Orbit, and Offboard as ROS2 actions with separate px4_interface and ardupilot_interface implementations, so mission logic does not depend on which firmware is underneath.

- The dependency pins are explicit. PX4 1.17.0, ROS2 Jazzy, Gazebo Harmonic, and ONNX Runtime 1.30.0 are each tied to an upstream tag, and the SIM_SUBNET/AIR_SUBNET split keeps simulated sensor traffic off the inter-vehicle link under test.

- Setup cost is high. The first simulation build takes around 45 minutes with good internet, the host needs a matching NVIDIA driver, Docker, and the container toolkit, and Windows users are routed through WSL. Most of the mission and perception code is Python despite the C++ tag, so expect to work in both.

- The deployment defaults are tied to one rig: a Holybro X650, an IMX219 camera, a Livox Mid-360S, and a Holybro Jetson baseboard. Porting to other airframes or compute means reworking sensor_config.yaml, the patches directory, and the TensorRT build yourself.

- The Known Issues list sits inside an HTML comment alongside the RL notes and the License, so it does not render on GitHub. Among the entries: QGC only connects to the first 10 ArduPilot vehicles when GND_CONTAINER=false, and the swan_k1_hwing tailsitter throws a floating point exception on landing unless SIM_FLOAT_EXCEPT is set to 0.

- The flight-proven claim is the authors' phrase. The README shows simulation and one Jetson HITL bench, links no real-flight results, and pins ArduPilot to 4.6.3 with the upgrade to 4.7.1 still listed as TODO.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →