Sending huge messages like images over a pipe can slow things down a lot. Is there a way we can have memory mapped messages in ROS?
This has been discussed several times. A partial implementation of shared memory message passing was implemented as an experiment.
It turns out that the main overhead is serializing and deserializing the data, not copying the bytes. The shared memory transport still incurs that, so the speed-up was disappointing.
A better solution for high throughput applications is using nodelets, which allow zero-copy transport within a single address space while still providing standard ROS message semantics to nodes in other processes or machines.
Asked: 2011-02-16 20:03:06 -0500
Seen: 392 times
Last updated: Feb 16 '11
Unable to synchronize messages
How can two identical nodelets in one process remap topics and services?
How can I speed up image rectification?
Spawn and kill nodes from nodes/smach
PointCloud subscriber/publisher types
How to run uvc_camera stereo nodelet?
Is there a command line utility to list available nodelets within the package path?
ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.