In this review of Udacity’s Intro to self-driving car Nanodegree, you will get to know about the projects learning outcomes of this course.
Try Coupon Code: UPSKILL21
Udacity is a well-renowned platform that is hardly unknown to people waiting to pace up their learning journey in their desired fields.
Coming from a background in Mechanical Engineering, I always struggled with the software parts of the projects, which eventually attracted me. With an ambition to pursue a Master’s in Robotics, I was searching for an all-encompassing learning content for autonomous robots, which has always fascinated me.
After some research, I came across the Intro to Self Driving Cars NanoDegree program on Udacity’s website. I was very much impressed by how it had a list of pre-requisite courses listed, that I had to complete before starting the Nano-Degree.
It was really a basic course which was perfect for someone like me, who’s completely new to the world of Autonomous Robots and all the introductory concepts related to Self-Driving Cars. Along with this, the projects included in this Nano-Degree really attracted me. They were perfectly designed for the content taught and were challenging enough to boost my confidence rather than putting my morale down.
Intro to Self Driving Car Pricing
I enrolled in this program in November 2020, wherein I got a 75% discount and had to pay $99/month rather than what’s its original price, i.e somewhere around $399.
Even though after getting the discount, I didn’t feel the course was value for money if you plan on completing it for the entire 4 months. Rather, I tried completing it in a short period of time.
- If you buy the course through the links mentioned in this article, Courseing can earn some affiliate. It can help them to keep running this blog. Let’s continue to the article.
The course is totally manageable, even if you are a beginner in the field. Udacity has set up a timeline looking at a 4 months completion period. However, if you’re consistent and willing to put in a little bit of extra effort, you can complete it in one or hardly two months.
As I moved ahead in the Nano-Degree, I felt stuck at some concepts, not because they were difficult but because they were totally new and out of my comfort zone.
Being a mechanical engineer, I was uncomfortable with concepts like Machine Learning and Computer vision. Although, keeping the prejudice about the topics aside, these are some amazing things to learn.
Let’s have a look at the syllabus in this Udacity’s Intro to self-driving car Nanodegree review.
Syllabus of Intro to Self Driving Car Nanodegree
Lesson1: Bayesian Thinking
This lesson mainly focuses on brushing up your skills on the basics of probability. It covers topics such as Conditional Probability, Bayes’ Rule, Programming Distributions, Gaussian distributions, and Robot Localization.
You are also taught programming in python related to all the above topics related to probability. Robot Localization is a topic where you implement the concepts of probability taught.
To feel comfortable and knowledgeable about Robot Localization from basic, I’ve included some free resources in this Udacity intro to self-driving car review. The first one is this free course on Udacity itself, called Artificial Intelligence for Robotics. This course will help you get command of this concept. Many of the topics overlap with the topics from the Nanodegree, but will eventually help you get across this program.
Also Read: Robotics Engineer Nanodegree review
Project1: Joy Ride
Chapter 1 begins with a project which mainly focuses on using your intuitive skills for parking a car parallelly. It requires many iterations in the values in the code provided in the Jupyter notebook.
Project 2: 2D Histogram Filter in Python
This is an optional project and demands you to apply the probability and robot localization concepts. It asks you to build a basic 2D Histogram Filter in python. It asks you to write Sense and Move functions respectively for a Robot and asks it to “Move” whenever it “Senses” required environment.
Lesson3: Working with Matrices
In this lesson, you’ll be familiarizing yourself with Kalman Filters, State of a Robot and Object-oriented Programming, and Matrix Transformation.
A Kalman Filter is an algorithm that uses noisy sensor measurements (and Bayes’ Rule) to produce reliable estimates of unknown quantities.
In this lesson, you’ll learn the general intuition behind Kalman Filters.
Also, you’ll learn how to think about the “state” of a robot and how to use a programming tool called object-oriented programming to manage that “state”. This lesson will give a practical / non-theoretical approach to matrix math because when a problem is framed in the language of matrices, it’s often possible to find programmatic solutions which are effective and very fast.
Project3: Implement a Matrix Class
This project demands you to create a Matrix class which includes functions that can perform matrix transformations when called. Also, you need to define certain functions that can assist for algebraic operations on two matrices.
Lesson4: C++ Basics
This is a perfect place to learn C++ if you’ve never used it before.
Although to get a head start, the second resource I recommend in this Udacity Intro to self driving car nanodegree review is the their C++ for Programmers free course.
I came across this course later on, so I didn’t do it, but I was pretty comfortable with the content for C++ that was provided in this lesson. It started from basics and then taught using vectors in C++ and OOP in C++.
Also Read: Review of Udacity’s C++ Nanodegree
Project4: Translate Python to C++
This project was the easiest I feel, as you had to do nothing but just translate the python code that you wrote in the previous lesson, to C++ code. There were a few minor issues while translating, as you need time to adapt to the C++ syntax, but I came around it easily and anyone can, is what I feel.
Lesson5: Performance Programming in C++
Being a Self-Driving Car engineer, not only demand you to write a code that can fit on its controller but also the code needs to be as compact and as efficient as possible in order to reduce the execution time and real-time response.
Keeping this in mind, this is one of the most important chapters of this course. It teaches you to optimize your code and make it more efficient. It makes you use a clock embedded in the C++ code to check the run-time for your optimized code and compare it with the original one.
Project5: Optimize Histogram Filter
In this project you’ve to optimize the functions that you wrote in the previous project, in order to reduce the time required for compiling the code. You again have to use a clock embedded in your code to compare it with the code written by the instructor.
It is really fun to optimize your code and make it compact and shorter by several instructions and run and see it running more efficiently than before 🙂
Lesson6: Navigating Complex Data Structures
This lesson starts with a chapter called ‘How to solve problems which is a part of a free course for computer science on Udacity itself.
It aims at writing a code in order to solve a problem that asks the user two different dates and then calculates the number of days between two days; considering the leap years as well. It was fun to solve this problem and come up with various solutions with numerous bugs and then finding the final solution by eliminating all those bugs.
Later on, we are taught about various data structures. The second chapter mainly focuses on python dictionaries and lists. It demonstrates the concepts using examples of tickets that are generated whenever a crash or a bug is reported in the system. The ticket consists of various labels and so on.
Chapter 3 is the most interesting and fun part of the entire course. It teaches about ‘The Search Problem’.
In this, various search techniques are taught, starting with Graph Search, which includes Breadth-First Search. Later, it explains uniform cost search along with search comparison. Afterward, it gives explains A* search and then gives an introduction to optimistic heuristic with the help of the ‘Sliding Block Puzzle’.
Project6: Implement Route Planner
In this project, you will build a route-planning algorithm like the one used in Google Maps to calculate the shortest path between two points on a map. You’ll add to and modify different functions present beforehand in the Jupyter Notebook environment to find the shortest path in the given map.
Lesson7: Vehicle Motion and Control
This lesson talks about different sensors used by autonomous robots in order to sense their state and their environment. It also teaches the basics of calculus and other mathematical concepts used by robots in order to generate their trajectories.
Project7: Reconstructing Trajectory from sensor data
In this project you will take raw sensor data like timestamp, displacement, yaw rate and acceleration and generate a trajectory following the instructions given in the Jupyter Notebook. It is a pretty straightforward assignment and hence is not graded.
Lesson8: Computer Vision and Machine Learning
This is the most interesting and important part of this Nano-Degree Program.
The lesson starts with the basics of computer vision, wherein you are taught concepts like Image Classification, representation of images as a grid of pixel values, etc are taught.
Then it moves forward with pre-processing an image, cropping and resizing the image, color masking, HSV conversion, Day and Night classification, Feature Extraction, brightness of the image, etc. Then the machine learning part kicks in where you are introduced to the basics of Machine learning, training a model and Convolutional Neural Networks.
I really had fun while learning all of these concepts. If you are really interested in learning computer vision and are comfortable using MATLAB, the third resource I recommend in this review of Udacity’s intro to self driving car review is this free course on Udacity with the title Introduction to Computer Vision.
Project8: Traffic Light Classifier
This is a bit of a challenging project, being the final one from the Nano-Degree.
In this project, you’ll use your knowledge of computer vision techniques to build a classifier for images of traffic lights. You’ll be given a dataset of traffic light images in which one of three lights is illuminated: red, yellow, or green.
You’ll pre-process these images, extract features that will help distinguish the different types of images, and use those features to classify the traffic light images into three categories: red, yellow, or green. The tasks will be broken down into a few sections:
- Loading and visualizing the data
- Feature extraction
- Classification and visualizing error
It was really interesting, challenging and fun to complete this project. I had to look up a few things on the internet to learn certain things in opencv3, to use in this project.
Check this out -> Udacity Robotics Nanodegree Review
How Was My Project Experience
I had taken up this Nano-Degree mainly for the projects included in it along with the personalized feedback on each project. The projects are challenging enough to boost your confidence and make try harder for the proper execution of the solution.
Every project included is unique in its own way and pushes you to think out of the box and do some more learning apart from the course content.
Let’s explore more about Udacity features in this Intro to self driving car nanodegree review.
Thoughts on some Udacity features
One of many factors I had considered while enrolling for a Nano-Degree in Udacity was the mentorship reviews I had got, which I later on experienced first hand when I was stuck on the concepts and asked mentors my doubts. There were very quick responses from the mentors with a detailed explanation of the doubt and along with additional resources to clear the concept.
So, overall the mentorship provided by Udacity is very resourceful.
Whenever you submit a project, within a couple of hours you get a reply from a project reviewer. If your project satisfies all the conditions mentioned in the Project Rubric, you are ready to move on to the next part of the course. All project reviewers carefully review your projects and give you feedback on what more things you could’ve added or done to develop your skillset. On the other hand, if you do not satisfy the requirements, you are given suggestions and asked to resubmit the project. I personally was very much beneficial by the project reviews I got and also I learned a lot.
I personally didn’t take much of an advantage of this module, as first of all I was not enrolled in this course for getting employment but just to develop my skills for my Master’s degree.
Also, I wasn’t aware that you are allowed to book a 1-on-1 appointment with a career counselor who’ll help you with various aspects of your overall profile. But later on from March 25 2021, Udacity revised its policies and removed 1-on-1 appointments with career coaches from their module.
However, I had booked one session with a career coach after graduating from the Nano-Degree to see how it exactly functions. It was a 30 min session with not much output. The career coach spent most of the time explaining her background and mentioned obvious things which weren’t really helpful.
What I liked about Udacity(Pros)
The things that I like the most about Udacity do in this priority rankings :
- Project Reviews
- Course’s learning Content
What I Didn’t Like About Udacity(Cons)
I wasn’t very much satisfied with the career services offered. Also, the content provided is overpriced, is what I feel.
After reading pros and cons, you might be wondering if ‘Udacity’s intro to self driving cars nanodegree is worth it’ and do I recommend it?
Conclusion: Do I recommend Udacity’s Intro To Self Driving Car Nanodegree?
I’ll definitely recommend this Nano-Degree program to the people who want to pursue their career in the field of robotics and are worried that they don’t have or have very little knowledge of the field. But along with that, I’ll suggest you enroll in the course whenever there’s a discount offered. Also, choose a monthly subscription and try graduating in a month or two which really will be effective.
Incoming Graduate student at NYU Tandon School of Engineering in MS in Mechatronics and Robotics. Currently Ian developing skills under Autonomous Systems – Localization, SLAM, CV mainly for self-driving cars and aerial robots.