Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_carla_interface at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Muhammad Raditya GIOVANNI
- Maxime CLEMENT
- Masaya Kataoka
- Bin Wang
- Ujin Kwon
Authors
autoware_carla_interface
ROS 2 / Autoware Universe bridge for CARLA simulator
Thanks to https://github.com/gezp for ROS 2 Humble support for CARLA Communication. This ros package enables communication between Autoware and CARLA for autonomous driving simulation.
Supported Environment
| ubuntu | ros | carla | autoware |
|---|---|---|---|
| 22.04 | humble | 0.9.15 | Main |
Setup
Install
Prerequisites
-
Install CARLA 0.9.15: Follow the CARLA Installation Guide
-
Install CARLA Python Package: Install CARLA 0.9.15 ROS 2 Humble communication package
- Option A: Install the wheel using pip
- Option B: Add the egg file to your
PYTHONPATH
-
Download CARLA Lanelet2 Maps: Get the y-axis inverted maps from CARLA Autoware Contents
Map Setup
- Download the maps (y-axis inverted version) to an arbitrary location
- Create the map folder structure in
$HOME/autoware_data/maps:- Rename
point_cloud/Town01.pcd→$HOME/autoware_data/maps/Town01/pointcloud_map.pcd - Rename
vector_maps/lanelet2/Town01.osm→$HOME/autoware_data/maps/Town01/lanelet2_map.osm
- Rename
- Create
$HOME/autoware_data/maps/Town01/map_projector_info.yamlwith:
projector_type: Local
Build
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
Run
- Run carla, change map, spawn object if you need
cd CARLA
./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen
- Run Autoware with CARLA
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
For E2E planning with VAD:
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 \
use_e2e_planning:=true
- Set initial pose (Init by GNSS)
- Set goal position
- Wait for planning
- Engage
Viewing Multi-Camera View in RViz
The carla_sensor_kit includes 6 cameras providing 360-degree coverage (Front, Front-Left, Front-Right, Back, Back-Left, Back-Right). A multi-camera combiner node automatically combines all camera feeds into a single 2x3 grid view.
To view the combined camera feed in RViz:
- In the Displays panel (left side), click the “Add” button
- Select the “By topic” tab
- Navigate to
/sensing/camera/all_cameras/image_raw - Select “Image” display type
- Click OK

The combined view shows all 6 cameras with labels: FL (Front-Left), F (Front), FR (Front-Right), BL (Back-Left), B (Back), BR (Back-Right).
Note: If you don’t need the multi-camera combiner (to save CPU resources), you can comment out the following line in launch/autoware_carla_interface.launch.xml:
File truncated at 100 lines see the full file
Changelog for package autoware_carla_interface
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(autoware_carla_interface): allow cameras to publish bgr8 (#13411) CARLA renders BGRA and fills the alpha channel with 255. Nothing downstream reads it, so publishing bgra8 spends a quarter of every camera message on a constant. Accept bgr8 as an image_encoding alongside bgra8 and mono8: it drops the alpha channel and nothing else, so a consumer that wants colour gets the same picture for three quarters of the bytes -- 4,320,000 instead of 5,760,000 for a 1600x900 frame. Unlike mono8 it costs no information, so it is the cheaper default for any colour consumer. The default stays bgra8. Claude-Session: https://claude.ai/code/session_011TMdPd8VUDxUrFtckxg2AQ Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
fix(autoware_carla_interface): stamp each sensor measurement with the frame it was captured on (#13408)
-
feat(autoware_carla_interface): let a sensor mapping set the CARLA capture rate (#13407)
-
feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections (#13321)
* feat(autoware_carla_interface): publish CARLA vehicles as ground truth detections Adds an opt-in parameter, publish_ground_truth_objects (default: false, no behavior change), that publishes every CARLA vehicle except the ego to /perception/object_recognition/detection/objects. This feeds the perception stack from simulator truth instead of from sensor data, so tracking and prediction keep running on the real Autoware nodes downstream. It is useful when the vehicles come from an external traffic simulator that the sensor pipeline cannot see reliably, and when the goal is to exercise planning rather than detection. Publishing happens on a world.on_tick() callback, so the objects follow CARLA's cadence rather than the sensor loop, which only turns once every sensor has delivered its frame. The poses come out of the tick snapshot, so a tick costs no round trip to the server and every object in a message belongs to one frame. A snapshot carries only ids and poses, so what never changes about an actor -whether it is a vehicle to report, its class and its size - is looked up the first time that id appears and kept; in steady state a tick asks the server for nothing. Messages carry the bridge's clock rather than snapshot.timestamp. The two count from different starts, and stamping from the snapshot puts the objects far enough ahead of /clock that the tracker's output rate collapses. Classification comes from the CARLA blueprint base_type attribute, so the mapping needs no hand maintained table of blueprint ids. Velocity is left to the tracker: publishing it would need a world to object frame rotation that is easy to get wrong, and a wrong twist is worse for prediction than no twist. Pedestrians are not covered yet.
* chore(autoware_carla_interface): keep the ground truth publisher's comments in the file's style Shorten the docstrings to one line each, replace the multi-line rationale comments with one-liners and drop a noqa the repository's flake8 does not need. No behavior change; the rationale stays in the pull request.
* feat(autoware_carla_interface): apply the review suggestions to the ground truth publisher Add the bus label (CARLA spells the base_type "Bus") and publish the bounding box center instead of the actor origin, as suggested in review. The suggestions were applied through the review UI without a sign-off, so they are folded into this signed commit; the content is unchanged. Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>> ---------Co-authored-by: Mete Fatih Cırıt <<mfc@autoware.org>> Co-authored-by: Masaya Kataoka <<ms.kataoka@gmail.com>>
-
feat(autoware_carla_interface): add a tick follower mode for co-simul… (#13286)
-
feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position (#13327)
* feat(autoware_carla_interface): publish CARLA traffic-light states, matched to the map by position Bridge the CARLA server's traffic-light states into Autoware's perception output so a CARLA closed loop can run without camera-based recognition. The key problem is associating a CARLA traffic light with an Autoware [traffic_light_group_id]{.title-ref} (a [traffic_light]{.title-ref} regulatory-element id in the lanelet2 map). Instead of assuming the CARLA OpenDRIVE signal id equals the regulatory-element id (true only for maps auto-generated from the same OpenDRIVE) or hand-writing an id table, the bridge discovers the mapping geometrically: each CARLA light head is matched to the nearest lanelet2 light head and its state is published under every regulatory element that references that head. This works for hand-authored / Vector Map Builder maps too.
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/autoware_carla_interface.launch.xml
-
- use_e2e_planning [default: false]
- vehicle_model [default: sample_vehicle]
- use_sim_time [default: true]
- launch_config_pkg [default: autoware_launch]
- host [default: localhost]
- port [default: 2000]
- timeout [default: 20]
- ego_vehicle_role_name [default: ego_vehicle]
- vehicle_type [default: vehicle.toyota.prius]
- spawn_point [default: None]
- map_path [default: ]
- sync_mode [default: True]
- fixed_delta_seconds [default: 0.05]
- use_traffic_manager [default: False]
- max_real_delta_seconds [default: 0.05]
- tick_follower [default: False]
- spawn_point_ground_snap [default: False]
- spawn_point_ground_offset_z [default: 0.5]
- initial_pose_ground_offset_z [default: 1.0]
- force_load_world [default: False]
- min_positive_throttle [default: 0.0]
- min_positive_throttle_speed_threshold [default: 0.8]
- no_rendering_mode [default: False]
- map_origin_x [default: 0.0]
- map_origin_y [default: 0.0]
- publish_ground_truth_objects [default: False]
- carla_map [default: ]
- use_light_weight_sensor_mapping [default: False]
- sensor_kit_name [default: carla_sensor_kit_description]
- sensor_mapping_file [default: $(var sensor_mapping_file_default)]
- max_wheel_steer_angle_deg [default: 0.0]
- flatten_steering_curve [default: false]
- wake_sleeping_physics [default: false]
- traffic_light.publish [default: false]
- traffic_light.force_green [default: false]
- traffic_light.map_path [default: ]
- traffic_light.match_distance [default: 5.0]
- traffic_light.match_ratio [default: 0.6]
- traffic_light.id_map [default: ]
- input_control_cmd [default: /control/command/control_cmd]
- input_odometry [default: /localization/kinematic_state]
- input_steering [default: /vehicle/status/steering_status]
- output_actuation_cmd [default: /control/command/actuation_cmd]
- raw_vehicle_cmd_converter_config [default: $(find-pkg-share autoware_carla_interface)/config/raw_vehicle_cmd_converter.param.yaml]