Hello, I'd like to just shine a light on this last statement.  I don't
immediately understand why a shared memory transport can't compete
with nodelets as I understand them.  If nodelets are threads in a
single process and use process memory to carry messages (which is
essentially shared memory in that context), shouldn't nodelets and a
shared memory transport be roughly equivalent in performance?


It depends entirely on what you mean by shared memory transport.  If the messages are allocated out of shared memory, and a pointer to them is simply passed around, yes -- but that's not what Cedric's implementation did.  Serialization/deserialization is by far the largest time sync when dealing with large messages, so unless you remove that overhead shared memory cannot compete with nodelets.

http://ros-users.122217.n3.nabble.com/Shared-memory-transport-using-C-in-ROS-td414682.html#a414682
http://ros-users.122217.n3.nabble.com/Shared-memory-image-plugin-td782519.html#a782519

Josh