Autonomous Vehicle Control System

Tools & Software
Micro-controllers
Python
Control Systems
CAD
3D Printing
Sensor Integration
Data Analysis
LaTeX
Problem
The dissertation projects on offer were all stress simulation work, so I proposed my own: an adaptive cruise control system that could keep a vehicle in lane, follow the vehicle in front at a set distance, and stop in an emergency, all from sensor data with no user input. For development scale and cost, the system was built around a remote-control car.
Process
The system split its workload across two controllers. A Raspberry Pi ran computer vision lane detection in Python using OpenCV: each camera frame was greyscaled, blurred, edge-detected with the Canny algorithm, masked to a region of interest, then passed through a Hough transform and line averaging to output the car's lane offset and angle error. An Arduino handled six ultrasonic sensors and a PID speed controller, tuned experimentally using the Ziegler–Nichols method, with the two boards talking over a serial connection. Two fuzzy logic controllers converted the vision outputs into a steering angle and a following-distance target for the PID. I designed the component housing in Autodesk Inventor and 3D printed it, with adjustable sensor mounts, camera positioning, and passive cooling, and wrote error handling so the control loop survived frames where no lanes were detected.
Outcome
The car held its lane on straights and curves, maintained a set distance from a moving object, and reversed immediately when a barrier appeared, passing three of the four specification manoeuvres, with overtaking limited by the Raspberry Pi's processing speed. The project won the best individual project prize in Mechanical Engineering and the Applied Engineering Excellence Scholarship.


