Calibration file error when multiple cameras connected

Our hardware setup uses Quad link on Jetson AGX Orin 64GB

Playing around with different setup. We always have one stereo camera A (ZED X), two mono (ZED X One GS) B + C and trying to add either another stereo (ZED X) or another mono (ZED X One GS) D in the following way:

  1. Fakra connector 1: Stereo + mono/stereo (we tried swapping between stereo only, stereo + mono, or stereo + stereo): A + D
  2. Fakra connector 2: mono + mono (this remains contant): B + C

When running ZED_Explorer, all 4 cameras open and run regardless of whether D is stereo or mono.

However, whenever D is connected, the stereo camera A does not launch (zed_camera.launch with no edits specifying the serial_number:=) in ROS2 with the following error:

[component_container_isolated-1] [ERROR] [1741636666.922283764] [camera_front.zed_node_0]: Calibration file error: Calibration file found but it is corrupted. Download your factory calibration file from calib.stereolabs.com or use ZED calibration tool to recalibrate.
[ERROR] [component_container_isolated-1]: process has died [pid 1664, exit code -11, cmd '/opt/ros/humble/lib/rclcpp_components/component_container_isolated --ros-args -r __node:=zed_container_0 -r __ns:=/camera_front'].

The calibration file is the one obtained from calib.stereolabs.com and has been unchanged.

The weird behavior is that the newly connected D always works and can be launched. Likewise, the moment we unplug D, stereo camera A can be launched with the exact same command.

FWIW The order of the cameras in ZED_Explorer changes whenever D is connected and A gets assigned index 3.

For context:

  • ZED SDK 4.2.3 (not upgrading until this issue with 4.2.5 gets resolved)
  • Quad link 1.2.1 drivers (ditto with upgrade)

EDIT: The issue is related to the SDK since it’s not grabbing the right serial number. When all 4 cameras are connected, when we launch A with its serial number, sl::Camera uses a different serial number.

Mini repro script:

import sys
import pyzed.sl as sl


def main():
    zed = sl.Camera()

    init_params = sl.InitParameters()
    init_params.camera_resolution = sl.RESOLUTION.HD1080
    init_params.camera_fps = 30

    init_params.set_from_serial_number(int(sys.argv[1]))

    status = zed.open(init_params)
    if status != sl.ERROR_CODE.SUCCESS:
        print(repr(status))
        exit()

if __name__ == "__main__":
    main()

Running python calib_repro.py <serial number for camera A> returns:

[2025-03-10 20:48:13 UTC][ZED][INFO] Logging level INFO
[2025-03-10 20:48:13 UTC][ZED][INFO] Logging level INFO
[2025-03-10 20:48:13 UTC][ZED][INFO] Logging level INFO
[2025-03-10 20:48:14 UTC][ZED][INFO] [Init]  Depth mode: PERFORMANCE
[2025-03-10 20:48:16 UTC][ZED][INFO] [Init]  Camera FW version: 2001
[2025-03-10 20:48:16 UTC][ZED][INFO] [Init]  Video mode: HD1080@30
[2025-03-10 20:48:16 UTC][ZED][INFO] [Init]  Serial Number: S/N <DIFFERENT SERIAL NUMBER FOR CAMERA B !!!!!!!>
[2025-03-10 20:48:16 UTC][ZED][WARNING] [Init]  Invalid calibration file. On Linux, call export LC_ALL="C" and restart your application.
[2025-03-10 20:48:16 UTC][ZED][ERROR] [Init]  Wrong value in calibration file. Downloading it... 
[2025-03-10 20:48:16 UTC][ZED][WARNING] [Init]  Invalid calibration file. On Linux, call export LC_ALL="C" and restart your application.
[2025-03-10 20:48:16 UTC][ZED][INFO] [Init]  Invalid calibration file. Recalibrate your camera using ZED Calibration tool or download your calibration file on https://calib.stereolabs.com
[2025-03-10 20:48:16 UTC][ZED][WARNING] INVALID CALIBRATION FILE in sl::ERROR_CODE sl::Camera::open(sl::InitParameters)
INVALID CALIBRATION FILE
[2025-03-10 20:48:17 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.
[2025-03-10 20:48:17 UTC][ZED][ERROR] [ZED] sl::Camera::Open has not been called, no Camera instance running.

EDIT 2: Both A and D work fine when B and C are unplugged. Is it not possible to mix and match ZED X and ZED X One GS cameras on a single Quad Link card?

@Myzhar — any idea? Is this expected?

This problem is solved with SDK v4.2.5 and ZED X Driver v1.2.2

Has the FPS drop issue in 4.2.5 been resolved, please?

We are currently withholding on the update because we can’t take an FPS drop

We are still working on it.