/Robotics Projects
AI Self-Driving Car
2nd Place - ENPH Machine Learning Competition 2022
Programmed a self-driving car in a simulated world using computer vision and machine learning. The car must stay within lanes, avoid pedestrians and trucks, navigate shadows, capture license plates, predict characters, enter a roundabout, and exit cleanly. I worked on this project with Adarsh Govindan
​
Our robot had 0 off-course traversals, 0 safety violations, 11/12 license plates accurately read and the fastest total track time
​
​
/My Contributions
ROS Topics & Communication

I set up our ROS workspace and designed the nodes, publishers, and subscribers information flow between different control subsystems of the robot.
Outer Loop & Hill Driving






The lane is detected by thresholding the grey-scale image from the camera input, according to an appropriate limit determined from grey scale histogram
The processing flow: Raw image > Gray scale > Gaussian Blur > Cut (focus on bottom of image) > Mask (thresholding) > Output: Binary image with white lanes
Robot navigates by keeping a fixed distance from the right edge at all time via PID control

Driving on the hill is much more challenging due to shadows and noise on the ground, here are the solutions:
-
Shadowed regions: Focuses only on the line markings very close to the robot. Algorithm sweeps for transitions across multiple rows
-
White spots on the ground: Sweeps for transitions from right to left and stops checking if two transitions are found
Pedestrian Detection & Avoid


The crosswalk is detected by filtering out the red colour in HSV color space
Detect the current position of the pedestrian using a similar method, but this time to filter out the blue jean of the pedestrian.
To determine the appropriate thresholds, the jean is isolated and the HSV channels value distributions are analyzed
Truck Detection & Avoid
Main Idea: Detect the truck as the robot enters the inner loop, wait a bit, and then don’t have to worry about hitting the truck afterwards

Inner Loop Driving

The driving code switch between following the right lane and following the left lane as either one disappears from the view
License Plate Detection & Character Recognition

I helped design and test our convolutional neural networks for letter and number recognition. The hyperparameters of the networks were tuned using Bayesian Optimization

