This repository implements a distributed multi-UAV coverage path planning system for networked operations based on our paper:
"Decentralized Communication and Energy-Aware Multi-UAV Coverage Path Planning"
Felix Muller and Nick Truttmann
ETH Zurich, 2025
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
This project addresses the challenge of deploying multiple UAVs to efficiently cover an area while maintaining network connectivity and minimizing energy consumption. We implement a novel approach combining:
- Distributed centroid Voronoi partitioning: Divides the workspace evenly among UAVs while accounting for their relative capabilities
- Spanning Tree Coverage (STC): Generates efficient coverage paths within each partition
- Communication Radius estimation: Uses GHS algorithm to create a minimum spanning tree (MST) to estimate the required communication range.
- Distributed Bayesian Optimization via Thompson Sampling: Optimizes starting positions and seeds to minimize both energy consumption and communication radius
The system is implemented as a distributed multi-agent ROS2 application where each UAV operates independently while maintaining network connectivity.
Our approach achieves:
- Balanced area assignment among homogenous UAVs
- Complete coverage with minimal path overlap
- Optimized energy efficiency
- Scalability to multiple UAVs
Launch the system with four UAVs:
ros2 run controller controllerMonitoring and cleanup:
ros2 node list
killall -9 uav_agentEach agent uses multiple mixins:
PartitionMixin: Implements distributed power diagram partitioningSTCMixin: Implements Spanning Tree Coverage algorithmRadiusMixin: Handles communication radius calculationsEnergyMixin: Computes energy consumption for paths

