CARLA Documentation

Welcome to the CARLA documentation.

This home page contains an index with a brief description of the different sections in the documentation. Feel free to read in whatever order preferred. In any case, here are a few suggestions for newcomers.

The CARLA forum is available to post any doubts or suggestions that may arise during the reading.

Important

This documentation refers to CARLA 0.9.0 or later. To read about previous versions, check the stable branch.


Getting started

Introduction — What to expect from CARLA.
Quick start — Get the CARLA releases.

Building CARLA

Linux build — Make the build on Linux.
Windows build — Make the build on Windows.
Update CARLA — Get up to date with the latest content.
Build system — Learn about the build and how it is made.
Running in a Docker — Run CARLA using a container solution.
F.A.Q. — Some of the most frequent installation issues.

First steps

Core concepts — Overview of the basic concepts in CARLA.
1st. World and client — Manage and access the simulation.
2nd. Actors and blueprints — Learn about actors and how to handle them.
3rd. Maps and navigation — Discover the different maps and how do vehicles move around.
4th. Sensors and data — Retrieve simulation data using sensors.

Advanced steps

OpenDRIVE standalone mode — Use any OpenDRIVE file as a CARLA map.
PTV-Vissim co-simulation — Run a synchronous simulation between CARLA and PTV-Vissim.
Recorder — Register the events in a simulation and play it again.
Rendering options — From quality settings to no-render or off-screen modes.
RSS — An implementation of RSS in the CARLA client library.
SUMO co-simulation — Run a synchronous simulation between CARLA and SUMO.
Synchrony and time-step — Client-server communication and simulation time.
Traffic Manager — Simulate urban traffic by setting vehicles to autopilot mode.

References

Python API reference — Classes and methods in the Python API.
Code recipes — Some code fragments commonly used.
Blueprint library — Blueprints provided to spawn actors.
C++ reference — Classes and methods in CARLA C++.
Recorder binary file format — Detailed explanation of the recorder file format.
Sensors reference — Everything about sensors and the data they retrieve.

Plugins

carlaviz — web visualizer — Plugin that listens the simulation and shows the scene and some simulation data in a web browser.

ROS bridge

ROS bridge installation — The different ways to install the ROS bridge.
CARLA messages reference — Contains explanations and fields for every type of CARLA message available in ROS.
Launchfiles reference — Lists the launchfiles and nodes provided, and the topics being consumed and published.

Tutorials — General

Add friction triggers — Define dynamic box triggers for wheels.
Control vehicle physics — Set runtime changes on a vehicle physics.
Control walker skeletons — Animate walkers using skeletons.
Retrieve simulation data — A step by step guide to properly gather data using the recorder.

Tutorials — Assets

Add a new map — Create and ingest a new map.
Add a new vehicle — Prepare a vehicle to be used in CARLA.
Add new props — Import additional props into CARLA.
Create standalone packages — Generate and handle standalone packages for assets.
Map customization — Edit an existing map.
Material customization — Edit vehicle and building materials.
Vehicle modelling — Create a new vehicle for CARLA.

Tutorials — Developers

Contribute with new assets — Add new content to CARLA.
Create a sensor — Develop a new sensor to be used in CARLA.
Customize vehicle suspension — Modify the suspension system of a vehicle.
Make a release — For developers who want to publish a release.
Generate detailed colliders — Create detailed colliders for vehicles.
Generate pedestrian navigation — Obtain the information needed for walkers to move around.

Contributing

Contribution guidelines — The different ways to contribute to CARLA.
Code of conduct — Standard rights and duties for contributors.
Coding standard — Guidelines to write proper code.
Documentation standard — Guidelines to write proper documentation.