DARK
St. Andrew's College, York Region, Canada

TeamTheseus

Fully autonomous rescue maze navigation with victim detection, kit deployment, and sensor fusion. Competing in RoboCup Junior Rescue Maze 2026, representing Canada at the World Championship in Incheon, South Korea.

1st
York Region
200pts
Best Score
96.2%
Model Accuracy
V2
Current Robot
Incheon, South Korea — Jul 1, 2026
--
DAYS
--
HOURS
--
MINS
--
SECS
Build Log on GitHub
designed by leo t.
Hardware

The Robot

Theseus V2 uses a layered PLA chassis with a dual-core main controller, full sensor fusion, and a custom turntable rescue kit dropper.

V2 Overview
V2 robot
V2 Completed Robot
V2 CAD
V2 CAD Render
V2 top view
V2 Top View
Underside
Underside: Motors and Dropper Stepper
Quick Specs
Controller
Arduino GIGA R1
Dual-core STM32H747, 480MHz M7 + 240MHz M4
Drive
Pololu 195:1 x6
12V gearmotors with magnetic encoders
Distance
VL53L0X Array
ToF sensors via TCA9548A I2C multiplexer
Vision
OpenMV H7 x2
FOMO model, 96.2% accuracy on letter victims
IMU
BNO055 9-DOF
Onboard sensor fusion, direct orientation output
Color
TCS34725
Downward-facing tile detection
Dropper
28BYJ-48 Stepper
Turntable, dual chutes, left/right deployment
Chassis
3D Printed PLA
Layered architecture, dead axle suspension
Hardware In Depth

Main Controller

ARDUINO GIGA R1

The original Arduino Mega 2560 was limited to 8KB SRAM and a single 16MHz core. A 20x20 map alone consumed 73% of available memory, and blocking movement operations caused missed victim detections.

The GIGA R1 runs a dual-core STM32H747. The M7 core (480MHz) handles navigation, PID control, BFS pathfinding, maze mapping, and dropper decisions. The M4 core (240MHz) continuously reads OpenMV camera UART, validates detections, and queues results. A blocking turn on M7 no longer prevents M4 from catching a camera detection.

M7: Navigation Core
State machine, maze map, BFS, PID motor control, IMU heading, encoder distance, dropper logic
M4: Vision Core
Camera UART reading, victim validation, detection queuing, notifying M7 of confirmed detections

Distance Sensing

VL53L0X + TCA9548A

An array of VL53L0X time-of-flight sensors covers all four cardinal directions plus forward obstacle detection. Preferred over IR sensors as measurements are colour-independent.

All VL53L0X modules share the same default I2C address, so they are multiplexed through a TCA9548A which isolates each sensor on its own channel.

IMU

BNO055 9-DOF

The BNO055 replaced the MPU6050, which required integrating raw gyro data and accumulated drift. The BNO055 performs onboard sensor fusion and directly reports orientation, used for straight-line heading, 90-degree turns, and turn recovery.

Camera and Vision

OPENMV H7 + FOMO

Two OpenMV H7 cameras run a FOMO object detection model via Edge Impulse. FOMO uses 30x less processing power than YOLOv5. 450 images (150 per letter) were augmented to over 1300 for training. 40 epochs, 96.2% accuracy. Cameras transmit only classification results over UART.

Rescue Kit Dropper

TURNTABLE STEPPER

A rotating turntable with two chutes deploys kits on either side without a 180-degree turn. The 28BYJ-48 stepper is press-fit beneath the turntable. 19x19mm openings for 10mm kits, 1mm clearance, triangular guides, and steep chutes ensure kits land within the 150mm scoring radius.

Power System

DUAL RAIL

High-current motor rail powers drive motors via the Carobot V3 shield. Stepper supplied via a 5V buck converter. OpenMV cameras on a dedicated regulated supply. The GIGA operates at 3.3V logic so all high-current devices use dedicated driver electronics rather than GPIO pins directly.

Code

Software

Theseus runs a distributed software architecture across two independent processor cores, combining autonomous navigation, sensor fusion, and neural-network vision processing.

Dual-Core Architecture
M7 Core — 480MHz
Navigation
Tile-based state machine
Maze mapping (20x20 grid)
Breadth-first search pathfinding
PID motor control
IMU heading correction
Encoder distance tracking
Obstacle avoidance decisions
Rescue kit deployment logic
M4 Core — 240MHz
Perception
Continuous camera UART reading
Victim detection validation
Detection event queuing
Stale result filtering
Notifying M7 of confirmations
Camera error handling

The key advantage: a blocking turn or BFS calculation on the M7 no longer prevents the M4 from receiving a victim detection. On the original Arduino Mega (single core, 16MHz, 8KB SRAM), a 20x20 map consumed 73% of available memory and blocking operations caused missed detections.

Navigation State Machine

The robot navigates tile by tile using a state machine written by Christopher Shu. Each tile is one decision cycle. The robot senses its environment, updates its internal map, and transitions between states based on what it finds.

EXPLORE Sense + Map DETECT Victim Found AVOID Black/Blue Tile DEPLOY Drop Kit RETURN BFS to Start resume camera color confirmed + deployed
BFS Pathfinding
Algorithm

Lucas Cai implemented a breadth-first search algorithm that calculates the shortest path back to the starting tile. BFS was chosen over DFS because it guarantees the shortest path, critical for maximising the exit bonus score.

The maze is stored as a 20x20 array of custom tile bitsets. Each bitset encodes wall data, exploration state, victim records, and checkpoint flags in minimal memory. On the original Mega, even this compact representation consumed 73% of SRAM.

Tile Bitset Structure
NORTH WALL
N wall present
SOUTH WALL
S wall present
EAST WALL
E wall present
WEST WALL
W wall present
EXPLORED
Tile visited
VICTIM
Victim detected
CHECKPOINT
Checkpoint tile
RAMP
Elevation change
Sensor Fusion

Rather than relying on any single sensor, Theseus combines data from three independent sources for movement control. This redundancy makes navigation significantly more reliable when one sensor is noisy or blocked.

Distance
VL53L0X Array
Wall detection in all 4 directions. Feeds wall data into maze map and keeps robot centred in corridor.
Orientation
BNO055 IMU
Direct heading output with onboard fusion. Handles 0-360 wraparound for turn control and straight-line correction.
Position
Magnetic Encoders
Wheel rotation counting for distance estimation. Combined with IMU to detect incomplete turns and slip.
Computer Vision
FOMO Model

Two OpenMV H7 cameras run a FOMO (Faster Objects More Objects) neural network trained through Edge Impulse. FOMO uses 30x less processing power than YOLOv5 by generating a probabilistic heatmap rather than processing full frames.

Results are transmitted over UART to the M4 core as compact classification packets. This keeps the main controller free from vision processing entirely.

Training Data
Images collected450
After augmentation1,350+
Training epochs40
Model accuracy96.2%
Batch size32
Φ
PHI
Harmed victim
Ψ
PSI
Stable victim
Ω
OMEGA
Unharmed victim
Future Improvements
Future Build 01
Tracked Drive System

The current wheel-based drive struggles on stairs and uneven terrain. A tracked system would distribute the robot's weight across a larger contact area, dramatically improving traction on ramps and steps.

Tracks also better reflect real-world rescue robots, making them a fitting direction for a robot designed around a real rescue scenario.

Better stair and ramp handling
Larger ground contact area
Mirrors real rescue robotics
Tracked rescue robot reference
GIGA R1 STM32H747 MUX TCA9548A I2C PORTS x8 PCB CONCEPT
Future Build 02
Custom PCB

The current protoboard solution, while functional, creates complex wiring that is difficult to debug and prone to loose connections under vibration. A custom PCB would consolidate all connections into a single board.

The design would include dedicated I2C ports for each sensor directly on the board, eliminating the need for the external TCA9548A multiplexer wiring and significantly reducing assembly time.

Integrated I2C MUX ports
Eliminates loose connections
Faster assembly and debugging
Future Build 03
Ground Clearance

The current chassis handles the 2cm obstacle requirement but with very little margin. Occasional wheel catching on stairs shows the clearance is at its limit, especially when the robot approaches at a slight angle.

The next chassis revision would raise the base plate and redesign motor mount positions to achieve at least 3cm of clearance, giving a comfortable margin across all obstacle types and approach angles.

Target: 3cm+ clearance
Redesigned motor mount positions
Comfortable stair clearance margin
20mm V2 CHASSIS 2cm V3 TARGET 3cm+ CLEARANCE COMPARISON
People

The Team

Four students from St. Andrew's College with defined technical roles across mechanical design, electrical assembly, computer vision, software architecture, and algorithm development.

Team Theseus
Team Theseus, St. Andrew's College
Team Lead
Baichen Luo

Ensures effective collaboration across all members. Developed the FOMO computer vision pipeline for victim detection, handles electronics integration, and manages low-level movement control.

Prior AI experience and interned at Fudan University in Shanghai assisting postgraduate students on a robotics data collection project.

ElectronicsComputer VisionEdge ImpulseMovement Control
Mechanical and Electrical
Leo Tiralongo

Mechanical design in Fusion 360, responsible for all soldering, protoboard assembly, and electrical wiring throughout the robot.

Leads an FPV drone building program at school. Personal projects include a custom FPV drone frame and a 6 DOF robotic arm. VEX V5 team leader.

CAD / Fusion 360Soldering3D PrintingElectrical AssemblyVEX V5
Software Architecture
Christopher Shu

Designed and implemented the tile-based state machine that drives the robot's autonomous decision-making as it explores and maps the maze. Responsible for the overall software architecture and navigation logic.

State MachineNavigationSoftware Design
Algorithm
Lucas Cai

Implemented the breadth-first search algorithm for calculating the return path to the starting tile. The BFS operates on the robot's 2D map stored as a custom tile bitset to minimize memory usage on the controller.

BFS AlgorithmPathfindingData Structures
Documentation

Build Log

Sprint-based documentation covering mechanical design decisions, prototyping, testing outcomes, and iteration across each phase of the V2 build.

SPRINT 01Chassis RedesignMechanicalView on GitHub

Goal

Redesign the V2 chassis with motors beneath the base plate for better space efficiency. Establish correct ground clearance, dead axle suspension, and a cabling strategy to eliminate wiring tension.

V1 vs V2

In V1, motors sat on top of the base plate, consuming space needed for the dropper and electronics. Cabling was disorganized and the dropper on the upper layer made the top plate difficult to fit. V2 moves motors beneath the base plate, freeing the mid layer for electronics. The suspension constraint wedge was repositioned to reduce the overall footprint.

Key Design Decisions

Dead axle suspension with press-fit bearings prevents torsional stress on the drive shaft. Cable strain relief posts with capped ends and offset routing prevent tension on motor connectors. 2cm ground clearance matches the maximum obstacle height in the competition rules.

Build Reference

V1 CAD
V1 CAD Front View
V2 wiring
V2 Wiring During Assembly
What worked

Dead axle suspension solid under repeated use. Strain relief posts eliminated connector tension. Layered architecture created clean space for the dropper.

To improve

Strain relief posts slightly too short for the full cable count. Next iteration will scale post height based on actual wiring quantity.

SPRINT 02Dropper MechanismMechanicalView on GitHub

Goal

Design a rescue kit dropper that fits between the base and mid layer, indexes correctly, and delivers kits within the 150mm scoring radius on both sides of the robot.

Research and Ideation

Three mechanisms evaluated: turntable (inspired by gumball machines and seen at RoboCup Americas 2025), inverted PEZ dispenser, and paddle dispenser. Turntable selected as the only design offering side selection without a 180-degree robot rotation, saving meaningful time during a run.

Final Design

28BYJ-48 stepper mounted beneath the turntable via press-fit shaft. 19x19mm openings for 10mm kits, 1mm clearance. Triangular 8x4mm guides prevent lateral movement. Two steep chutes extend beyond the wheel position to land kits within 150mm.

Build Reference

V1 with dropper
V1 Completed, Dropper Visible on Top
V2 underside
V2 Underside: Stepper Mounted Beneath Base Plate
What worked

Side selection saved time per victim. Stepper beneath freed the entire mid layer. Compact form fits cleanly in the inter-layer space.

V1 issues fixed

Motor no longer inside mechanism. Guide engagement fixed with proper clearance. Chute height lowered to prevent kit bounce.

SPRINT 03Rescue Kit DesignMechanicalView on GitHub

Goal

Design a 10x10x10mm rescue kit that stays within the 150mm scoring radius after being dropped, is 3D printable, and resists rolling after impact.

Research

Four concepts researched: one-sided weighted cube (loaded dice), roly-poly cube with a weighted sphere, roly-poly cube with metal pellets, and a full silicone cube. Roly-poly with metal pellets selected for proven physics, ease of loading during printing, and ability to weight all sides rather than just one.

Prototype and Testing

Cardboard prototype with bolt weights confirmed roly-poly physics at approximately 3cm drop heights. Issues: cardboard unevenness caused tilting, bolt holes reduced effective weight. Next steps: tungsten pellets at 19.3g per cubic centimetre, uniform 3D printed cube, and a larger cavity using 0.4mm-wall printed shell.

What worked

Roly-poly physics confirmed effective at low drop heights. Top-seal loading method worked well during prototype assembly.

To improve

Need tungsten pellets for higher density. Cube must be precisely printed to avoid asymmetric rolling.

Competition

Results

Team Theseus competed in the RoboCup Junior Rescue Maze 2026 York Region season, winning 1st place and advancing toward the World Championship.

York Regionals Run
V1 robot in maze
V1 Robot Testing in the Maze
1st place trophy
1st Place, 2026 RoboCup Junior York Region
Season Timeline
2026 YORK REGION
Regional Championship
1st place at the RoboCup Junior York Region Rescue Maze competition. Robot ran fully autonomously with the complete sensor suite operational.
1st
Place
FEB 28 2026
Friendly Competition
Scored 110-200 points using victim detection only, dropper not yet attached. Strong navigation and victim identification throughout the run.
200pts
Best Score
QUALIFIER RUN
Qualifier
95-130 points due to a logic error and mid-run power failure. A testing run with V1 confirmed full capability including victim detection, kit deployment, and return to start.
130pts
Qualifier
Next Up
World Championship 2026
RoboCup Junior
International
Incheon, South Korea, representing Canada
Victim Detection
Letter victims and cognitive targets detected reliably while navigating.
Kit Deployment
Rescue kits deployed within 150mm scoring radius on both sides without robot rotation.
Exit Bonus
Robot successfully returned to starting tile and completed the exit bonus blink sequence.