ZED SDK 5.1.0
https://www.stereolabs.com/en-fr/developers/release/5.1#510-8a756bc18083fc9b21b949fb5fa8ffbb
5.1.0
SDK
DEPTH
- Improved depth for close range, the new ZED SDK now provides depth values even at very short range.
CAPTURE
- Enhanced GMSL camera acquisition, resulting in improved overall stability and fewer frame drops.
- Introduced Live Virtual Stereo from 2 ZED X One cameras directly via the API. It uses the Camera class and new functions sl::InputType::setVirtualStereoFromCameraIDs or sl::InputType::setVirtualStereoFromSerialNumbers. It shows significant performance optimization: CPU usage decreased by 60%, making this version 2.5x more CPU efficient than ZED_MediaServer, even in IPC mode. Refer to the sample virtual stereo/cpp for an example on how to use it
- Introduced an uncalibrated mode for Virtual Stereo. This enables viewing unrectified images, recording to SVO, or streaming for future calibration or troubleshooting purposes. Note: depth sensing, positional tracking, and other modules are not available in this mode.
- Improved self-calibration in the near-range scenario. Improved robustness to more challenging conditions, and self-diagnostic. Added a new warning sl::ERROR_CODE::POTENTIAL_CALIBRATION_ISSUE returned by the sl::Camera::open function, if camera calibration is poor and may require a recalibration. To verify this, open ZED_DepthViewer and perform a visual check on the scene (is the depth image full, are planes flat, are objects' shapes correct, …).
- Added OpenCV fisheye calibration support for Camera and CameraOne.
- Added support for Windows for CameraOne API. It is now possible to stream or read SVOs from ZED X Ones on Windows.
- Added a new function getSensorsDataBatch() to retrieve all high-frequency sensor data associated with the latest grabbed frame.
- Added new sl::VIEW to handle more color conventions. Added additional 3-channel (BGR) and GRAY color modes. DEPTH and CONFIDENCE views are now retrieved in color.
- Fixed hue control for USB cameras
- Improved VIDEO_SETTINGS reset calls. Now all the settings can be reset with the base function sl::Camera::setCameraSettings(setting, sl::VIDEO_SETTINGS_VALUE_AUTO), for sl::Camera and sl::CameraOne (in live and streaming mode).
- Removed the default parameter camera_type from sl::InputType::setFromCameraID and bus_type from sl::InputType::setFromSerialNumber. Also removed the enum CAMERA_TYPE. Now, objects Camera and CameraOne handle the camera and bus types automatically.
- Fixed an inconsistency in frame rate selection with GMSL Cameras when the requested frame rate was not supported.
- Set default sdk_verbose of InitParametersOne to 1 to match InitParameters.
- Fixed rectified field of view for some sl::CameraOne. On some camera the rectified field of view was much lower than expected. To revert to the previous rectification, set the environment variable: ZED_SDK_OLD_FOV_COMPUTE=1
- Resolved an issue that could prevent GMSL cameras from detecting and reporting faulty sensors.
- Added DRIVER_FAILURE in the enum sl::ERROR_CODE. This error code can be returned when the driver's initialization has failed. When using gmsl cameras, it is then recommended to restart it with sudo systemctl restart zed_x_daemon.service
OBJECT DETECTION
- Fixed a random crash when using Custom Objection Detection for multiple hours.
- Fixed an issue where object or skeleton velocity could become NaN when camera motion was computed with a null time delta.
RECORDING
- Reduced system load and enhanced stability for SVO2 recording
- Fixed a bug where ZED X One recording and reading using SVO gen1 was allowed but unsupported.
- Restored the ability to play back and re-record and SVO with new recording settings.
- Added exposure and gain values in ZED X SVO metadata. Other cameras will be done in a later release.
- Fixed IMU calibration handling in some SVOs where the IMU calibration was not extracted properly
STREAMING
- Switched default streaming mode back to GEN2 with high-frequency IMU data. Users can still use the lighter streaming version GEN1 by setting the environment variable ZED_SDK_STREAM_VERSION=1. Important: The Receiver must match or exceed the sender's version for compatibility.
- Added AUTO_ANALOG_GAIN_RANGE, AUTO_DIGITAL_GAIN_RANGE, and AUTO_EXPOSURE_TIME_RANGE camera control values in streaming.
- Reduced streaming latency by 21–38 % across modes on Jetsons.
SLAM
- Improved robustness to dynamic objects and image corruptions of positional tracking GEN3, resulting in more accurate and reliable positional tracking performance.
- Added a 2D tracking Mode to GEN3, improving accuracy in flat floor environments: enabled by the PositionalTrackingParameters::enable_2d_ground_mode setting. This mode constrains positional tracking to two dimensions, recommended for grounded robots and vehicles.
- Improved relocalization performance of GEN3 in known environments. Increases relocalization accuracy and frequency, reducing localization drift.
- Added a new SPATIAL_MEMORY status in GEN3 to indicate whether tracking is active and relocated in a pre-mapped environment, performing loop closure, or relocating.
- Fixed the first call to getPosition(), which now returns sl::POSITIONAL_TRACKING::OK instead of previously returning sl::POSITIONAL_TRACKING::UNAVAILABLE.
- Fixed invalid retrieved landmarks with null position.
FUSION
- Added support for object detection streaming from sl::Camera to sl::Fusion in the network configuration.
- Improved incoming data association in the Fusion API when using a local network configuration.
INSTALLER
- Improved installers' size on Linux Desktop with TensorRT 10 - about 40% smaller
- Added beta support for JetPack 7 / Jetson Thor. Video decoding and encoding are not yet available because of the current JetPack 7 release limitation and will be in a later update.
- Added support for C++17; the ZED SDK now uses C++17 and requires a compatible compiler. Fixed external support for C++20.
- Added support for CUDA 13 compatibility
- Added explicit ZED SDK versioning for Docker images and ZED SDK download link; each patch will now be available.
- Dropped support for the older Jetpack L4T35.3
Wrappers
PYTHON
- Improved Python Wrapper GPU data transfer using CuPy. sl.Mat.get_data() now supports explicit error and clearer warnings. Added instructions to set up and validate CuPy integration with PyZed
- Added support for Python 3.14
- Fixed setters of sl.FusionConfiguration in the Python wrapper.
- Fixed Python wrapper's gnss_mode interpreted as a GNSS_STATUS in both GNSSData and FusedPositionalTrackingStatus
- Added docstring in Python stubs so that users can see the methods, classes, and attributes docs in-code.
- Added missing Fusion SpatialMapping methods in the Python wrapper.
ISAAC SIM
- Added ZED X One (GS and 4K) camera support
- Added Virtual ZED X camera support
TOOLS
ZED Studio
- Introduced a new tool for viewing and managing multiple cameras, streams, and SVOs in one app. It supports customizable layouts with drag-and-drop panels, synchronized playback and recording, and group control of settings. The tool enables multi-camera streaming, simplifies data collection, and supports command-line options to auto-load sources at launch. On Windows, it is now the default application for opening SVO files.
ZED Sensor Viewer
- Enabled SVO playback and seeking in the ZEDSensorViewer tool. Also added a toggleable camera view to the UI to view the camera feed along with sensor data for both Live mode and SVO mode.
ZED Diagnostic
- Improved GMSL diagnostic in ZED_Diagnostic for detecting potential driver mismatches, issues with capture card power/connection, and GMSL cable status.
ZED Media Server
- The ZED Media Server tool is now considered deprecated, the new more efficient Virtual Stereo API should be used instead.
- Fixed adaptive GOP size depending on the FPS of the cameras.
ZED Calibration
- Fixed the CLI argument --cimud of the ZEDCalibration tool to now handle all GMSL cameras.
SAMPLES
- Added hello_zed_gpu.py script in tutorials/tutorial1 - hello ZED/python to validate the usage of CuPy with the ZED SDK Python API.
- Improved Python sample performances using GPU data transfer with CuPy in the GLViewer for depth sensing and object detection samples instead of CPU copy.
- Improved Python object detection samples; legacy is removed. Added a new pytorch_yolov8_cupy_preproc, a YOLOv8 inference CuPy optimized sample. Also updated default weights to yolo11m.pt (previously it was yolov8m.pt)
- Improved Positional Tracking Sample by enhancing the display for clearer visualization of tracking data, and adding functionality to save and read .area files, allowing for easier management of mapped environments. Also introduced the use of SPATIAL_MEMORY for better tracking of feedback.
- Refactored the global localization GNSS reader. Now the same class can be used to read GNSS data from a live device or from a recorded SVO file.
- Added the sample virtual stereo/cpp for an example on how to use the new VirtualStereo API from two ZED X One cameras.