Self-driving go-kart with Unity-ML
- Basic algebra and basic programming skills
WARNING: take this class as a gentle introduction to machine learning, with particular focus on machine vision and reinforcement learning. The Unity project provided in this course is now obsolete because the Unity ML agents library is still in its beta version and the interface keeps changing all the time! Some of the implementation details you will find in this course will look different if you are using the latest release, but the key concepts and the background theory are still valid. Please refer to the official migrating documentation on the ml-agents github for the latest updates.
Learn how to combine the beauty of Unity with the power of Tensorflow to solve physical problems in a simulated environment with state-of-the-art machine learning techniques.
We study the problem of a go-kart racing around a simple track and try three different approaches to control it: a simple PID controller; a neural network trained via imitation (supervised) learning; and a neural network trained via deep reinforcement learning.
Each technique has its strengths and weaknesses, which we first show in a theoretical way at simple conceptual level, and then apply in a practical way. In all three cases the go-kart will be able to complete a lap without crashing.
We provide the Unity template and the files for all three solutions. Then see if you can build on it and improve performance further more.
Buckle up and have fun!
Who this course is for:
- Students interested in a quick jump into machine learning, focusing on the application rather than the theory
- Engineers looking for a machine learning realistic simulator
International applications engineer with extensive experience in automation, robotics, computer vision, and machine learning. Holds a doctorate degree in electrical engineering and over a decade of technical hands-on work with industrial robots all over the globe. Besides actively modeling and programming robots, also enjoys sharing knowledge and tutoring students and engineers.