Duckietown Simulator
Contents
Duckietown Simulator#
We use simulations for both development and evaluation.
Gym Duckietown#
We have developed a simulation environment in OpenGL.
This simulator is used as a development environment in many of the learning experiences.
To test exercises in simulation, one simply adds the --sim
flag to the dts code workbench
command:
dts code workbench --sim
For more details about the dts code
API that is used with the exercises please refer to the Learning Experiences Manual.
The simulator may also be used directly. For example, this is done in the object detection exercise to automate the process of collecting labeled data to train the model.
For full details about how to use the simulator, please refer to the page on simulation in the developer manual.
Warning
If the simulator is used in standalone mode it is slightly different than the version of the simulator that is used for exercise evalution.
The reason for this is partly historical and partly practical. The Gym Duckietown simulation predates the automated evaluation infrastructure. It was originally used as a tool for training reinforcement learning agents. This is the reason that it adheres to the OpenAI Gym API. As such, the focus originally was on making the simulation extremely fast and lightweight, and this is the reason it was written in pure Python.
When we developed the Challenges infrastructure we determined that the simulation was not realistic enough since there were some missing pieces such as motion blur and momentum. For those very motivated to dig into the details, the extra pieces coded are in the challenge-aido_LF-simulator-gym repository.
DuckieMatrix#
We are in the process of developing a higher-fidelity simulation environment that we refer to as the DuckieMatrix. This simulation is built using Unity.
For anyone interested in getting a sneak peek, please refer to the DuckieMatrix Development book.