Client Library WG meeting

After a short break, yesterday (24th May 2024) we had a very interesting meeting of the Client Library Working Group.
We discussed key issues in both the C++ and Python ROS 2 Client Libraries and I hope these will be something that the ROS community will be able to address for the next ROS release.

The next meeting will be in 2 weeks: Friday 7th June 2024 at 8AM Pacific Time.

(Note: we will try to switch between two meeting times to accomodate all the different time zones)

This is the google-group for the Working Group:
I’ll use it to send email reminders for the meetings.

These are the topics that we discussed, and that I expect will be relevant also for the next meetings.

Changes and improvements to make the ROS 2 C++ executors more performant, deterministic and robust are always welcome.
We need more clarity on the expected behavior of ROS 2 executors and we need to offer users customization opportunities.

We discussed the role of callback groups in the executor design.
A key problem in ROS 2 right now is that loaned messages are disabled due to Honor the user holding onto shared_ptrs during subscription callbacks · Issue #2401 · ros2/rclcpp · GitHub.
We need to fix this problem and work towards making zero-copy message passing the default in ROS 2 (with integration with intra-process comm and a unified API to publish messages).

We discussed two main problems of rclpy performance: the recent executor improvements focused on the C++ client library. The Python library has severe performance issues when subscribing to messages at a high frequency because it rebuilds the waitset of the executor at each iteration.
Sending slow, large, messages also has its problems as the serialization/deserialization approach used by the python client library seems to be extremely slow.

If you are interested in these topics feel free to chime in here or in the related github issues, or join us in the next working group meeting!


this post is a reminder that the next meeting of the client library working group will be this Friday: 7th June 2024 at 8 AM Pacific Time.