[ros-users] Why ROS doesn't have memory sharing mechanism between nodes in one machine?

Cedric Pradalier cedric.pradalier at gmail.com
Tue May 22 09:04:24 UTC 2012


I think this has been discussed many time in the past. If you're
specifically interested in shared memory transport, you can have a
look at our message_transport architecture:

This contains an implementation of shared memory transport using
boost. This will reduce the latency and allow nodes to live in
different memory space.
However, you have to be aware that some of the latency is in
serializing/deserializing the data, which cannot be improved (easily)
as long as ROS uses standard vectors for arrays.

Also note that this is C++ only.

I hope that helps.

On Mon, May 21, 2012 at 5:17 AM, K Chen <chk0105 at gmail.com> wrote:
> Hi all,
> Recently I debugged a bug related to message latency and I mistakenly took
> it for message dropping, the problem came out because of a high latency of
> messages about 2 seconds(sometimes more). It is surprisingly high, but
> considering that I have more than 10 nodes running, two of which are kinect
> and 1394 camera image producer publishing images in a high frequency, and
> all that data traffic is through TCP, so now I think it is normal(does it?).
> I am running electric under ubuntu 11.10 with lenovo W520.
> I know ROS have nodelet version node to do zero-copy memory sharing by
> passing boost::shared_ptr between threads in one process, but this mechanism
> only allow nodes to live in different thread within one process, and if one
> nodelet dies, all other nodelets dies. Further more, if I want to use qt as
> GUI of image processing(just to provide faster result showing and easier
> controlling), I cannot find a way to get it into a nodelet because qt UI
> must live in the main thread. So why ROS doesn't provide some more efficient
> data passing mechanism such as inter-process memory sharing? I think this
> will significantly increase large data flow performance.
> Thanks for any comment.
> --
> Regards
> University of Science and Technology of China
> School of Computer Science and Technology
> Multi-Agent System Lab
> K.Chen
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

Cedric Pradalier

More information about the ros-users mailing list