RoboCup Rescue Bot
Autonomous robot for RoboCupJunior Rescue Simulation 2026, built in Python on the Webots / Erebus platform with team Black Radiators. It explores unknown mazes online on a configuration-space occupancy grid, identifies letter victims and hazmat targets through a hybrid YOLO + deterministic colour pipeline, and submits a rule-exact map to the scoring engine. National champions, and 3rd place at the World Championship in Incheon.
Built for RoboCupJunior Rescue Simulation 2026 with team Black Radiators, this autonomous controller drives a two-wheel differential-drive robot through an unknown, maze-like field, locating wall tokens that represent victims and hazardous materials while avoiding holes and swamps. The software is written in Python and organised into four cooperating modules — perception, navigation, mapping, and communication — that exchange information through a shared world model rather than calling each other directly, which keeps them decoupled and individually testable. The sensor suite is deliberately minimal to stay within the Erebus customiser budget: a forward LiDAR, a downward colour sensor, and a GPS and IMU at the chassis centre, plus the project's most distinctive choice — two compact 64×64 side cameras that inspect both walls of a corridor at once, doubling the effective scan rate without the cost of a forward camera. Everything runs at the basic simulation timestep, with a live matplotlib view of the occupancy grid used throughout development.
Because the field is revealed only at competition time and any pre-mapping is forbidden, the robot has to perceive, decide, and map simultaneously. Navigation runs on a 1 cm occupancy grid built online from the LiDAR point cloud and GPS, with every wall inflated by a 3 cm padding ring into a configuration space so the body can be planned as a single point that never clips an inflated corner. Exploration is right-wall following under a proportional controller; when the local area is exhausted, a padding-tolerant breadth-first search drives the robot to the nearest unexplored frontier along a Bresenham line-of-sight-smoothed path, relaxing the padding tolerance only enough to squeeze through tight but legal gaps. Perception had to separate real tokens from decoys: a YOLO network classifies the Greek-letter victims (H, S, U) while a deterministic scanline sums the five concentric hazmat rings (black −2, red −1, yellow 0, green +1, blue +2) into a type code, rejecting any invalid sum as fake, and a LiDAR depth-variance test discards raised three-dimensional fake letters. Keeping the 1 cm navigation grid consistent with the separate 3 cm rule-exact matrix encoded for the Erebus scoring engine was the central integration problem, alongside failing safely around holes and swamps via colour-sensor detection and a GPS watchdog that triggers a reverse-and-rotate unstick manoeuvre.
On practice worlds the controller reached sub-centimetre localisation error and under 2° heading error, 95% letter-classification accuracy, 98% hazmat type accuracy with 92% fake-letter rejection, and 95% hazard-recovery success — with full scored runs identifying 7 of 8 tokens with zero misidentifications and roughly 88% map correctness. The system took 1st place at the national RoboCupJunior Rescue Simulation and earned 3rd place at the RoboCup World Championship in Incheon, South Korea (July 2026). Its main strengths — the cost-aware twin-camera design, configuration-space wall-following paired with padding-tolerant frontier search, and a hybrid perception pipeline that combines a learned letter detector with a transparent arithmetic hazmat detector — are documented in full in the team's Team Description Paper.

