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

Revision history [back]

click to hide/show revision 1
initial version

Could two nodelet_manager do zero-copy?

No, this is not supported.

Nodelets are essentially nodes mapped on threads, instead of processes. Threads share a single address space, so they can exchange pointers. This is what allows them greater efficiency when communicating using pub-sub.

Two nodelet managers would be two different processes. Processes do not share memory address spaces (by default) and thus cannot exchange pointers.

(shared memory between processes is of course something that exists, but the current nodelet implementation does not support that)

Will the only way is create a new C_nodelet_manager and submit all the nodelets?

From what you describe here, yes, you'd have to host all nodelets in a single manager to allow them to communicate using zero-copy message exchange.