Self-driving go-kart with Unity-ML

Deep learning applied to a self-driving car simulation
Rating: 4.4 out of 5 (185 ratings)
9,872 students
Configure and use the Unity Machine Learning Agents toolkit to solve physical problems in simulated environments
Understand the concepts of neural networks, supervised and deep reinforcement learning (PPO)
Apply ML control techniques to teach a go-kart to drive around a track in Unity


  • 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

Course content

7 sections • 42 lectures • 1h 48m total length
  • Introduction
  • Table of Content
  • Prerequisites


Fabrizio Frigeni
  • 4.4 Instructor Rating
  • 859 Reviews
  • 13,169 Students
  • 2 Courses

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.