CARLA simulator support#
CARLA is an open-source simulator for autonomous driving research. Autoware connects to CARLA through the autoware_carla_interface package of Autoware Universe. This page shows what Autoware 2.0.0 supports, how the support grew, and what is still missing.
Status in Autoware 2.0.0#
| Part | Where | What it does |
|---|---|---|
| Bridge | autoware_carla_interface in autoware_universe 0.53.1 | Connects to the CARLA server, spawns the ego vehicle, publishes the sensor data and the vehicle status, and sends the control commands to CARLA. It runs autoware_raw_vehicle_cmd_converter with a calibration for the vehicle.toyota.prius blueprint. |
| Sensor kit | carla_sensor_kit_launch and carla_sensor_kit_description in autoware_launch 0.53.0 | Six cameras for 360-degree coverage, a top LiDAR, a GNSS receiver, and an IMU. |
| Launch file | e2e_simulator.launch.xml in autoware_launch 0.53.0 | simulator_type:=carla includes the bridge. launch_simulator_interface:=false leaves it out, so that it can run in another process or container. |
| Docker demo | docker/examples/demos/carla in autoware 2.0.0 | Runs CARLA 0.9.16 and Autoware in four Docker Compose services: carla-simulator, carla-interface, spectator-follow, and autoware. The Autoware services use the universe-cuda-jazzy image. |
| Maps | The demo_artifacts Ansible role in autoware 2.0.0 | Downloads the carla-kashiwanoha map for the Docker demo, and the Town10HD_Opt map for CARLA 0.10. The Docker demo of Autoware 2.0.0 still loads Town01, which you download yourself. |
| End-to-end model | autoware_tensorrt_vad in autoware_universe 0.53.1 | Runs the VAD model, which is trained on CARLA simulation data. See Autoware Architecture 2.0. |
The README of autoware_carla_interface lists Ubuntu 22.04, ROS 2 Humble, and CARLA 0.9.15 as the supported environment. The Docker demo of Autoware 2.0.0 runs ROS 2 Jazzy with CARLA 0.9.16.
Run Autoware with CARLA#
Two ways are available:
Docker demo: Follow the README of the CARLA demo. You need an NVIDIA GPU with the NVIDIA Container Toolkit, Docker Compose v2, a CARLA Lanelet2 map such as
Town01in~/autoware_data/maps/Town01, and the perception models in~/autoware_data/ml_models. Then run these commands from the root of theautowarerepository:xhost +local:docker cd docker/examples/demos/carla HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose up
Source workspace: Install CARLA, the CARLA Python API, and the maps as the README of
autoware_carla_interfaceexplains. Start the CARLA server, then launch Autoware:ros2 launch autoware_launch e2e_simulator.launch.xml \ map_path:=$HOME/autoware_data/maps/Town01 \ vehicle_model:=sample_vehicle \ sensor_model:=carla_sensor_kit \ simulator_type:=carla
In RViz, set the initial pose with Init by GNSS, set a goal, wait for the route, and engage.
The CARLA simulator page also lists community projects that connect Autoware and CARLA.
Timeline#
- 2024 May:
e2e_simulator.launch.xmlgets an argument to launch the CARLA interface (autoware_launch#924). - 2024 July: The
autoware_carla_interfacepackage is added to Autoware Universe (autoware_universe#6859). - 2025 October: The CARLA sensor kit packages are added to
autoware_launch(autoware_launch#1655). - 2026 May: The
launch_simulator_interfaceargument makes the bridge optional ine2e_simulator.launch.xml(autoware_launch#1836). - 2026 August: The Docker Compose demo for CARLA is added (autoware#7264).
- 2026 September: The
demo_artifactsrole downloads the Kashiwanoha map (autoware#7301) and the CARLA 0.10Town10HD_Optmap (autoware#7308). - 2026 October: Autoware 2.0.0 is released with all of the above.
Next steps#
- CARLA 0.10: CARLA 0.10 uses Unreal Engine 5. Autoware 2.0.0 does not run it yet. PyPI has no CARLA Python client after 0.9.16. The pedal map and the vehicle list of the bridge are for CARLA 0.9, and the default ego vehicle
vehicle.toyota.priusdoes not exist in CARLA 0.10. The 0.10 maps ofdemo_artifactswait for this support. For details, see Maps for CARLA 0.10. - Traffic lights: The CARLA Lanelet2 maps do not have traffic light elements for Autoware. Add them to the map, as the README of the bridge explains. Then you can set
traffic_light.publish:=true, so that the bridge publishes the traffic light states of CARLA instead of camera recognition. The bridge matches each CARLA light to a traffic light element of the map, for example by position withtraffic_light.map_path. - Closed-loop evaluation:
autoware_carla_scenariois a scenario test framework for Autoware on CARLA. The design discussion CARLA × Autoware integration architecture for closed-loop evaluation proposes how the CARLA tools fit together. See also Assessment of safety and benchmarks.