Multi-Drone Coordination in a Delivery Simulation
Drones that ask each other for help when a battery will not last the delivery.
2025 · CSCI 3081W Program Design and Development, University of Minnesota · created with Yash Seella
An extension to GOPHER, a C++ delivery simulation rendering the University of Minnesota campus in the browser. In the base simulation each drone completes its deliveries alone. This extension lets a drone that cannot finish a task publish a help request. Available drones evaluate it and bid, and the most suitable helper is chosen on proximity, battery level, and availability. A drone low on power can hand its package off mid-route or request a battery donation to reach a pickup.
Coordination runs over a centralised message board built with a compositional templated observer. Entities publish and subscribe on multiple channels, arbitrary message types are carried through templates, and keeping every message on one shared board improves cache locality. A second extension adds a Data Collection Manager, a singleton observer that records per-entity metrics and exports them to CSV through the web UI over a WebSocket. The metrics are distance travelled, packages delivered, picked up, and handed off, batteries donated, and recharges.
Highlights
- Designed drone-to-drone coordination on a bidding protocol scored by proximity, battery level, and availability.
- Separated drone-to-drone from drone-to-user communication behind a templated observer, so both share one publish/subscribe mechanism.
- Added CSV export of per-entity simulation metrics for offline analysis.
Media