A fully autonomous ground rover capable of arena-wide self-localisation, squash ball collection, and sequential deposition — built within a £50 materials budget.
Overview
The IR-9 rover was designed and built for the FEEG2001 Systems Design and Computing module. Inspired by NASA's Perseverance and Spirit rovers, the brief required a fully autonomous vehicle capable of two sequential tasks inside a walled arena — with no GPS or external localisation. The rover needed to navigate, collect simulated rock samples (squash balls), and deposit them into two separate collection cups.
Led by Daniel Tombleson, the team of five took the project from concept sketches and cardboard mockups through to a laser-cut plywood prototype with full embedded software — delivered within a £50 materials budget.
Starting from an undisclosed position, the rover spins and compares paired rear ultrasonic readings to detect wall parallelism, then navigates autonomously to the target zone with a buzzer and LED confirmation on arrival.
A servo-actuated retractable arm collects four squash balls in one sweep. A Ferris-wheel mechanism then dispenses two balls into each of two cups, with the rover navigating between them using encoder odometry.
Technical Architecture
The rover integrates encoder-based PID motion control, four-channel ultrasonic localisation, a servo-actuated collection arm, and a Ferris-wheel deposition mechanism — all driven by a single Arduino UNO communicating with an MD25 dual motor driver over I²C.
Performance Results
Bench testing covered straight-line travel, rotational accuracy, and sensor range across multiple speeds and distances. A float/integer casting bug in the wheel-diameter-to-turn-angle ratio was identified and corrected, reducing rotational drift to zero at operating speed.
| Test condition | Target | Measured | Error | Result |
|---|---|---|---|---|
| Straight-line — 30 cm, speed 5 (pre-PID) | 30.0 cm | 33.2 cm | +3.2 cm | Overshoot |
| Straight-line — 30 cm, speed 5 (post-PID) | 30.0 cm | 31.0 cm | +1.0 cm | Pass |
| Straight-line — 60 cm, speed 5 (post-PID) | 60.0 cm | 61.0 cm | +1.0 cm | Pass |
| Rotation — 360°, speed 5 (pre bug-fix) | 360° | 362° | +2° | Drift |
| Rotation — 90°, speed 5 (post bug-fix) | 90° | 90.8° | +0.8° | Pass |
| Sensor range ≤ 100 cm | — | Exact | ±0 cm | Reliable |
| Sensor range ≥ 150 cm | — | 153–170 cm | +3 to −32 cm | Degraded |
Build Documentation
The rover body was constructed from laser-cut 6 mm plywood — net-cut into interlocking sections for precise assembly. All wiring was secured to prevent tangling with moving parts, and a fuse was placed in series with the main power switch to protect the Arduino and MD25 from overcurrent.
Outcomes