Udacity Self-Driving Car Nanodegree Term 2 in Review

Term 2 Review cover image

It’s official: I’ve survived another term in the Udacity Self-Driving Car Engineer Nanodegree! Hallelujah!

Really, though, it wasn’t that bad. The pace was less frenetic than Term 1, but the concepts were a little bit tougher to grasp. I’m inclined to chalk much of that up to the necessarily visual (and hence, I’d say, more intuitive) nature of computer vision problems from Term 1. But I think there were also many students who struggled to follow the math involved in Kalman filters, and others who were uncomfortable with C++ (which was a popular concern of students even before beginning the Nanodegree). Thankfully, I’m not new to C++ and I had worked through the refresher course Udacity offered while waiting for Term 2 to begin, and I had already been exposed to Kalman filters in the Artificial Intelligence for Robotics course, so I didn’t struggle terribly. Gotta reinforce those neural pathways!

Here’s a look back at Term 2’s lesson plan:

  1. Welcome
  2. Introduction and Sensors
  3. Kalman Filters
  4. C++ Checkpoint
  5. Lidar and Radar Fusion with Kalman Filters in C++
  6. Extended Kalman Filter Project
  7. Unscented Kalman Filters
  8. Unscented Kalman Filter Project
  9. Introduction to Localization
  10. Localization Overview
  11. Markov Localization
  12. Motion Models
  13. Particle Filters
  14. Implementation of a Particle Filter
  15. Kidnapped Vehicle Project
  16. PID Control
  17. PID Controller Project
  18. Vehicle Models
  19. Model Predictive Control
  20. Model Predictive Control Project
  21. The End

If I had to summarize Term 2 into a single overarching concept, it would be motion - sensing it, predicting it, controlling it.

The Nanodegree is obviously still a work in progress - Term 3 isn’t yet complete and Udacity is still ironing out some kinks. That was particularly evident to me in the Model Predictive Control lessons, which felt thin on content and didn’t seem to quite sufficiently prepare us for the project. Other students have complained about issues such as some projects being less engaging and underwhelming, that the program doesn’t prepare us to be as proficient in C++ as companies require, or that the program doesn’t go deep enough in any particular topic to make us competetive for most jobs and instead makes generalists of us. I suppose these are valid complaints, but I also feel that it’s unreasonable to expect so much of Udacity. To me, this is a world-class education that you couldn’t find anywhere else, certainly not for the price we’re paying, and there will always be more to learn so they have to draw the line somewhere. I’m still extremely pleased.

I started Term 3 just today, and I’m already beginning to feel like it’s all gone by too quickly. Term 2’s more relaxed pace gave me a chance to work on the DiDi Challenge, which is a great little piece to add to my portfolio. Even though I didn’t come close to winning the contest, I still learned a ton - and that was the whole point anyway. It looks like my extracurricular activity for Term 3 is going to be… applying for jobs. Wish me luck!