TLDR: I completed the Udacity Self-Driving Car Engineer Nanodegree program after 5 months and 9 projects!
Over a lunch time conversation, my colleague (thanks Liz!) told me about a course that involved driving a simulated car to collect data for training a model. I was instantly piqued and applied to enroll the next day.
Many Data Science courses nowadays involve a buffet spread of techniques for preprocessing data, training and fine-tuning models. The exercises involved are usually to the tune of “How can we tell if this picture contains a cat or a dog, or if a review is of a positive or negative sentiment?”
However, without sufficient context on what use-case the model is actually for… these applications got old quickly. Give me a new problem to solve!
Over the past 5 months, I…
- identified lane lines via dash camera footage using traditional computer vision techniques such as Canny edge detection, Hough transform, Sobel operators and color thresholds
- classified traffic signs and detected cars on the road using convolutional neural networks
- steered a car around a track using transfer learning and data collected from my shoddy virtual car driving skills
- applied Kalman Filters & Particle Filters on lidar & radar data in C++ to vehicle localisation problems
- used a Finite State Machine with a cost function to determine behavioral changes such as acceleration & lane change
- implemented a PID controller for steering, throttling the car around a track
- integrated everything in ROS with pub/sub systems
This entire experience of applying both traditional and modern data procesing methods to the self-driving car problem has been everything I had hoped for and more.
Now, I really long for the day I can affordably hop into an autonomous vehicle and take a nap before arriving at my destination!