Releases: stereolabs/zed-ros2-wrapper
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_streaming
service 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_closure
to automatically reset odometry when a loop closure is detected - Added new positional tracking information to the
PosTrackStatus
message - Added new
GnssFusionStatus
message with GNSS Fusion status information (available with 4.1.1) - Added new parameters
gnss_fusion.h_covariance_mul
andgnss_fusion.v_covariance_mul
to 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_mask
using image transport - Moved the parameter
general.region_of_interest
toregion_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_PLUS
depth mode - Added new
<camera_name>_gnss_link
frame 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.yaml
configuration file - Fix
~/imu/data_raw
message not containing RAW IMU data
Humble-v4.0.8
v4.0.8 for ZED SDK v4.0.8
- The parameter
general.sdk_verbose
has been moved todebug.sdk_verbose
and set to0
as default. - Add new parameter
general.optional_opencv_calibration_file
to 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
/clock
subscriber to check the presence of the required message whenuse_sim_time
is true - Force
grab_frame_rate
andpub_frame_rate
to 60 Hz in simulation - Force
grab_resolution
toHD1080
in simulation - Remove the
general.zed_id
parameter. Always usegeneral.serial_number
to 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
parent
andorigin
parameters fromzed_macro.urdf.xacro
- Remove launch argument
cam_pose
fromzed_camera.launch.py
- Remove
- Move parameter
publish_imu_tf
frompos_tracking
tosensors
to make it available also in "no depth" configurations of the node - Add new parameter
pos_tracking.pos_tracking_mode
to exploit the new ZED SDKQUALITY
mode for improved odometry and localization - New Video/Depth processing throttling method by using the
grab_compute_capping_fps
ZED 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_resolution
can now take onlyNATIVE
andCUSTOM
values. 'NATIVE' to use the samegeneral.grab_resolution
-CUSTOM
to apply thegeneral.pub_downscale_factor
downscale factory to reduce bandwidth in transmission - Add new parameter
general.pub_downscale_factor
to be used with the new optionCUSTOM
for the parametergeneral.pub_resolution
ULTRA
is the new default value fordepth.depth_mode
(better performance for odometry and positional tracking)- Add resolution
HD1080
for 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 Write
call. Thank you Esteban Zamora @ezamoraa - Fix bug with
general.pub_resolution
value, not allowing to select the correct data publish resolution - Add new launch parameter
ros_params_override_path
to provide the path to a custom YAML file to override the parameters of the ZED Node without modifying the original files in thezed_wrapper/config
folder. 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 (
docker
folder) 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_resolution
andgeneral.pub_resolution
from integer to string. -
Add new
LOW
value forgeneral.pub_resolution
(half theMEDIUM
output 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_rate
value. -
Improved the code for Moving Average calculation for better node diagnostics.
-
Temperature diagnostic is now always updated even if
sensors.sensors_image_sync
is 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
grab
SDK 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_resolution
used to reduce node computation and message bandwidth.- Available output resolutions:
HD2K
,HD1080
,HD720
,MEDIUM
,VGA
.MEDIUM
is an optimized output resolution to maximize throughput and minimize processing costs.
- Available output resolutions:
-
Removed node parameters
video.img_downsample_factor
anddepth.depth_downsample_factor
. Use the new parametergeneral.pub_resolution
instead. -
Set default DEPTH MODE to NEURAL (4)
-
Improved the
zed_camera.launch.py
- Added support for
OpaqueFunction
in 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_path
launch parameter values thanks toTextSubstitution
. - Modified the "display" launch files in zed-ros2-examples to match the new configuration.
- Added
publish_tf
andpublish_map_tf
launch parameters useful for multi-camera configuretion or external odometry fusion.
- Added support for
-
Added multi-camera example in
zed-ros2-examples
repository. -
Added
pos_tracking.set_as_static
parameters 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_id
andserial_number
launch parameters to open the correct camera in multi-camera configurations.
Foxy-Humble-v3.8.x
v3.8.x
- Fixed
set_pose
wrong behavior. Now initial odometry is coherent with the new starting point. - Added Plane Detection.
- Fixed "NO DEPTH" mode. By setting
depth/quality
to0
now the depth extraction and all the sub-modules depending on it are correctly disabled. - Added
debug
sub-set of parameters with new parametersdebug_mode
anddebug_sensors
. - Added support for ROS2 Humble. Thx @nakai-omer.
The two ROS2 LTS releases are now supported simoultaneously. - Set
read_only
flag in parameter descriptors for non-dynamic parameters. Thx @bjsowa. - Enabled Intra Process Communication. The ZED node no longer publishes topics with
TRANSIENT LOCAL
durability. - 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_verbose
is 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-time
mode - Fixed units for atmospheric pressure data. Now pressure is published in
Pascals
according to the definition of the topic. - [SDK v3.8] Add new parameter
pos_tracking.transform_time_offset
to fix odometry TF timestamp issues - [SDK v3.8] Added new parameter
pos_tracking.depth_min_range
for 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_world
to define the world type that the SDK can use to initialize the Positionnal Tracking module - [SDK v3.8] Added new parameter
object_detection.prediction_timeout
for 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_interest
to set the region of interest for SDK processing. - Added the service
resetRoi
to reset the region of interest. - Added the service
setRoi
to set a new region of interest.
- Added parameter
Foxy-v3.7
- Add support for ZED SDK v3.7.x
- Add support for sport-related OD objects
- Add
remove_saturated_areas
dynamic parameter to disable depth filtering when luminance >=255 - Add
sl::ObjectDetectionParameters::filtering_mode
parameter - Publish
depth_info
topic with current min/max depth information - Fix parameter override problem (Issue #71). Thx @kevinanschau
- Add default xacro path value in
zed_camera.launch.py
. Thx @sttobia - Fix
zed-ros2-interfaces
sub-module url, changing from ssh to https
Foxy-v3.6.x
v3.6.x (2021-12-03)
- Moved the
zed_interfaces
package to thezed-ros2-interfaces
repository to match the same configuration of the ROS1 wrapper - The
zed-ros2-interfaces
repository has been added as a sub-module to this repository - Add new _base_link frame on the base of the camera to easily handle camera positioning on robots. Thx @civerachb-cpr
- Improve URDF by adding 3° slope for ZED and ZED2, X-offset for optical frames to correctly match the CMOS sensors position on the PCB, X-offset for mounting screw on ZED2i
- Add
zed_macro.urdf.xacro
to be included by other xacro file to easily integrate ZED cameras in the robot descriptions. See ROS1 PR #771 for details. Thx @civerachb-cpr - Fix URDF
height
value for ZED, ZED2 and ZED2i - Fix performances drop on slower platforms. Thx @roncapat
- Fix SVO LOOP wrong behavior. Thx @kevinanschau
- Add xacro support for automatic URDF configuration
- Reworked launch files to support xacro and launch parameters
- Use
ros2 launch zed_wrapper <launch_file> -s
to retrieve all the available parameters
- Use
- Add
svo_path:=<full path to SVO file>
as input for all the launch files to start the node using an SVO as input without modifying 'common.yaml` - Improved diagnostic information adding elaboration time on all the main tasks
- Improved diagnostic time and frequencies calculation
- Added StopWatch to sl_tools
- Enabled Diagnostic status publishing
- Changed the default values of the QoS parameter reliability for all topics from BEST_EFFORT to RELIABLE to guarantee compatibility with all ROS2 tools
- Fixed tab error in
zedm.yaml
- Fixed compatibility issue with ZED SDK older than v3.5 - Thanks @PhilippPolterauer
- Migration to ROS2 Foxy Fitzroy
Foxy - SDK v3.5.x - Compile fix
Foxy - SDK v3.5.x
- Migration to ROS2 Foxy Fitzroy
- Add xacro support for automatic URDF configuration
- Reworked launch files to support xacro and launch parameters
- Use
ros2 launch zed_wrapper <launch_file> -s
to retrieve all the available parameters
- Use
- Add
svo_path:=<full path to SVO file>
as input for all the launch files to start the node using an SVO as input without modifying 'common.yaml` - Improved diagnostic information adding elaboration time on all the main tasks
- Improved diagnostic time and frequencies calculation
- Added StopWatch to sl_tools
- Enabled Diagnostic status publishing
- Changed the default values of the QoS parameter reliability for all topics from BEST_EFFORT to RELIABLE to guarantee compatibility with all ROS2 tools
- Fixed tab error in
zedm.yaml
- Fixed compatibility issue with ZED SDK older than v3.5 - Thanks @PhilippPolterauer
Eloquent - SDK v3.5.x
- Fixed tab error in zedm.yaml
- Fixed compatibility issue with ZED SDK older than v3.5 - Thanks @PhilippPolterauer
- Add support for SDK v3.5
- Add support for the new ZED 2i
- Add new parameter
pos_tracking/pos_tracking_enabled
to enable positional tracking from start even if not required by any subscribed topic. This is useful, for example, to keep the TF always updated. - Add support for new AI models: MULTI_CLASS_BOX_MEDIUM and HUMAN_BODY_MEDIUM
- Depth advertising is disabled when depth is disabled (see sl::DETH_MODE::NONE)