Vojta Molda edited this page Dec 17, 2018 · 1 revision

Autodrome is a framework and OpenAI gym environment for development of self-driving vehicles. It's built around the engine, map editor and assets of Euro Truck Simulator 2 (ETS2) or American Truck Simulator (ATS).

Demo

To simply jump into a truck and drive, run can run Autodrome interactively. Paste the following command into your console. Use W, S, A and D to accelerate, brake and steer.

> python -m autodrome ATS --map indy500  # Or ETS2

Demo

You may have to install the requirements first. Check the readme.md file and the Simulator wiki page for details.

Concept

You can think of Autodrome as a bridge between the ETS2/ATS game and reinforcement learning. It's possible to start the game, capture screen, and programmatically control the truck in an episodic setup with a custom reward function. The episode restarts when the truck crashes.

Key components of the project's architecture are shown on the following diagram. More details about the design choices and the overall concept can be found on the Architecture page.

Concept

Autodrome can be used not only for reinforcement learning but also for many other purposes. The API also allows easy access to the truck telemetry data like position or orientation in the game world, speed, brake, throttle and steering wheel angle and so on. All the static objects in the world map are exposed as well so one can for instance use the departure from the lane center as a penalty function. The general goal is to provide flexible tools for evaluating, experimenting with and improving algorithms that can eventually drive vehicles in the real world.

One example use case is to take advantage of the game telemetry plugin to collect data in the form of screenshots and corresponding steering wheel angles from human players. This can be used for instance to train a simple end-to-end behavioral cloning agent that mimics the action human would take.

Thanks to the built-in map editor that ships with the game one can quickly construct a set of CI unit test scenarios for agents to ensure reliability and robustness throughout the development process. A typical example of this would be a lane change scenario with surrounding vehicles and scenery or a highway exit.

Contributions

This project is experimental and comes with a decent amount of "quirks". Large portion of the functionality is still work in progress and may require some fixes in order to work.

Please, check out the issues to review any known bugs or projects to see the roadmap of future development.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.