Isaac ros visual slam isn't starting subscribers for stereo camera

Hello, I am using a zed X mini and working in the isaac ros docker container and the problem is that the subscribers for the stereo camera aren’t being made when I launch the isaac ros vslam example for a zed camera. This is not allowing for the base link to be set which is affecting the fixed frame. When I do it though the zed_wrapper using terminal command:

ros2 launch zed_wrapper zed_camera.launch.py camera_model:=zedxm

it works properly setting up the subscribers as seen in the photo below.

Giving me the rviz2 out of:

however when I do it with isaac ros vslam I get:

[zed_wrapper-2] [INFO] [1708712276.127245719] [zed_node]: *** Subscribers ***
[zed_wrapper-2] [WARN] [1708712276.164029097] [zed_node]: ! Failed to set thread params! - Policy not supported
[zed_wrapper-2] [WARN] [1708712276.179678822] [zed_node]: ! Failed to set thread params! - Policy not supported
[component_container-3] [INFO] [1708712298.098087952] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 23.549059
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node ‘/visual_slam_node’ in container ‘/visual_slam_launch_container’

giving me the rviz2 output (As you can see. I am getting camera output to the rviz):

Here is the full output for the isaac ros vslam:

admin@ubuntu:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_zed.launch.py
[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2024-02-23-13-17-47-438813-ubuntu-20656
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [20674]
[INFO] [zed_wrapper-2]: process started with pid [20676]
[robot_state_publisher-1] [INFO] [1708712268.625886572] [zed_state_publisher]: got segment zedxm_camera_center
[robot_state_publisher-1] [INFO] [1708712268.626215153] [zed_state_publisher]: got segment zedxm_camera_link
[robot_state_publisher-1] [INFO] [1708712268.626244914] [zed_state_publisher]: got segment zedxm_left_camera_frame
[robot_state_publisher-1] [INFO] [1708712268.626258770] [zed_state_publisher]: got segment zedxm_left_camera_optical_frame
[robot_state_publisher-1] [INFO] [1708712268.626269554] [zed_state_publisher]: got segment zedxm_right_camera_frame
[robot_state_publisher-1] [INFO] [1708712268.626279026] [zed_state_publisher]: got segment zedxm_right_camera_optical_frame
[zed_wrapper-2] [INFO] [1708712268.741568119] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1708712268.741919517] [zed_node]: ZED Camera Component
[zed_wrapper-2] [INFO] [1708712268.741949182] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1708712268.741970590] [zed_node]: * namespace: /
[zed_wrapper-2] [INFO] [1708712268.741991614] [zed_node]: * node name: zed_node
[zed_wrapper-2] [INFO] [1708712268.742008638] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1708712268.742052511] [zed_node]: *** DEBUG parameters ***
[zed_wrapper-2] [INFO] [1708712268.742137025] [zed_node]: * SDK Verbose: 1
[zed_wrapper-2] [INFO] [1708712268.742189697] [zed_node]: * Debug Common: FALSE
[zed_wrapper-2] [INFO] [1708712268.742229602] [zed_node]: * Debug Simulation: FALSE
[zed_wrapper-2] [INFO] [1708712268.742264579] [zed_node]: * Debug Video/Depth: FALSE
[zed_wrapper-2] [INFO] [1708712268.742297155] [zed_node]: * Debug Control settings: FALSE
[zed_wrapper-2] [INFO] [1708712268.742328260] [zed_node]: * Debug Point Cloud: FALSE
[zed_wrapper-2] [INFO] [1708712268.742365988] [zed_node]: * Debug GNSS: FALSE
[zed_wrapper-2] [INFO] [1708712268.742399365] [zed_node]: * Debug Positional Tracking: FALSE
[zed_wrapper-2] [INFO] [1708712268.742432741] [zed_node]: * Debug sensors: FALSE
[zed_wrapper-2] [INFO] [1708712268.742472870] [zed_node]: * Debug Mapping: FALSE
[zed_wrapper-2] [INFO] [1708712268.742508359] [zed_node]: * Debug Object Detection: FALSE
[zed_wrapper-2] [INFO] [1708712268.742540359] [zed_node]: * Debug Body Tracking: FALSE
[zed_wrapper-2] [INFO] [1708712268.742577352] [zed_node]: * Debug Advanced: FALSE
[zed_wrapper-2] [INFO] [1708712268.742636841] [zed_node]: *** GENERAL parameters ***
[zed_wrapper-2] [INFO] [1708712268.742689065] [zed_node]: * SVO: ‘’
[zed_wrapper-2] [INFO] [1708712268.742750186] [zed_node]: * Camera model: zedxm - ZED X Mini
[zed_wrapper-2] [INFO] [1708712268.742800459] [zed_node]: * Camera name: zedxm
[zed_wrapper-2] [INFO] [1708712268.742839820] [zed_node]: * Camera SN: 0
[zed_wrapper-2] [INFO] [1708712268.742904205] [zed_node]: * Camera timeout [sec]: 5
[zed_wrapper-2] [INFO] [1708712268.742952142] [zed_node]: * Camera reconnection temptatives: 5
[zed_wrapper-2] [INFO] [1708712268.742994254] [zed_node]: * Camera framerate: 60
[zed_wrapper-2] [INFO] [1708712268.743032623] [zed_node]: * GPU ID: -1
[zed_wrapper-2] [WARN] [1708712268.743075088] [zed_node]: Not valid ‘general.grab_resolution’ value: ‘HD720’. Using ‘AUTO’ setting.
[zed_wrapper-2] [INFO] [1708712268.743116912] [zed_node]: * Camera resolution: AUTO
[zed_wrapper-2] [WARN] [1708712268.743158961] [zed_node]: Not valid ‘general.pub_resolution’ value: ‘MEDIUM’. Using default setting instead.
[zed_wrapper-2] [INFO] [1708712268.743188786] [zed_node]: * Publishing resolution: NATIVE
[zed_wrapper-2] [INFO] [1708712268.743229426] [zed_node]: * OpenCV custom calibration:
[zed_wrapper-2] [INFO] [1708712268.743301139] [zed_node]: * Region of interest:
[zed_wrapper-2] [INFO] [1708712268.743350196] [zed_node]: * Camera self calibration: TRUE
[zed_wrapper-2] [INFO] [1708712268.743392149] [zed_node]: * Camera flip: FALSE
[zed_wrapper-2] [INFO] [1708712268.743461814] [zed_node]: * [DYN] Publish framerate [Hz]: 60
[zed_wrapper-2] [INFO] [1708712268.743491190] [zed_node]: *** VIDEO parameters ***
[zed_wrapper-2] [INFO] [1708712268.743540279] [zed_node]: * [DYN] Saturation: 4
[zed_wrapper-2] [INFO] [1708712268.743583352] [zed_node]: * [DYN] Sharpness: 4
[zed_wrapper-2] [INFO] [1708712268.743622649] [zed_node]: * [DYN] Gamma: 8
[zed_wrapper-2] [INFO] [1708712268.743662233] [zed_node]: * [DYN] Auto Exposure/Gain: TRUE
[zed_wrapper-2] [INFO] [1708712268.743712698] [zed_node]: * [DYN] Exposure: 80
[zed_wrapper-2] [INFO] [1708712268.743751963] [zed_node]: * [DYN] Gain: 80
[zed_wrapper-2] [INFO] [1708712268.743788859] [zed_node]: * [DYN] Auto White Balance: TRUE
[zed_wrapper-2] [INFO] [1708712268.743827100] [zed_node]: * [DYN] White Balance Temperature: 42
[zed_wrapper-2] [INFO] [1708712268.743872637] [zed_node]: * [DYN] ZED X Exposure time: 16666
[zed_wrapper-2] [INFO] [1708712268.743914813] [zed_node]: * [DYN] ZED X Auto Exp. time range min: 28
[zed_wrapper-2] [INFO] [1708712268.743951614] [zed_node]: * [DYN] ZED X Auto Exp. time range max: 30000
[zed_wrapper-2] [INFO] [1708712268.743987550] [zed_node]: * [DYN] ZED X Exposure comp.: 50
[zed_wrapper-2] [INFO] [1708712268.744027775] [zed_node]: * [DYN] ZED X Analog Gain: 8000
[zed_wrapper-2] [INFO] [1708712268.744068512] [zed_node]: * [DYN] ZED X Auto Analog Gain range min: 1000
[zed_wrapper-2] [INFO] [1708712268.744103296] [zed_node]: * [DYN] ZED X Auto Analog Gain range max: 16000
[zed_wrapper-2] [INFO] [1708712268.744139585] [zed_node]: * [DYN] ZED X Digital Gain: 128
[zed_wrapper-2] [INFO] [1708712268.744179394] [zed_node]: * [DYN] ZED X Auto Digital Gain range min: 1
[zed_wrapper-2] [INFO] [1708712268.744215458] [zed_node]: * [DYN] ZED X Auto Digital Gain range max: 256
[zed_wrapper-2] [INFO] [1708712268.744337028] [zed_node]: * [DYN] ZED X Auto Digital Gain range max: 50
[zed_wrapper-2] [INFO] [1708712268.744389637] [zed_node]: * Video QoS History: KEEP_LAST
[zed_wrapper-2] [INFO] [1708712268.744428742] [zed_node]: * Video QoS History depth: 1
[zed_wrapper-2] [INFO] [1708712268.744466214] [zed_node]: * Video QoS Reliability: RELIABLE
[zed_wrapper-2] [INFO] [1708712268.744502247] [zed_node]: * Video QoS Durability: VOLATILE
[zed_wrapper-2] [INFO] [1708712268.744534695] [zed_node]: *** DEPTH parameters ***
[zed_wrapper-2] [INFO] [1708712268.744585192] [zed_node]: * Depth mode: NONE - DEPTH DISABLED
[zed_wrapper-2] [INFO] [1708712268.744613577] [zed_node]: *** SENSORS STACK parameters ***
[zed_wrapper-2] [INFO] [1708712268.744650633] [zed_node]: * Broadcast IMU TF [not for ZED]: FALSE
[zed_wrapper-2] [INFO] [1708712268.744685802] [zed_node]: * Sensors Camera Sync: FALSE
[zed_wrapper-2] [INFO] [1708712268.744740331] [zed_node]: * Sensors publishing rate: 200 Hz
[zed_wrapper-2] [INFO] [1708712268.744778059] [zed_node]: * Sensors QoS History: KEEP_LAST
[zed_wrapper-2] [INFO] [1708712268.744816236] [zed_node]: * Sensors QoS History depth: 1
[zed_wrapper-2] [INFO] [1708712268.744857388] [zed_node]: * Sensors QoS Reliability: RELIABLE
[zed_wrapper-2] [INFO] [1708712268.744893645] [zed_node]: * Sensors QoS Durability: VOLATILE
[zed_wrapper-2] [INFO] [1708712268.744917901] [zed_node]: *** Advanced parameters ***
[zed_wrapper-2] [INFO] [1708712268.744955662] [zed_node]: * Thread sched. policy:
[zed_wrapper-2] [INFO] [1708712268.745063504] [zed_node]: *** SERVICES ***
[zed_wrapper-2] [INFO] [1708712268.747354805] [zed_node]: * ‘/zed_node/start_svo_rec’
[zed_wrapper-2] [INFO] [1708712268.749145842] [zed_node]: * ‘/zed_node/stop_svo_rec’
[zed_wrapper-2] [INFO] [1708712268.749848477] [zed_node]: * ‘/zed_node/set_roi’
[zed_wrapper-2] [INFO] [1708712268.750426022] [zed_node]: * ‘/zed_node/reset_roi’
[zed_wrapper-2] [INFO] [1708712268.750492679] [zed_node]: ***** STARTING CAMERA *****
[zed_wrapper-2] [INFO] [1708712268.750520840] [zed_node]: ZED SDK Version: 4.0.8 - Build 80393_b12da209
[zed_wrapper-2] [INFO] [1708712268.757649595] [zed_node]: *** CAMERA OPENING ***
[zed_wrapper-2] [2024-02-23 18:17:49 UTC][ZED][INFO] Logging level INFO
[zed_wrapper-2] [ZED][INFO] Using GMSL input… Switched to default resolution HD1200
[zed_wrapper-2] [2024-02-23 18:17:49 UTC][ZED][INFO] [Init] Depth mode: NONE
[zed_wrapper-2] [ZED-X][Warning] Failed to connect to zed_x_daemon.
[zed_wrapper-2] [ZED-X][Warning] Failed to verify the match between the L4T version of the host and the container. If you are indeed in a container, be sure to run the same L4T version on both.
[zed_wrapper-2] [2024-02-23 18:17:53 UTC][ZED][INFO] [Init] Camera FW version: 2001
[zed_wrapper-2] [2024-02-23 18:17:53 UTC][ZED][INFO] [Init] Video mode: HD1200@60
[zed_wrapper-2] [2024-02-23 18:17:53 UTC][ZED][INFO] [Init] Serial Number: S/N 53432554
[INFO] [component_container-3]: process started with pid [20819]
[component_container-3] [ERROR] [1708712273.955875929] [visual_slam_launch_container]: Could not find requested resource in ament index
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node ‘image_format_node_left’ of type ‘nvidia::isaac_ros::image_proc::ImageFormatConverterNode’ in container ‘/visual_slam_launch_container’: Could not find requested resource in ament index
[component_container-3] [ERROR] [1708712273.963006380] [visual_slam_launch_container]: Could not find requested resource in ament index
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node ‘image_format_node_right’ of type ‘nvidia::isaac_ros::image_proc::ImageFormatConverterNode’ in container ‘/visual_slam_launch_container’: Could not find requested resource in ament index
[component_container-3] [INFO] [1708712273.977989854] [visual_slam_launch_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so
[component_container-3] [INFO] [1708712274.231910599] [visual_slam_launch_container]: Found class: rclcpp_components::NodeFactoryTemplatenvidia::isaac_ros::visual_slam::VisualSlamNode
[component_container-3] [INFO] [1708712274.235107994] [visual_slam_launch_container]: Instantiate class: rclcpp_components::NodeFactoryTemplatenvidia::isaac_ros::visual_slam::VisualSlamNode
[component_container-3] [INFO] [1708712274.547750200] [visual_slam_node]: cuVSLAM version: 11.4
[zed_wrapper-2] [INFO] [1708712275.049725578] [zed_node]: ZED SDK running on GPU #0
[zed_wrapper-2] [INFO] [1708712275.049901581] [zed_node]: * Camera Model → ZED X Mini
[zed_wrapper-2] [INFO] [1708712275.049931341] [zed_node]: * Serial Number → 53432554
[zed_wrapper-2] [INFO] [1708712275.049965646] [zed_node]: * Focal Lenght → 2.20579 mm
[zed_wrapper-2] [INFO] [1708712275.050006158] [zed_node]: * Input → GMSL input type
[zed_wrapper-2] [INFO] [1708712275.050037711] [zed_node]: * Camera FW Version → 2001
[zed_wrapper-2] [INFO] [1708712275.050061583] [zed_node]: * Sensors FW Version → 1000
[zed_wrapper-2] [INFO] [1708712275.050086992] [zed_node]: * Camera grab frame size → 1920x1200
[zed_wrapper-2] [INFO] [1708712275.050108208] [zed_node]: * Publishing frame size → 1920x1200
[zed_wrapper-2] [INFO] [1708712275.050158225] [zed_node]: *** TF FRAMES ***
[zed_wrapper-2] [INFO] [1708712275.050183953] [zed_node]: * Map → map
[zed_wrapper-2] [INFO] [1708712275.050203025] [zed_node]: * Odometry → odom
[zed_wrapper-2] [INFO] [1708712275.050221266] [zed_node]: * Base →
[zed_wrapper-2] [INFO] [1708712275.050240754] [zed_node]: * Camera → zedxm_camera_center
[zed_wrapper-2] [INFO] [1708712275.050259442] [zed_node]: * Left → zedxm_left_camera_frame
[zed_wrapper-2] [INFO] [1708712275.050278291] [zed_node]: * Left Optical → zedxm_left_camera_optical_frame
[zed_wrapper-2] [INFO] [1708712275.050297395] [zed_node]: * RGB → zedxm_left_camera_frame
[zed_wrapper-2] [INFO] [1708712275.050316403] [zed_node]: * RGB Optical → zedxm_left_camera_frame
[zed_wrapper-2] [INFO] [1708712275.050335732] [zed_node]: * Right → zedxm_right_camera_frame
[zed_wrapper-2] [INFO] [1708712275.050397141] [zed_node]: * Right Optical → zedxm_right_camera_optical_frame
[zed_wrapper-2] [INFO] [1708712275.050435157] [zed_node]: * IMU → zedxm_imu_link
[zed_wrapper-2] [INFO] [1708712275.050518486] [zed_node]: *** PUBLISHED TOPICS ***
[zed_wrapper-2] [INFO] [1708712275.646755710] [zed_node]: Advertised on topic: /zed_node/rgb/image_rect_color
[zed_wrapper-2] [INFO] [1708712275.650723070] [zed_node]: Advertised on topic: /zed_node/rgb/camera_info
[zed_wrapper-2] [INFO] [1708712275.685884727] [zed_node]: Advertised on topic: /zed_node/rgb_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1708712275.689967449] [zed_node]: Advertised on topic: /zed_node/rgb_gray/camera_info
[zed_wrapper-2] [INFO] [1708712275.752856273] [zed_node]: Advertised on topic: /zed_node/rgb_raw/image_raw_color
[zed_wrapper-2] [INFO] [1708712275.754661199] [zed_node]: Advertised on topic: /zed_node/rgb_raw/camera_info
[zed_wrapper-2] [INFO] [1708712275.784075274] [zed_node]: Advertised on topic: /zed_node/rgb_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1708712275.786470513] [zed_node]: Advertised on topic: /zed_node/rgb_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1708712275.804586550] [zed_node]: Advertised on topic: /zed_node/left/image_rect_color
[zed_wrapper-2] [INFO] [1708712275.807100670] [zed_node]: Advertised on topic: /zed_node/left/camera_info
[zed_wrapper-2] [INFO] [1708712275.833165636] [zed_node]: Advertised on topic: /zed_node/left_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1708712275.839458473] [zed_node]: Advertised on topic: /zed_node/left_gray/camera_info
[zed_wrapper-2] [INFO] [1708712275.866544351] [zed_node]: Advertised on topic: /zed_node/left_raw/image_raw_color
[zed_wrapper-2] [INFO] [1708712275.870148538] [zed_node]: Advertised on topic: /zed_node/left_raw/camera_info
[zed_wrapper-2] [INFO] [1708712275.903030861] [zed_node]: Advertised on topic: /zed_node/left_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1708712275.905976541] [zed_node]: Advertised on topic: /zed_node/left_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1708712275.934260934] [zed_node]: Advertised on topic: /zed_node/right/image_rect_color
[zed_wrapper-2] [INFO] [1708712275.940931474] [zed_node]: Advertised on topic: /zed_node/right/camera_info
[zed_wrapper-2] [INFO] [1708712275.968128650] [zed_node]: Advertised on topic: /zed_node/right_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1708712275.975951144] [zed_node]: Advertised on topic: /zed_node/right_gray/camera_info
[zed_wrapper-2] [INFO] [1708712276.008063823] [zed_node]: Advertised on topic: /zed_node/right_raw/image_raw_color
[zed_wrapper-2] [INFO] [1708712276.011173634] [zed_node]: Advertised on topic: /zed_node/right_raw/camera_info
[zed_wrapper-2] [INFO] [1708712276.040585085] [zed_node]: Advertised on topic: /zed_node/right_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1708712276.043745488] [zed_node]: Advertised on topic: /zed_node/right_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1708712276.067021673] [zed_node]: Advertised on topic: /zed_node/stereo/image_rect_color
[zed_wrapper-2] [INFO] [1708712276.095838171] [zed_node]: Advertised on topic: /zed_node/stereo_raw/image_raw_color
[zed_wrapper-2] [INFO] [1708712276.107293844] [zed_node]: Advertised on topic: /zed_node/imu/data
[zed_wrapper-2] [INFO] [1708712276.113168787] [zed_node]: Advertised on topic: /zed_node/imu/data_raw
[zed_wrapper-2] [INFO] [1708712276.121620412] [zed_node]: Advertised on topic: /zed_node/temperature/imu
[zed_wrapper-2] [INFO] [1708712276.126971218] [zed_node]: Advertised on topic: /zed_node/left_cam_imu_transform
[zed_wrapper-2] [INFO] [1708712276.127117045] [zed_node]: Camera-IMU Translation:
[zed_wrapper-2] 0 -0.034502 -0.004356
[zed_wrapper-2] [INFO] [1708712276.127207766] [zed_node]: Camera-IMU Rotation:
[zed_wrapper-2] FFFFC65265E0
[zed_wrapper-2] 0.999986 -0.005202 0.000491
[zed_wrapper-2] 0.005202 0.999986 -0.001091
[zed_wrapper-2] -0.000485 0.001093 0.999999
[zed_wrapper-2]
[zed_wrapper-2] [INFO] [1708712276.127245719] [zed_node]: *** Subscribers ***
[zed_wrapper-2] [WARN] [1708712276.164029097] [zed_node]: ! Failed to set thread params! - Policy not supported
[zed_wrapper-2] [WARN] [1708712276.179678822] [zed_node]: ! Failed to set thread params! - Policy not supported
[component_container-3] [INFO] [1708712298.098087952] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 23.549059
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node ‘/visual_slam_node’ in container ‘/visual_slam_launch_container’

Hi @conorspalvieri1

After reviewing your screenshot and links, it appears that the camera is not working and the ZED node is providing a warning that it cannot detect the camera or the parameters.

The Isaac ROS example is compatible with ZED2i, but you can modify the configuration file to use a ZED X Mini.

The file is locate in isaac_ros_visual_slam/config/zed.yaml and you can change the parameter:

  • camera_model
  • camera_name

and follow the official documentation for the ZED node where provide you the right camera_model name: zedxm

Best,
Raffaello

Hey Raffaello,

The documentation for isaac ros vslam with the zed camera is very poor and the code is made poorly and static with only support with the ZED2i like you said. I am wondering if I could write new documentation and a pull request for the zed example which will allow for dynamic use with all zed cameras.

Thanks,
Conor

Hi @conorspalvieri1

Thank you for your reply; I reported your trouble to engineering to improve the documentation for the next coming release.

Best,
Raffaello

Hello @Raffaello

I am using the ZED2i and I followed all steps from the Isaac ROS documentation for both Isaac ROS VSLAM and ZED. I did colcon build according to ZED documentation for ZED packages only. However, I had the policy wrong from subscribers. Here is my output:

admin@ubuntu:/workspaces/isaac_ros-dev$ ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_zed.launch.py
[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2024-04-25-17-30-47-200103-ubuntu-29157
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [robot_state_publisher-1]: process started with pid [29160]
[INFO] [zed_wrapper-2]: process started with pid [29162]
[robot_state_publisher-1] [INFO] [1714084248.430269240] [zed_state_publisher]: got segment zed2i_camera_center
[robot_state_publisher-1] [INFO] [1714084248.430550557] [zed_state_publisher]: got segment zed2i_camera_link
[robot_state_publisher-1] [INFO] [1714084248.430583453] [zed_state_publisher]: got segment zed2i_left_camera_frame
[robot_state_publisher-1] [INFO] [1714084248.430600893] [zed_state_publisher]: got segment zed2i_left_camera_optical_frame
[robot_state_publisher-1] [INFO] [1714084248.430612894] [zed_state_publisher]: got segment zed2i_right_camera_frame
[robot_state_publisher-1] [INFO] [1714084248.430623550] [zed_state_publisher]: got segment zed2i_right_camera_optical_frame
[zed_wrapper-2] [INFO] [1714084248.608190625] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1714084248.608559815] [zed_node]:       ZED Camera Component 
[zed_wrapper-2] [INFO] [1714084248.608586184] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1714084248.608604104] [zed_node]:  * namespace: /
[zed_wrapper-2] [INFO] [1714084248.608620456] [zed_node]:  * node name: zed_node
[zed_wrapper-2] [INFO] [1714084248.608632072] [zed_node]: ********************************
[zed_wrapper-2] [INFO] [1714084248.608692169] [zed_node]: *** DEBUG parameters ***
[zed_wrapper-2] [INFO] [1714084248.608776395] [zed_node]:  * SDK Verbose: 1
[zed_wrapper-2] [INFO] [1714084248.608830956] [zed_node]:  * Debug Common: FALSE
[zed_wrapper-2] [INFO] [1714084248.608861068] [zed_node]:  * Debug Simulation: FALSE
[zed_wrapper-2] [INFO] [1714084248.608890893] [zed_node]:  * Debug Video/Depth: FALSE
[zed_wrapper-2] [INFO] [1714084248.608924237] [zed_node]:  * Debug Control settings: FALSE
[zed_wrapper-2] [INFO] [1714084248.608953934] [zed_node]:  * Debug Point Cloud: FALSE
[zed_wrapper-2] [INFO] [1714084248.608980718] [zed_node]:  * Debug GNSS: FALSE
[zed_wrapper-2] [INFO] [1714084248.609008367] [zed_node]:  * Debug Positional Tracking: FALSE
[zed_wrapper-2] [INFO] [1714084248.609041039] [zed_node]:  * Debug sensors: FALSE
[zed_wrapper-2] [INFO] [1714084248.609068592] [zed_node]:  * Debug Mapping: FALSE
[zed_wrapper-2] [INFO] [1714084248.609096528] [zed_node]:  * Debug Object Detection: FALSE
[zed_wrapper-2] [INFO] [1714084248.609127761] [zed_node]:  * Debug Body Tracking: FALSE
[zed_wrapper-2] [INFO] [1714084248.609155761] [zed_node]:  * Debug Advanced: FALSE
[zed_wrapper-2] [INFO] [1714084248.609232755] [zed_node]: *** GENERAL parameters ***
[zed_wrapper-2] [INFO] [1714084248.609290324] [zed_node]:  * SVO: ''
[zed_wrapper-2] [INFO] [1714084248.609439574] [zed_node]:  * Camera model: zed2i - ZED 2i
[zed_wrapper-2] [INFO] [1714084248.609494167] [zed_node]:  * Camera name: zed2i
[zed_wrapper-2] [INFO] [1714084248.609569432] [zed_node]:  * Camera SN: 0
[zed_wrapper-2] [INFO] [1714084248.609620025] [zed_node]:  * Camera timeout [sec]: 5
[zed_wrapper-2] [INFO] [1714084248.609663706] [zed_node]:  * Camera reconnection temptatives: 5
[zed_wrapper-2] [INFO] [1714084248.609700347] [zed_node]:  * Camera framerate: 30
[zed_wrapper-2] [INFO] [1714084248.609739227] [zed_node]:  * GPU ID: -1
[zed_wrapper-2] [INFO] [1714084248.609793628] [zed_node]:  * Camera resolution: HD1080
[zed_wrapper-2] [WARN] [1714084248.609833085] [zed_node]: Not valid 'general.pub_resolution' value: 'HD720'. Using default setting instead.
[zed_wrapper-2] [INFO] [1714084248.609863357] [zed_node]:  * Publishing resolution: NATIVE
[zed_wrapper-2] [INFO] [1714084248.609901214] [zed_node]:  * OpenCV custom calibration: 
[zed_wrapper-2] [INFO] [1714084248.609950463] [zed_node]:  * Region of interest: []
[zed_wrapper-2] [INFO] [1714084248.609984736] [zed_node]:  * Camera self calibration: TRUE
[zed_wrapper-2] [INFO] [1714084248.610016160] [zed_node]:  * Camera flip: FALSE
[zed_wrapper-2] [WARN] [1714084248.610074209] [zed_node]: 'pub_frame_rate' cannot be bigger than 'grab_frame_rate'
[zed_wrapper-2] [INFO] [1714084248.610122818] [zed_node]:  * [DYN] Publish framerate [Hz]:  30
[zed_wrapper-2] [INFO] [1714084248.610144930] [zed_node]: *** VIDEO parameters ***
[zed_wrapper-2] [INFO] [1714084248.610179171] [zed_node]:  * [DYN] Brightness: 4
[zed_wrapper-2] [INFO] [1714084248.610209859] [zed_node]:  * [DYN] Contrast: 4
[zed_wrapper-2] [INFO] [1714084248.610243364] [zed_node]:  * [DYN] Hue: 0
[zed_wrapper-2] [INFO] [1714084248.610273412] [zed_node]:  * [DYN] Saturation: 4
[zed_wrapper-2] [INFO] [1714084248.610302181] [zed_node]:  * [DYN] Sharpness: 4
[zed_wrapper-2] [INFO] [1714084248.610331333] [zed_node]:  * [DYN] Gamma: 8
[zed_wrapper-2] [INFO] [1714084248.610362662] [zed_node]:  * [DYN] Auto Exposure/Gain: TRUE
[zed_wrapper-2] [INFO] [1714084248.610391462] [zed_node]:  * [DYN] Exposure: 80
[zed_wrapper-2] [INFO] [1714084248.610420359] [zed_node]:  * [DYN] Gain: 80
[zed_wrapper-2] [INFO] [1714084248.610448391] [zed_node]:  * [DYN] Auto White Balance: TRUE
[zed_wrapper-2] [INFO] [1714084248.610480744] [zed_node]:  * [DYN] White Balance Temperature: 42
[zed_wrapper-2] [INFO] [1714084248.610515689] [zed_node]:  * Video QoS History: KEEP_LAST
[zed_wrapper-2] [INFO] [1714084248.610545545] [zed_node]:  * Video QoS History depth: 1
[zed_wrapper-2] [INFO] [1714084248.610574634] [zed_node]:  * Video QoS Reliability: RELIABLE
[zed_wrapper-2] [INFO] [1714084248.610605962] [zed_node]:  * Video QoS Durability: VOLATILE
[zed_wrapper-2] [INFO] [1714084248.610628939] [zed_node]: *** DEPTH parameters ***
[zed_wrapper-2] [INFO] [1714084248.610671115] [zed_node]:  * Depth mode: NONE - DEPTH DISABLED
[zed_wrapper-2] [INFO] [1714084248.610697708] [zed_node]: *** SENSORS STACK parameters ***
[zed_wrapper-2] [INFO] [1714084248.610728812] [zed_node]:  * Broadcast IMU TF [not for ZED]: FALSE
[zed_wrapper-2] [INFO] [1714084248.610839470] [zed_node]:  * Sensors Camera Sync: FALSE
[zed_wrapper-2] [INFO] [1714084248.610883151] [zed_node]:  * Sensors publishing rate: 200 Hz
[zed_wrapper-2] [INFO] [1714084248.610913999] [zed_node]:  * Sensors QoS History: KEEP_LAST
[zed_wrapper-2] [INFO] [1714084248.610941872] [zed_node]:  * Sensors QoS History depth: 1
[zed_wrapper-2] [INFO] [1714084248.610978417] [zed_node]:  * Sensors QoS Reliability: RELIABLE
[zed_wrapper-2] [INFO] [1714084248.611006769] [zed_node]:  * Sensors QoS Durability: VOLATILE
[zed_wrapper-2] [INFO] [1714084248.611028689] [zed_node]: *** Advanced parameters ***
[zed_wrapper-2] [INFO] [1714084248.611059218] [zed_node]:  * Thread sched. policy: 
[zed_wrapper-2] [INFO] [1714084248.611834367] [zed_node]: *** SERVICES ***
[zed_wrapper-2] [INFO] [1714084248.614769938] [zed_node]:  * '/zed_node/start_svo_rec'
[zed_wrapper-2] [INFO] [1714084248.616309132] [zed_node]:  * '/zed_node/stop_svo_rec'
[zed_wrapper-2] [INFO] [1714084248.616925878] [zed_node]:  * '/zed_node/set_roi'
[zed_wrapper-2] [INFO] [1714084248.617635203] [zed_node]:  * '/zed_node/reset_roi'
[zed_wrapper-2] [INFO] [1714084248.617692644] [zed_node]: ***** STARTING CAMERA *****
[zed_wrapper-2] [INFO] [1714084248.617719492] [zed_node]: ZED SDK Version: 4.0.6 - Build 76737_a80ced01
[zed_wrapper-2] [INFO] [1714084248.625685069] [zed_node]: *** CAMERA OPENING ***
[zed_wrapper-2] [ZED][INFO] Logging level INFO
[zed_wrapper-2] [ZED][INFO] [Init]  Depth mode: NONE
[zed_wrapper-2] [ZED][INFO] [Init]  Camera successfully opened.
[zed_wrapper-2] [ZED][INFO] [Init]  Camera FW version: 1523
[zed_wrapper-2] [ZED][INFO] [Init]  Video mode: HD1080@30
[zed_wrapper-2] [ZED][INFO] [Init]  Serial Number: S/N 30275848
[zed_wrapper-2] [INFO] [1714084252.016810753] [zed_node]: ZED SDK running on GPU #0
[zed_wrapper-2] [INFO] [1714084252.017003780] [zed_node]:  * Camera Model  -> ZED 2i
[zed_wrapper-2] [INFO] [1714084252.017039876] [zed_node]:  * Serial Number -> 30275848
[zed_wrapper-2] [INFO] [1714084252.017079493] [zed_node]:  * Focal Lenght -> 2.13354 mm
[zed_wrapper-2] [INFO] [1714084252.017123526] [zed_node]:  * Input	 -> USB input type
[zed_wrapper-2] [INFO] [1714084252.017156294] [zed_node]:  * Camera FW Version  -> 1523
[zed_wrapper-2] [INFO] [1714084252.017178791] [zed_node]:  * Sensors FW Version -> 777
[zed_wrapper-2] [INFO] [1714084252.017201255] [zed_node]:  * Camera grab frame size -> 1920x1080
[zed_wrapper-2] [INFO] [1714084252.017221992] [zed_node]:  * Publishing frame size  -> 1920x1080
[zed_wrapper-2] [INFO] [1714084252.017275945] [zed_node]: *** TF FRAMES ***
[zed_wrapper-2] [INFO] [1714084252.017302153] [zed_node]:  * Map			-> map
[zed_wrapper-2] [INFO] [1714084252.017320137] [zed_node]:  * Odometry		-> odom
[zed_wrapper-2] [INFO] [1714084252.017336106] [zed_node]:  * Base			-> 
[zed_wrapper-2] [INFO] [1714084252.017350122] [zed_node]:  * Camera		-> zed2i_camera_center
[zed_wrapper-2] [INFO] [1714084252.017365130] [zed_node]:  * Left			-> zed2i_left_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017379882] [zed_node]:  * Left Optical		-> zed2i_left_camera_optical_frame
[zed_wrapper-2] [INFO] [1714084252.017394347] [zed_node]:  * RGB			-> zed2i_left_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017408203] [zed_node]:  * RGB Optical		-> zed2i_left_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017421675] [zed_node]:  * Right		-> zed2i_right_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017434699] [zed_node]:  * Right Optical	-> zed2i_right_camera_optical_frame
[zed_wrapper-2] [INFO] [1714084252.017449003] [zed_node]:  * IMU			-> zed2i_imu_link
[zed_wrapper-2] [INFO] [1714084252.017464652] [zed_node]:  * Barometer		-> zed2i_camera_center
[zed_wrapper-2] [INFO] [1714084252.017485100] [zed_node]:  * Magnetometer		-> zed2i_imu_link
[zed_wrapper-2] [INFO] [1714084252.017499692] [zed_node]:  * Left Temperature	-> zed2i_left_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017513101] [zed_node]:  * Right Temperature	-> zed2i_right_camera_frame
[zed_wrapper-2] [INFO] [1714084252.017969780] [zed_node]: *** PUBLISHED TOPICS ***
[zed_wrapper-2] [INFO] [1714084252.387176472] [zed_node]: Advertised on topic: /zed_node/rgb/image_rect_color
[zed_wrapper-2] [INFO] [1714084252.387306106] [zed_node]: Advertised on topic: /zed_node/rgb/camera_info
[zed_wrapper-2] [INFO] [1714084252.392770424] [zed_node]: Advertised on topic: /zed_node/rgb_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1714084252.392869049] [zed_node]: Advertised on topic: /zed_node/rgb_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.397602571] [zed_node]: Advertised on topic: /zed_node/rgb_raw/image_raw_color
[zed_wrapper-2] [INFO] [1714084252.397700428] [zed_node]: Advertised on topic: /zed_node/rgb_raw/camera_info
[zed_wrapper-2] [INFO] [1714084252.403231211] [zed_node]: Advertised on topic: /zed_node/rgb_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1714084252.403317101] [zed_node]: Advertised on topic: /zed_node/rgb_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.414009252] [zed_node]: Advertised on topic: /zed_node/left/image_rect_color
[zed_wrapper-2] [INFO] [1714084252.414131623] [zed_node]: Advertised on topic: /zed_node/left/camera_info
[zed_wrapper-2] [INFO] [1714084252.420493332] [zed_node]: Advertised on topic: /zed_node/left_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1714084252.420698135] [zed_node]: Advertised on topic: /zed_node/left_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.427836242] [zed_node]: Advertised on topic: /zed_node/left_raw/image_raw_color
[zed_wrapper-2] [INFO] [1714084252.427958932] [zed_node]: Advertised on topic: /zed_node/left_raw/camera_info
[zed_wrapper-2] [INFO] [1714084252.434064605] [zed_node]: Advertised on topic: /zed_node/left_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1714084252.434164095] [zed_node]: Advertised on topic: /zed_node/left_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.441436315] [zed_node]: Advertised on topic: /zed_node/right/image_rect_color
[zed_wrapper-2] [INFO] [1714084252.441528925] [zed_node]: Advertised on topic: /zed_node/right/camera_info
[zed_wrapper-2] [INFO] [1714084252.446830008] [zed_node]: Advertised on topic: /zed_node/right_gray/image_rect_gray
[zed_wrapper-2] [INFO] [1714084252.446926714] [zed_node]: Advertised on topic: /zed_node/right_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.452322614] [zed_node]: Advertised on topic: /zed_node/right_raw/image_raw_color
[zed_wrapper-2] [INFO] [1714084252.452403448] [zed_node]: Advertised on topic: /zed_node/right_raw/camera_info
[zed_wrapper-2] [INFO] [1714084252.458331517] [zed_node]: Advertised on topic: /zed_node/right_raw_gray/image_raw_gray
[zed_wrapper-2] [INFO] [1714084252.458450080] [zed_node]: Advertised on topic: /zed_node/right_raw_gray/camera_info
[zed_wrapper-2] [INFO] [1714084252.463525751] [zed_node]: Advertised on topic: /zed_node/stereo/image_rect_color
[zed_wrapper-2] [INFO] [1714084252.468774737] [zed_node]: Advertised on topic: /zed_node/stereo_raw/image_raw_color
[zed_wrapper-2] [INFO] [1714084252.470850356] [zed_node]: Advertised on topic: /zed_node/imu/data
[zed_wrapper-2] [INFO] [1714084252.472115882] [zed_node]: Advertised on topic: /zed_node/imu/data_raw
[zed_wrapper-2] [INFO] [1714084252.473879112] [zed_node]: Advertised on topic: /zed_node/temperature/imu
[zed_wrapper-2] [INFO] [1714084252.475563973] [zed_node]: Advertised on topic: /zed_node/imu/mag
[zed_wrapper-2] [INFO] [1714084252.477147105] [zed_node]: Advertised on topic: /zed_node/atm_press
[zed_wrapper-2] [INFO] [1714084252.478324085] [zed_node]: Advertised on topic: /zed_node/temperature/left
[zed_wrapper-2] [INFO] [1714084252.479508425] [zed_node]: Advertised on topic: /zed_node/temperature/right
[zed_wrapper-2] [INFO] [1714084252.481494891] [zed_node]: Advertised on topic: /zed_node/left_cam_imu_transform
[zed_wrapper-2] [INFO] [1714084252.481624013] [zed_node]: Camera-IMU Translation: 
[zed_wrapper-2]  -0.002 -0.023 0.00022
[zed_wrapper-2] [INFO] [1714084252.481755600] [zed_node]: Camera-IMU Rotation:
[zed_wrapper-2] FFFFD0EEFF10
[zed_wrapper-2] 0.999992 0.003203 0.002476
[zed_wrapper-2] -0.003200 0.999994 -0.001149
[zed_wrapper-2] -0.002480 0.001141 0.999996
[zed_wrapper-2] 
[zed_wrapper-2] [INFO] [1714084252.481811793] [zed_node]: *** Subscribers ***
[zed_wrapper-2] [WARN] [1714084252.520054305] [zed_node]:  ! Failed to set thread params! - Policy not supported
[zed_wrapper-2] [WARN] [1714084252.520316838] [zed_node]:  ! Failed to set thread params! - Policy not supported
[INFO] [component_container-3]: process started with pid [29234]
[component_container-3] [ERROR] [1714084253.818515167] [visual_slam_launch_container]: Could not find requested resource in ament index
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'image_format_node_left' of type 'nvidia::isaac_ros::image_proc::ImageFormatConverterNode' in container '/visual_slam_launch_container': Could not find requested resource in ament index
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'image_format_node_right' of type 'nvidia::isaac_ros::image_proc::ImageFormatConverterNode' in container '/visual_slam_launch_container': Could not find requested resource in ament index
[component_container-3] [ERROR] [1714084253.824631720] [visual_slam_launch_container]: Could not find requested resource in ament index
[component_container-3] [INFO] [1714084253.829184342] [visual_slam_launch_container]: Load Library: /workspaces/isaac_ros-dev/install/isaac_ros_visual_slam/lib/libvisual_slam_node.so
[component_container-3] [INFO] [1714084254.109236130] [visual_slam_launch_container]: Found class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-3] [INFO] [1714084254.109418501] [visual_slam_launch_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<nvidia::isaac_ros::visual_slam::VisualSlamNode>
[component_container-3] [INFO] [1714084254.252487008] [visual_slam_node]: cuVSLAM version: 11.4
[component_container-3] [INFO] [1714084258.592216764] [visual_slam_node]: Time taken by CUVSLAM_WarmUpGPU(): 4.339299
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/visual_slam_node' in container '/visual_slam_launch_container'

I realized in the .launch file that camera_model is ZED2 - changed it using colcon build --packages-select Isaac_ros_visual_slam.

  1. In which file can I change the subscriber policy? I saw that policy in zed.yaml from Isaac ROS and common.yaml from ZED are the same, so maybe is the Visual SLAM node?
  2. When I change a file from the package isaac_ros_visual_slam, which is the correct way to use colcon build? since zed packages are built differently.

Hardware

  • Jetson Orin Nano dev Kit 8GB with Jetpack 5.1.2
  • Zed2i with SDK 4.0.6

I am quite new in this field, so I apologize if questions are easy.

Thanks

Hi @jim.fabian

Looking these warnings there is something strange about the ZED configuration

Check your advanced parameters.

If you didn’t change anything, which version of the zed wrapper are you using?

Best,
Raffaello

My solution to this problem I was having

FYI: As a beginner with ROS2 and Isaac ROS, I recognize this might not always be the ideal solution, and there could be more efficient approaches available.

I’ve discovered that with many of the Isaac ROS packages, such as VSLAM and nvblox, using a ZED camera can lead to issues unless the camera and the main package are launched separately. So for VSLAM I made a launch file that would launch the ZED wrapper with the correct params and the main VSLAM laucnh file (VSLAM launch file edited so it wouldn’t launch the camera). These are what my new files looked like.

Main launch file

from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import ThisLaunchFileDir

def generate_launch_description():
    return LaunchDescription([
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/zed_camera.launch.py']),
            launch_arguments={'camera_model': 'zedxm'}.items(),
        ),
        IncludeLaunchDescription(
            PythonLaunchDescriptionSource([ThisLaunchFileDir(), '/isaac_ros_visual_slam_zedxm_v2.launch.py']),
        ),
    ])

ZED launch file

import os

from ament_index_python.packages import get_package_share_directory

from launch import LaunchDescription
from launch.actions import (
    DeclareLaunchArgument,
    OpaqueFunction,
    SetEnvironmentVariable
)
from launch.conditions import IfCondition
from launch.substitutions import (
    LaunchConfiguration,
    Command,
    TextSubstitution
)
from launch_ros.actions import Node

default_config_common = os.path.join(
    get_package_share_directory('zed_wrapper'),
    'config',
    'common.yaml'
)

default_xacro_path = os.path.join(
    get_package_share_directory('zed_wrapper'),
    'urdf',
    'zed_descr.urdf.xacro'
)


def parse_array_param(param):
    str = param.replace('[', '')
    str = str.replace(']', '')
    arr = str.split(',')

    return arr


def launch_setup(context, *args, **kwargs):

    wrapper_dir = get_package_share_directory('zed_wrapper')

    svo_path = LaunchConfiguration('svo_path')

    use_sim_time = LaunchConfiguration('use_sim_time')
    sim_mode = LaunchConfiguration('sim_mode')
    sim_address = LaunchConfiguration('sim_address')
    sim_port = LaunchConfiguration('sim_port')

    camera_name = LaunchConfiguration('camera_name')
    camera_model = LaunchConfiguration('camera_model')

    node_name = LaunchConfiguration('node_name')

    config_common_path = LaunchConfiguration('config_path')

    serial_number = LaunchConfiguration('serial_number')

    publish_urdf = LaunchConfiguration('publish_urdf')
    publish_tf = LaunchConfiguration('publish_tf')
    publish_map_tf = LaunchConfiguration('publish_map_tf')
    publish_imu_tf = LaunchConfiguration('publish_imu_tf')
    xacro_path = LaunchConfiguration('xacro_path')

    ros_params_override_path = LaunchConfiguration('ros_params_override_path')

    gnss_frame = LaunchConfiguration('gnss_frame')

    camera_name_val = camera_name.perform(context)
    camera_model_val = camera_model.perform(context)

    if (camera_name_val == ''):
        camera_name_val = 'zed'

    config_camera_path = os.path.join(
        get_package_share_directory('zed_wrapper'),
        'config',
        camera_model_val + '.yaml'
    )

    rsp_node = Node(
        condition=IfCondition(publish_urdf),
        package='robot_state_publisher',
        namespace=camera_name_val,
        executable='robot_state_publisher',
        name='zed_state_publisher',
        output='screen',
        parameters=[{
            'robot_description': Command(
                [
                    'xacro', ' ', xacro_path, ' ',
                    'camera_name:=', camera_name_val, ' ',
                    'camera_model:=', camera_model_val, ' '
                ])
        }]
    )

    zed_wrapper_node = Node(
        package='zed_wrapper',
        namespace=camera_name_val,
        executable='zed_wrapper',
        name=node_name,
        output='screen',

        parameters=[

            config_common_path,  # Common parameters
            config_camera_path,  # Camera related parameters

            {
                'use_sim_time': use_sim_time,
                'simulation.sim_enabled': sim_mode,
                'simulation.sim_address': sim_address,
                'simulation.sim_port': sim_port,
                'general.camera_name': camera_name_val,
                'general.camera_model': camera_model_val,
                'general.svo_file': svo_path,
                'general.serial_number': serial_number,
                'pos_tracking.publish_tf': publish_tf,
                'pos_tracking.publish_map_tf': publish_map_tf,
                'sensors.publish_imu_tf': publish_imu_tf
            },
            ros_params_override_path,
        ]
    )

    return [
        rsp_node,
        zed_wrapper_node
    ]


def generate_launch_description():

    return LaunchDescription(
        [
            SetEnvironmentVariable(name='RCUTILS_COLORIZED_OUTPUT', value='1'),
            DeclareLaunchArgument(
                'camera_name',
                default_value=TextSubstitution(text='zed'),
                description='The name of the camera. It can be different from the camera model and it will be used as node namespace.'),
            DeclareLaunchArgument(
                'camera_model',
                description='[REQUIRED] The model of the camera. Using a wrong camera model can disable camera features.',
                choices=['zed', 'zedm', 'zed2', 'zed2i', 'zedx', 'zedxm']),
            DeclareLaunchArgument(
                'node_name',
                default_value='zed_node',
                description='The name of the zed_wrapper node. All the topic will have the same prefix: /<camera_name>/<node_name>/'),
            DeclareLaunchArgument(
                'config_path',
                default_value=TextSubstitution(text=default_config_common),
                description='Path to the YAML configuration file for the camera.'),
            DeclareLaunchArgument(
                'serial_number',
                default_value='0',
                description='The serial number of the camera to be opened. It is mandatory to use this parameter in multi-camera rigs to distinguish between different cameras.'),
            DeclareLaunchArgument(
                'publish_urdf',
                default_value='true',
                description='Enable URDF processing and starts Robot State Published to propagate static TF.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'publish_tf',
                default_value='true',
                description='Enable publication of the odom -> camera_link TF.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'publish_map_tf',
                default_value='true',
                description='Enable publication of the map -> odom TF. Note: Ignored if publish_tf is False.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'publish_imu_tf',
                default_value='true',
                description='Enable publication of the IMU TF. Note: Ignored if publish_tf is False.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'xacro_path',
                default_value=TextSubstitution(text=default_xacro_path),
                description='Path to the camera URDF file as a xacro file.'),
            DeclareLaunchArgument(
                'ros_params_override_path',
                default_value='',
                description='The path to an additional parameters file to override the defaults'),
            DeclareLaunchArgument(
                'svo_path',
                default_value=TextSubstitution(text='live'),
                description='Path to an input SVO file. Note: overrides the parameter general.svo_file in common.yaml.'),
            DeclareLaunchArgument(
                'gnss_frame',
                default_value='',
                description='Name of the GNSS link frame. Leave empty if not used. Remember to set the transform camera_link → gnss_frame in the URDF file.'),
            DeclareLaunchArgument(
                'use_sim_time',
                default_value='false',
                description='Enable simulation time mode.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'sim_mode',
                default_value='false',
                description='Enable simulation mode. Set sim_address and sim_port to configure the simulator input.',
                choices=['true', 'false']),
            DeclareLaunchArgument(
                'sim_address',
                default_value='127.0.0.1',
                description='The connection address of the simulation server. See the documentation of the supported simulation plugins for more information.'),
            DeclareLaunchArgument(
                'sim_port',
                default_value='30000',
                description='The connection port of the simulation server. See the documentation of the supported simulation plugins for more information.'),
            OpaqueFunction(function=launch_setup)
        ]
    )

VSLAM launch file (Make sure you change the remappings for your cameras publishers )

import os

from ament_index_python.packages import get_package_share_directory

import launch
from launch.actions import TimerAction, DeclareLaunchArgument
from launch.substitutions import Command, LaunchConfiguration, TextSubstitution
from launch_ros.actions import ComposableNodeContainer, Node
from launch_ros.descriptions import ComposableNode


def generate_launch_description():
    """Launch file which brings up visual slam node configured for ZEDXM."""
    "The zed camera mode name. zed, zed2, zed2i, zedm, zedx or zedxm"

    camera_model = 'zedxm'

    visual_slam_node = ComposableNode(
        name='visual_slam_node',
        package='isaac_ros_visual_slam',
        plugin='nvidia: : isaac_ros: : visual_slam: : VisualSlamNode',
        parameters=[{'denoise_input_images': False,
                     'rectified_images': True,
                     'enable_debug_mode': False,
                     'debug_dump_path': '/ tmp/cuvslam',
                     'enable_slam_visualization': True,
                     'enable_landmarks_view': True,
                     'enable_observations_view': True,
                     'map_frame': 'map',
                     'odom_frame': 'odom',
                     'base_frame': camera_model + '_camera_center',
                     'input_imu_frame': camera_model + '_imu_link',
                     'enable_imu_fusion': False,
                     'gyro_noise_density': 0.000244,
                     'gyro_random_walk': 0.000019393,
                     'accel_noise_density': 0.001862,
                     'accel_random_walk': 0.003,
                     'calibration_frequency': 200.0,
                     'img_jitter_threshold_ms': 35.00
                     }],
        remappings=[('stereo_camera/left/image', 'zed/zed_node/left/image_rect_color'),
                    ('stereo_camera/left/camera_info',
                    'zed/zed_node/left/camera_info'),
                    ('stereo_camera/right/image',
                    'zed/zed_node/right/image_rect_color'),
                    ('stereo_camera/right/camera_info',
                    'zed/zed_node/right/camera_info'),
                    ('visual_slam/imu', 'zed/zed_node/imu/data')]
    )

    image_format_converter_node_left = ComposableNode(
        package='isaac_ros_image_proc',
        plugin='nvidia: : isaac_ros: : image_proc: : ImageFormatConverterNode',
        name='image_format_node_left',
        parameters=[{'encoding_desired': 'rgb8',
                     }],
        remappings=[
            ('image_raw', 'zed/zed_node/left/image_rect_color'),
            ('image', 'zed/zed_node/left/image_rect_color')]
    )

    image_format_converter_node_right = ComposableNode(
        package='isaac_ros_image_proc',
        plugin='nvidia: : isaac_ros: : image_proc: : ImageFormatConverterNode',
        name='image_format_node_right',
        parameters=[{'encoding_desired': 'rgb8',
                     }],
        remappings=[
            ('image_raw', 'zed/zed_node/right/image_rect_color'),
            ('image', 'zed/zed_node/right/image_rect_color')]
    )

    visual_slam_launch_container = ComposableNodeContainer(
        name='visual_slam_launch_container',
        namespace='',
        package='rclcpp_components',
        executable='component_container',
        composable_node_descriptions=[
            image_format_converter_node_left,
            image_format_converter_node_right,
            visual_slam_node
        ],
        output='screen'
    )

    return launch.LaunchDescription([
        TimerAction(
            period=5.0,  # Delay in seconds
            actions=[visual_slam_launch_container]
        ),
    ])

Hi @conorspalvieri1

(I reformatted your code, it was impossible to read)

When combining multiple packages and make your own script, the best way is to create a launcher file with ROS 2 nodes, instead of using our demo

Best,
Raffaello

Hello @Raffaello

In zed.yaml I only changed the frames of video, but I did undo it and had the same result.

Regarding zed wrapper version, I am using the version Humble-v4.0.8 before a commit made in may which caused errors in compilation.

I am seeing I am using ZED SDK 4.0.6, but the other versions are only compatible for Foxy. How can I update the ZED SDK in Docker?

Hi @jim.fabian

I don’t suggest updating the latest ZED SDK at this time.

All Isaac ROS packages are tested with ZED SDK 4.0.6, you can use ros_zed_wrapper release Foxy-Humble-v4.0.5

Hi @Raffaello. Thanks! In that case how can I downgrade the SDK version? I only see these arguments in Dockerfile.zed, since I have 4.0.6.

ARG ZED_SDK_MAJOR=4
ARG ZED_SDK_MINOR=0

These parameters are working only for the x86 version.

For Jetson, you need to change manually the link here: isaac_ros_common/docker/scripts/install-zed-aarch64.sh at main · NVIDIA-ISAAC-ROS/isaac_ros_common · GitHub

Hello @Raffaello, thanks for the fast reply. I did different moves, none of them worked :c

  1. With ZED SDK 4.0.5
  • Change
wget -q --no-check-certificate -O ZED_SDK_Linux.run https://stereolabs.sfo2.digitaloceanspaces.com/zedsdk/QA/JP5.1.2/ZED_SDK_Tegra_L4T35.4_v4.0.5.zstd.run
  • And execute
rosdep install --from-paths src --ignore-src -r -y 
colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release 
  • Got this error
CMake Error at CMakeLists.txt:78 (find_package):
  By not providing "FindZED.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "ZED", but
  CMake did not find one.

  Could not find a package configuration file provided by "ZED" (requested
  version 3) with any of the following names:

    ZEDConfig.cmake
    zed-config.cmake

  Add the installation prefix of "ZED" to CMAKE_PREFIX_PATH or set "ZED_DIR"
  to a directory containing one of the above files.  If "ZED" provides a
  separate development package or SDK, be sure it has been installed.
  • Same error with both zed-wrapper download:
    • git clone https://github.com/stereolabs/zed-ros2-wrapper.git -b foxy-humble-v4.0.5
    • From release notes
  1. Leave ZED SDK 4.0.6, and download from release notes foxy-humble-v4.0.5
  • colcon build
CMake Warning at CMakeLists.txt:116 (find_package):
  By not providing "Findzed_interfaces.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "zed_interfaces", but CMake did not find one.

  Could not find a package configuration file provided by "zed_interfaces"
  with any of the following names:

    zed_interfacesConfig.cmake
    zed_interfaces-config.cmake

  Add the installation prefix of "zed_interfaces" to CMAKE_PREFIX_PATH or set
  "zed_interfaces_DIR" to a directory containing one of the above files.  If
  "zed_interfaces" provides a separate development package or SDK, be sure it
  has been installed.


CMake Error at /opt/ros/humble/share/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake:77 (message):
  ament_target_dependencies() the passed package name 'zed_interfaces' was
  not found before
Call Stack (most recent call first):
  CMakeLists.txt:209 (ament_target_dependencies)
  1. Leave ZED SDK 4.0.6, and cloned from Repository
  • From repository
git clone https://github.com/stereolabs/zed-ros2-wrapper.git -b foxy-humble-v4.0.5 --recurse-submodules
  • Output
[Processing: isaac_ros_visual_slam, zed_components]                               
--- stderr: zed_components                                                            
In file included from /workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/include/zed_camera_component.hpp:19,
                 from /workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component.cpp:20:
/usr/local/zed/include/sl/Fusion.hpp:68:64: note: #pragma message: ~ FUSION SDK is distributed in Early Access ~
   68 | #pragma message("~ FUSION SDK is distributed in Early Access ~")
      |                                                                ^
/workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component.cpp: In member function ‘bool stereolabs::ZedCamera::startPosTracking()’:
/workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component.cpp:4042:12: error: ‘struct sl::PositionalTrackingFusionParameters’ has no member named ‘gnss_initialisation_distance’
 4042 |     params.gnss_initialisation_distance = mGnssInitDistance;
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component.cpp: In member function ‘void stereolabs::ZedCamera::processGeoPose()’:
/workspaces/isaac_ros-dev/src/WHOX_Autonomy_stack/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component.cpp:6546:38: error: cannot convert ‘sl::GNSS_CALIBRATION_STATE’ to ‘sl::POSITIONAL_TRACKING_STATE’ in assignment
 6546 |   mGeoPoseStatus = mFusion.getGeoPose(mLastGeoPose);
      |                    ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
      |                                      |
      |                                      sl::GNSS_CALIBRATION_STATE
make[2]: *** [CMakeFiles/zed_camera_component.dir/build.make:104: CMakeFiles/zed_camera_component.dir/src/zed_camera/src/zed_camera_component.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:164: CMakeFiles/zed_camera_component.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
---
Failed   <<< zed_components [51.7s, exited with code 2]

Help please c’:

1 Like

@Raffaello Hello. I was looking deeply some warnings and I saw a problem with the policy from Cmake version. I found out that ros2-wrapper with branch foxy-humble-4.0.5 requires a cmake_minimum_version of 3.5 and policy is not set. On the other hand, Isaac ROS Visual SLAM requires a minimum version of 3.22.1 and policy is configured as follows:

if(POLICY CMP0148)
    cmake_policy(SET CMP0148 OLD)
  endif()

If the cmake version is the problem, can you please share which cmake version is required, as well as the versions of the repositories from Isaac ROS (common, VSLAM, Nvblox)?

1 Like