Skip to content

move qos_profile_rosout_default from rcl.#381

Merged
ahcorde merged 1 commit intorollingfrom
fujitatomoya/node-rosout-qos-profile-support
Jan 30, 2025
Merged

move qos_profile_rosout_default from rcl.#381
ahcorde merged 1 commit intorollingfrom
fujitatomoya/node-rosout-qos-profile-support

Conversation

@fujitatomoya
Copy link
Copy Markdown
Collaborator

related and need to be merged before ros2/rclpy#1376

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rclpy#1376, #381, ros2/rcl#1195, ros2/rclcpp#2663
Gist: https://gist.githubusercontent.com/fujitatomoya/e4ad476b64d3f274940ae31ebe7149e3/raw/2fa0833cd5e3edd9602385b88d556cb0d18ad054/ros2.repos
BUILD args: --packages-above-and-dependencies rclpy rmw rcl rclcpp
TEST args: --packages-above rclpy rmw rcl rclcpp
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/14837

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@christophebedard
Copy link
Copy Markdown
Member

christophebedard commented Nov 19, 2024

I think we talked about this in the waffle meeting last week and it was mentioned that, since rosout is an rcl-level thing and not an rmw-level thing, the QoS profile should stay in rcl.

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

@christophebedard thanks for the comment!

hmmm okay, in that case why clients default profiles are defined in rmw? for example, rmw_qos_profile_parameter_events. if those are supposed to be defined on where it is used, it should be defined in client libraries? i was thinking that those default profiles are defined in rmw so that all dependent libraries on top of that, can be consistent profile... maybe i am missing something... ❓❓❓

@christophebedard
Copy link
Copy Markdown
Member

christophebedard commented Nov 19, 2024

Then maybe rmw_qos_profile_parameter_events doesn't belong in rmw. If it's meant to be used by client libraries (rclcpp, rclpy) and not rmw itself, and is a client library concept instead of an rmw concept, then it should go in rcl.

Parameter events are a client library concept, but clients and services are an rmw concept, so rmw_qos_profile_services_default probably belongs in rmw. So I wouldn't say "defined where used" but "defined where it belongs," if that makes sense.

Anyway, I was just relaying what was mentioned in the waffle meeting last week. We may want to talk about it again.

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

yeah i know you are just sharing the information, thanks!

since rosout is an rcl-level thing and not an rmw-level thing, the QoS profile should stay in rcl.

if that is a really requirement, we need to update the pybind to expose the rosout qos from rcl instead of rmw.

IMO, having rosout default profile in rmw should be okay, lets keep this open.

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

@ahcorde @clalancette @mjcarroll @wjwwood any thoughts above discussion? thanks in advance.

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

@jmachowinski can you take a look at this?

@jmachowinski
Copy link
Copy Markdown

The changes proposed here and #2663 make sense to me. It seems like the default profiles are all defined in rmw, and the API calls in rclcpp seem more sane now. E.g.

QoSInitialization::from_rmw(rmw_qos_profile_rosout_default)

make way more sense than

QoSInitialization::from_rmw(rcl_qos_profile_rosout_default)

Therefore I am fine with this change.

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
@fujitatomoya fujitatomoya force-pushed the fujitatomoya/node-rosout-qos-profile-support branch from a8d22e2 to 760d0af Compare January 18, 2025 01:13
@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

Pulls: ros2/rcl#1195, #381, ros2/rclcpp#2663, ros2/rclpy#1376
Gist: https://gist.githubusercontent.com/fujitatomoya/259af27c06fabca14048f5367b8552af/raw/2fa0833cd5e3edd9602385b88d556cb0d18ad054/ros2.repos
BUILD args: --packages-above-and-dependencies rmw rcl rclcpp rclpy
TEST args: --packages-above rmw rcl rclcpp rclpy
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15081

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya
Copy link
Copy Markdown
Collaborator Author

fujitatomoya commented Jan 22, 2025

Pulls: ros2/rcl#1195, #381, ros2/rclcpp#2663, ros2/rclpy#1376
Gist: https://gist.githubusercontent.com/fujitatomoya/94630b0c6cc669a66b03c18a1487f1d8/raw/eda21354a124f2ef7073c211f8325ed696bb886a/ros2.repos
BUILD args: --packages-above-and-dependencies rmw rcl rclcpp rclpy
TEST args: --packages-above rmw rcl rclcpp rclpy
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15082

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@ahcorde ahcorde merged commit 4d3725e into rolling Jan 30, 2025
@ahcorde ahcorde deleted the fujitatomoya/node-rosout-qos-profile-support branch January 30, 2025 10:12
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.

4 participants