Skip to content

feat(ros2): native map and ego vehicle status publishers with durability QoS - #14

Closed
youtalk wants to merge 1 commit into
autoware/ros2-preconditionsfrom
autoware/1-port-9786
Closed

feat(ros2): native map and ego vehicle status publishers with durability QoS#14
youtalk wants to merge 1 commit into
autoware/ros2-preconditionsfrom
autoware/1-port-9786

Conversation

@youtalk

@youtalk youtalk commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Ports the ue4-dev native ROS 2 work from carla-simulator#9786/carla-simulator#9787 to ue5-dev: publisher durability QoS descriptors threaded through the CycloneDDS/Fast DDS/Zenoh middleware backends, a latched TRANSIENT_LOCAL /carla/map OpenDRIVE topic for late-joining subscribers, and ego vehicle status/info/odometry publishers with carla_msgs-compatible CDR types whose DDS type hashes are pinned by a unit test. Also globs test sources with CONFIGURE_DEPENDS so a stale CMake cache cannot silently drop a new test file. Squashed from the previous #14+#15 pair; the fork-demo pipeline and maintainer tooling were removed to keep the upstream diff minimal.

…ity QoS

Port the ue4-dev native ROS 2 work from upstream PRs carla-simulator#9786 and carla-simulator#9787 to
the ue5-dev native ROS 2 stack (TF tree publishing excluded):

* Publisher durability QoS: introduce PublisherQos descriptors and
  thread them through IPublisherMiddleware and the CycloneDDS, Fast DDS,
  and Zenoh backends, so publishers can request reliability/durability
  beyond the previous hardcoded defaults.
* Latched map topic: CarlaMapPublisher publishes the OpenDRIVE map on
  /carla/map with TRANSIENT_LOCAL durability so late-joining
  subscribers still receive it.
* Ego vehicle status/info and odometry: CarlaEgoVehicleStatusPublisher,
  CarlaEgoVehicleInfoPublisher, and CarlaOdometryPublisher with the
  carla_msgs CDR message types (CarlaEgoVehicleStatus/Info/InfoWheel,
  Accel), UE-to-ROS unit/frame conversions (UeToRosConversions.h), and
  DDS type hashes covered by test_type_hash.cpp.
* Define the ego vehicle publisher constructors in the Ros2Native
  translation unit so middleware creation succeeds instead of failing
  at link/creation time.
* Log a failed DDS writer creation at log_error in the new publishers,
  matching the severity every existing publisher uses for the identical
  condition; a nullptr DDS writer is a silent-failure risk.
* Glob LibCarla test sources with CONFIGURE_DEPENDS so a newly added
  test file cannot be silently omitted by a stale CMake configure while
  gtest still exits 0 with a lower test count.

Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@youtalk
youtalk force-pushed the autoware/1-port-9786 branch from 9afb44c to 37830af Compare July 24, 2026 02:56
@youtalk youtalk changed the title feat(ros2): port #9786 publisher durability QoS to ue5-dev feat(ros2): native map and ego vehicle status publishers with durability QoS Jul 24, 2026
@youtalk

youtalk commented Sep 4, 2026

Copy link
Copy Markdown
Owner Author

Closing, but with a correction to the reason and one part explicitly preserved.

This PR is not superseded by an in-tree port. ue58-dev has no /carla/map topic, no EgoVehicleStatus/EgoVehicleInfo publisher, and no durability-QoS threading — I checked the in-tree ROS 2 layer directly before closing, and none of it is there.

It is closed for two different reasons, one per half:

  • The ego vehicle status/info/odometry publishers with carla_msgs-compatible CDR types are a stated non-goal. A plugin-direct layer was verified to win on content, performance and upstreamability against a carla_msgs-shaped bridge, and ue58-dev accordingly ships Autoware-shaped publishers (AutowareVehicleStatusPublisher, AutowareGNSSPublisher) instead. This half will not be revived in this form.
  • The latched TRANSIENT_LOCAL /carla/map`` OpenDRIVE topic and the publisher durability-QoS descriptors are not superseded and remain a live idea: a std_msgs/String OpenDRIVE primitive is generic and useful, and independent of the lanelet2/HD-map non-goal. It stays a tracked candidate rather than being discarded with this PR, and the branch is retained in this fork so it can be re-cut against `ue58-dev` if a later phase wants it.

Closing the PR rather than leaving it open against autoware/ros2-preconditions, which is itself being retired.

@youtalk youtalk closed this Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant