Back Homepage

ROS2 Drone Swarm GUI: Horizon Hive

ROS2, Python, Pygame, GUI

Repository: https://github.com/jackfruittt/rs1_gui

This project, Horizon Hive, is a mission control graphical user interface developed to control and monitor a swarm of drones in ROS2 that surveils a national park environment. It was created for the University Assignment '42043 Robotics Studio 1'.

The core objective was to build an interface capable of monitoring a forest environment, detecting hazards like fires, debris, or unauthorized personnel, and managing drone operations. The application is built in Python using Pygame for the interface, providing a highly customisable, responsive, real-time control panel.

This group project was co-developed by Jackson Russell (Team lead), Ace Viray (Simulation & Perception) and Matthew Chua (Drone logic). The impressive project architecture diagram was designed by Jackson.

Interesting features:

  • Live Map Visualization: A responsive top-down map showing drone positions, incidents, and planned paths. Waypoints are rendered using custom cropped-surface caching and a triple-overlap fading system to maintain low frame times.
  • ROS2 Camera Streaming: Real-time video streams from the drones via ROS2 camera topics.
  • Thread-Safe Architecture: A dedicated background thread handles all ROS2 subscriptions and publishing. The GUI accesses this data safely, ensuring it never freezes while waiting for ROS2 callbacks.
  • Incident Management System: Drones can report incidents (e.g., fires, debris, people) which are plotted on the map with severity-based colored icons, allowing operators to quickly assess hazards.
  • Telemetry & Fleet Control: Real-time monitoring of each drone's state, position, and telemetry directly from the central dashboard.
  • Isolated GUI simulation: The UI falls back smoothly when the ROS2 environment is not running, allowing interface testing and configuration without requiring the full Gazebo simulation.
Project image Project image Project image