zed-ros2-wrapper icon indicating copy to clipboard operation
zed-ros2-wrapper copied to clipboard

InvalidParameterValueException when launching in ROS2 Galactic

Open weitung opened this issue 3 years ago • 9 comments

Preliminary Checks

  • [X] This issue is not a duplicate. Before opening a new issue, please search existing issues.
  • [X] This issue is not a question, feature request, or anything other than a bug report directly related to this project.

Description

I'm working with Zed2 cameras in ROS galactic environment. Zed-ros2-wrapper is built successfully from source, but when I ran ros2 launch zed_wrapper zed2.launch.py, it couldn't start the camera and raised the InvalidParameterValueException error: [zed_wrapper-2] terminate called after throwing an instance of 'rclcpp::exceptions::InvalidParameterValueException' [zed_wrapper-2] what(): parameter 'qos_overrides./tf.publisher.durability' could not be set: qos_overrides./tf.publisher.durability is not a dynamic parameter

Steps to Reproduce

  1. Build zed-ros2-wrapper from source in ROS galactic ws
  2. run ros2 launch zed_wrapper zed2.launch.py

Expected Result

Zed2 camera successfully launches

Actual Result

[INFO] [launch]: All log files can be found below /root/.ros/log/2022-02-25-09-23-36-806348-nexi-desktop-142
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [146]
[INFO] [zed_wrapper-2]: process started with pid [147]
[robot_state_publisher-1] 1645781017.319432 [0] robot_stat: using network interface eth0 (udp/192.168.22.157) selected arbitrarily from: eth0, br-436a6caa4e28, docker0
[robot_state_publisher-1] Link zed2_base_link had 1 children
[robot_state_publisher-1] Link zed2_camera_center had 4 children
[robot_state_publisher-1] Link zed2_baro_link had 0 children
[robot_state_publisher-1] Link zed2_left_camera_frame had 2 children
[robot_state_publisher-1] Link zed2_left_camera_optical_frame had 0 children
[robot_state_publisher-1] Link zed2_temp_left_link had 0 children
[robot_state_publisher-1] Link zed2_mag_link had 0 children
[robot_state_publisher-1] Link zed2_right_camera_frame had 2 children
[robot_state_publisher-1] Link zed2_right_camera_optical_frame had 0 children
[robot_state_publisher-1] Link zed2_temp_right_link had 0 children
[robot_state_publisher-1] 1645781017.370210999 [zed2.zed_state_publisher] [INFO] got segment base_link
[robot_state_publisher-1] 1645781017.370530565 [zed2.zed_state_publisher] [INFO] got segment zed2_baro_link
[robot_state_publisher-1] 1645781017.370618537 [zed2.zed_state_publisher] [INFO] got segment zed2_base_link
[robot_state_publisher-1] 1645781017.370677195 [zed2.zed_state_publisher] [INFO] got segment zed2_camera_center
[robot_state_publisher-1] 1645781017.370731822 [zed2.zed_state_publisher] [INFO] got segment zed2_left_camera_frame
[robot_state_publisher-1] 1645781017.370810449 [zed2.zed_state_publisher] [INFO] got segment zed2_left_camera_optical_frame
[robot_state_publisher-1] 1645781017.370882612 [zed2.zed_state_publisher] [INFO] got segment zed2_mag_link
[robot_state_publisher-1] 1645781017.370939255 [zed2.zed_state_publisher] [INFO] got segment zed2_right_camera_frame
[robot_state_publisher-1] 1645781017.370997593 [zed2.zed_state_publisher] [INFO] got segment zed2_right_camera_optical_frame
[robot_state_publisher-1] 1645781017.371076221 [zed2.zed_state_publisher] [INFO] got segment zed2_temp_left_link
[robot_state_publisher-1] 1645781017.371125439 [zed2.zed_state_publisher] [INFO] got segment zed2_temp_right_link
[zed_wrapper-2] 1645781017.386122 [0] zed_wrappe: using network interface eth0 (udp/192.168.22.157) selected arbitrarily from: eth0, br-436a6caa4e28, docker0
[zed_wrapper-2] 1645781017.427309942 [zed2.zed_node] [INFO] ********************************
[zed_wrapper-2] 1645781017.427735081 [zed2.zed_node] [INFO]       ZED Camera Component 
[zed_wrapper-2] 1645781017.427854446 [zed2.zed_node] [INFO] ********************************
[zed_wrapper-2] 1645781017.427942258 [zed2.zed_node] [INFO]  * namespace: /zed2
[zed_wrapper-2] 1645781017.428024630 [zed2.zed_node] [INFO]  * node name: zed_node
[zed_wrapper-2] 1645781017.428089369 [zed2.zed_node] [INFO] ********************************
[zed_wrapper-2] 1645781017.428171132 [zed2.zed_node] [INFO] *** DEBUG parameters ***
[zed_wrapper-2] 1645781017.428704339 [zed2.zed_node] [INFO]  * Debug mode: FALSE
[zed_wrapper-2] 1645781017.428839897 [zed2.zed_node] [INFO] *** GENERAL parameters ***
[zed_wrapper-2] 1645781017.429243563 [zed2.zed_node] [INFO]  * Camera model: zed2 - ZED 2
[zed_wrapper-2] 1645781017.429635900 [zed2.zed_node] [INFO]  * SDK Verbose: 1
[zed_wrapper-2] 1645781017.429975819 [zed2.zed_node] [INFO]  * SVO: live
[zed_wrapper-2] 1645781017.430347035 [zed2.zed_node] [INFO]  * SVO Loop: TRUE
[zed_wrapper-2] 1645781017.430714475 [zed2.zed_node] [INFO]  * SVO Realtime: FALSE
[zed_wrapper-2] 1645781017.431018873 [zed2.zed_node] [INFO]  * Camera name: zed2
[zed_wrapper-2] 1645781017.431360584 [zed2.zed_node] [INFO]  * Camera ID: 0
[zed_wrapper-2] 1645781017.431765241 [zed2.zed_node] [INFO]  * Camera SN: 0
[zed_wrapper-2] 1645781017.432131497 [zed2.zed_node] [INFO]  * Camera timeout [sec]: 5
[zed_wrapper-2] 1645781017.432425302 [zed2.zed_node] [INFO]  * Camera reconnection temptatives: 5
[zed_wrapper-2] 1645781017.432764869 [zed2.zed_node] [INFO]  * Camera framerate: 30
[zed_wrapper-2] 1645781017.433099508 [zed2.zed_node] [INFO]  * GPU ID: -1
[zed_wrapper-2] 1645781017.433420994 [zed2.zed_node] [INFO]  * Camera resolution: 2 - HD720
[zed_wrapper-2] 1645781017.433787826 [zed2.zed_node] [INFO]  * Camera self calibration: TRUE
[zed_wrapper-2] 1645781017.434122304 [zed2.zed_node] [INFO]  * Camera flip: FALSE
[zed_wrapper-2] 1645781017.434437358 [zed2.zed_node] [INFO]  * [DYN] Publish framerate [Hz]: 15 
[zed_wrapper-2] 1645781017.434529042 [zed2.zed_node] [INFO] *** VIDEO parameters ***
[zed_wrapper-2] 1645781017.434828351 [zed2.zed_node] [INFO]  * Use old extrinsic parameters: 0
[zed_wrapper-2] 1645781017.435135468 [zed2.zed_node] [INFO]  * [DYN] Image downsample factor: 0.5 
[zed_wrapper-2] 1645781017.435483292 [zed2.zed_node] [INFO]  * [DYN] Brightness: 4
[zed_wrapper-2] 1645781017.435842923 [zed2.zed_node] [INFO]  * [DYN] Contrast: 4
[zed_wrapper-2] 1645781017.436148185 [zed2.zed_node] [INFO]  * [DYN] Hue: 0
[zed_wrapper-2] 1645781017.436553514 [zed2.zed_node] [INFO]  * [DYN] Saturation: 4
[zed_wrapper-2] 1645781017.436864792 [zed2.zed_node] [INFO]  * [DYN] Sharpness: 4
[zed_wrapper-2] 1645781017.437236392 [zed2.zed_node] [INFO]  * [DYN] Gamma: 8
[zed_wrapper-2] 1645781017.437549206 [zed2.zed_node] [INFO]  * [DYN] Auto Exposure/Gain: TRUE
[zed_wrapper-2] 1645781017.437834114 [zed2.zed_node] [INFO]  * [DYN] Exposure: 80
[zed_wrapper-2] 1645781017.438170865 [zed2.zed_node] [INFO]  * [DYN] Gain: 80
[zed_wrapper-2] 1645781017.438469790 [zed2.zed_node] [INFO]  * [DYN] Auto White Balance: TRUE
[zed_wrapper-2] 1645781017.438827790 [zed2.zed_node] [INFO]  * [DYN] White Balance Temperature: 42
[zed_wrapper-2] 1645781017.439153660 [zed2.zed_node] [INFO]  * Video QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.439529997 [zed2.zed_node] [INFO]  * Video QoS History depth: 1
[zed_wrapper-2] 1645781017.439872956 [zed2.zed_node] [INFO]  * Video QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.440183401 [zed2.zed_node] [INFO]  * Video QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.440254444 [zed2.zed_node] [INFO] *** DEPTH parameters ***
[zed_wrapper-2] 1645781017.440568058 [zed2.zed_node] [INFO]  * Depth quality: 1 - PERFORMANCE
[zed_wrapper-2] 1645781017.440958699 [zed2.zed_node] [INFO]  * Depth downsample factor: 0.5 
[zed_wrapper-2] 1645781017.441300666 [zed2.zed_node] [INFO]  * Min depth [m]: 0.2
[zed_wrapper-2] 1645781017.441626024 [zed2.zed_node] [INFO]  * Max depth [m]: 20
[zed_wrapper-2] 1645781017.441967063 [zed2.zed_node] [INFO]  * Depth Sensing Mode: 0 - STANDARD
[zed_wrapper-2] 1645781017.442354088 [zed2.zed_node] [INFO]  * Depth Stabilization: TRUE
[zed_wrapper-2] 1645781017.442646453 [zed2.zed_node] [INFO]  * OpenNI mode (16bit point cloud): FALSE
[zed_wrapper-2] 1645781017.442955586 [zed2.zed_node] [INFO]  * [DYN] Point cloud rate [Hz]: 10
[zed_wrapper-2] 1645781017.443235279 [zed2.zed_node] [INFO]  * [DYN] Depth Confidence: 50
[zed_wrapper-2] 1645781017.443503258 [zed2.zed_node] [INFO]  * [DYN] Depth Texture Confidence: 100
[zed_wrapper-2] 1645781017.443922605 [zed2.zed_node] [INFO]  * Depth QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.444196889 [zed2.zed_node] [INFO]  * Depth QoS History depth: 1
[zed_wrapper-2] 1645781017.444543784 [zed2.zed_node] [INFO]  * Depth QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.444843317 [zed2.zed_node] [INFO]  * Depth QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.445004892 [zed2.zed_node] [INFO] *** POSITIONAL TRACKING parameters ***
[zed_wrapper-2] 1645781017.445322794 [zed2.zed_node] [INFO]  * Positional tracking enabled: TRUE
[zed_wrapper-2] 1645781017.445681273 [zed2.zed_node] [INFO]  * Base frame id: base_link
[zed_wrapper-2] 1645781017.445976422 [zed2.zed_node] [INFO]  * Map frame id: map
[zed_wrapper-2] 1645781017.446340022 [zed2.zed_node] [INFO]  * Odometry frame id: odom
[zed_wrapper-2] 1645781017.446653700 [zed2.zed_node] [INFO]  * Broadcast Odometry TF: TRUE
[zed_wrapper-2] 1645781017.446995347 [zed2.zed_node] [INFO]  * Broadcast Pose TF: TRUE
[zed_wrapper-2] 1645781017.447302432 [zed2.zed_node] [INFO]  * Broadcast Static IMU TF [not for ZED]: TRUE
[zed_wrapper-2] 1645781017.447693521 [zed2.zed_node] [INFO]  * [DYN] Path publishing rate: 2
[zed_wrapper-2] 1645781017.448017216 [zed2.zed_node] [INFO]  * Path history lenght: -1
[zed_wrapper-2] 1645781017.448353166 [zed2.zed_node] [INFO]  * Initial pose: [0,0,0,0,0,0,]
[zed_wrapper-2] 1645781017.448746847 [zed2.zed_node] [INFO]  * Area Memory: TRUE
[zed_wrapper-2] 1645781017.449084366 [zed2.zed_node] [INFO]  * Area Memory DB: 
[zed_wrapper-2] 1645781017.449387803 [zed2.zed_node] [INFO]  * IMU Fusion [not for ZED]: TRUE
[zed_wrapper-2] 1645781017.449721770 [zed2.zed_node] [INFO]  * Floor Alignment: FALSE
[zed_wrapper-2] 1645781017.450044376 [zed2.zed_node] [INFO]  * Init Odometry with first valid pose data: TRUE
[zed_wrapper-2] 1645781017.450397000 [zed2.zed_node] [INFO]  * 2D mode: FALSE
[zed_wrapper-2] 1645781017.450707573 [zed2.zed_node] [INFO]  * Pose/Odometry QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.451056164 [zed2.zed_node] [INFO]  * Pose/Odometry QoS History depth: 1
[zed_wrapper-2] 1645781017.451349137 [zed2.zed_node] [INFO]  * Pose/Odometry QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.451695264 [zed2.zed_node] [INFO]  * Pose/Odometry QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.451771332 [zed2.zed_node] [INFO] *** SENSORS STACK parameters ***
[zed_wrapper-2] 1645781017.452123923 [zed2.zed_node] [INFO]  * Sensors Camera Sync: FALSE
[zed_wrapper-2] 1645781017.452468226 [zed2.zed_node] [INFO]  * Sensors publishing rate: 200 Hz
[zed_wrapper-2] 1645781017.452852691 [zed2.zed_node] [INFO]  * Sensors QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.453163968 [zed2.zed_node] [INFO]  * Sensors QoS History depth: 1
[zed_wrapper-2] 1645781017.453537777 [zed2.zed_node] [INFO]  * Sensors QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.453959011 [zed2.zed_node] [INFO]  * Sensors QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.454042471 [zed2.zed_node] [INFO] *** Spatial Mapping parameters ***
[zed_wrapper-2] 1645781017.454380534 [zed2.zed_node] [INFO]  * Spatial Mapping Enabled: FALSE
[zed_wrapper-2] 1645781017.454859115 [zed2.zed_node] [INFO]  * Spatial Mapping resolution [m]: 0.1
[zed_wrapper-2] 1645781017.455213690 [zed2.zed_node] [INFO]  * 3D Max Mapping range [m]: 20
[zed_wrapper-2] 1645781017.455632748 [zed2.zed_node] [INFO]  * Map publishing rate [Hz]: 0.5
[zed_wrapper-2] 1645781017.456093793 [zed2.zed_node] [INFO]  * Sensors QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.456392526 [zed2.zed_node] [INFO]  * Sensors QoS History depth: 1
[zed_wrapper-2] 1645781017.456723004 [zed2.zed_node] [INFO]  * Sensors QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.457019625 [zed2.zed_node] [INFO]  * Sensors QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.457114221 [zed2.zed_node] [INFO] *** OBJECT DETECTION parameters ***
[zed_wrapper-2] 1645781017.457391641 [zed2.zed_node] [INFO]  * Object Detection enabled: FALSE
[zed_wrapper-2] 1645781017.457740233 [zed2.zed_node] [INFO]  * OD min. confidence: 50
[zed_wrapper-2] 1645781017.458058998 [zed2.zed_node] [INFO]  * OD tracking: TRUE
[zed_wrapper-2] 1645781017.458361540 [zed2.zed_node] [INFO]  * Object Detection model: 3 - HUMAN BODY ACCURATE
[zed_wrapper-2] 1645781017.458748117 [zed2.zed_node] [INFO]  * MultiClassBox people: TRUE
[zed_wrapper-2] 1645781017.459069443 [zed2.zed_node] [INFO]  * MultiClassBox vehicles: TRUE
[zed_wrapper-2] 1645781017.459358031 [zed2.zed_node] [INFO]  * MultiClassBox bags: TRUE
[zed_wrapper-2] 1645781017.459703550 [zed2.zed_node] [INFO]  * MultiClassBox animals: TRUE
[zed_wrapper-2] 1645781017.460007308 [zed2.zed_node] [INFO]  * MultiClassBox electronics: TRUE
[zed_wrapper-2] 1645781017.460319289 [zed2.zed_node] [INFO]  * MultiClassBox fruits and vegetables: TRUE
[zed_wrapper-2] 1645781017.460608998 [zed2.zed_node] [INFO]  * Skeleton fitting: FALSE
[zed_wrapper-2] 1645781017.460883602 [zed2.zed_node] [INFO]  * Body format: 1
[zed_wrapper-2] 1645781017.461246946 [zed2.zed_node] [INFO]  * Obj. Det. QoS History: KEEP_LAST
[zed_wrapper-2] 1645781017.461513165 [zed2.zed_node] [INFO]  * Obj. Det. QoS History depth: 1
[zed_wrapper-2] 1645781017.461778745 [zed2.zed_node] [INFO]  * Obj. Det. QoS Reliability: RELIABLE
[zed_wrapper-2] 1645781017.462143401 [zed2.zed_node] [INFO]  * Obj. Det. QoS Durability: VOLATILE
[zed_wrapper-2] 1645781017.462378707 [zed2.zed_node] [INFO] *** SERVICES ***
[zed_wrapper-2] 1645781017.464291911 [zed2.zed_node] [INFO]  * '/zed2/zed_node/reset_odometry'
[zed_wrapper-2] 1645781017.465331764 [zed2.zed_node] [INFO]  * '/zed2/zed_node/reset_pos_tracking'
[zed_wrapper-2] 1645781017.467504179 [zed2.zed_node] [INFO]  * '/zed2/zed_node/set_pose'
[zed_wrapper-2] 1645781017.468729129 [zed2.zed_node] [INFO]  * '/zed2/zed_node/enable_obj_det'
[zed_wrapper-2] 1645781017.469683891 [zed2.zed_node] [INFO]  * '/zed2/zed_node/enable_mapping'
[zed_wrapper-2] 1645781017.470839077 [zed2.zed_node] [INFO]  * '/zed2/zed_node/start_svo_rec'
[zed_wrapper-2] 1645781017.471856978 [zed2.zed_node] [INFO]  * '/zed2/zed_node/stop_svo_rec'
[zed_wrapper-2] 1645781017.472852189 [zed2.zed_node] [INFO]  * '/zed2/zed_node/toggle_svo_pause'
[zed_wrapper-2] 1645781017.472938785 [zed2.zed_node] [INFO] ***** STARTING CAMERA *****
[zed_wrapper-2] 1645781017.472997347 [zed2.zed_node] [INFO] SDK Version: 3.7.0 - Build 40976_c89a574c
[zed_wrapper-2] 1645781017.492736450 [zed2.zed_node] [INFO] Parameter change callback
[zed_wrapper-2] 1645781017.492930539 [zed2.zed_node] [WARN] qos_overrides./tf.publisher.durability is not a dynamic parameter
[zed_wrapper-2] terminate called after throwing an instance of 'rclcpp::exceptions::InvalidParameterValueException'
[zed_wrapper-2]   what():  parameter 'qos_overrides./tf.publisher.durability' could not be set: qos_overrides./tf.publisher.durability is not a dynamic parameter
[ERROR] [zed_wrapper-2]: process has died [pid 147, exit code -6, cmd '/opt/ros/galactic/install/lib/zed_wrapper/zed_wrapper --ros-args -r __node:=zed_node -r __ns:=/zed2 --params-file /opt/ros/galactic/install/share/zed_wrapper/config/common.yaml --params-file /opt/ros/galactic/install/share/zed_wrapper/config/zed2.yaml --params-file /tmp/launch_params_3zbkxils'].
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[robot_state_publisher-1] 1645781020.118573588 [rclcpp] [INFO] signal_handler(signal_value=2)
[INFO] [robot_state_publisher-1]: process has finished cleanly [pid 146]```

### ZED Camera model

ZED2

### Environment

```shell
Nvidia Jetson Docker Container
ROS Galactic
Image built based on: https://github.com/dusty-nv/jetson-containers

Anything else?

No response

weitung avatar Feb 25 '22 09:02 weitung

@weitung the ZED ROS2 Wrapper is not officially supporting the ROS2 Galactic release. Can you verify if ROS2 Galactic modified something regarding the QoS parameters and the relative override?

Myzhar avatar Feb 25 '22 09:02 Myzhar

@Myzhar Thanks for the clarification. I quickly scan through the change log and it seems like it has something to do with this: https://docs.ros.org/en/foxy/Releases/Release-Galactic-Geochelone.html#externally-configure-qos-at-start-up, and maybe tf2_ros did the external configuration by sending override params, which ends up not handling and drop to this else clause: https://github.com/stereolabs/zed-ros2-wrapper/blob/master/zed_components/src/zed_camera/src/zed_camera_component.cpp#L1785

weitung avatar Feb 25 '22 10:02 weitung

I also did a quick test by setting result.successful = true; in that else clause and it successfully launches.

weitung avatar Feb 25 '22 10:02 weitung

Currently, the ZED ROS2 Wrapper provides its own method to overrides the QoS profiles for all the publishers. The new Galactic feature requires a deep reworking of this part and for the moment we have no plans about that. The new feature will be adopted when the next ROS2 LTS Humble Hawksbill will be released in May.

Myzhar avatar Feb 25 '22 10:02 Myzhar

I add this link for future reference: http://design.ros2.org/articles/qos_configurability.html

Myzhar avatar Feb 25 '22 10:02 Myzhar

@weitung @Myzhar I had this same problem working with galactic. I moved this line to the very end of the constructor to allow all parameters to be declared and set before the parameter change callback is put in place. The node ran as expected afterwards

jkquigley avatar Mar 05 '22 00:03 jkquigley

@weitung @Myzhar I had this same problem working with galactic. I moved this line to the very end of the constructor to allow all parameters to be declared and set before the parameter change callback is put in place. The node ran as expected afterwards

@kquigley29 , can you see any messages being published on the camera_info topics after this change?

ashishk88 avatar Apr 07 '22 18:04 ashishk88

Can anyone confirm to me that the wrapper is running as expected in ROS2 Galactic ?

Marcelomm103 avatar Jul 21 '22 13:07 Marcelomm103

This also occurs in ROS2 Humble

@weitung @Myzhar I had this same problem working with galactic. I moved this line to the very end of the constructor to allow all parameters to be declared and set before the parameter change callback is put in place. The node ran as expected afterwards

This fix works, and makes sense as a legit fix, and not just as a workaround, as the code that is causing this error is the callback_paramChange which causes an exception because the publishers, which are inited later, are declaring parameters which are not handled under callback_paramChange

Created a PR for it.

nakai-omer avatar Aug 09 '22 15:08 nakai-omer