ROS Concurrency
I still have a little trouble understanding how ROS Concurrency works.
I understand that:
- You can use a
MultithreadedExecutor
(see ROS Executor) where you can add nodes to the executor, and multithread them - The callbacks are by default ran in sequential order (since they are all in a default mutex callback group, see ROS Callback Group). This out of the box prevents dataraces when multiple callbacks are triggered. However, it seems to be within the same node
I don’t understand how the publisher and subscriber are linked. Because there is some sort of queue used under the hood right. I get that if it is Inter-process comms, the DDS is involved which will copy the necessary data.
But in intra-process comms, how does it work? See ROS Intra-Process Communication.