
One of my family traditions on the 4th of July is to read the Declaration of Independence.
It is a wonderful, imperfect document, which birthed a wonderful, imperfect country.

One of my family traditions on the 4th of July is to read the Declaration of Independence.
It is a wonderful, imperfect document, which birthed a wonderful, imperfect country.

Update: Udacity has a new self-driving car curriculum! The post below is now out-of-date, but you can see the new syllabus here.
In just a few days, weâre going to begin releasing Term 3 of the Udacity Self-Driving Car Engineer Nanodegree Program, and we could not be more excited! This is the final term of a nine-month Nanodegree program that covers the entire autonomous vehicle technology stack, and as such, itâs the culmination of an educational journey unlike any other in the world.
When you complete Term 3 and graduate from this program, you will emerge with an amazing portfolio of projects that will enable you to launch a career in the autonomous vehicle industry, and you will have gained experience and skills that are virtually impossible to acquire anywhere else. Some of our earliest students, like George Sung, Robert Ioffe, and Patrick Kern, have already started their careers in self-driving cars, and weâre going to help you do the same!
This term is three months long, and features a different module each month.
The first month focuses on path planning, which is basically the brains of a self-driving car. This is how the vehicle decides where to go and how to get there.
The second month presents an opportunity to specialize with an elective; this is your chance to delve deeply into a particular topic, and emerge with a unique degree of expertise that could prove to be a key competitive differentiator when you enter the job market. We want your profile to stand out to prospective employers, and specialization is a great way to achieve this.
The final month is truly an Only At Udacity experience. In this System Integration Module, you will get to put your code on Udacityâs very own self-driving car! Youâll get to work with a team of students to test out your skills in the real world. We know firsthand from our hiring partners in the autonomous vehicle space that this one of the things they value most in Udacity candidates; the combination of software skills and real-world experience.

Path planning is the brains of a self-driving car. Itâs how a vehicle decides how to get where itâs going, both at the macro and micro levels. Youâll learn about three core components of path planning: environmental prediction, behavioral planning, and trajectory generation.
Best of all, this module is taught by our partners at Mercedes-Benz Research & Development North America. Their participation ensures that the module focuses specifically on material job candidates in this field need to know.

In the Prediction Lesson, youâll use model-based, data-driven, and hybrid approaches to predict what other vehicles around you will do next. Model-based approaches decide which of several distinct maneuvers a vehicle might be undertaking. Data-driven approaches use training data to map a vehicleâs behavior to what weâve seen other vehicles do in the past. Hybrid approaches combine models and data to predict where other vehicles will go next. All of this is crucial for making our own decisions about how to move.

At each step in time, the path planner must choose a maneuver to perform. In the Behavior Lesson, youâll build finite-state machines to represent all of the different possible maneuvers your vehicle could choose. Your FSMs might include accelerate, decelerate, shift left, shift right, and continue straight. Youâll then construct a cost function that assigns a cost to each maneuver, and chooses the lowest-cost option.

In the Trajectory Lesson, youâll use C++ and the Eigen linear algebra library to build candidate trajectories for the vehicle to follow. Some of these trajectories might be unsafe, others might simply be uncomfortable. Your cost function will guide you to the best available trajectory for the vehicle to execute.
Using the newest release of the Udacity simulator, youâll build your very own path planner and put it to the test on the highway. Tie together your prediction, behavior, and trajectory engines from the previous lessons to create an end-to-end path planner that drives the car in traffic!
Term 3 will launch with two electives: Advanced Deep Learning, and Functional Safety. Weâve selected these based on feedback from our hiring partners, and weâre very excited to give students the opportunity to gain deep knowledge in these topics.

Udacity has partnered with the NVIDIA Deep Learning Institute to build an advanced course on deep learning.
This module covers semantic segmentation, and inference optimization. Both of these topics are active areas of deep learning research.
Semantic segmentation identifies free space on the road at pixel-level granularity, which improves decision-making ability. Inference optimizations accelerate the speed at which neural networks can run, which is crucial for computational-intense models like the semantic segmentation networks youâll study in this module.

In this lesson, youâll build and train fully convolutional networks that output an entire image, instead of just a classification. Youâll implement three special techniques that FCNs use: 1×1 convolutions, upsampling, and skip layers, to train your own FCN models.

In this lesson, youâll learn the strengths and weaknesses of bounding box networks, like YOLO and Single Shot Detectors. Then youâll go a step beyond bounding box networks and build your own semantic segmentation networks. Youâll start with canonical models like VGG and ResNet. After removing their final, fully-connected layers, you can add the three special techniques youâve already practiced: 1×1 convolutions, upsampling, and skip layers. Your result will be an FCN that classifies each road pixel in the image!
One of the challenges of semantic segmentation is that it requires a lot of computational power. In this lesson, youâll learn how to accelerate network performance in production, using techniques such as fusion, quantization, and reduced precision.
In the project at the end of the Advanced Deep Learning Module, youâll build a semantic segmentation network to identify free space on the road. Youâll apply your knowledge of fully convolutional networks and their special techniques to create a semantic segmentation model that classifies each pixel of free space on the road. Youâll accelerate the networkâs performance using inference optimizations like fusion, quantization, and reduced precision. Youâll be studying and implementing approaches used by top performers in the KITTI Road Detection Competition!

Together with Elektrobit, weâve built a fun and comprehensive Functional Safety Module.
Youâll learn functional safety frameworks to ensure that vehicles is safe, both at the system and component levels.

In this lesson, Elektrobitâs experts will guide you through the high-level steps that the ISO 26262 standard requires for building a functional safety case. ISO 26262 is the world-recognized standard for automotive functional safety. Understanding the requirements of this standard gets you started on mastering a crucial field of autonomous vehicle development.
In this lesson, youâll build a safety plan for a lane-keeping assistance feature. Youâll start with the same template that Elektrobit functional safety managers use, and add the information specific to your feature.
Youâll complete a hazard analysis and risk assessment for the lane-keeping assistance feature. As part of the HARA, youâll brainstorm how the system might fail, including the operational mode, environmental details, and item usage of each hypothetical scenario. Your HARA will record the issues to monitor in your functional safety analysis.
For each issue identified in the HARA, youâll develop a functional safety concept that describes high-level performance requirements.
Youâll translate high-level functional safety concept requirements into technical safety concept requirements that dictate specific performance parameters. At this point youâll have concrete constraints for the system.
Functional safety includes specific rules on how to implement hardware and software. In this lesson, youâll learn about spatial, temporal, and communication interference, and how to guard against them. Youâll also review MISRA C++, the most common set of rules for writing C++ for automotive systems.
Youâll use the guidance from your lessons to construct an end-to-end safety case for a lane departure warning feature. Youâll begin with the hazard analysis and risk assessment, and create further documentation for functional and technical safety concepts, and finally software and hardware requirements. Analyzing and documenting system safety is critical for autonomous vehicle development. These are skills that often only experienced automotive engineers possess!
System integration is the final module of the Nanodegree program, and itâs the month where you actually get to put your code on the Udacity Self-Driving Car!
Youâll learn about the software stack that runs on âCarla,â our self-driving vehicle. Over the course of the final month of the program, you will work in teams to integrate software components, and get the car to drive itself around the Udacity test track.
This lesson walks you through Carlaâs key subsystems: sensors, perception, planning, and control. Eventually youâll need to integrate software modules with these systems so that Carla can navigate the test track.
Carla runs on two popular open-source automotive libraries: ROS and Autoware. In this lesson youâll practice implementing ROS nodes and Autoware modules.
During the final lesson of the program, youâll integrate ROS nodes and Autoware modules with Carlaâs software development environment. Youâll also learn how to transfer the code to the vehicle, and resolve issues that arise on real hardware, such as latency, dropped messages, and process crashing.
This is the capstone project of the Nanodegree program! You will work with a team of students to integrate the skills youâve developed over the last nine months. The goal is to build Carlaâs software environment to successfully navigate Udacityâs test track.
When you complete Term 3, you will graduate from the program, and earn your Udacity Self-Driving Car Engineer Nanodegree credential. You will be ready to work on an autonomous vehicle team developing groundbreaking self-driving technology, and you will join a rarefied community of professionals who are committed to a world made better through this transformational technology.
See you in class!

One of the poorly understood complications in autonomous vehicles is how much work will be involved in transferring self-driving technology from one location to another.
Driving in the United States is much different than driving in India, and in fact driving in San Francisco is different than driving in Boston or Peoria. But itâs hard to get a handle on just how big a challenge this will be until we try to transfer self-driving technology to different areas.
Volvo is running (bouncing?) into some problems with their self-driving technology in Australia, according to this delightful article from The Australian Broadcasting Corporation.
Apparently the object detection software for animals is thrown by the way kangaroos hop, which isnât characteristic of the caribou that Volvo typically sees in Sweden.
âWeâve noticed with the kangaroo being in mid-flight ⌠when itâs in the air it actually looks like itâs further away, then it lands and it looks closer,â Volvo Australiaâs technical manager David Pickett said.
Not to worry, though. According to The Guardian:
âWe are developing a car that can recognise kangaroos,â he said.

Thanks so much to Nate and Aaron and Myles and the entire Autonomous Denver Meetup for hosting me on Tuesday night. And thank you to Uber, for letting us meet in their Louisville, Colorado, office!
Itâs always delightful to meet current and potential students and people who are interested in self-driving cars all around the world. This one was special because I love Colorado so much.
Nate arranged for a recording of my presentation about Carla, the Udacity self-driving car, which was awesome. Unfortunately, there were some AV glitches, so the recording comes in two parts and a small portion in the middle was lost.
It was a fun conversation, though, and I hope to be back soon.
https://www.youtube.com/watch?v=DsA5ICRYBp8https://www.youtube.com/watch?v=appixzC6RO0

The Udacity Self-Driving Car team celebrated a company award with a team outing to the NASCAR race at Sonoma Raceway yesterday.
It was our first NASCAR race and it was an experience.
Kevin Harvick won, but I couldnât help but thinking of a future when autonomous cars can outrace humans. Weâre not there yet, but itâs coming.
Hereâs the NIO EP9, arguably the worldâs fastest autonomous race car:
Hereâs the Formula E autonomous series, Roborace:
And hereâs a montage of the Self-Racing Cars homebrew event, with a cameo from my now-colleague, Anthony Navarro:

Localization is how a car finds where it is in the world.
Itâs tempting to think that localization is an easy problem, since GPS-enabled smartphones are ubiquitous, but localization is actually really hard.
Thatâs because GPS is only accurate to within about 1 meter. If you think about how big a meter is (about three feet), if a car if off by a meter, it could be driving on the sidewalk, hitting things.
Self-driving cars need single-digit-level localization accuracy. To that end, we used sensor measurements and maps and sophisticated mathematical algorithms to localize the vehicle.
Here are some localization projects that Udacity Self-Driving Car students have published!
Privya has a terrific description of her localization project, along with a video. Plus, she asks lots of great questions about how to localize in complicated scenarios, which is what we have to deal with in the real world.
âHere is an interesting question?âââHow would we use this technique for a real self driving car traveling between City A and City B? Particle filters assumes we have a map of the world with known location of many landmarks. How can we determine location of hundreds of landmarks and feed those to the car?â

If youâre looking for a step-by-step walkthrough of the particle filter algorithm, Andrew combines a review of material from the Udacity localization lesson with his own observations.
âUpdate Weights : These measurements form the weight of each particle by applying the multi-variate gaussian probability density function. This function tells us how likely a set of landmark measurements is given, our predicted state of our car.â

Bosch, the worldâs largest automotive supplier (and also a Udacity Self-Driving Car partner) has published a neat Automated Mobility Academy that describes different levels of autonomous driving and key features at each level.
Itâs basically a web series, free and targeted at the general public, that describes different parts of the autonomous vehicle ecosystem.
The stages are: Driver Assistance, Partially Automated Driving, Conditional and Highly Automated Driving, and Fully Automated Driving. These pages correspond roughly to Levels 2 through 5 of the SAE autonomy levels.
This is a much lighter treatment of autonomous vehicles than the Udacity Self-Driving Car Engineer Nanodegree Program, but itâs short and concise and accessible to the general public.
If youâre interested in learning a little bit about how self-driving cars work, you should check it out!

The David SilverâââUdacity world tour continues next Tuesday, in Denver, Colorado! Come by the Autonomous Denver Meetup, graciously hosted at Uberâs Louisville, Colorado, office.
Iâll be presenting an overview of Carla, the Udacity Self-Driving Car that can drive itself from Mountain View to San Francisco.
Carla herself will not be present, sadly, but there will be lots of good videos and sensor data.
There will also an all-questions-welcome Q&A about Udacity, the Nanodegree Program, self-driving cars, and more. Please come!
See you in the Mile High City đ

This weekend I went to the DIY Robocar Meetup in Oakland, which is an awesome event if youâre excited about autonomous vehicles.
Lots of people gather in a warehouse of a day of hacking on miniature autonomous vehicles, and the day is capped off by a time trial.

I went to watch and to get my son out of the house so my wife could have the day to herself, but it was fun to meet lots of Udacity students who were participating.

All of them attested to how much they were learning by putting their skills to use on actual embedded hardware that had to run in realtime.

There are several of these Meetups springing up around the world, and there are even a number of kits you can buy to get up and running quickly. So if you are interested in the field, consider trying it out! And if thereâs not a similar event near you, maybe you can start one đ

Hereâs the second-place car for the weekend:

We recorded a video at Udacity recently in which I walked prospective students through the Nanodegree Program, including some new videos of Term 3 projects.
Christopher Watkins, Udacityâs writer extraordinaire, immediately whipped up a blog post amusingly entitled, âThe Secrets of Term 3 Revealed!â
Check it outâŚIF YOU DARE.