Autonomous robot navigation system combining Arduino-based motor control with MATLAB computer vision tracking. The robot follows a predefined path through an environment while being tracked in real-time from static camera footage.
Built as part of the Sensors & Robotics module at Liverpool John Moores University.
The project has two core components:
Robot Navigation (Arduino/C++) — A pre-built differential-drive robot chassis was wired and programmed to execute a precise sequence of movements autonomously:
- Drive forward 2m, rotate 90° left on the spot
- Drive forward 1m, rotate 90° right on the spot, then drive forward 2m
- Stop exactly 5cm in front of the destination target
All movements are from the robot's frame of reference. Motor control was calibrated to achieve accurate distances and rotation angles using timed drive sequences.
Vision Tracking (MATLAB) — A static camera (phone mounted in a fixed position) recorded the robot's full navigation run. A custom MATLAB algorithm processes the video feed to detect and track the robot throughout the entire sequence with zero loss of tracking.
| Component | Technology |
|---|---|
| Microcontroller | Arduino |
| Motor Control | DC motors via H-bridge driver |
| Navigation Logic | C++ (Arduino IDE) |
| Vision Tracking | MATLAB (Computer Vision) |
| Recording | Static-mounted phone camera |
The Arduino controls two DC motors through an H-bridge, executing sequential move commands — forward drives at calibrated speeds/durations for distance accuracy, and differential steering (opposite wheel directions) for on-the-spot rotation. Timing and PWM values were tuned through iterative testing to hit the required distances and angles.
The MATLAB tracking algorithm processes the recorded video frame-by-frame, using colour-based detection and a tracking algorithm to maintain a continuous lock on the robot's position throughout the full navigation sequence. The system was designed to handle lighting variation and maintain tracking without dropout.
├── arduino/
│ └── robot_nav_annotated.ino # Arduino motor control & navigation sequence
├── matlab/
│ ├── tracking_annotated.m # MATLAB vision tracking algorithm
│ └── VideoOG.mp4 # Original recorded footage
├── Preview.gif # Demo of tracking in action
└── README.md
The robot successfully completed the full navigation path autonomously, stopping within the required 5cm of the destination target. The MATLAB tracking algorithm maintained continuous detection throughout the entire recorded run with no loss of focus.
University coursework — LJMU Sensors & Robotics Module.
