This shows no “nitros” anywhere in the topic names. The guide says “You should see topics related to the ZED camera, such as /zed/zed_node/rgb/color/rect/image/nitros and /zed/zed_node/depth/depth_registered/nitros"
I followed step 5 instructions, and my script does contain these packages. Is this script supposed to run with the “-i ros2_humble.zed …etc” command when starting the container?
In any case, here is my install-zed-aarch64.sh :
#!/bin/bash
# Download dependencies for zed SDK installation RUN file
sudo apt-get update -y || true
sudo apt-get install --no-install-recommends lsb-release wget less zstd udev sudo apt-transport-https -y
# Download zed SDK installation RUN file to /tmp directory
cd /tmp
URL=https://download.stereolabs.com/zedsdk/5.1/l4t36.4/jetsons
wget -q --no-check-certificate -O ZED_SDK_Linux.run ${URL}
SIZE=$(du -sb './ZED_SDK_Linux.run' | awk '{ print $1 }')
if ((SIZE<1024)) ; then
echo "ERROR: ZED_SDK_Linux.run size is not valid: ${SIZE}B!!!";
echo " * Verify the ZED SDK download link validity: " ${URL} ;
exit 1
fi
sudo chmod 777 ./ZED_SDK_Linux.run
sudo ./ZED_SDK_Linux.run silent skip_od_module skip_python skip_drivers
# Symlink required to use the streaming features on Jetson inside a container, based on
# https://github.com/stereolabs/zed-docker/blob/fd514606174d8bb09f21a229f1099205b284ecb6/4.X/l4t/devel/Dockerfile#L27C5-L27C95
sudo ln -sf /usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0 /usr/lib/aarch64-linux-gnu/libv4l2.so
# Install zed-ros2-wrapper dependencies
sudo apt-get update && sudo apt-get install -y \
ros-humble-zed-msgs \
ros-humble-nmea-msgs \
ros-humble-geographic-msgs \
ros-humble-robot-localization \
#ros-humble-point-cloud-transport \
#ros-humble-point-cloud-transport-plugins \
#ros-humble-draco-point-cloud-transport \
#ros-humble-zlib-point-cloud-transport \
#ros-humble-zstd-point-cloud-transport \
#ros-humble-point-cloud-transport \
# Uncomment the point cloud transport packages above if you want to use point cloud compression.
# Install base Isaac ROS Nitros packages
sudo apt-get update && sudo apt-get install -y \
ros-humble-isaac-ros-common \
ros-humble-isaac-ros-nitros \
ros-humble-isaac-ros-managed-nitros \
ros-humble-isaac-ros-nitros-image-type
# Cleanup
sudo rm -rf /usr/local/zed/resources/*
rm -rf ZED_SDK_Linux.run
sudo rm -rf /var/lib/apt/lists/*
admin@giorgos-desktop:/workspaces/isaac_ros-dev$ ls src/isaac_ros_common/docker/scripts/install-zed-aarch64.sh
src/isaac_ros_common/docker/scripts/install-zed-aarch64.sh
I removed the images and did a clean rebuild, the scripts seem to run so I am very confused as to why I cannot find the packages inside the docker. Here is my console output to see what I mean
giorgos@giorgos-desktop:~/ros2_ws/isaac_ros-dev/src/isaac_ros_common$ cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh -i ros2_humble.zed \
-a "-v /usr/local/zed/settings:/usr/local/zed/settings \
-v /usr/local/zed/resources:/usr/local/zed/resources"
Launching Isaac ROS Dev container with image key aarch64.ros2_humble.zed: /home/giorgos/ros2_ws/isaac_ros-dev/
Building aarch64.ros2_humble.zed base as image: isaac_ros_dev-aarch64
Building layered image for key aarch64.ros2_humble.zed as isaac_ros_dev-aarch64
Using configured docker search paths: /home/giorgos/ros2_ws/isaac_ros-dev/src/isaac_ros_common/scripts/../docker
Checking if base image nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble-zed_ccc93862c478342dd3453aa6d38e3967 exists on remote registry
Checking if base image nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a exists on remote registry
Found pre-built base image: nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a
aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a: Pulling from nvidia/isaac/ros
Digest: sha256:6b95b06a7bed6fd23f541795acc3b3f58356ea6392643d7d911a6fbf4aa4d6f1
Status: Downloaded newer image for nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a
nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a
Finished pulling pre-built base image: nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a
Resolved the following 1 Dockerfiles for target image: aarch64.ros2_humble.zed
/home/giorgos/ros2_ws/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.zed
Building /home/giorgos/ros2_ws/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.zed as image: isaac_ros_dev-aarch64 with base: nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a
[+] Building 50.6s (9/9) FINISHED docker:default
=> [internal] load build definition from Dockerfile.zed 0.0s
=> => transferring dockerfile: 659B 0.0s
=> WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 2) 0.0s
=> [internal] load metadata for nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [1/4] FROM nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_adc428c7077de4984a00b63c55903b0a 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 2.49kB 0.0s
=> [2/4] COPY scripts/install-zed-aarch64.sh /opt/zed/install-zed.sh 0.0s
=> [3/4] COPY scripts/zed-entrypoint.sh /usr/local/bin/scripts/entrypoint_additions/zed-entrypoint.sh 0.0s
=> [4/4] RUN chmod +x /opt/zed/install-zed.sh && /opt/zed/install-zed.sh 48.4s
=> exporting to image 2.0s
=> => exporting layers 2.0s
=> => writing image sha256:a2e927e210e94fd639e8041939a0b8f98edf08a6bac487aa156b8ac218d34f59 0.0s
=> => naming to docker.io/library/isaac_ros_dev-aarch64 0.0s
1 warning found (use docker --debug to expand):
- InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 2)
Running isaac_ros_dev-aarch64-container
Creating non-root container 'admin' for host user uid=1000:gid=1000
addgroup: The GID `1001' is already in use.
adduser: The group `jtop' does not exist.
Sourcing entryrypoint extension: /usr/local/bin/scripts/entrypoint_additions/zed-entrypoint.sh
Checking ZED SDK...
* /usr/local/zed/ exists. Changing permissions
* ZED SDK available:
Stereolabs ZED SDK Version : 5.1.1
* Stopping hotplug events dispatcher systemd-udevd [ OK ]
* Starting hotplug events dispatcher systemd-udevd [ OK ]
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
admin@giorgos-desktop:/workspaces/isaac_ros-dev$ ros2 pkg list | grep isaac
admin@giorgos-desktop:/workspaces/isaac_ros-dev$
No, manual installation of the packages worked. Below is the log. This suggests that the script install-zed-aarch64.sh was never run, but I cannot find the reason.
admin@giorgos-desktop:/workspaces/isaac_ros-dev$ sudo apt-get install -y ros-humble-isaac-ros-common ros-humble-isaac-ros-nitros
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
ros-humble-gxf-isaac-atlas ros-humble-gxf-isaac-gems ros-humble-gxf-isaac-gxf-helpers ros-humble-gxf-isaac-message-compositor ros-humble-gxf-isaac-optimizer ros-humble-gxf-isaac-sight ros-humble-isaac-ros-gxf ros-humble-magic-enum
The following NEW packages will be installed:
ros-humble-gxf-isaac-atlas ros-humble-gxf-isaac-gems ros-humble-gxf-isaac-gxf-helpers ros-humble-gxf-isaac-message-compositor ros-humble-gxf-isaac-optimizer ros-humble-gxf-isaac-sight ros-humble-isaac-ros-common ros-humble-isaac-ros-gxf ros-humble-isaac-ros-nitros
ros-humble-magic-enum
0 upgraded, 10 newly installed, 0 to remove and 389 not upgraded.
Need to get 22.4 MB of archives.
After this operation, 119 MB of additional disk space will be used.
Get:1 http://packages.ros.org/ros2/ubuntu jammy/main arm64 ros-humble-magic-enum arm64 0.9.5-1jammy.20250701.031512 [26.0 kB]
Get:2 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-isaac-ros-common arm64 3.2.5-0jammy [29.7 kB]
Get:3 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-isaac-ros-gxf arm64 3.2.5-0jammy [14.2 MB]
Get:4 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-gems arm64 3.2.5-0jammy [179 kB]
Get:5 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-atlas arm64 3.2.5-0jammy [1,761 kB]
Get:6 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-gxf-helpers arm64 3.2.5-0jammy [919 kB]
Get:7 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-message-compositor arm64 3.2.5-0jammy [894 kB]
Get:8 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-optimizer arm64 3.2.10-0jammy [1,090 kB]
Get:9 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-gxf-isaac-sight arm64 3.2.5-0jammy [1,108 kB]
Get:10 https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 ros-humble-isaac-ros-nitros arm64 3.2.5-0jammy [2,275 kB]
Fetched 22.4 MB in 3s (6,611 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78, <> line 10.)
debconf: falling back to frontend: Readline
Selecting previously unselected package ros-humble-isaac-ros-common.
(Reading database ... 166244 files and directories currently installed.)
Preparing to unpack .../0-ros-humble-isaac-ros-common_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-isaac-ros-common (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-magic-enum.
Preparing to unpack .../1-ros-humble-magic-enum_0.9.5-1jammy.20250701.031512_arm64.deb ...
Unpacking ros-humble-magic-enum (0.9.5-1jammy.20250701.031512) ...
Selecting previously unselected package ros-humble-isaac-ros-gxf.
Preparing to unpack .../2-ros-humble-isaac-ros-gxf_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-isaac-ros-gxf (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-gems.
Preparing to unpack .../3-ros-humble-gxf-isaac-gems_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-gems (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-atlas.
Preparing to unpack .../4-ros-humble-gxf-isaac-atlas_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-atlas (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-gxf-helpers.
Preparing to unpack .../5-ros-humble-gxf-isaac-gxf-helpers_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-gxf-helpers (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-message-compositor.
Preparing to unpack .../6-ros-humble-gxf-isaac-message-compositor_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-message-compositor (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-optimizer.
Preparing to unpack .../7-ros-humble-gxf-isaac-optimizer_3.2.10-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-optimizer (3.2.10-0jammy) ...
Selecting previously unselected package ros-humble-gxf-isaac-sight.
Preparing to unpack .../8-ros-humble-gxf-isaac-sight_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-gxf-isaac-sight (3.2.5-0jammy) ...
Selecting previously unselected package ros-humble-isaac-ros-nitros.
Preparing to unpack .../9-ros-humble-isaac-ros-nitros_3.2.5-0jammy_arm64.deb ...
Unpacking ros-humble-isaac-ros-nitros (3.2.5-0jammy) ...
Setting up ros-humble-isaac-ros-common (3.2.5-0jammy) ...
Setting up ros-humble-magic-enum (0.9.5-1jammy.20250701.031512) ...
Setting up ros-humble-isaac-ros-gxf (3.2.5-0jammy) ...
Setting up ros-humble-gxf-isaac-optimizer (3.2.10-0jammy) ...
Setting up ros-humble-gxf-isaac-sight (3.2.5-0jammy) ...
Setting up ros-humble-gxf-isaac-message-compositor (3.2.5-0jammy) ...
Setting up ros-humble-gxf-isaac-gems (3.2.5-0jammy) ...
Setting up ros-humble-gxf-isaac-atlas (3.2.5-0jammy) ...
Setting up ros-humble-gxf-isaac-gxf-helpers (3.2.5-0jammy) ...
Setting up ros-humble-isaac-ros-nitros (3.2.5-0jammy) ...
Following up the manual installation of the isaac packages, I rebuild with colcon the wrapper succesfully. No info messages stated that nitros will be used however. And when I then launched the camera node, the topics did not have “nitros” in them.
You can ignore the last message, it was fixed. I had ommited something in the apt-get install commands. However, it might still be interesting for you to figure out if there is something wrong with the guide, because the script did not install the isaac ros packages for me, as if it failed silently. Also, before the rosdep install command, it could be nice to add a rosdep update, because that part for me was failing if I did not run rosdep update beforehand.