Self-Driving Vehicle


Overview

With a partner, I developed a self-driving car for the ENPH 353 competition. The project centered on training a robot to autonomously navigate a track in Gazebo simulator while avoiding pedestrians and identifying parked vehicles by their license plates and parking space numbers. This project strengthened my expertise in machine learning, data collection pipelines, and practical robotics applications.

Key Features:

  • Track Navigation: Trained and optimized an imitation learning convolutional neural network (CNN) using TensorFlow to enable smooth navigation around a track in simulation. I wrote a script to automatically collect and label data for training and validation.
  • Vehicle Identification: Utilized SIFT and neural networks to identify parked cars, returning their parking numbers and license plate details with near-perfect accuracy. Pedestrian Avoidance: Incorporated computer vision techniques to avoid pedestrians dynamically while maintaining efficient path-following behavior.

Check out the code we used to make it all happen as well as more details about our implementation on Github!


Technologies and Tools

  • Machine Learning Frameworks: TensorFlow, OpenCV
  • Programming Languages: Python
  • Simulation Tools: Gazebo, ROS
  • Machine Learning Techniques: Convolutional Neural Networks (CNN), Imitation learning
  • Computer Vision Techniques: SIFT (Scale-Invariant Feature Transform)

Competition Layout
The layout of the competition, including obstacles and locations of all parked vehicles.
Vehicle View
Example camera view for vehicle.
Loss Graph
Loss graph of the trained model for character classification.
H-bridge Circuit
Demonstration of pedestrian detection using frame differencing.