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

Built with C++, Observer pattern, Singleton, WebSocket, JavaScript

Final presentation and live demo of the GOPHER Delivery Simulation System.

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

Media

A drone low on battery hands its package to one with charge remaining.
A drone low on battery hands its package to one with charge remaining.

Documents