Intermittent image flickering / mixed frames when viewing ZED ROS 2 image topics on ROS 2 Jazzy

Hello,

I am using a ZED 2 camera with the ZED ROS 2 wrapper on ROS 2 Jazzy.

Description

When viewing the camera directly in ZED Explorer, the image stream appears stable and correct. I monitored it for several minutes and did not observe any flickering or visual corruption.

However, when using the ROS 2 image topics published by the ZED ROS 2 wrapper, I occasionally observe image artifacts.

The artifacts appear as:

  • Image flickering
  • Partial mixing of two consecutive frames
  • Regions of the image appearing to belong to different frames

The issue is intermittent and does not occur continuously.

Additional testing

I initially observed the issue using:

rqt

subscribed to:

/zed/zed_node/rgb/color/rect/image

To rule out an RQt-specific issue, I also tested using:

ros2 run image_tools showimage --ros-args -r image:=/zed/zed_node/rgb/color/rect/image

and observed similar flickering/artifacts there as well.

Therefore, the issue does not appear to be limited to RQt Image View.

Environment

  • Camera: ZED 2
  • OS: Ubuntu 24.04.4 LTS
  • ROS 2: Jazzy
  • Kernel: 6.17.0-29-generic
  • CPU: AMD Ryzen 9 3900X
  • GPU: NVIDIA RTX 4090
  • NVIDIA Driver: 595.71.05
  • CUDA: 13.2
  • ZED SDK: 5.1.0
  • ZED ROS 2 Wrapper commit:
    4719db300730c609efb6f6661a5d3d3fccb58bb7

Diagnostics

  • Camera detected correctly
  • USB 3.0
  • USB bandwidth reported as OK

The ZED Diagnostic tool reports multiple CUDA installations:

  • CUDA 13.2
  • CUDA 12.6

and recommends keeping only CUDA 13.

Rosbag

I recorded a rosbag while reproducing the issue:

Bag details:

  • Topic: /zed/zed_node/rgb/color/rect/image
  • Duration: ~3 seconds
  • Messages: 85
  • Approximate frame rate: ~29 FPS

Question

Since the image stream is stable in ZED Explorer but shows artifacts when viewed through ROS 2 topics, what additional diagnostics would you recommend to determine whether the issue originates from:

  • The ROS 2 wrapper
  • ROS 2 image transport
  • DDS/QoS configuration
  • GPU/OpenGL rendering
  • Another component in the ROS visualization pipeline

Thank you.

Hi @Sohaib-Snouber
Welcome to the StereoLabs community.

This could happen due to an overload of the system, causing buffer overflows in the USB3 controller.

This confirms the previous hypothesis.

I recommend you:

  • use the latest version of the ZED SDK. The version v5.1.1 is pretty old.
  • use the latest version of the ZED ROS2 Wrapper
  • read this section of the documentation to learn how to set up the ROS 2 environment to obtain the best performance: DDS Middleware and Network tuning - Stereolabs
  • read this section of the documentation to learn how to optimize the the ZED nodes: Node Frequency Tuning - Stereolabs