Hi Stereolabs Community,
I am working on a project using the ZED SDK Fusion API with two ZED cameras on Windows using Python. I have successfully implemented camera initialization, loading calibration data from a JSON file, and subscribing the cameras to the Fusion API.
However, my script seems to halt or stop shortly after entering the main processing loop, specifically around the first call to fusion.process()
. I am not getting any explicit Python errors, but the console shows the following repeated ZED SDK warning right before it stops:
[2025-04-23 04:16:46 UTC][ZED][WARNING] The current data source timeout is set to 50. However, this value falls short of the source period (66.66666412353516 milliseconds) required for efficient synchronization. To ensure optimal synchronization, we strongly recommend increasing this value significantly.
[2025-04-23 04:16:46 UTC][ZED][WARNING] The current data source timeout is set to 50. However, this value falls short of the source period (66.66666412353516 milliseconds) required for efficient synchronization. To ensure optimal synchronization, we strongly recommend increasing this value significantly.
My setup involves:
- Operating System: Windows
- Programming Language: Python
- ZED SDK Version: 5.0.0
- Cameras: 2 x ZEDi, running at HD720@15
- Goal: Use Fusion for pose tracking and potentially fused object detection (using custom YOLO detections ingested per camera).
Based on the warning, the default Fusion data source timeout (50ms) is too short compared to my camera frame period (~66.7ms). I suspect this is causing fusion.process()
to block or fail internally due to synchronization issues. Even if I set manually the value to 200ms it will get the default value as the print line is sayin 50ms after setting it:
init_fusion_params.synchronization_parameters.data_source_timeout = 200 print(f"[Fusion] data_source_timeout set to " f"{init_fusion_params.synchronization_parameters.data_source_timeout} ms")
My question is: How can I correctly increase this data source timeout using the Python API? I looked into sl.InitFusionParameters()
, and found documentation mentioning timeout_period_number
, but I’m unsure about the correct usage or expected units (milliseconds vs. number of periods).
Could you please provide guidance on how to properly configure the sl.InitFusionParameters
to set a sufficient timeout (e.g., > 70ms) for my setup? Or could there be another reason why the script is halting after these warnings?
Thank you for your help!