← projects

project

BlackBee Challenge - 2026 - Mission 1 - Mapping

with Felipe Zanoni da Rosa e Felipe Barros

Black Bee Challenge 2026 — Autonomous Aerial Mapping

A drone that takes off on its own, maps 100% of a competition arena, and identifies targets by itself.

What it is

Built for Mission 1 of the Black Bee Challenge, an autonomous aerial robotics competition. The goal: a drone takes off with no human intervention from the center of a 14x14 meter arena, sweeps the entire area following a grid flight plan, locates up to 5 ground "bases" (targets marked with shapes and numbers), photographs each one making sure it's fully framed, computes its GPS coordinate, and generates a report with the photos as proof — exactly as required by the competition's official rules.

How it works

The system is a finite state machine running on ROS2: takeoff, coverage planning, photo capture at each waypoint, base detection, and landing. All the camera-geometry and computer-vision math (field-of-view calculation, ground footprint size, coverage grid, pixel-to-GPS conversion) lives in modules completely independent from ROS, so they can be tested without a real drone. Base detection can run either through classic image processing (OpenCV) or a YOLO model trained specifically for the target, interchangeable without touching the rest of the pipeline.

Tech stack

  • Python + ROS2 (rclpy)
  • YASMIN (finite state machine)
  • OpenCV and YOLO/Ultralytics for detection
  • MAVROS/MAVLink for real drone control
  • Gazebo for simulation

Technical highlights

  • Fixed a real optics bug: the camera's field of view is diagonal, not horizontal — the correct trigonometric conversion changed the number of required waypoints from 6 to 8
  • Coverage algorithm verified numerically by sweeping a fine grid of points to confirm 100% arena coverage
  • Two-stage pixel-to-GPS projection pipeline, with optional tilt compensation (roll/pitch) for the drone
  • Deduplication of targets detected across overlapping photos, with mosaic composition when no single photo shows the whole target
  • Entire mission configuration centralized in one file, with profiles that switch between simulation and real flight
ZZZZ