When we started designing the curriculum for the Udacity Self-Driving Car Engineer Nanodegree Program, I thought it would be fun to have students complete a behavioral cloning project in a simulator.
The idea was that students would drive a car around a test track in a simulator, record simulated camera data, and then build a deep neural network to drive the car in autonomously.
This is a cutting edge project that many autonomous vehicle startups are working on now in real life, and I figured it would be relatively simple to put it together as a project.
Man, was I wrong. We tried out many commercial simulators, none of which quite met our needs for various reasons. One was too realistic — students would have had to model the physical forces acting on the tires, another was way to unrealistic, others didn’t work on the various operating systems our students use.
So we wound up rolling our own simulator from scratch, using the Unity gaming engine. That brought its own set of pains, but it resulted in a really fun and educational project for students.
Yesterday we pushed the simulator code to GitHub and open-sourced it, so the world can help us improve the simulator and maybe people can even repurpose it for their own needs.
In full disclosure, I conceived of this project but I have not written a single line of code in the repo. Eric built the bulk of the simulator, with later assists from Yousuf, Dom, and Aaron. Kudos to them!