ZEDX + Quad Link SLAVE mode not working with ROS2

With the zedx quad link driver now fixed, I confirmed that it works as intended in the ZED_Explorer. - I have confirmed that the ZEDX is able to respond to the triggers (start and stop accordingly) when accessed through the ZED_explorer.

However, I am getting no image output using the zedx ros2 wrapper with the slave mode on and the triggers already being active (triggers were already being sent even before the ros2 node boots up )

Once this is resolved, an additional functionality which I would like to have for my usecase is that the node should effectively wait for the trigger before image capture and not necessarily expect that triggers exist on bootup, since it would be sent on command from an external source and not necessarily on the node bootup. Currently in ROS wrapper - the node seems to die if it does not receive a trigger for the initial bootup phase.How can we achieve this, once the first issue of no image, even in the above-mentioned standard case, is resolved

Please share the logs and the Diagnostics screenshot to understand more about the status of the node.

What error are you getting?

Have you tested a native C++ or Python ZED SDK sample to verify if it’s a behavior of the SDK instead of the ROS2 Wrapper?

Thank you for suggesting to check this basic example also.

Scenario 1 - With no trigger at all, I am getting timeout errors and failure errors in this script. The logs are here.

Scenario 2 - With no triggers at start but sending it before the following error is thrown by the code - so the following error was present in scenario 1 but not scenario 2.

[2026-02-23 16:36:11 UTC][ZED][ERROR] [Init]  Corrupted frames were detected. Please verify that your camera is properly connected.
[2026-02-23 16:36:14 UTC][ZED][ERROR] FAILURE in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)
Camera Open : FAILURE. Exit program.

Result of scenario 2: The code is able to execute the image grab loop once we start the trigger. Pelase look at the logs here.

Scenario 3 - With trigger already present at script bootup, the image capture loop runs fine.



With ROS2, with no triggers at the bootup, I am getting the following errors. I used the following setting in common_stereo.yaml of zedx ROS2 wrapper.

general:
    camera_timeout_sec: 1000
    camera_max_reconnect: 50

Line 163, 164 of the ROS2 log - is below. - Seems like this is the same behavior which we are seeing with the simple python example. Given the high value of both the time_out and max_reconnect - I am not sure why the node is failing so early and not waiting for the trigger

[component_container_isolated-2] [2026-02-23 16:12:32 UTC][ZED][ERROR] [Init]  Corrupted frames were detected. Please verify that your camera is properly connected.
[component_container_isolated-2] [2026-02-23 16:12:32 UTC][ZED][ERROR] FAILURE in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)

Overall to summarise again - my aim is that the node ideally remains alive forever - and then starts image capture when the trigger is detected - how can this be achieved.

Moreover, in this setup will it start image capture from the first trigger itself or will it need some time after the trigger starts to capture and transmit the first frame

Hi @Parv-Maheshwari
thank you for the useful information.
The ZED SDK team noted the problem and it will be fixed with one of the next releases.

Do you know a timeline for this? I am looking to use zedx in slave mode for my project, and without this functionality, I will have to consider other options.

Also, for the current SDK, if, let’s say, I send the trigger in the middle of the bootup phase, will it capture images for all of the trigger or will it miss some if the camera requires bootup time?

No, I have no more info at this moment.

It will capture frames only when the bootup is completed.