ZED SDK 3.4

Release notes of the ZED SDK 3.4.x series
Open in ClaudeOpen in ChatGPT

Release notes of the ZED SDK 3.4 series. Patch releases are listed newest first. Download links and the full changelog, including ZED Tools and integrations, are available on the ZED SDK 3.4 release page.

What’s New

The new ZED SDK 3.4 brings major improvements to positional tracking area recognition and ZEDfu spatial mapping application, along with many other fixes and SDK enhancements.

This release also adds support for JetPack 4.5.

3.4.2

General Improvements

  • Improved local streaming on receiver side by optimizing the frame packet reception rate. This greatly reduces the number of frames dropped on the receiver.

Bug Fixes

  • Fixed a random crash that would occur when using sl::ObjectDetectionParameters::enable_mask_output = true.
  • Fixed a random crash that would occur when changing sl::ObjectDetectionRuntimeParameters::object_class_detection_confidence_threshold.
  • Fixed sl::Camera::getStreamingDeviceList() when using multiple sub-network.
  • Improved API Documentation of sl::FLIP_MODE.

3.4.1

General Improvements

  • Improved local streaming on server side that should reduce packet drops.

Bug Fixes

  • Fixed a bug when using sl::SENSING_MODE::FILL on Jetson, causing a black depth image in fill mode.

  • Added missing texture_confidence_threshold in sl::RuntimeParameters::save/load functions. This parameter can now be correctly saved and loaded.

  • Fixed sl::Mat::write() function when using U16_C1 sl::Mat format (provided by sl::MEASURE::DEPTH_U16_MM and sl::MEASURE::DEPTH_U16_MM_RIGHT).

  • Fixed an issue in SVO real time mode where grab() returns an sl::ERROR_CODE::CAMERA_NOT_INITIALIZED when next image in SVO was not available in the next 2 seconds.
    This is fixed by waiting for the next image without considering a timeout of 2 seconds.
    This only affects SVO real time mode.

  • Fixed memory address sanitizer issue in Object Detection module.

  • Fixed a bug with sl::InitParameters::load/save functions when using streaming input type. The IP/port was not properly saved in the .yml file and load function was therefore returning false. It is now correctly saved and therefore will be properly parsed during load.

  • Fixed a bug with IMU online bias correction that leads to corrupted stored bias values. Maximum correction has been decreased to avoid wrong orientation for IMU. It only affects ZED Mini and ZED 2.

  • Fixed missing sl::SensorsData::imu::pose_covariance and sl::CameraInformation::sensors_configuration::camera_imu_transform when using Streaming or SVO input mode.

  • Fixed a bug in sl::FusedPointCloud::save() when trying to save a fused point cloud as an OBJ file.

3.4.0

New Features

Positional Tracking

  • Positional Tracking with area memory is now faster and more accurate, leading to improved global tracking accuracy.
    Previously, camera re-localization and loop closures required the camera to be close to the image and position saved in the database. It is now more robust and accurate, and will recognize places even if the camera is not close to the saved position in the database.

SDK

Depth

  • Added a new depth format sl::MEASURE::DEPTH_U16_MM and sl::MEASURE::DEPTH_U16_MM_RIGHT.
    Retrieved depth maps can now have a sl::MAT_TYPE::U16_C1 type with values stored in millimeters. This is useful for applications and integrations that require a 16-bit depth format.

Camera

  • Added a parameter to import external OpenCV calibration files with sl::InitParameters::optional_opencv_calibration_file.
    This allows users to calibrate their stereo cameras with OpenCV stereo calibration module, and provide an XML/YAML/JSON calibration file to the ZED SDK.
  • Added sl::Camera::updateSelfCalibration() function to launch a camera self calibration update process at runtime.
    This allows to run self-calibration while the camera is running, improving depth estimation in rare cases where mechanical shocks or thermal changes might have impacted left/right image alignment. Self-calibration can be called anytime after sl::Camera::open() has been successfully called. This function is similar to resetSelfCalibration() that was removed in 3.0.
  • Added sl::Resolution getResolution(RESOLUTION resolution) function.
    You can now get the actual resolution (width and height) of a specific camera video mode.
  • Increased image timestamp adjustment speed when the system clock changes (when using NTP/PTP synchronization).
    Previously, the maximum allowed correction for the image timestamp was 500μs for a single frame. Now it is at a maximum of 4ms per frame.
    Therefore, the correction should be much faster when a sudden jump happens in system clock.

Streaming

  • Fixed an issue with sl::SensorsData::imu that provided different data between LIVE input and STREAMING input. This issue was reported on GitHub.
    Now sl::Camera::getSensorsData() will provide the same values if using LIVE or STREAMING input.

Object Detection

  • Added skeletons keypoints confidence in sl::ObjectData::keypoint_confidence.
    It is now possible to get the confidence of every skeleton keypoint. This can be used to filter low confidence keypoints, or to help fusing keypoints seen by multiple stereo cameras.
  • Added a max range parameter for Object Detection module using sl::ObjectDetectionParameters::max_range.
    You can now set a maximum distance for 3D object detection. This allows to limit the 3D tracking space and remove detections outside a given range.

Bug Fixes

  • Fixed magnetometer data coordinate frame.
    Previously it was given in the coordinate frame of the magnetometer. It is now given in the coordinate frame of the IMU, so that the gyroscope, accelerometer and magnetometer on the ZED 2 share the same coordinate frame.
  • Fixed an issue with Tegra encoder limiting the number of calls to the recording module.
    Previously, it was limited to around 900-1000 enableRecording()/disableRecording() calls due to a bug in the Tegra encoder. Calls are now unlimited.