Skip to main content

Autoware CARLA Scenario

A CARLA scenario testing framework for Autoware. Drives an Autoware ego vehicle through configurable scenarios in the CARLA simulator, evaluates pass/fail conditions tick-by-tick, and produces JSON results plus replayed video.

It is typically run against OpenDRIVE maps produced by the convert CLI of autoware_lanelet2_to_opendrive, but does not depend on it: the Lanelet2 and OpenDRIVE maps are loaded as two independent coordinate systems, related only through CARLA world coordinates.

Features

  • Automated scenario execution against CARLA UE5 (0.10.0 and ue5-dev), through the statically typed typesafe_carla client.
  • Hydra-composed configurations for map, server, ego, entities, and scenario.
  • Glob-pattern batch execution of multiple scenarios in a single CARLA session.
  • Condition system: timing, collisions, traffic signals, speed/standstill, lane/area position, waypoint crossing, plus logical (And/Or/Not), latching (Sticky), and persistent combinators.
  • Action system: turns, lane changes, traffic-light state, on-demand camera attachment.
  • Pluggable traffic backends: CARLA's TrafficManager by default, traffic=none for an empty road, or a traffic simulator of your own through an entry point.
  • Coordinate transforms between Lanelet2, OpenDRIVE, and CARLA world frames.
  • Hydra lanelet_constraint sweeper plugin for parametric map-driven sweeps (resolvable without CARLA).
  • FastAPI + Uvicorn web viewer for browsing results, replaying videos, and triggering runs.
  • Two-pass video recording (CARLA native log → replayed RGB camera → ffmpeg H.264).
  • scenario-setup downloads CARLA's nightly build, which the runner then launches by itself.
  • pytest integration via CarlaScenarioFixture (auto-skips when there is no CARLA to launch).

Installation

Python 3.10 to 3.14 (>=3.10,<3.15, the interpreters CI tests), Linux x86_64 or aarch64 (CARLA's server itself is x86_64 only; see installation). Install via the workspace root:

# From the repository root
uv sync --dev

The CARLA client is typesafe_carla (typesafe-carla on PyPI), a plain dependency — no extra to request — imported as import typesafe_carla.carla as carla. Its PyPI wheel carries the CPython package prebuilt, so the sync above compiles nothing (installation has the cases that build it instead). The official carla wheels, and CARLA 0.9.16 (UE4), are no longer supported. CARLA's simulator binary itself is downloaded by uv run scenario-setup (the nightly build, into ~/.autoware_carla_scenario/bin/carla); see the quick start.

Quick usage

The package provides three CLI entry points:

Command Framework Purpose
scenario Hydra Run autonomous-driving scenario tests in CARLA
scenario-setup argparse Download CARLA (the nightly build) for scenario to launch
detect-no-3d-model argparse Detect lanelets without a matching 3D ground model in CARLA
viewer FastAPI + Uvicorn Web UI for browsing and monitoring scenario results

Run a scenario

Uses a CARLA server already listening on the configured host/port, or launches one: CARLA_EXECUTABLE, else the one scenario-setup installed.

# Single scenario
uv run scenario scenario=intersection_passing/straight

# Batch run via glob pattern (sequential, single CARLA session)
uv run scenario scenario='intersection_passing/*'

# Other built-in scenarios
uv run scenario scenario=lane_change/left
uv run scenario scenario=temporary_stop/temporary_stop
uv run scenario scenario=traffic_light_compliance/traffic_light_compliance

Results (JSON + optional video) are written under the configured output directory and can be inspected interactively via:

uv run viewer

Detect missing 3D models

For diagnosing lanelets that do not project onto a CARLA ground mesh:

uv run detect-no-3d-model --map /path/to/map.xodr

Documentation

Full guides live under docs/ and are served by MkDocs:

Metadata

Release files for autoware-carla-scenario 7.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autoware-carla-scenario 7.5.1
File Size Uploaded
autoware_carla_scenario-7.5.1.tar.gz 832.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autoware-carla-scenario 7.5.1
File Interpreter ABI Platform
autoware_carla_scenario-7.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / autoware_carla_scenario-7.5.1.tar.gz

Download URL autoware_carla_scenario-7.5.1.tar.gz
Size 832.7 kB
Tags Source
SHA-256 checksum
How to use checksums
bba39290e0a532d95951b4b3a0ccc52815559cb3f172fc980ca1f868be129dc2
BLAKE2b-256 checksum
How to use checksums
61a08732483feb776a4fbeedddc7b8c7ce4337cc79d6e1fbdabf980f0d5250ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release files / autoware_carla_scenario-7.5.1-py3-none-any.whl

Download URL autoware_carla_scenario-7.5.1-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
46133e38c00635a68dec2e23bdf6e5cfb81ac701c457cd9363dc21510c9c65ef
BLAKE2b-256 checksum
How to use checksums
9a68b84d069794402d6be8868a49d5f46236a476babecc95eb1e8ff93babf21c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

10.0.9

2 release files

10.0.8

2 release files

10.0.7

2 release files

10.0.6

2 release files

10.0.5

2 release files

10.0.4

2 release files

10.0.3

2 release files

10.0.2

2 release files

10.0.1

2 release files

10.0.0

2 release files

9.3.0

2 release files

9.2.0

2 release files

9.1.2

2 release files

9.1.1

2 release files

9.1.0

2 release files

9.0.0

2 release files

8.0.0

2 release files

7.5.13

2 release files

7.5.12

2 release files

7.5.10

2 release files

7.5.9

2 release files

7.5.8

2 release files

7.5.7

2 release files

7.5.6

2 release files

7.5.5

2 release files

7.5.4

2 release files

7.5.3

2 release files

7.5.2

2 release files

This release

7.5.1 This release

2 release files

7.5.0

2 release files

7.4.0

2 release files

7.3.1

2 release files

7.3.0

2 release files

7.2.0

2 release files

7.1.0

2 release files

7.0.0

2 release files

6.0.0

2 release files

5.8.0

2 release files

5.7.0

2 release files

5.6.0

2 release files

5.5.0

2 release files

5.4.0

2 release files

5.3.0

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page