We propose a cooperative two-drone system designed for humanitarian missions such as search-and-rescue and critical payload delivery. The system consists of a Parent Drone (DJI Tello) that transports and delivers payloads at low altitude while avoiding obstacles, and a Helper Drone (Parrot AR.Drone 2.0) that scouts ahead at high altitude to identify optimal paths. The Helper Drone scouts using grid search patterns and ArUco marker detection, then communicates path information to the Parent Drone. The Parent Drone flies lower while detecting and avoiding obstacles using YOLOv8 real-time object detection and a PID controller for precise landing (±10cm accuracy). Using vision-based sensing, path planning algorithms, and semantic communication modules, both drones coordinate to ensure safe travel and accurate payload drops. The project demonstrates multi-agent collaboration, environment-aware planning, and autonomous mission safety for UAV-based humanitarian operations.
The end goal of this project is to develop a fully autonomous cooperative two-drone system capable of executing humanitarian missions in complex environments. The system enables a high-altitude scout drone (AR Drone) to identify optimal paths and target locations, while a low-altitude delivery drone (Tello) navigates obstacles and delivers payloads with precision (±10cm accuracy). This cooperative approach combines the strengths of different UAV platforms to achieve safer, more efficient mission completion than single-drone systems.
This project addresses several challenging robotics problems:
The techniques developed in this project have broad applicability to real-world robotics challenges:
Humanitarian missions in disaster zones, remote areas, and search-and-rescue operations require autonomous aerial systems that can navigate complex environments, avoid obstacles, and deliver payloads with precision. Traditional single-drone systems face limitations in balancing high-altitude reconnaissance with low-altitude obstacle avoidance and payload delivery.
By employing a cooperative two-drone approach, we can leverage the complementary capabilities of different UAV platforms:
Our system employs two drones with distinct roles: the AR Drone (Helper) performs grid-based search patterns at high altitude using ArUco markers for localization, while the Tello Drone (Parent) navigates at low altitude with YOLOv8 object detection, pinhole camera distance estimation, and PID-controlled precision landing. The drones communicate transform data to coordinate their missions.
Role: High-altitude scout for path reconnaissance
Key Technologies:
Capabilities:
Role: Low-altitude carrier with obstacle avoidance
Key Technologies:
Capabilities:
✓ Success
Reliable marker detection and tracking with ±2cm accuracy at 1m distance
✓ Complete
5×5 cell coverage with snake/boustrophedon pattern
✓ ±10cm
World-frame position estimation via velocity integration
✓ Achieved
Proportional control for tag alignment
✓ 10-15 FPS
Real-time object detection with 89.7% mAP accuracy
✓ ±20% @ 5m
Monocular depth using pinhole camera model
✓ Zero Drift
Balanced maneuvers preserve target endpoint
✓ ±10cm
Precision control in 2-3 iterations
Problem: AR Drone cannot stream both cameras (bottom + front) simultaneously, limiting simultaneous ArUco detection and obstacle avoidance.
Solution: Implemented intermittent camera switching every 2 seconds, alternating between bottom camera for ArUco detection and front camera for obstacle monitoring. Frame buffering maintains visual continuity.
Problem: Position estimation errors accumulate during flight (±30cm per 3m traveled), affecting landing accuracy.
Solution: Implemented PID controller for final approach correction, reducing error from ±30cm to ±10cm through iterative position feedback (typically 2-3 correction cycles).
Problem: YOLOv8 must achieve 10-15 FPS on Tello's limited computational resources for safe reactive avoidance.
Solution: Selected YOLOv8-nano model (3.2M parameters, 6MB) and implemented frame skipping (process every 2nd frame) to maintain real-time performance while preserving 89.7% mAP accuracy.
Problem: Object detection and distance estimation introduce processing delays that affect reactive navigation.
Solution: Implemented asynchronous pipeline with frame buffering and predictive threat assessment, allowing drone to begin maneuvers while processing completes.
Problem: External disturbances (wind, blade wash) cause unmodeled position drift during flight.
Solution: Combined IMU-based velocity integration with PID integral term to correct for constant disturbances and maintain position accuracy.
Problem: Distance estimation via pinhole camera model requires accurate focal length calibration for each drone platform.
Solution: Performed empirical calibration by measuring known objects at fixed distances, achieving focal length estimate of 700 pixels with ±20% error at 5m.
Problem: Codebase must support both Mac and Windows development environments with different drone SDK implementations.
Solution: Used platform-agnostic libraries (pyardrone for AR Drone, djitellopy for Tello) and abstracted platform-specific code into wrapper classes.
This project successfully demonstrates a cooperative two-drone system for autonomous humanitarian missions. The AR Drone (Helper) performs high-altitude reconnaissance using ArUco markers and grid search patterns, while the Tello Drone (Parent) executes low-altitude navigation with real-time YOLOv8 obstacle detection and PID-controlled precision landing. Key achievements include:
Potential improvements and extensions to this system include:
We would like to thank the UC Berkeley EECS/ME 106a course staff for their guidance and support throughout this project. Special thanks to our instructors and TAs for providing the necessary resources and feedback.
For comprehensive algorithm documentation, mathematical formulations, implementation details, and code examples, visit the Technical Details page.
Topics covered include: YOLOv8 detection pipeline, pinhole camera distance estimation, PID control theory, dead reckoning, Bresenham's algorithm, ArUco pose estimation, grid search patterns, and more.