Sure! The compression techniques are primarily derived from the original repository at GitHub - dheera/rosboard: ROS node that turns your robot into a web server to visualize ROS topics, which applies different compression methods depending on the data type.
For image topics and occupancy grids:
- Everything is converted to
uint8.
- If the image exceeds certain dimensions, it is subsampled.
- For image topics, it is sent as a JPG-compressed image. For occupancy grid topics, it is sent as a PNG-compressed image to avoid losing information.
For laser scan and PointCloud2 topics:
- The data is converted to
uint16 to save space.
- For PointCloud topics:
- If there are more than approximately 65k points, it is subsampled to 65k.
- The point clouds are trimmed to only send
xyz fields.