I had a thought that I had on the back of my mind for a while and I would like to share it with the community.
We know that PointClouds messages can be quite large.
The image transport allow us to send compressed images. This has great benefits when we are connecting remotely to a robot over Wifi or when recording with a rosbag.
But we miss a similar functionality iwith even large messages, i.e. poit clouds.
I wonder if anyone has addressed this issue already or if we can propose to have an “official” solution to this problem.
In my mind, a potential simplistic solution would be to:
- Define a new Message type, let’s call it sensor_msgs/CompressedPointCloud sensor_msgs/CompressedImage.
- Add this message to drivers, such as the Velodyne or RealSense-ROS ones. Compression and publication can be skipped in no one subscribe to the compressed topic.
- Create an official C++ and Python library to convert the compressed type to a PointCloud2 message or, better, a pcl::PointCloud.
- Add this new compressed cloud to RViz
I would personally use a very fast compression algorithm such as LZ4 (we don’t want to add too much latency).
What do you think?