Path Planning & Trajectory Generation in C++


This is a writeup of the Self-Driving Car Engineer Nanodegree Term 3 Path Planning project. It was very challenging to say the least, but with the approach presented in the walkthrough, I quickly made headway. It also outlined important implementation details such as working relative to the end of the path instead of the car, and reusing path points from previous iterations of the simulator. Check out my source code.…
Read more ⟶

Unscented Kalman Filters


This post is about the Unscented Kalman Filters project. Unscented Kalman Filters are like a Level 2 version of Extended Kalman Filters. When my code (hopefully) passes review, I’ve finished Term 2 of the Nanodegree. (I’ve been pushing forward for 7 months even though it feels like I just applied to enter the Nanodegree!) Here’s a video of the Unscented Kalman Filter doing what it’s supposed to. The red and blue dots are noisy sensor data, while the green dots are the Kalman filter deciding the car is somewhere in the middle of the sensor data.…
Read more ⟶

Using PID to drive like Vin Diesel


I just finished the PID controller project of the Udacity Self-Driving Car Nanodegree! https://www.youtube.com/watch?v=SrdFTXpXkR4 The challenge was simple - make this car go around the track, when the simulator will tell you how far off you are. To do this, especially since the simulator tells us an error metric, I needed to build a PID controller. A PID controller is a simple function that relates the error (how off we are from our trajectory) to a control variable (throttle/steering/…).…
Read more ⟶

Using Particle Filters to localize a car in 2D space


This is a discussion on how I implemented and finished the Particle Filters project in the Udacity Self-Driving Car Engineer Nanodegree. The challenge Given a map of the world (a bunch of landmarks), and the car drawing lines to all landmarks within range with noisy data, give the best assumption for the car’s position in the world. The process How I was going to solve it was with an approach called particle filters.…
Read more ⟶

Using Extended Kalman Filters for object tracking


This is a discussion of how I solved the Extended Kalman Filters project in the Udacity Self-Driving Car Engineer Nanodegree. The problem Our car has two sensors: a lidar and a radar. Both can see a pedestrian. Based on the lidar and radar data (both a bit noisy), keep track of the pedestrian’s position and velocity. The solution Kalman filters offer a solution that can combine both lidar and radar data to complement each other, and a robust object-tracking model that also keeps track of the error margins.…
Read more ⟶

Writeup: Vehicle Detection


Vehicle Detection Project** This is a writeup for my Vehicle Detection project. Goals The goals / steps of this project are the following: Perform a Histogram of Oriented Gradients (HOG) feature extraction on a labeled training set of images and train a classifier Linear SVM classifier Optionally, you can also apply a color transform and append binned color features, as well as histograms of color, to your HOG feature vector. Note: for those first two steps don’t forget to normalize your features and randomize a selection for training and testing.…
Read more ⟶

Writeup: Advanced Lane Finding


Advanced Lane Finding Project The goals / steps of this project are the following: Compute the camera calibration matrix and distortion coefficients given a set of chessboard images. Apply a distortion correction to raw images. Use color transforms, gradients, etc., to create a thresholded binary image. Apply a perspective transform to rectify binary image (“birds-eye view”). Detect lane pixels and fit to find the lane boundary. Determine the curvature of the lane and vehicle position with respect to center.…
Read more ⟶

Writeup: Behavioral Cloning


This one-to-one copy of my writeup for Udacity follows the format in the writeup template, hopefully making the writeup more thorough and easier to grade. It follows a pretty strict format, but includes a lot of interesting content. Behavioral Cloning Project The goals / steps of this project are the following: Use the simulator to collect data of good driving behavior Build, a convolution neural network in Keras that predicts steering angles from images Train and validate the model with a training and validation set Test that the model successfully drives around track one without leaving the road Summarize the results with a written report Rubric Points Here I will consider the rubric points individually and describe how I addressed each point in my implementation.…
Read more ⟶

Writeup: Traffic Sign Classifier


This is a one-to-one copy of the writeup for my traffic sign classifier. Rubric This is a per-point addressment of the Udacity review rubric. It’s sort of like filling a form instead of writing freeform text, but I hope reviewing the document is therefore easier and more structured. A reference to the rubric is visible here: rubric. Writeup 1. Provide a Writeup that includes all the rubric points and how you addressed each one.…
Read more ⟶

SDCND: Lane Line Detection


The self-driving Car Engineer Nanodegree (I’ll just use SDCND from here) is a huge Udacity course about self-driving cars starting from vision ending with robotics. I applied in October, having an incredible opportunity to participate since Jan 19. The first project of the SDCND is about lane line detection. This is a simple experiment in computer vision using straight line detection and averaging to detect the left and right lane separators.…
Read more ⟶