ROS 2 uses so-called “middleware” to perform communication between nodes. Over the years different middleware vendors have vied to become the Chosen Implementation, importantly by focusing on message passing efficiency. However: You can be even more efficient by just skipping the middleware completely and achieve true zero-copy messaging! And all you have to do is apply a simple convention: All publishers SHOULD allocate messages using unique pointers. All publishers SHOULD publish the messages using std::move. All subscribers SHOULD expect either a ConstSharedPtr or a const reference. Enable use_intra_process_comms Read on to understand why. ...



 ([CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)), Coral Dev Board © by Google](https://sgvd.ai/figs/ros2-foxy-coral.webp)
 ([CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)), Odroid-XU4 by [Hardkernel co.](https://www.hardkernel.com/), ltd ([CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/))](https://sgvd.ai/figs/ros2-eloquent-odroid-xu4.png)