ZEDx SVO File broken in ROS2

Hello. TL;DR: The SVO file saving seems broken in the latest ROS2 wrapper update. I am using the latest wrapper, and SVO saving doesn’t work with depth_mode set to NONE.

Setup

  • zedx
  • l4t 36.4 , Orin AGX Dev kit 64G
  • zed sdk 5.2
  • zedx quad link v1.4
  • zedx used in SLAVE mode

Case 1: depth mode set to NONE

git diff

root@ubuntu:~/temp_ws/src/zed-ros2-wrapper# git diff
diff --git a/zed_wrapper/config/common_stereo.yaml b/zed_wrapper/config/common_stereo.yaml
index d485caa..af66585 100644
--- a/zed_wrapper/config/common_stereo.yaml
+++ b/zed_wrapper/config/common_stereo.yaml
@@ -82,7 +82,7 @@
             publish_roi_mask: false # Advertise the ROI mask image topic that is published only if a node subscribes to it
 
         depth:
-            depth_mode: 'NEURAL_LIGHT' # Matches the ZED SDK setting: 'NONE', 'NEURAL_LIGHT', 'NEURAL', 'NEURAL_PLUS' - Note: if 'NONE' all the modules that requires depth extraction are disabled by default (Pos. Tracking, Obj. Detection, Mapping, ...)
+            depth_mode: 'NONE' # Matches the ZED SDK setting: 'NONE', 'NEURAL_LIGHT', 'NEURAL', 'NEURAL_PLUS' - Note: if 'NONE' all the modules that requires depth extraction are disabled by default (Pos. Tracking, Obj. Detection, Mapping, ...)
             depth_stabilization: 30 # Forces positional tracking to start if major than 0 - Range: [0,100]
             openni_depth_mode: false # 'false': 32bit float [meters], 'true': 16bit unsigned int [millimeters]
             point_cloud_freq: 10.0 # [DYNAMIC] Frequency of the pointcloud publishing. This value must be equal or less than the camera framerate.
root@ubuntu:~/temp_ws/src/zed-ros2-wrapper#

wrapper terminal

[component_container_isolated-2] [INFO] [1772576315.167857088] [zed.zed_node]: === Subscribers ===                                                                                                         
[component_container_isolated-2] [INFO] [1772576315.167870976] [zed.zed_node]:  * No subscribers                                                                                                           
[component_container_isolated-2] [INFO] [1772576315.174307296] [zed.zed_node]: === zed started ===                                                                                                         
[component_container_isolated-2] [INFO] [1772576345.099202848] [zed.zed_node]: ** Start SVO Recording service called **                                                                                    
[component_container_isolated-2] [2026-03-03 17:19:05 UTC][ZED][INFO] [Init]  Notice: This recording uses SVO version 2, which includes high-frequency IMU data. To revert to legacy SVO mode, set the ZED_
SDK_SVO_VERSION environment variable to 1.                                                                                                                                                                 
[component_container_isolated-2] NvMMLiteOpen : Block : BlockType = 8                                                                                                                                      
[component_container_isolated-2] ===== NvVideo: NVENC =====                                                                                                                                                
[component_container_isolated-2] NvMMLiteBlockCreate : Block : BlockType = 8                                                                                                                               
[component_container_isolated-2] NvVideo: H265 : Profile : 1                                                                                                                                               
[component_container_isolated-2] [INFO] [1772576345.123955296] [zed.zed_node]: SVO Recording started:                                                                                                      
[component_container_isolated-2] [INFO] [1772576345.124093120] [zed.zed_node]:  * Bitrate: 0                                                                                                               
[component_container_isolated-2] [INFO] [1772576345.124153952] [zed.zed_node]:  * Compression mode: H265 LOSSLESS                                                                                          
[component_container_isolated-2] [INFO] [1772576345.124190720] [zed.zed_node]:  * Framerate: 0                                                                                                             
[component_container_isolated-2] [INFO] [1772576345.124220064] [zed.zed_node]:  * Input Transcode: FALSE                                                                                                   
[component_container_isolated-2] [INFO] [1772576345.124245984] [zed.zed_node]:  * Filename: /logging/zed_slave_svo_test6_public_no_depth_tf_on.svo2                                                        
[component_container_isolated-2] NVMEDIA: Need to set EMC bandwidth : 2872000                                                                                                                              
[component_container_isolated-2] [INFO] [1772576383.392501248] [zed.zed_node]: ** Stop SVO Recording service called **                                                                                     
[component_container_isolated-2] [INFO] [1772576383.482627424] [zed.zed_node]: SVO Recording stopped                                                                                                       
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)                                                                                                                                                
[robot_state_publisher-1] [INFO] [1772576408.461615808] [rclcpp]: signal_handler(signum=2)                                                                                                                 
[INFO] [robot_state_publisher-1]: process has finished cleanly [pid 14132]                                                                                                                                 
[component_container_isolated-2] [INFO] [1772576408.461638176] [rclcpp]: signal_handler(signum=2)
[component_container_isolated-2] [INFO] [1772576408.689522944] [zed.zed_node]: === CLOSING CAMERA === 
[component_container_isolated-2] [INFO] [1772576409.401094624] [zed.zed_node]: === CAMERA CLOSED ===
[component_container_isolated-2] Opening in BLOCKING MODE 
[INFO] [component_container_isolated-2]: process has finished cleanly [pid 14134]

File is recorded using these instructions with compression mode = 4

airlab@ubuntu:/logging$ ZED_SVO_Editor --inf /logging/zed_slave_svo_test6_public_no_depth.svo2 
-inf option detected
*FAIL : failed to get infos from  "/logging/zed_slave_svo_test6_public_no_depth.svo2" 
 You can try the -repair option to repair the SVO file

Repairing the file also doesn’t work

Case 2: no git diff - used this commit - ROS 2 - Modify node behaviors when Positional Tracking is disabled · stereolabs/zed-ros2-wrapper@24024d8 · GitHub

Result - SVO recrding works in this case

[component_container_isolated-2] [INFO] [1772576907.285690208] [zed.zed_node]: ** Start SVO Recording service called **
[component_container_isolated-2] [2026-03-03 17:28:27 UTC][ZED][INFO] [Init]  Notice: This recording uses SVO version 2, which includes high-frequency IMU data. To revert to legacy SVO mode, set the ZED_SDK_SVO_VERSION environment variable to 1.
[component_container_isolated-2] NvMMLiteOpen : Block : BlockType = 8 
[component_container_isolated-2] ===== NvVideo: NVENC =====
[component_container_isolated-2] NvMMLiteBlockCreate : Block : BlockType = 8 
[component_container_isolated-2] NvVideo: H265 : Profile : 1 
[component_container_isolated-2] [INFO] [1772576907.316465760] [zed.zed_node]: SVO Recording started: 
[component_container_isolated-2] [INFO] [1772576907.316583424] [zed.zed_node]:  * Bitrate: 0
[component_container_isolated-2] [INFO] [1772576907.316624864] [zed.zed_node]:  * Compression mode: H265 LOSSLESS
[component_container_isolated-2] [INFO] [1772576907.316649664] [zed.zed_node]:  * Framerate: 0
[component_container_isolated-2] [INFO] [1772576907.316664928] [zed.zed_node]:  * Input Transcode: FALSE
[component_container_isolated-2] [INFO] [1772576907.316679232] [zed.zed_node]:  * Filename: /logging/zed_slave_svo_test7_depth_on.svo2
[component_container_isolated-2] NVMEDIA: Need to set EMC bandwidth : 2872000 
[component_container_isolated-2] NvVideo: bBlitMode is set to TRUE 
[component_container_isolated-2] [INFO] [1772576963.525668768] [zed.zed_node]: ** Stop SVO Recording service called **
[component_container_isolated-2] NVENC_H265: Unsupported frameRate (Supported: 1.0 - 60.0), setting to deault value 30.00
[component_container_isolated-2] [INFO] [1772576963.746973696] [zed.zed_node]: SVO Recording stopped
airlab@ubuntu:/logging$ ZED_SVO_Editor --inf /logging/zed_slave_svo_test7_depth_on.svo2 
-inf option detected
Open
```ing in BLOCKING MODE 
NvMMLiteOpen : Block : BlockType = 279 
NvMMLiteBlockCreate : Block : BlockType = 279 
SVO Infos : SVO v 2
Image Size : [ 1920  x  1200 ]
Framerate :  30
Number of Frames :  1687
ZED Serial Number :  40735594
Compression mode :  " H265 Lossless (GPU) compression"
Camera model :  "ZED X"
Camera Fw version :  2001
ZED SDK version that generated this file :  5.2.0

Hi @Parv-Maheshwari
I’ve just tested with the latest version: GitHub - stereolabs/zed-ros2-wrapper: ROS 2 wrapper for the ZED SDK · GitHub
commit: ROS 2 - Modify node behaviors when Positional Tracking is disabled · stereolabs/zed-ros2-wrapper@24024d8 · GitHub
and it works as expected.

Please add more information concerning your setup