CARLO stands for CARLA - Low Budget. CARLO is definitely less realistic than CARLA, but it is much easier to play with. Most importantly, you can easily step the simulator in CARLO, and it is computationally much lighter. CARLO - Example Image 1CARLO - Example Image 2


You need to have the following libraries with Python3:


Simply run




for simple demos. The former has an example of how to use Steering Wheel controller (only Logitech G29), and the latter shows how to use Keyboard controller. You can also have a look at these files to understand how to customize your own environment. It is very straightforward.


CARLO currently supports Cars and Pedestrians as the dynamic objects. They both use bicycle dynamics. The point-mass dynamics are commented out in the code.

It also supports Buildings and Paintings, which are useful mostly for decoration purposes (e.g. sidewalks, zebra crossings, etc).

Collision dynamics are not implemented, but CARLO has methods that can check whether or not there exists a collision between two objects.

There are many hidden features right now. We will reveal them as we start writing a documentation.


Feel free to contribute to the code and/or initiate issues for problems and questions.

Paper citation

If you used CARLO for your experiments, consider citing the following paper:

  title={Reinforcement Learning based Control of Imitative Policies for Near-Accident Driving},
  author={Cao, Zhangjie and Biyik, Erdem and Wang, Woodrow Z. and Raventos, Allan and Gaidon, Adrien and Rosman, Guy and Sadigh, Dorsa},
  booktitle={Proceedings of Robotics: Science and Systems (RSS)},