Adapt to built-in ROS2 interface - #762
Draft
berndgassmann wants to merge 24 commits into
Draft
Conversation
Contributor
Author
|
That PR might be merged later on into a new branch (e.g. dev) because it is only valid for ue4-dev branch once the latest ROS2 server changes will be integrated. |
This was referenced Nov 26, 2025
Removed not required parts of the old ros-bridge implementation as those are covered by the ROS2 enabled CARLA server directly: - carla_ros_bridge - carla_ackermann_msgs, - carla_ackermann_control ROS1 is not supported anymore: - remove ROS1 launch files - remove ROS1 build infos - disable ROS1 CI build Update carla_msgs to ue-extend-ros2 branch Since manual override is not available anymore in that form, added the control_priority parameter to the nodes publishing CarlaEgoVehicleControl messages. Added derived_objects_visualizer to replace /carla/markers published by the old ros bridge carla_ad_agent: - remove ego object from all objects using vehicle_info since vehicle individual objects topic is not existing anymore - make local_planner subscription to Odometry best effort - don't execute planner step if no odometry message was received - fill CarlaEgoVehicleControl header with odometry msg header data - allow setting control_priority (defaults to 10) carla_manual_control: - adapt to CarlaEgoVehicleStatus msg changes - allow setting control_priority (defaults to 20) carla_ros_scenario_runner: - allow enabling debug logging output at scenario runner carla_spawn_objects: - remove not existing pseudo sensors - remove not available control_id - read vehicle role_name from objects definition file if provided carla_twist_to_control: - allow setting control_priority (defaults to 6) ros_compatibility: This package is kept for the moment to reduce impact in the code - extend ros compatibility qos setting - Only init rclpy if required. This allows for using multiple carla_ad_agents within a scenario - Fix use of duplicated topic names for different message types in ROS2 pcl_recorder: - adapt topic names and fix dependencies rviz_carla_plugin - allow dynamic selection of vehicle to be controlled
berndgassmann
force-pushed
the
mai/ue4-extend-ros2
branch
from
November 29, 2025 23:46
e1c3b79 to
5c4c206
Compare
berndgassmann
commented
Nov 29, 2025
| path = carla_msgs | ||
| url = https://github.com/carla-simulator/ros-carla-msgs | ||
| branch = master | ||
| url = https://github.com/Motor-Ai/carla-simulator-ros-carla-msgs |
Contributor
Author
There was a problem hiding this comment.
This has to be changed AFTER carla-msgs have been merged!
Don't merge this PR yet!!
berndgassmann
commented
Nov 29, 2025
| url = https://github.com/carla-simulator/ros-carla-msgs | ||
| branch = master | ||
| url = https://github.com/Motor-Ai/carla-simulator-ros-carla-msgs | ||
| branch = ue4-extend-ros2 |
Contributor
Author
There was a problem hiding this comment.
This branch name has to be changed to the dev branch of the carla-msgs after the merge of the commit into that branch.
In each case a new branch is required also for the ros-bridge itself ...
and fixed typo
and enable manual override by default
to add support for client based settings: - enable_autopilot - lane invasion sensor
berndgassmann
force-pushed
the
mai/ue4-extend-ros2
branch
from
December 10, 2025 20:48
1aed943 to
fcbf105
Compare
Since the CARLA server runs as fast as possible in async mode, fixed_delta_seconds is set to control the simulation timestep so that sensors produce data correctly.
and switch derived_object_visualizer to Objects type since the covariances are in each case not deployed on visualization
Ensure the client is ticking in synchronous mode, regardless who enabled it. This is more robust since carla is able to distiguish the ticks from different clients. The traffic manager is switched to synchronous mode, in case the client triggers the autopilot of any vehicle.
If only sensors should be spawned ensure to wait for the vehicle to be spawned instead of just failing to spawn the objects.
berndgassmann
force-pushed
the
mai/ue4-extend-ros2
branch
from
March 9, 2026 17:05
8b0478a to
310868d
Compare
In case the OpenDrive content received from CARLA contains an offset, we need to remove it since CARLA is using this offset only for the GPS Sensor; the actual map data is in the ENU frame without the offset applied. If we don't remove the offset, the displayed map will be misaligned.
- Remove the setuptools-deprecated tests_require option from all ament_python packages' setup.py (colcon test already drives pytest directly; the option is a no-op and only produces a warning). - Fix cmake_minimum_required()/project() ordering in carla_ros_scenario_runner_types, carla_waypoint_types and carla_ad_demo. - Bump cmake_minimum_required to 3.5 in pcl_recorder and rviz_carla_plugin to drop the "compatibility with CMake < 3.5" deprecation. - Guard pcl_recorder's find_package(PCL)/find_package(pcl_conversions) calls with CMP0074/CMP0144 policy settings so PCL_ROOT/FLANN_ROOT are honored instead of warned about and ignored. - Swap rviz_carla_plugin's deprecated OgreVector3.h include for OgreVector.h, which it was only forwarding to anyway. - Bump the carla_msgs submodule pointer for its own cmake_minimum_required bump.
Agent.__init__() called new_client() for carla_waypoint_publisher's get_waypoint service with no timeout, blocking forever whenever that service isn't launched (as is the case with avoid_risk=false, since it's only used by _is_vehicle_hazard()/_is_light_red()). This silently prevented every subsequent subscription/publisher in CarlaAdAgent's own __init__ from ever being created, since it calls super().__init__() first. Add a 5s timeout with a graceful fallback instead. ad_agent.py's main() spun the controller node directly (rclpy.spin) after already constructing its own MultiThreadedExecutor and adding the node to it, rather than spinning the executor - align with the idiom used elsewhere in this codebase (e.g. derived_objects_visualizer_main.py). local_planner.py's emergency_stop() now also publishes an explicit next_target marker with action=DELETE, so a consumer watching that topic can tell "local_planner currently has no target" immediately rather than inferring it from the topic going silent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Removed not required parts of the old ros-bridge implementation as those are covered by the ROS2 enabled CARLA server directly:
Update carla_msgs to the ue4-extend-ros2 branch
Added derived_objects_visualizer to replace /carla/markers published by the old ros bridge
carla_ad_agent:
carla_walker_agent:
ros_compatibility:
carla_spawn_objects:
carla_control_panel:
carla_twist_to_control:
pcl_recorder:
carla_ros_scenario_runner:
Disable debian melodic CI build
This change is