How to have no-copy publishing over multiple cores?
I have 2 ROS Nodes each running on its own CPU core.
Is there a way I can publish a message in one node and have it be received by the other, without any copying occurring?
My ROS messages are larges images, so any copying of data would cause a large hit to performance.
As I understand it, the Publisher/Subscriber system only allows no-copy messages in a singe node process. A nodelet is the usual workaround since that runs both the nodes in a single process. Unfortunately, I need each of my ROS Nodes running on their own CPU, so I don't think I can do that as a solution.
I know I could create shared memory manually (either via a POSIX API or Boost) but would prefer if there was a solution using only the ROS APIs.