Decentralized multi-drone formation control with obstacle avoidance in ROS 2 Jazzy / Gazebo Harmonic

I’ve recently been working on a project called Flockwork, an open-source decentralized drone swarm controller in ROS 2 Jazzy and Gazebo Harmonic. Instead of leaning on PX4/ArduPilot, the whole control stack is written from scratch in C++.

For context each drone runs its own controller, so it holds a formation slot relative to its neighbors, and avoids obstacles without stalling.

I really had fun working on this project and learning how to handle implementation.

flockwork

Six X3 drones take off, split around three pillars in wind, and re-form their grid at the destination.

topdown

Top-Down

Trajectory Graph

It is still early in development of course and I am hoping to add many more features, optimization and efficient path algorithms so I would appreciate any feedback on how to improve the system even more.

The full write-up on how it works is given in the repo.

Repo: https://github.com/Trigodil/Project-Flockwork