The challenge
Navigate a printed road network using physical arrow cards to choose turns at junctions. The 2025 field replaced a simple grid with curved roads and visual clutter, requiring a different approach to navigation.
My contribution
Built the robot assembly, navigation logic, computer-vision pipeline, training tools and teaching materials. Students learned the underlying theory and practised model training, tuning and data validation. Teams placed 1st Secondary and 2nd Primary at AIMS 2024, and 1st Secondary at AIMS 2025.
From field image to navigation graph
Processed a known gamefield image using colour masks, connected components and path skeletonisation. An initial neighbourhood-based detector produced too many junction candidates; constraining searches to expected regions made detection more useful. Connected pads and junctions into a graph and calibrated the result against the physical field.
Perception and physical control
OpenCV captures and crops camera frames to reduce background noise before TensorFlow arrow-card classification. Python sends navigation decisions over BLE to the SPIKE Hub running Pybricks. Navigation combines calibrated distances and IMU-guided turns with sensor feedback for position and junction checks.
Engineering tradeoffs
The Raspberry Pi handles vision and higher-level decisions while the SPIKE Hub handles physical control. A predefined field graph reduces dependence on reactive line following, but physical alignment, movement and sensor behaviour still require calibration. This is navigation on a known field, rather than general-purpose mapping.
Turning the field into a graph.
Report figures show the extracted path skeleton and the resulting navigation graph. These are preprocessing outputs for a known field.


