ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

These message types are for sending fairly different types of messages between nodes:

  • compressed_image - standard color images
    • 3-channel (RGB), 8-bit
    • compressed using either JPG or PNG formats, with user-specified settings
  • compressed_depth_image - depth image (e.g. from kinect or stereo cameras)
    • 1-channel, either 32-bit float or 16-bit integer
    • compressed using PNG format

Your application sounds like it involves standard (not "3D") video data, so I would choose the compressed_image format. See this tutorial for examples of how to adjust the compression "quality" to achieve your desired performance.

As far as I know, though, the image_transport package hides the details of the specific transports from your application. You shouldn't have to interface with a compressed_image directly. The image_transport exposes images on both sides as standard Image messages. See the examples at these tutorials. You can toggle between different methods by setting the ~image_transport parameter to see the effect on performance. In particular, you may want to look into the theora streaming-video method.