CARLA Simulation#
Run the full modular Autoware stack against CARLA 0.9.16 in closed loop.
Requirements#
Host (no ROS install required):
- amd64 and Ubuntu 22.04
- Docker with NVIDIA Container Toolkit
- NVIDIA GPU and Vulkan ICD at
/usr/share/vulkan/icd.d/nvidia_icd.json - Host X access only for optional windowed rendering; offscreen mode is default
Container images use ROS 2 Humble (including the default
sensing-perception-cuda Autoware image). CARLA 0.9.16 uses Unreal Engine 4.26
and is not validated on Ubuntu 24.04.
Setup#
Commands on this page are shown as installed by the release installer. From a
source checkout, prefix them with ./ and run them from the repository root.
Install Docker and the NVIDIA toolkit once:
openadkit setup --gpu --verify
Activate the Docker group membership added by the installer before running
Docker without sudo. Either log out and back in, or run:
newgrp docker
CARLA is a curated CLI deployment in both installed and source-checkout
runtimes. It is Humble-only and requires --gpu. Setup configures NVIDIA and
the DDS UDP buffers; run downloads the Town01 map.
Run#
openadkit run carla-simulation --gpu
run checksum-validates the Town01 assets, starts CARLA and the modular stack,
and waits for Compose readiness. If startup fails after containers are created,
use the stop command below to release their GPU and host resources.
sensor_mapping.yaml enables LiDAR, IMU, and GNSS by default. Camera entries
are available but commented out.
Access the Visualizer#
Open your browser and navigate to:
https://localhost:6080/vnc.html
Use the default password openadkit. The connection uses a self-signed certificate; dismiss the browser privacy warning to continue.
Remote Access
The visualizer runs under network_mode: host, so ports: is ignored and the loopback bind (127.0.0.1:6080) lives in the visualizer entrypoint. To reach noVNC from another machine, either forward the port over SSH:
ssh -L 8080:localhost:6080 <user>@<host>
# then open https://localhost:8080/vnc.html
or put a TLS-terminating reverse proxy in front of 127.0.0.1:6080 and set a
strong REMOTE_PASSWORD. For manifest-driven deployments, put it in
ignored config.local.env; standalone deployments document their own
environment handling. base/runtime.env is reserved for container ROS/DDS
variables.
Editing docker-compose.yaml to add a ports: mapping has no effect under
host networking.
Set a goal with 2D Goal Pose and select Auto in RViz2.
Stop#
openadkit stop carla-simulation
If autonomous mode is unavailable, inspect /system/command_mode/availability
and /diagnostics_graph/status rather than overriding availability. For common
Docker, GPU, and visualizer issues, see
Troubleshooting.