Releases: stereolabs/zed-ros2-wrapper
v5.2.0
v5.2.0
- Removed the
zed_wrapper/urdf/include/materials.urdf.xacrofile and moved the material settings directly in thezed_macro.urdf.xacrofile to avoid possible conflicts in multi-camera configurations. Thx @davesarmoury for the fix - Added the
enable_localization_onlyparameter to the configuration to allow the camera to localize in the loaded area memory without updating the map with new information. - Added support for the ZED SDK Positional Tracking 2D mode if the SDK version is 5.1 or higher.
- Added the
zed_debugpackage for debugging ZED Components by loading them in a single C++ process. - Add
enable_depthservice to disable depth processing at runtime - Positional Tracking
GEN_3is now the default mode when using ZED SDK v5.2 or newer, providing improved stability and performance. TheGEN_2mode is still available as an option for users who prefer it or need it for specific use cases. - When using GEN_3 with ZED SDK v5.2 or newer, Positional Tracking continues to provide localization feedback even if depth is disabled at runtime or when the node starts by setting the
depth.depth_modeparameter toNONE. - New diagnostic information regarding Positional Tracking status: "Mode", "Odometry Status", "Spatial Memory Status", "Tracking Fusion Status".
Humble-v5.1.0
v5.1.0
-
Changed ZED Camera image topic names to match the cleaner convention used by ZED X One cameras:
-
NOTE THIS IS A BREAKING CHANGE.
-
Left sensor topics:
- From
~/left/image_rect_colorto~/left/color/rect/image - From
~/left_raw/image_raw_colorto~/left/color/raw/image - From
~/left_gray/image_rect_grayto~/left/gray/rect/image - From
~/left_raw_gray/image_raw_grayto~/left/gray/raw/image
- From
-
Right sensor topics:
- From
~/right/image_rect_colorto~/right/color/rect/image - From
~/right_raw/image_raw_colorto~/right/color/raw/image - From
~/right_gray/image_rect_grayto~/right/gray/rect/image - From
~/right_raw_gray/image_raw_grayto~/right/gray/raw/image
- From
-
RGB sensor topics (corresponding to the left sensor for the Stereo cameras):
- From
~/rgb/image_rect_colorto~/rgb/color/rect/image - From
~/rgb_raw/image_raw_colorto~/rgb/color/raw/image - From
~/rgb_gray/image_rect_grayto~/rgb/gray/rect/image - From
~/rgb_raw_gray/image_raw_grayto~/rgb/gray/raw/image
- From
-
-
Added parameters to select what topics will be advertised when the node starts:
- NOTE THIS IS A BREAKING CHANGE. TOPICS MAY NO LONGER BE AVAILABLE IF NOT ENABLED IN THE DEFAULT CONFIGURATION. Please check what topic you use and set the relevant parameter to
true. general.publish_status: Advertise the status topics that are published only if a node subscribes to themvideo.publish_rgb: Advertise the RGB image topics that are published only if a node subscribes to themvideo.publish_left_right: Advertise the left and right image topics that are published only if a node subscribes to themvideo.publish_raw: Advertise the raw image topics that are published only if a node subscribes to themvideo.publish_gray: Advertise the gray image topics that are published only if a node subscribes to themvideo.publish_stereo: Advertise the stereo image topic that is published only if a node subscribes to itsensors.publish_imu: Advertise the IMU topic that is published only if a node subscribes to itsensors.publish_imu_raw: Advertise the raw IMU topic that is published only if a node subscribes to itsensors.publish_cam_imu_transf: Advertise the IMU transformation topic that is published only if a node subscribes to itsensors.publish_mag: Advertise the magnetometer topic that is published only if a node subscribes to itsensors.publish_baro: Advertise the barometer topic that is published only if a node subscribes to itsensors.publish_temp: Advertise the temperature topics that are published only if a node subscribes to themregion_of_interest.publish_roi_mask: Advertise the ROI mask image topic that is published only if a node subscribes to itdepth.publish_depth_map: Advertise the depth map topics that are published only if a node subscribes to themdepth.publish_depth_info: Advertise the depth info topic that is published only if a node subscribes to itdepth.publish_point_cloud: Advertise the point cloud topic that is published only if a node subscribes to itdepth.publish_depth_confidence: Advertise the depth confidence topic that is published only if a node subscribes to itdepth.publish_disparity: Advertise the disparity topic that is published only if a node subscribes to itpos_tracking.publish_odom_pose: Advertise the odometry and pose topics that are published only if a node subscribes to thempos_tracking.publish_pose_cov: Advertise the pose with covariance topic that is published only if a node subscribes to itpos_tracking.publish_cam_path: Advertise the camera odometry and pose path topics that are published only if a node subscribes to themmapping.publish_det_plane: Advertise the plane detection topics that is published only if a node subscribes to it
- NOTE THIS IS A BREAKING CHANGE. TOPICS MAY NO LONGER BE AVAILABLE IF NOT ENABLED IN THE DEFAULT CONFIGURATION. Please check what topic you use and set the relevant parameter to
-
Added topic enabler feature to
sl::CameraOne- NOTE THIS IS A BREAKING CHANGE. TOPICS MAY NO LONGER BE AVAILABLE IF NOT ENABLED IN THE DEFAULT CONFIGURATION. Please check what topic you use and set the relevant parameter to
true. - Added parameter
video.publish_rgbto enable/disable RGB image publishing - Added parameter
video.publish_rawto enable/disable raw image publishing - Added parameter
video.publish_grayto enable/disable gray image publishing - Added parameter
sensors.publish_imu: Advertise the IMU topic that is published only if a node subscribes to it - Added parameter
sensors.publish_imu_raw: Advertise the raw IMU topic that is published only if a node subscribes to it - Added parameter
sensors.publish_temp: Advertise the temperature topics that are published only if a node subscribes to them
- NOTE THIS IS A BREAKING CHANGE. TOPICS MAY NO LONGER BE AVAILABLE IF NOT ENABLED IN THE DEFAULT CONFIGURATION. Please check what topic you use and set the relevant parameter to
-
Enabled Isaac ROS NITROS integration for ZED X One cameras
-
Added debug parameter
debug.debug_nitrosto enable debug logs for NITROS-related operations. -
Added debug parameter
debug.use_pub_timestampsto use the current ROS time for the message timestamp instead of the camera timestamp.
This is useful to test data communication latency. -
Added
camera_infoin transport namespace to reflectrviz2requirements with the Camera plugin.- Added new
camInfoPubTranspublisher for each image topic to publish thecamera_infoin the transport namespace. - Updated
publishImageWithInfomethod to handle the newcamInfoPubTranspublisher.
- Added new
-
Added 3D visualization of the positional tracking landmarks as a point cloud on topic
~/pose/landmarks(only with GEN_2 and GEN_3 positional tracking modes):- Added parameter
pos_tracking.publish_3d_landmarksto enable/disable landmarks publishing - Added parameter
pos_tracking.publish_lm_skip_frameto set the frequency of landmarks publishing (0 to publish every frame)
- Added parameter
-
Removed Point Cloud Transport as a required dependency. Point Cloud Transport is now only automatically enabled if the
point_cloud_transportpackage is installed on the system. -
Removed FFMPEG Image Transport support because of a problem with the Humble distribution not allowing to set the transport parameters, and the lack of compatibility with NVIDIA® Jetson.
-
Improved diagnostic information for 3D Mapping status in diagnostics
-
Fixed random crash when stopping 3D Mapping
-
Fixed a bug that forced the maximum publishing rate of the point cloud topic to 15 Hz with SVO files
-
Set the default mode for positional tracking to
GEN_2waiting for improvements inGEN_3stability -
Remapped
robot_descriptiontopic to<camera_name>_descriptionto allow multi-camera URDF integration -
Changed minimum depth value to 0.01 meters when using ZED SDK v5.1 or higher
-
Added debug option for TF broadcasting
- Improved TF debug logs to show frame transformations when enabled
-
Static baseline information from URDF is now overwritten by the real baseline value retrieved from the camera calibration file.
-
Removed mandatory
custom_baselinelaunch argument for virtual stereo cameras made with two ZED X One cameras.
The value is retrieved from the calibration file. -
IMU TF is now broadcast as static if IPC is disabled.
-
IMU Transform topic is now published with TRANSIENT LOCAL durability if IPC is disabled.
-
Fixed
camera_infopublishing when no image topics are subscribed -
Loop Closure log event is now displayed only in DEBUG mode to reduce log spam
-
Renamed camera optical frames to comply with ROS conventions:
- NOTE THIS IS A BREAKING CHANGE. Please update your TF references accordingly.
- From
<camera_name>_left_camera_optical_frameto<camera_name>_left_camera_frame_optical - From
<camera_name>_right_camera_optical_frameto<camera_name>_right_camera_frame_optical - From
<camera_name>_camera_optical_frameto<camera_name>_rgb_camera_frame_optical
-
Added twist information to the
odomtopic -
Added support for the new Virtual Stereo API with SDK v5.1.
- New launch arguments to setup the virtual camera:
serial_numbersandcamera_ids - New
ZedCameracomponent parameters to setup the virtual camera:general.virtual_serial_numbersandgeneral.virtual_camera_ids - NOTE ZED MEDIA SERVER IS NO LONGER REQUIRED to create a virtual Stereo camera using two ZED X One cameras.
- New launch arguments to setup the virtual camera:
-
Added 24-bit BGR image mode
- Added parameter
video.enable_24bit_outputto enable/disable 24-bit BGR image publishing tocommon_stereo.yamlandcommon_mono.yamlconfiguration files - NOTE:
video.enable_24bit_outputis disabled by default to maintain backward compatibility. Enabling this parameter will change the image message encoding fromBGRA8toBGR8, which may affect existing applications that rely on the previous encoding.
- Added parameter
-
Enabled SVO support for ZED X One cameras (playback, recording, and diagnostic)
-
Set thread names according to the thread function name for easier identification in debuggers and profilers
-
Enable SVO for ZedCameraOne
- add service to pause SVO playback
- add service to set SVO frame ID
- add services to start/stop SVO recording
- publish SVO status
- publish SVO clock on
/clocktopic
-
Publish ZedCameraOne heartbeat status on
~/status/heartbeattopic
Humble-v5.0.0
Main new features
- Integration with NVIDIA Isaac ROS and NITROS
- Full Health Status
- Advanced Object Detection with Full Custom Detector support using ONNX models
- Advanced Video/Depth publishing rate control
v5.0.0 - Full Changelog
- Backward compatible with SDK v4.2
- Added official support for ROS 2 Jazzy Jalisco
- Note: requires the latest
zed_msgspackage v5.0.0 - Added SVO Status topic to monitor the current SVO status of type
zed_msgs::SvoStatus - Added fully integrated Health Status topic of type
zed_msgs::HealthStatusStamped- Remove the single health status topics to simplicy health monitoring
- Remove
cob_srvsdependency to use the customzed_msgs::SetSvoFrameservice - Added Heartbeat status message at 1 Hz:
~/status/heartbeat - Improve performance with the default stereo configuration
- Fix Positional Tracking enabling when required by ZED SDK modules
- Fix realtime IMU data publishing when using SVO2
- Added parameter 'debug.sdk_verbose_log_file' to Stereo and Mono components to set the path of the SDK verbose log file
- Clean shutdown of ZED components using
pre_shutdown_callback - Added new parameter
svo.replay_rateto set the replay rate for the SVO when not used in realtime mode (range [0.10-5.0]) - Improved diagnostic information for SVO playback
- Default SVO Recording Compression mode [
0] is forced toH265replacing the oldLOSSLESSmode- H265 is far superior as it uses hardware encoder, resulting in faster, lighter encoding, and dramatically smaller SVO2 files
- Added
/clockpublisher to be used in SVO Mode to synchronize other nodes with the SVO timestamp - Added parameter
svo.publish_svo_clockto enable the/clockpublisher- The parameter 'svo.publish_svo_clock' is normally overridden by the
publish_svo_clocklaunch option
- The parameter 'svo.publish_svo_clock' is normally overridden by the
- Moved
brightness,contrast, andhuefromcommon_stereo.yamltozed.yaml,zed2.yaml,zed2i.yaml, andzedm.yamlfiles - Add advanced handling of the Object Detection and Tracking module of the ZED SDK
- Move the multi-box native object detection parameters to the
object_detection.yamlfile - Add specific parameters to set the confidence threshold for each of the includes object detection classes of the ZED SDK
- Move the Custom Object Detection parameters to the
custom_object_detection.yamlfile - Support all the new parameters of the ZED SDK v5 separately for each of the custom object detection classes
- Move the multi-box native object detection parameters to the
- The usage of the new Object Detection support is fully described on the ZED ROS 2 online documentation:
- Object Detection: https://docs.stereolabs.com/ros2/object-detection/
- Custom Object Detection: https://docs.stereolabs.com/ros2/custom-object-detection/
- Separated Video/Depth data publishing into its own thread for more precise control over the publishing rate,
independent of the camera grab rate. This enables recording SVO files or processing positional tracking at
full grab rate, while publishing data at a reduced rate to optimize bandwidth usage. - Added a new launch option 'node_log_type' to set the type of log to be used by the ZED Node.
- The available options are
screen,log, andboth.
- The available options are
- Changed
pos_tracking.area_memory_db_pathtopos_tracking.area_file_pathto match the ZED SDK parameter name - Added parameter
pos_tracking.save_area_memory_on_closingto save the Area Memory before closing the camera - Fixed Area Mapping file handling according to the ZED SDK policies.
- The Area Memory file is now saved only if the Area Memory is enabled, if the
pos_tracking.save_area_memory_on_closing
parameter is set totrue, if thepos_tracking.area_file_pathis set and if thepos_tracking.area_file_pathis valid.
- The Area Memory file is now saved only if the Area Memory is enabled, if the
- Added
save_area_memoryservice- Set the filename as a parameter. If the filename is empty, it uses the value of the parameter
pos_tracking.area_file_pathif not empty.
- Set the filename as a parameter. If the filename is empty, it uses the value of the parameter
- Added
enable_ipclaunch argument to enable intra-process communication (IPC) when using ROS 2 Composition.- Note: NITROS requires IPC to be disabled to work properly.
- Fixed plane topic names, adding missing node name prefix
- Added camera_info to Confidence Map topic
- Enabled Isaac ROS integration and automatic NITROS usage: https://docs.stereolabs.com/isaac-ros/
- Added the parameter
debug.disable_nitrosto disable NITROS usage. This is useful for debugging and testing purposes.
- Added the parameter
Humble-v4.2.5
v4.2.5
- Add new parameter 'depth.point_cloud_res' to set a specific point cloud publishing resolution
- 'COMPACT': Standard resolution. Optimizes processing and bandwidth
- 'REDUCED': Half 'COMPACT' resolution. Low processing and low bandwidth requirements
- Add uptime and frame drop rate information to node diagnostics
- Add image validity check support [SDK 5 required]
- Add new parameter 'general.enable_image_validity_check'
- Add new topic 'health_status/low_image_quality' to publish image quality status
- Add new topic 'health_status/low_lighting' to publish low light condition status
- Add new topic 'health_status/low_depth_reliability' to publish low depth quality status
- Add new topic 'health_status/low_motion_sensors_reliability' to publish low quality of inertial sensors status
- Set the Node Disgnostic to WARNING if any of the above conditions are detected
- Add
general.camera_idparameter to set the camera ID for the ZedCamera. - Add
general.camera_idparameter to set the camera ID for the ZedCameraOne. - Add
camera_idargument to thezed_camera.launch.pylaunch file. Useful for GMSL2 multi-camera configurations where camera ID is estabilished by the GMSL2 wire. - Improve Node Diagnostics information
- Add
pos_tracking.reset_pose_with_svo_loopparameter to reset the camera pose theinitial_base_posewhen the SVO loop is enabled and the SVO playback reaches the end of the file. - Add
svo.play_from_frameparameter to set the starting frame when playing an SVO file. - Add
set_svo_frameservice to set the current frame when playing an SVO file. - Remove unused open timeout for ZED X One cameras
- Add parameter
svo.use_svo_timestampsto use the SVO timestamps when publishing data (both stereo and mono components)
Humble-v4.2.x
v4.2.x
- Add new
OPTIMIZEDmode forgeneral.pub_resolution - Add new parameter
general.async_image_retrievalto enable/disable the asynchronous image retrieval to be used with SVO recording. - Set the Positional Tracking Mode to
GEN_1as default as wa orkaround for the random crash issue caused byGEN_2mode. - Fixed a bug for raw gray image publisher on Zed One Component: raw gray images were not published when the rectified image topic was subscribed. Thx @Alex-Beh
- Enabled grayscale output for ZED X One cameras (SDK v4.2.3 required)
- Enabled streaming input for ZED X One cameras (SDK v4.2.3 required)
- Fixed wrong range check for the
general.pub_downscale_factorparameter - Enhanced sensor thread rate due to an automatically adjusting sleep time
- Removed the
zed-ros2-interfacessub-module. Thezed_msgspackage is now included in ROS 2 Humble binaries and can be installed withsudo apt install ros-humble-zed-msgs. - Fixed 4K resolution support for ZED X One 4K cameras
- Changed C++ version to 17 to follow ROS 2 Humble standard
- Renamed
common.yamltocommon_stereo.yaml - Added
common_mono.yamlfor monocular cameras - Added
video.enable_hdrtozedxone4k.yamlfor monocular 4K cameras - Changed the name of the package
zed_interfacestozed_msgsto match the ROS2 naming convention - Added the new
stereolabs::ZedCameraOnecomponent to handle ZED X One cameras - Removed the ZED Wrapper executable node.
- Modified the launch file to create an isolated composable container that loads the
stereolabs:ZedCameraor thestereolabs:ZedCameraOnecomponent according to the camera model
- Modified the launch file to create an isolated composable container that loads the
- Added support for custom ONNX detection engine (SDK v4.2 required)
- Added value
CUSTOM_YOLOLIKE_BOX_OBJECTSto theobject_detection.modelparameter - Added parameter
object_detection.custom_onnx_fileto set the full path of the custom ONNX file - Added parameter
object_detection.onnx_input_sizeto set the size of the YOLO input tensor - Added parameter
object_detection.custom_label_yamlto set the full path to custom YAML file storing class labels in COCO format
- Added value
Humble-v4.1.4
v4.1.x for ZED SDK v4.1.x
- Updated the Docker files to the CUDA 12.4 (PC), L4T 35.4 (Jetson), SDK v4.1.4
- Added Local Streaming output
- Added
enable_streamingservice to start/stop a streaming server - Added Streaming Server diagnostic
- Added parameter 'stream_server.stream_enabled': enable the streaming server when the camera is open
- Added parameter 'stream_server.codec': different encoding types for image streaming
- Added parameter 'stream_server.port': Port used for streaming
- Added parameter 'stream_server.bitrate': Streaming bitrate (in Kbits/s) used for streaming
- Added parameter 'stream_server.gop_size': The GOP size determines the maximum distance between IDR/I-frames
- Added parameter 'stream_server.adaptative_bitrate': Bitrate will be adjusted depending on the number of packets dropped during streaming
- Added parameter 'stream_server.chunk_size': Stream buffers are divided into X number of chunks where each chunk is chunk_size bytes long
- Added parameter 'stream_server.target_framerate': Framerate for the streaming output
- Added
- Added Local Streaming input
- Added 'stream.stream_address' and 'stream.stream_port' parameter to configure the local streaming input
- GNSS Fusion temporarily disabled (available with 4.1.1)
- Moved parameter 'general.svo_file' to 'svo.svo_path'
- Moved parameter 'general.svo_loop' to 'svo.svo_loop'
- Moved parameter 'general.svo_realtime' to 'svo.svo_realtime'
- Removed obsolete launch files: 'zed.launch.pi','zed2.launch.pi', 'zed2i.launch.pi', 'zedm.launch.pi', 'zedx.launch.pi', 'zedxm.launch.pi'
- Removed obsolete display launch file: 'display_zed.launch.py', 'display_zed2.launch.py', 'display_zed2i.launch.py', 'display_zedm.launch.py', 'display_zedx.launch.py', 'display_zedxm.launch.py'
- Added support for custom virtual stereo cameras made with two calibrated ZED X One cameras (available with 4.1.1)
- Added parameter
pos_tracking.reset_odom_with_loop_closureto automatically reset odometry when a loop closure is detected - Added new positional tracking information to the
PosTrackStatusmessage - Added new
GnssFusionStatusmessage with GNSS Fusion status information (available with 4.1.1) - Added new parameters
gnss_fusion.h_covariance_mulandgnss_fusion.v_covariance_multo control the effects of the GNSS covariance - Added support to Automatic ROI
- Added ROI diagnostic
- Added parameter
debug.debug_roi - Publish ROI mask image on the topic
~/roi_maskusing image transport - Moved the parameter
general.region_of_interesttoregion_of_interest.manual_polygon - Added automatic Region of Interest support
- Added parameter
region_of_interest.automatic_roi - Added parameter
region_of_interest.depth_far_threshold_meters - Added parameter
region_of_interest.image_height_ratio_cutoff - Added parameter
region_of_interest.apply_to_depth - Added parameter
region_of_interest.apply_to_positional_tracking - Added parameter
region_of_interest.apply_to_object_detection - Added parameter
region_of_interest.apply_to_body_tracking - Added parameter
region_of_interest.apply_to_spatial_mapping
- Removed QoS parameters to use ROS 2 QoS overwrite -> https://design.ros2.org/articles/qos_configurability.html
- Added support for new
NEURAL_PLUSdepth mode - Added new
<camera_name>_gnss_linkframe to URDF to set the position of the GNSS antenna with respect to the camera position - New Docker configuration files allow easy creation of "ZED ROS2 Wrapper" images based on specific tag versions. Read more
- Fixed a bug while playing a ZED X stream on a "not-Jetson" host device
- Add support for point cloud transport [only Humble, no Foxy]
- Add support for FFMPEG image transport
- Add new
ffmpeg.yamlconfiguration file - Fix
~/imu/data_rawmessage not containing RAW IMU data
Humble-v4.0.8
v4.0.8 for ZED SDK v4.0.8
- The parameter
general.sdk_verbosehas been moved todebug.sdk_verboseand set to0as default. - Add new parameter
general.optional_opencv_calibration_fileto use custom OpenCV camera calibrations. - Add new tutorial to illustrate how to integrate one or more ZED cameras on a robot
- Add 'simulation.sim_enabled' parameter to enable the simulation mode
- Add 'simulation.sim_address' parameter to set the simulation server address
- Add 'simulation.sim_port' parameter to set the simulation server port
- Add
/clocksubscriber to check the presence of the required message whenuse_sim_timeis true - Force
grab_frame_rateandpub_frame_rateto 60 Hz in simulation - Force
grab_resolutiontoHD1080in simulation - Remove the
general.zed_idparameter. Always usegeneral.serial_numberto distinguish between different cameras in a multi-camera configuration. - The multi-camera example has been updated to match the new TF configuration
- The old launch files are now obsolete: 'ros2 launch zed_wrapper <camera_model>.launch.py' is replaced by 'ros2
launch zed_wrapper zed_camera.launch.py camera_model:=<camera_model>' - The reference link for positional tracking is no longer 'base_link' but
<camera_name>_camera_link.
This will allow an easier ZED integration in existing robot configuration because the transformbase_link->camera_link
is no longer published by the ZED ROS2 Wrapper. Thanks to @SteveMacenski for the advice- Remove
parentandoriginparameters fromzed_macro.urdf.xacro - Remove launch argument
cam_posefromzed_camera.launch.py
- Remove
- Move parameter
publish_imu_tffrompos_trackingtosensorsto make it available also in "no depth" configurations of the node - Add new parameter
pos_tracking.pos_tracking_modeto exploit the new ZED SDKQUALITYmode for improved odometry and localization - New Video/Depth processing throttling method by using the
grab_compute_capping_fpsZED SDK parameter instead of a dedicated thread - Advanced parameters to handle Thread scheduling policy and priorities (sudo required):
thread_sched_policy,thread_grab_priority,
thread_sensor_priority,thread_pointcloud_priority - Add new GNSS calibration parameters:
enable_reinitialization,enable_rolling_calibration,enable_translation_uncertainty_target,gnss_vio_reinit_threshold,target_translation_uncertainty,target_yaw_uncertainty - Add new Plane Detection parameters:
pd_max_distance_threshold,pd_normal_similarity_threshold
Note: ROS 2 Foxy support is deprecated although this version still works with Foxy
Foxy-Humble-v4.0.5
v4.0.5 - ZED SDK from v4.0.0 to v4.0.5
- The parameter
general.pub_resolutioncan now take onlyNATIVEandCUSTOMvalues. 'NATIVE' to use the samegeneral.grab_resolution-CUSTOMto apply thegeneral.pub_downscale_factordownscale factory to reduce bandwidth in transmission - Add new parameter
general.pub_downscale_factorto be used with the new optionCUSTOMfor the parametergeneral.pub_resolution ULTRAis the new default value fordepth.depth_mode(better performance for odometry and positional tracking)- Add resolution
HD1080for ZED X - Fix issue with Body Tracking start/stop by service call. Now Body Tracking can be restarted multiple times
- Fix depth grab performance by removing a not required
PNG Writecall. Thank you Esteban Zamora @ezamoraa - Fix bug with
general.pub_resolutionvalue, not allowing to select the correct data publish resolution - Add new launch parameter
ros_params_override_pathto provide the path to a custom YAML file to override the parameters of the ZED Node without modifying the original files in thezed_wrapper/configfolder. Thank you David Lu @MetroRobots
Foxy-Humble-v3.8.2
This is the latest release working with the ZED SDK v3.8.2
Changelog
-
Removed annoying build log messages. Only warning regarding unsupported ROS2 distributions will be displayed when required.
-
Added a check on timestamp to not publish already published point cloud messages in the point cloud thread
-
Added Docker files (
dockerfolder) ready to create Docker images for desktop host devices: Ubuntu 22.04, ROS2 Foxy, ZED SDK v3.8.2. -
Changed the default depth mode to
PERFORMANCE(1) for a faster node start in the case that the NEURAL depth AI model is not present. -
Change
general.grab_resolutionandgeneral.pub_resolutionfrom integer to string. -
Add new
LOWvalue forgeneral.pub_resolution(half theMEDIUMoutput resolution). -
Fix distortion model (see Issue #128)
-
Added diagnostic warning if the frequency of the camera grabbing thread is minor than the selected
general.grab_frame_ratevalue. -
Improved the code for Moving Average calculation for better node diagnostics.
-
Temperature diagnostic is now always updated even if
sensors.sensors_image_syncis true and no image topics are subscribed. -
Improve Grab thread and Video/Depth publishing thread elaboration time diagnostic.
-
Improve thread synchronization when the frequency of the
grabSDK function is minor of the expected camera frame rate setting because of a leaking of elaboration power. -
Removed node parameter
general.resolution, replaced bygeneral.grab_resolution. -
Added node parameter
general.pub_resolutionused to reduce node computation and message bandwidth.- Available output resolutions:
HD2K,HD1080,HD720,MEDIUM,VGA.MEDIUMis an optimized output resolution to maximize throughput and minimize processing costs.
- Available output resolutions:
-
Removed node parameters
video.img_downsample_factoranddepth.depth_downsample_factor. Use the new parametergeneral.pub_resolutioninstead. -
Set default DEPTH MODE to NEURAL (4)
-
Improved the
zed_camera.launch.py- Added support for
OpaqueFunctionin order to automatically configure the launch file according to the value of the launch parametercam_model. - Changed parameters to set camera pose in launch files. From 6 separated parameters (
cam_pos_x,cam_pos_y,cam_pos_z,cam_roll,cam_pitch,cam_yaw) to one single array (cam_pose). - Removed the workaround for empty
svo_pathlaunch parameter values thanks toTextSubstitution. - Modified the "display" launch files in zed-ros2-examples to match the new configuration.
- Added
publish_tfandpublish_map_tflaunch parameters useful for multi-camera configuretion or external odometry fusion.
- Added support for
-
Added multi-camera example in
zed-ros2-examplesrepository. -
Added
pos_tracking.set_as_staticparameters for applications with a static camera monitoring a robotics environment. See PR #122 Thx @gabor-kovacs -
Code lint and re-formatting according to ROS2 code rules.
-
Add support for automatic lint tools to all the packages.
-
Change LICENSE to Apache 2.0 to match ROS2 license.
-
Added
zed_idandserial_numberlaunch parameters to open the correct camera in multi-camera configurations.
Foxy-Humble-v3.8.x
v3.8.x
- Fixed
set_posewrong behavior. Now initial odometry is coherent with the new starting point. - Added Plane Detection.
- Fixed "NO DEPTH" mode. By setting
depth/qualityto0now the depth extraction and all the sub-modules depending on it are correctly disabled. - Added
debugsub-set of parameters with new parametersdebug_modeanddebug_sensors. - Added support for ROS2 Humble. Thx @nakai-omer.
The two ROS2 LTS releases are now supported simoultaneously. - Set
read_onlyflag in parameter descriptors for non-dynamic parameters. Thx @bjsowa. - Enabled Intra Process Communication. The ZED node no longer publishes topics with
TRANSIENT LOCALdurability. - Improved TF broadcasting at grabbing frequency
- Improved IMU/Left Camera TF broadcasting at IMU frequency
- Fixed data grabbing frame rate when publishing is set to a lower value
- Added TF broadcasting diagnostic
- The parameter
general.sdk_verboseis now an integer accepting different SDK verbose levels. - Moved Object Detection parameters from cameras configuration files to
common.yaml - Moved Sensor Parameters from cameras configuration files to
common.yaml - New data thread configuration to maximize data publishing frequency
- Sensor data publishing moved from timer to thread
- RGB/Depth data publishing moved from timer to thread
- Fixed random errors when closing the node
- Fixed wrong timing when playing SVO in
real-timemode - Fixed units for atmospheric pressure data. Now pressure is published in
Pascalsaccording to the definition of the topic. - [SDK v3.8] Add new parameter
pos_tracking.transform_time_offsetto fix odometry TF timestamp issues - [SDK v3.8] Added new parameter
pos_tracking.depth_min_rangefor removing fixed zones of the robot in the FoV of the camerafrom the visual odometry evaluation - [SDK v3.8] Added new parameter
pos_tracking.sensor_worldto define the world type that the SDK can use to initialize the Positionnal Tracking module - [SDK v3.8] Added new parameter
object_detection.prediction_timeoutfor setting the timeout time [sec] of object prediction when not detected. - [SDK v3.8] Added support for ZED SDK Regiorn of Interest:
- Added parameter
general.region_of_interestto set the region of interest for SDK processing. - Added the service
resetRoito reset the region of interest. - Added the service
setRoito set a new region of interest.
- Added parameter