-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
enable intra-process communication for point clouds #2599
enable intra-process communication for point clouds #2599
Conversation
c78ce6f
to
ce6d0e9
Compare
@Nir-Az The CI is failing for |
Thanks for the PR, looks like a great enhancement. |
ce6d0e9
to
2b6a7dd
Compare
2b6a7dd
to
a2026cf
Compare
@Nir-Az Can you approve the CI pipeline for this PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great enhancement, thanks!
With this PR should the readme be updated? It still says that pointclouds are not supported for ipc |
You are right, thanks. |
The node currently publishes point cloud messages directly and does not use a unique shared pointer, which prevents using efficient zero-copy intra-process communication as it requires copying the data between nodes in the same process.
This PR fixes this by publishing the point cloud via a unique shared pointer. I verified by the address of the
data
vector that the camera node and a point cloud subscriber indeed share that message without copying data.The PR also contains some cleanup commits and one commit to guard different method signatures behind a version check to enable compilation on Ubuntu 20.04 with ROS2 rolling. Note that those checks should be done by library version and not ROS2 distribution names, as the same ROS2 distribution (e.g.
rolling
in this case) can have different versions of a library on different Ubuntu versions.