Hi there,
I’m working on getting ZED ROS2 nodes running with 4 ZED X cameras and NTROS enabled on a Jetpack 6.0.0 system, following these instructions:
Since I’m using JetPack 6.0.0, I’m using Isaac ROS 3.1 instead of 3.2 as specified in the instructions:
git clone --branch release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git --recurse-submodules1
Since I’m using ZED SDK 5.0.5, I’ve also cloned the corresponding zed-ros2-wrapper version:
git clone --branch humble-v5.0.0 https://github.com/stereolabs/zed-ros2-wrapper.git
However, when building the zed_wrapper ROS2 package, I see this error:
admin@nvidia-desktop:/workspaces/isaac_ros-dev$ colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release --packages-up-to zed_wrapper
Starting >>> zed_components
[Processing: zed_components]
[Processing: zed_components]
--- stderr: zed_components
* ISAAC ROS Nitros transport is available
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_main.cpp: In member function ‘void stereolabs::ZedCamera::callback_setRoi(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<zed_msgs::srv::SetROI_Request_<std::allocator<void> > >, std::shared_ptr<zed_msgs::srv::SetROI_Response_<std::allocator<void> > >)’:
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_main.cpp:8063:40: error: ‘NitrosDiagnosticsConfig’ is not a member of ‘nvidia::isaac_ros::nitros’; did you mean ‘NitrosStatisticsConfig’?
8063 | nvidia::isaac_ros::nitros::NitrosDiagnosticsConfig(), mQos);
| ^~~~~~~~~~~~~~~~~~~~~~~
| NitrosStatisticsConfig
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_video_depth.cpp: In lambda function:
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_video_depth.cpp:177:38: error: ‘NitrosDiagnosticsConfig’ is not a member of ‘nvidia::isaac_ros::nitros’; did you mean ‘NitrosStatisticsConfig’?
177 | nvidia::isaac_ros::nitros::NitrosDiagnosticsConfig(), mQos);
| ^~~~~~~~~~~~~~~~~~~~~~~
| NitrosStatisticsConfig
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_video_depth.cpp: In member function ‘void stereolabs::ZedCamera::initVideoDepthPublishers()’:
/workspaces/isaac_ros-dev/src/zed-ros2-wrapper/zed_components/src/zed_camera/src/zed_camera_component_video_depth.cpp:201:34: error: ‘NitrosDiagnosticsConfig’ is not a member of ‘nvidia::isaac_ros::nitros’; did you mean ‘NitrosStatisticsConfig’?
201 | nvidia::isaac_ros::nitros::NitrosDiagnosticsConfig(), mQos);
| ^~~~~~~~~~~~~~~~~~~~~~~
| NitrosStatisticsConfig
gmake[2]: *** [CMakeFiles/zed_camera_component.dir/build.make:146: CMakeFiles/zed_camera_component.dir/src/zed_camera/src/zed_camera_component_video_depth.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/zed_camera_component.dir/build.make:132: CMakeFiles/zed_camera_component.dir/src/zed_camera/src/zed_camera_component_main.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:166: CMakeFiles/zed_camera_component.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2
---
Failed <<< zed_components [1min 2s, exited with code 2]
Summary: 0 packages finished [1min 3s]
1 package failed: zed_components
1 package had stderr output: zed_components
1 package not processed
Looking at the isaac_ros_nitros repo, it seems that the member name was changed between v3.1.0 and 3.2.1:
v3.1.0→NitrosStatisticsConfigv3.2.1→NitrosDiagnosticsConfig
Since NITROS support was added in zed-ros2-wrapper version humble-v5.0.0, referencing the NitrosDiagnosticsConfig member, it seems that the zed-ros2-wrapper isn’t compatible with Isaac ROS2 versions earlier than 3.2.
Question 1: Is this intentional, or is it just a bug?
I assume it’s just a bug since this section of the setup instructions implies that JetPack 6.0.0 (and hence Isaac ROS 3.1) is supported:
If you are using a different version of the JetPack SDK, you must adjust the URL accordingly. For example, if you are using JetPack 6.0, you must change
l4t36.4tol4t36.3.
I’ve also been able to build the zed_wrapper package on this system and get the camera nodes running by changing the references from NitrosStatisticsConfig to NitrosDiagnosticsConfig.
Question 2: Is the ZED ROS2 w/ NITROS integration expected to work with Jetpack 6.0.0 and Isaac ROS 3.1 systems? If so, are there any caveats to working with this configuration, or should it be fully supported?
Thanks in advance!
System Overview
- Platform: Syslogic RML A4NX (GMSL)
- JetPack: 6.0.0
- Cameras: 4x ZED X cameras
- ZED SDK: 5.0.5
- Drivers: 1.3.0