ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

zero-copy IPC

asked 2019-11-26 07:00:41 -0500

gdebrecz gravatar image

Hi !

I really like the features and design principles of ROS2, however I've already run into some bottleneck and this is the issue of huge amount of data sharing between nodes located in different unix processes, i.e. IPC.

Is there any (not so distant) future plan to implement zero-copy IPC in ROS2 ? Where by for example only the data ownership / locking tickets are published / received through the topics, but the data does not get copied ? It could be naturally included into the design philosophy and would extremely increase the usability in data intensive applications.

Looking around on the web, there is very very few solution capable of doing this (truly zero copy IPC), one that I liked is:

https://github.com/FairRootGroup/FairMQ/

Can similar solutions be implemented in ROS2 ?

G

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2019-11-26 08:03:12 -0500

gvdhoorn gravatar image

updated 2019-11-26 08:04:21 -0500

You may want to become more familiar with the work the various working groups are doing in ROS 2. In particular the Real-time WG and the Security WG. From your previous questions it appears you may not be using the right keywords in your searches.

Activities of the WGs are announced and discussed in the ng-ros category on ROS Discourse.

For zero-copy in particular: ros2/ros2#785. Note also the link to the design document on the same subject.

edit flag offensive delete link more

Comments

Thanks, indeed, I'm a ROS newbie, so my questions could be ill positioned, still thanks for your support ! (On side note: currently it is not so straightforward to navigate across the various ROS/ROS2 docs. The tutorials are excellent but what is not included in those is not so easy to find.) I will check the referred documents and check the status of the functionality...from the docs I understand it is still under design and not available. Is that correct ? Is there some target implementation date ?

gdebrecz gravatar image gdebrecz  ( 2019-11-26 08:55:39 -0500 )edit

my questions could be ill positioned

Asking questions is never a bad thing.

On side note: currently it is not so straightforward to navigate across the various ROS/ROS2 docs. The tutorials are excellent but what is not included in those is not so easy to find

True. That would seem to be on all TODO lists, but understandably gets deprioritised over actual development.

I will check the referred documents and check the status of the functionality...from the docs I understand it is still under design and not available. Is that correct ? Is there some target implementation date ?

The best place to ask this would be on the linked PR.

gvdhoorn gravatar image gvdhoorn  ( 2019-11-26 09:16:57 -0500 )edit
1

answered 2019-11-26 12:20:58 -0500

Karsten gravatar image

Starting from eloquent, we have support for zero-copy IPC. Details can be found in the link mentioned above: https://github.com/ros2/ros2/issues/785. Also there is a design document drafted which hopefully gets merged anytime soon.

In a nutshell, eloquent has support for loaned messages which are allocated/deallocated directly by the middleware and thus enables the middleware to have a zero-copy transport. To get started, you'd also need a middleware implementation which fully supports that zero-copy transport. There is https://github.com/eclipse/iceoryx which is such a middleware. There is also a suited RMW implementation for it so that you can use your regular ROS2 application with that middleware. You can find the implementation and more documentation on how to get started, here: https://github.com/ros2/rmw_iceoryx

edit flag offensive delete link more

Comments

eclipse/iceoryx zero-copy is being built into eclipse cyclone DDS ros2/rmw_cyclonedds. The Eclipse iceoryx zero-copy and the Eclipse Cyclone DDS developers are combining the two so you get all RMW features + zero-copy IPC performance. Here's a bit on that from ROS-I Stuttgart Dec 11th https://bit.ly/eclipsecyclone

joespeed gravatar image joespeed  ( 2019-12-16 15:25:01 -0500 )edit

thanks a lot !

gdebrecz gravatar image gdebrecz  ( 2020-02-20 10:03:07 -0500 )edit

Question Tools

3 followers

Stats

Asked: 2019-11-26 07:00:41 -0500

Seen: 950 times

Last updated: Nov 26 '19