Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Picture of the IronCar


Ironcar is a self-driving software for RC cars. The car does drive around a racetrack and has to finish the race the fastest possible without crossing the lines.


Google doc with tutorial: .


Raspberry Pi

Clone this repo on your Raspberry Pi :

$ git clone
$ cd ironcar

You can easily setup everything on the raspi using the bash. To do so, go on your raspi and do:

$ ./

It will install keras, tensorflow and some other dependencies in the requirements. This can take 10 minutes or 1 hour... At the end of the install, you will need to choose if you want to enable the pi camera, i2c connections and augment the swap size (which is very small by default).


You don't need to install anything on your laptop: you will only use your browser to connect to the raspi.

So that's it, you should be ready to go to the launching part!!


In order to communicate between the car and the laptop or another device like a smartphone, we used socketio on python. Therefore, we need to launch a server on the raspi. This python server on the raspi ensures the communication with the car hardware (motors, camera and other potential sensors if you want to add any).

On the Raspberry Pi

  • To launch the server, just do:
$ python3

On the laptop

You can access the control dashboard by visiting http://YOUR_RASPI_IP:5000.

On any device

The user interface is a javascript client that can be launched in any browser (Firefox, Chrome and Safari have been tested). Just go to YOUR_RASPI_IP:5000 and you should be able to choose the mode, the model, the speed, and control the car with a keyboard (the keyboard is obviously not supported if you connect from a smartphone !). You can also stream, take pictures and change the commands values of the configuration.


In order to train the car to drive itself, you need 2 things:

  • images of the race
  • a model


It is way too long to train the car by driving it with a remote controller. That's why we created a simulator. Nothing too fancy, it's quite easy to use. Just go there and follow the instructions.


The model is also given there.