Checklist
Description
In the pre-built Docker image ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64 (pulled 2026-08-12), the installed autoware_carla_interface package is broken in two independent ways:
-
The entire autoware_carla_interface.modules Python subpackage is missing from /opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/. Only the top-level modules (carla_autoware.py, carla_ros.py, etc.) are installed; the modules/ directory (carla_data_provider.py, carla_utils.py, carla_wrapper.py, sensor_manager.py, …) is absent. Launching the interface fails immediately with ModuleNotFoundError: No module named 'autoware_carla_interface.modules'.
-
The calibration map CSVs are missing from /opt/autoware/share/autoware_carla_interface/. The shipped config/raw_vehicle_cmd_converter.param.yaml references
csv_path_accel_map: $(find-pkg-share autoware_carla_interface)/accel_map.csv
csv_path_brake_map: $(find-pkg-share autoware_carla_interface)/brake_map.csv
csv_path_steer_map: $(find-pkg-share autoware_carla_interface)/steer_map.csv
but none of the three CSVs (from calibration_maps/ in the source tree) are present in the image, so the raw_vehicle_cmd_converter node dies at startup with Accel map is invalid.
Notably, the rest of the package is installed: the launch file, the config YAMLs, and the top-level Python files are all there, and the package is registered in the ament index. So the omissions look like a packaging/pipeline artifact rather than a missing package.
Expected behavior
ros2 launch autoware_carla_interface autoware_carla_interface.launch.xml starts inside the container using only the files shipped in the image:
python3 -c "import autoware_carla_interface.modules.carla_wrapper" succeeds.
accel_map.csv, brake_map.csv, steer_map.csv exist in $(ros2 pkg prefix --share autoware_carla_interface)/, so raw_vehicle_cmd_converter can load them.
This matches what the source tree's CMakeLists.txt installs at both main and humble (ament_python_install_package(${PROJECT_NAME} PACKAGE_DIR src/${PROJECT_NAME}) and install(DIRECTORY calibration_maps/ DESTINATION share/${PROJECT_NAME}/)), so a from-source build does not have this problem — only the pre-built image does.
Actual behavior
-
Launch fails immediately:
ModuleNotFoundError: No module named 'autoware_carla_interface.modules'
and indeed:
$ ls /opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/
__init__.py carla_autoware.py carla_ros.py multi_camera_combiner_node.py ...
# no modules/ directory
-
After working around (1) by bind-mounting modules/ from a source checkout, the pipeline gets further but raw_vehicle_cmd_converter exits with:
and indeed:
$ ls /opt/autoware/share/autoware_carla_interface/
config launch package.xml ...
# no accel_map.csv / brake_map.csv / steer_map.csv
Steps to reproduce
Observed via Apptainer/Singularity on an HPC cluster, but the missing files are in the image itself, so Docker shows the same thing.
-
docker pull ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64 (or apptainer pull the same reference).
-
Inspect the installed package — both checks fail:
docker run --rm ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64 \
ls /opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/modules
docker run --rm ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64 \
ls /opt/autoware/share/autoware_carla_interface/accel_map.csv
-
Or reproduce at launch time (CARLA server not required to hit the first error — the import fails before anything connects):
apptainer exec <image>.sif bash -c \
"source /opt/autoware/setup.bash && ros2 launch autoware_carla_interface autoware_carla_interface.launch.xml"
# -> ModuleNotFoundError: No module named 'autoware_carla_interface.modules'
-
Bind-mount simulator/autoware_carla_interface/src/autoware_carla_interface/modules from an autoware_universe checkout into the site-packages path and relaunch (with a CARLA 0.9.15 server up) → raw_vehicle_cmd_converter dies with Accel map is invalid.
Versions
- OS: Ubuntu 22.04 (container); host: Rocky Linux HPC node via Apptainer
- ROS 2: Humble
- Autoware:
ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64, pulled 2026-08-12
Possible causes
The package source is fine: at both main and humble, simulator/autoware_carla_interface/CMakeLists.txt installs the Python package recursively and the calibration maps, and src/autoware_carla_interface/modules/__init__.py exists. So the loss appears to happen in the image build/packaging pipeline that produces /opt/autoware, not in the package itself.
One observation that may help: the package migrated from build_type: ament_python to ament_cmake in #11706 (Feb 2026). The old ament_python setup.py used find_packages() + build-time glob("calibration_maps/*.csv") for its data files. If the image pipeline still builds (or caches) the package via the old setup.py path — or was built from a snapshot mid-migration — that would produce exactly this partial install (top-level modules and launch/config present, modules/ subpackage and CSVs absent).
If this actually belongs in the autowarefoundation/autoware repo (where the Docker images are built), feel free to transfer it.
Additional context
Workaround that makes the shipped image usable without modifying it — bind-mount the missing files from a source checkout of autoware_universe (simulator/autoware_carla_interface/):
src/autoware_carla_interface/modules → /opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/modules
calibration_maps/accel_map.csv, brake_map.csv, steer_map.csv → /opt/autoware/share/autoware_carla_interface/
With those two mounts (plus a carla==0.9.15 client on PYTHONPATH), the interface launches and exchanges sensor/vehicle topics with a CARLA 0.9.15 server normally.
Checklist
Description
In the pre-built Docker image
ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64(pulled 2026-08-12), the installedautoware_carla_interfacepackage is broken in two independent ways:The entire
autoware_carla_interface.modulesPython subpackage is missing from/opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/. Only the top-level modules (carla_autoware.py,carla_ros.py, etc.) are installed; themodules/directory (carla_data_provider.py,carla_utils.py,carla_wrapper.py,sensor_manager.py, …) is absent. Launching the interface fails immediately withModuleNotFoundError: No module named 'autoware_carla_interface.modules'.The calibration map CSVs are missing from
/opt/autoware/share/autoware_carla_interface/. The shippedconfig/raw_vehicle_cmd_converter.param.yamlreferencesbut none of the three CSVs (from
calibration_maps/in the source tree) are present in the image, so theraw_vehicle_cmd_converternode dies at startup withAccel map is invalid.Notably, the rest of the package is installed: the launch file, the config YAMLs, and the top-level Python files are all there, and the package is registered in the ament index. So the omissions look like a packaging/pipeline artifact rather than a missing package.
Expected behavior
ros2 launch autoware_carla_interface autoware_carla_interface.launch.xmlstarts inside the container using only the files shipped in the image:python3 -c "import autoware_carla_interface.modules.carla_wrapper"succeeds.accel_map.csv,brake_map.csv,steer_map.csvexist in$(ros2 pkg prefix --share autoware_carla_interface)/, soraw_vehicle_cmd_convertercan load them.This matches what the source tree's
CMakeLists.txtinstalls at bothmainandhumble(ament_python_install_package(${PROJECT_NAME} PACKAGE_DIR src/${PROJECT_NAME})andinstall(DIRECTORY calibration_maps/ DESTINATION share/${PROJECT_NAME}/)), so a from-source build does not have this problem — only the pre-built image does.Actual behavior
Launch fails immediately:
and indeed:
After working around (1) by bind-mounting
modules/from a source checkout, the pipeline gets further butraw_vehicle_cmd_converterexits with:and indeed:
Steps to reproduce
Observed via Apptainer/Singularity on an HPC cluster, but the missing files are in the image itself, so Docker shows the same thing.
docker pull ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64(orapptainer pullthe same reference).Inspect the installed package — both checks fail:
Or reproduce at launch time (CARLA server not required to hit the first error — the import fails before anything connects):
Bind-mount
simulator/autoware_carla_interface/src/autoware_carla_interface/modulesfrom anautoware_universecheckout into the site-packages path and relaunch (with a CARLA 0.9.15 server up) →raw_vehicle_cmd_converterdies withAccel map is invalid.Versions
ghcr.io/autowarefoundation/autoware:latest-humble-autoware-universe-cuda-amd64, pulled 2026-08-12Possible causes
The package source is fine: at both
mainandhumble,simulator/autoware_carla_interface/CMakeLists.txtinstalls the Python package recursively and the calibration maps, andsrc/autoware_carla_interface/modules/__init__.pyexists. So the loss appears to happen in the image build/packaging pipeline that produces/opt/autoware, not in the package itself.One observation that may help: the package migrated from
build_type: ament_pythontoament_cmakein #11706 (Feb 2026). The oldament_pythonsetup.pyusedfind_packages()+ build-timeglob("calibration_maps/*.csv")for its data files. If the image pipeline still builds (or caches) the package via the old setup.py path — or was built from a snapshot mid-migration — that would produce exactly this partial install (top-level modules and launch/config present,modules/subpackage and CSVs absent).If this actually belongs in the
autowarefoundation/autowarerepo (where the Docker images are built), feel free to transfer it.Additional context
Workaround that makes the shipped image usable without modifying it — bind-mount the missing files from a source checkout of
autoware_universe(simulator/autoware_carla_interface/):src/autoware_carla_interface/modules→/opt/autoware/lib/python3.10/site-packages/autoware_carla_interface/modulescalibration_maps/accel_map.csv,brake_map.csv,steer_map.csv→/opt/autoware/share/autoware_carla_interface/With those two mounts (plus a
carla==0.9.15client onPYTHONPATH), the interface launches and exchanges sensor/vehicle topics with a CARLA 0.9.15 server normally.