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

K Chen chk0105 at gmail.com
Mon May 21 03:17:06 UTC 2012

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.


University of Science and Technology of China
School of Computer Science and Technology
Multi-Agent System Lab

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20120521/bea162db/attachment-0003.html>

More information about the ros-users mailing list