🚁 Autonomous Systems

Drone Swarm Rescue

Coordinated Multi-Drone Search and Rescue System

4 months Solo Research Completed

Overview

Master-slave architecture enabling multiple drones to coordinate search zones efficiently, reducing search time by 40% in simulations with robust failure handling.

The Problem

Search and rescue in large areas is slow with single agents. Manual coordination of multiple drones is complex and error-prone.

The Solution

Developed distributed coordination system where master drone assigns search zones to slave drones based on area coverage optimization. Drones communicate findings in real-time and adapt to individual drone failures.

Project Gallery

Technical Architecture

Distributed multi-agent system with centralized coordination

Master Coordinator

Assigns search zones, aggregates findings, handles drone failures

Slave Drones

Execute assigned search patterns, report findings, request reassignment

Communication Layer

ROS-based messaging for inter-drone coordination

Path Planning

A* algorithm for collision-free navigation

Methodology

  1. Simulation environment: Gazebo with custom search scenarios
  2. Drone count: 4 slave drones + 1 master
  3. Search area: 1km² with obstacles
  4. Communication: ROS topics with 10Hz update rate
  5. Failure scenarios: Battery depletion, communication loss, GPS errors

Results & Impact

40% Search Time Reduction vs single drone
92% Coverage Efficiency Area searched
100% Failure Recovery Successful reassignments
8% Coordination Overhead Communication cost

Key Impact

  • Demonstrated viability of swarm search
  • Robust to individual drone failures
  • Scalable to larger swarm sizes
  • Potential for real-world SAR deployment

Challenges & Solutions

Communication Latency

Predictive position updates and local decision-making autonomy

Zone Assignment Optimization

Greedy algorithm with dynamic reassignment based on progress

Collision Avoidance

Distributed collision detection with priority-based resolution

Key Implementation

Master Coordinator Logic

class MasterCoordinator:
    def __init__(self, search_area, num_drones):
        self.search_area = search_area
        self.drones = self.initialize_drones(num_drones)
        self.zones = self.partition_area(search_area, num_drones)
    
    def assign_zones(self):
        """Assign search zones to available drones"""
        for drone, zone in zip(self.drones, self.zones):
            if drone.is_available():
                drone.assign_zone(zone)
                print(f"Assigned {zone} to {drone.id}")
    
    def handle_failure(self, failed_drone_id):
        """Reassign zone when drone fails"""
        failed_zone = self.get_zone(failed_drone_id)
        available_drone = self.find_nearest_available()
        
        if available_drone:
            available_drone.assign_zone(failed_zone)
            print(f"Reassigned {failed_zone} to {available_drone.id}")
    
    def aggregate_findings(self):
        """Collect and merge findings from all drones"""
        findings = []
        for drone in self.drones:
            findings.extend(drone.get_findings())
        return self.merge_overlapping(findings)

Technologies Used

PythonROS (Robot Operating System)GazeboDroneKitPath Planning AlgorithmsMulti-Agent SystemsSimulation