Best practise for recording ZED topics in ROS2?

Hi, we are recording several topics in ROS2 (incl. many zed ones) to store and replay, but are unable to decompress the messages for zed_node/depth/depth_registered/compressedDepth so 2 questions:

  1. Can you provide hints or point us to how the /depth_registered is compressed into /depth_registered/compressedDepth and how to decompress?

    • We saw the encoding: 32FC1 and is_bigendian: 0 in the header of the uncompressed depth. When attempting to extract the /compressedDepth accordingly, the output message is empty height: 0, width: 0, data: []
  2. Is there a better way to record the data and replay it using the SVO format instead of ros bags?

    • We saw this question on Github from a while ago talking about benefits of SVO recording. The challenge mentioned is that SVO recordings could not be replayed with the appropriate timestamps, is that still true?

Thank you.

Hi @dh662

This is something related to the image_transport package. I recommend you ask to the specific ROS support tech resources.

This is the recommended option. You can use the ZED Node to record an SVO and then use it as an input for the node.
Otherwise, you can also use ZED Explorer to record it.

What timestamp do you need?

If we record some non-Zed topics beyond the ZED camera stream, how can we replay both the SVO as well as the other topics (presumably collected with ros2 bag record)?

One way is have a launch file launch both a zed_node with the corresponding svo_path:= as well as ros2 bag play command, but there seem to be no guarantee that what’s being replayed is published at the same frequency if they’re two independent processes?

Also, the start_svo_rec service only exists for stereo cameras?

You cannot… ROS bag files and SVO files are not compatible.

This is correct. It’s not possible to synchronize the two data sources.

Yes, it’s not yet available for monocular cameras