Configuration#

This overview is a compact reference for all available Docker Compose profiles and .env variables. The basic workflow and concrete examples are described in Getting Started.

The recommended way to edit the configuration is the GUI. It exposes the same variables listed below, applies presets, validates the configuration, and writes valid changes back to .env:

docker compose up gui

Open http://localhost:8501 after the GUI has started.

Environment Variables#

Environment variables are key-value settings that configure the Docker Compose setup. Some of them are also passed into the containers, but their main role in this repository is to select profiles, maps, vehicles, scenarios, overrides, and optional runtime behavior without editing the Compose files directly.

All variables below can be set through the GUI or manually in .env.

Variable

Purpose / Impact

Typical Values

COMPOSE_PROFILES

Active service groups for simulation, testing, perception, and planning.

carla,manual-testing,no-perception,planning, sumo,no-perception,planning

COMPOSE_FILE

Compose file chain. Examples override the standard docker-compose.yml with a more specialized file.

docker-compose.yml:examples/ml-planning/docker-compose.override.yml

VEHICLE

Vehicle profile for sensor frames (URDF), parameters, and controller tuning. Mostly relevant for CARLA.

karl, shuttle

SENSORS

Comma-separated list of CARLA sensor layout files to be used when spawning objects. SUMO does not use sensor layouts.

global-sensors.json,karl-minimal.json, global-sensors.json,shuttle-basic.json,rita.json

MAP

Selected prebuilt map. Leave empty when using custom OpenDRIVE mode.

CARLA: aldenhoven, campus, Town10HD; SUMO: campus, rita-intersection

SPAWN_POINT

Ego spawn point, given as x,y,z,heading in map coordinates, or as lat,lon,altitude,heading when suffixed with wgs84. Required for prebuilt maps.

50.787510,6.045938,260.0,90.0,wgs84, -1.0,-154.0,1.0,238.0

CUSTOM_OPENDRIVE

Custom OpenDRIVE (.xodr) map for CARLA standalone map mode. Not supported for SUMO.

TODO/custom.xodr

CUSTOM_LANELET

Matching Lanelet2 .osm map for route planning and map server. Required with custom OpenDRIVE.

TODO/custom.osm

ORIGIN_LAT

GPS origin latitude for a custom lanelet map frame. Set together with ORIGIN_LON or leave both empty.

50.782329

ORIGIN_LON

GPS origin longitude for a custom lanelet map frame. Set together with ORIGIN_LAT or leave both empty.

6.070377

LANELET_RELOAD

Lets the stack automatically select and reload Lanelet2 map data for prebuilt maps. The GUI sets this automatically.

true, false

SCENARIO_FILE

OpenSCENARIO file for CARLA manual-testing or automated-testing. The GUI can prefilter scenarios for the selected map.

TODO/example.xosc

USE_SIM_TIME

Enables ROS simulated time across the stack. Must stay true in this setup.

true

ROS_TRACING

Enables ROS tracing output for analysis.

false, true

Service Profiles#

COMPOSE_PROFILES activates service groups from the included Docker Compose files. Pick one compatible value per group.

Group

Profiles

Compatibility / Effect

Simulation

carla, sumo

Selects the simulation backend. CARLA supports the full stack; SUMO is lightweight and more restricted.

Testing

no-testing, random-testing, manual-testing, automated-testing

CARLA only. SUMO does not use a testing profile. Use manual-testing for RViz scenario control.

Perception

no-perception, perception

perception is CARLA only. SUMO must use no-perception.

Planning

planning

CARLA and SUMO support planning.

Common examples:

COMPOSE_PROFILES=carla,random-testing,no-perception,planning
COMPOSE_PROFILES=carla,manual-testing,perception,planning
COMPOSE_PROFILES=sumo,no-perception,planning

Service Overview#

The following overview lists the Docker Compose services involved in OpenADSim and shows which profiles activate them. Services marked always have no profile assigned and therefore start with every configuration.

CARLA Simulation

Service

Profiles

Role

carla-server

carla

Offscreen CARLA backend with custom DefaultEngine.ini

ros-middleware-bridge

carla

DDS-to-Zenoh bridge for CARLA ROS topics

carla-ros-bridge

carla

ROS 2 bridge; loads MAP or CUSTOM_OPENDRIVE

carla-spawn-objects

carla

Spawns ego vehicle and sensors from SENSORS; optional SPAWN_POINT

carla-converter

carla

Generates stack-relevant ego, object, and map topics

carla-simulation-adapter

carla

Maps CARLA outputs to /simulation/*; optional Lanelet2 map selection via LANELET_RELOAD

carla-ackermann-control

carla

Applies Ackermann control commands to the ego vehicle

carla-manual-control

carla

Manual teleoperation interface

carla-control-active-bridge

carla

Publishes /control/active from manual override state

carla-environment

random-testing

Adds random traffic and environment variation

carla-scenario-runner-ros-manual-testing

manual-testing

Interactive scenario execution in manual testing

carla-scenario-runner-ros-automated-testing

automated-testing

Batch scenario execution from SCENARIO_FILE

SUMO Simulation

Service

Profiles

Role

sumo-interface

sumo

Generates EgoData, ObjectList, and map information from SUMO

sumo-simulation-adapter

sumo

Maps SUMO outputs to /simulation/*; optional Lanelet2 map selection via LANELET_RELOAD

sumo-control-active-bridge

sumo

Publishes /control/active from manual override state

OpenADStack

Service

Profiles

Role

zenoh-router

always

Zenoh router for ROS 2 communication

robot-state-publisher

always

Publishes the vehicle URDF for VEHICLE

localization.lanelet2-map-server

always

Serves Lanelet2 maps with CUSTOM_LANELET, ORIGIN_LAT, and ORIGIN_LON

understanding.simple-object-tracking

perception

Tracks object motion from fused perception objects

planning.lanelet2-route-planning

planning

Computes a Lanelet2 route from ego data

planning.simple-planner

planning

Generates a reference trajectory from the enriched route

planning.trajectory-optimization

planning

Optimizes the final drivable trajectory

control.ackermann-trajectory-control

planning

Converts the optimized trajectory into Ackermann control commands

Monitoring and Tooling

Service

Profiles

Role

monitoring.rviz-carla

carla

RViz visualization with the CARLA display configuration

monitoring.rviz-sumo

sumo

RViz visualization with the SUMO display configuration

monitoring.bag-recorder

automated-testing

Records ROS bags of the executed scenarios

gui

gui

Web-based configuration GUI on port 8501