ros2cli
ros2cli copied to clipboard
Add ros2 service info
Related Issue https://github.com/ros2/ros2cli/issues/766
[DEPENDENCY] to track works related to this:
- rmw_cyclonedds (https://github.com/ros2/rmw_cyclonedds/pull/427)
- rmw_fastrtps (https://github.com/ros2/rmw_fastrtps/pull/641)
- rmw_connextdds (https://github.com/ros2/rmw_connextdds/pull/93)
- rmw (https://github.com/ros2/rmw/pull/334)
- rmw_implementation (https://github.com/ros2/rmw_implementation/pull/208)
- rcl (https://github.com/ros2/rcl/pull/1011)
- rclpy (https://github.com/ros2/rclpy/pull/1024)
Anticipated output

Signed-off-by: leeminju531 [email protected]
Running a full CI from (https://gist.github.com/mjcarroll/9e6d17c5e4b5b5ac9f9364365145277b)
@mjcarroll friendly ping, could you renew CI ?
@leeminju531 is this still draft? i am happy to review those PRs.
friendly ping @audrow , I think my tasks are completed, are there more steps? I'm waiting for merge :smiley::laughing:
@leeminju531 are you willing to implement this for https://github.com/ros2/rclcpp?
about https://github.com/ros2/rmw/pull/334#discussion_r1057986256, any thoughts? @audrow @gbiggs
I think it would be useful to connect this to #703, which is my version of this feature.
From my perspective it's important to have a version of this new verb which can be backported to Humble, since I'm working with commercial and industrial clients who can only use LTS releases of ROS 2. If a feature doesn't make it into an LTS release then these users will not be able to benefit from it until at least May 2024 when J-Turtle is released.
It's a good approach to extend the fundamental rcl API to add more functionality. However, I expect that it will not be possible to backport this API change plus the dependent RMW implementation changes to Humble, since these are ABI-breaking changes that require recompiling these packages.
Since the files you've added to ros2service/verb are very similar to the ones I added in my version, I think we could do something like this:
- Merge #703 and create a PR to backport it to Humble
- Merge the upstream dependencies of this PR
- Merge this PR to use your
count_clientsandcount_servicesfunctions in theinfoverb.
@leeminju531 what do you think?
@schornakj it sounds reasonable to me 😊
It looks like this PR is still pending. If any additional work is needed before merging, please feel free to let me know
@leeminju531 all related PRs look good to me except minor comments. i think it would be probably better to rebase all these PRs, and the we can start the CI.
:ok_hand: All the things are addressed. @fujitatomoya
It looks like Windows is failing CI for some reason. @leeminju531 please take a look.
failing https://github.com/leeminju531/rmw_implementation/blob/59c7868449b283b38370d2e6c25aa9f3f94096ce/test_rmw_implementation/test/test_graph_api.cpp#L993.
passing next client count though, https://github.com/leeminju531/rmw_implementation/blob/59c7868449b283b38370d2e6c25aa9f3f94096ce/test_rmw_implementation/test/test_graph_api.cpp#L1007
probably we need to add some sleep to wait the graph update?
I think adding a brief sleep can solve this too. I believe the failure can occur not only in Windows but in any operating system. The test attempts to discover the topic right after creating participants, so the time to discover was faster than its period.
The sleep added in rmw_implementation. could you run CI again? @fujitatomoya
@clalancette can you check https://github.com/ros2/rmw_implementation/pull/208? once that is approved, i will start the CI again.
@clalancette thanks for merging rmw packages. do you still need time for clients libraries including ros2cli? or i can start the CI based on the latest source.
Thanks for merging all dependencies, Could someone run CI for this ?
Additionally, I've considered the '--verbose' option for details like topic info -v. However, it seems to require ABI breaking changes. Perhaps it needs something similar to rmw_get_clients_info_by_service like rmw_get_publishers_info_by_topic.
Nonetheless, it appears that information on which node owns the clients or services is possible here. In my experience, displaying this information seems to be quite useful.