Winning Project: Simulated Self-Driving Car

Winter 2021

Left image: Competition course Right image: Robot image feed. Using the image feed from the robot, our task was to navigate the track, avoiding pedestrians and the other vehicle, while scanning and reading license plates, reporting them to the competition server.

ENPH 353 is a 3-year old course mandatory for engineering physics students designed as "a guided, self-directed project course for you to practice some of the most recent techniques and developments in control software and data classification." The course consists of 6 weekly labs to teach the fundamentals of ROS, OpenCV, image thresholding, imitation learning and reinforcement learning in order to give students the skills necessary to complete the main project: the self-driving vehicle competition.

The goal of the competition is to navigate the track, avoiding pedestrians and other vehicles, while scanning and reading license plates, reporting them to the competition server. My partner Holden and I collaborated to build an implementation in Linux using both PID control and imitation learning to navigate the course. We used image thresholding in OpenCV to isolate license plates and trained a TensorFow neural network to convert the license plate images to text. Our implementation was one of three teams in the 16 team competition to identify all 8 license plates correctly, and our robot completed the course 30 seconds faster than the other two teams, winning the competition. Our final report with details of our implementation is below.