Realsense D455 with ros-humble-isaac-ros-realsense

Hi,

I am using the Issac ROS dev base container (nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970) on my Jetson Xavier NX Jetpack 5.1.4. I am trying to install the package “ros-humble-isaac-ros-realsense” to use my D455 camera. But apt-get update and install returns that the package does not exist. It seems that there’s no apt source list for that package.

$ docker run -ti --rm --runtime nvidia nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970
root@0ec14ea9dbaf:/# ls /etc/apt/sources.list.d/
github_git-lfs.list  github_git-lfs.list.save  kitware.list  kitware.list.save  mosquitto-dev-ubuntu-mosquitto-ppa-focal.list  ros2.list
root@0ec14ea9dbaf:/# apt-get update
Get:1 https://isaac.download.nvidia.com/isaac-ros/ubuntu/main focal InRelease [4,316 B]
Hit:2 http://ports.ubuntu.com/ubuntu-ports focal InRelease                                                                              
Get:3 https://repo.download.nvidia.com/jetson/common r35.4 InRelease [2,555 B]                                                          
Get:4 https://apt.kitware.com/ubuntu focal InRelease [15.5 kB]                                                                          
Get:5 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease [128 kB]                                                             
Get:7 http://packages.ros.org/ros2-testing/ubuntu focal InRelease [4,685 B]                                                             
Get:8 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ubuntu focal InRelease [24.6 kB] 
Get:9 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease [128 kB]                                       
Get:10 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease [128 kB]          
Get:6 https://packagecloud.io/github/git-lfs/ubuntu focal InRelease [28.0 kB]
Get:11 https://isaac.download.nvidia.com/isaac-ros/ubuntu/main focal/main arm64 Packages [514 kB]
Err:4 https://apt.kitware.com/ubuntu focal InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1A127079A92F09ED
Get:12 http://packages.ros.org/ros2-testing/ubuntu focal/main arm64 Packages [1,174 kB]
Get:13 http://ports.ubuntu.com/ubuntu-ports focal-updates/universe arm64 Packages [1,467 kB]
Get:14 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ubuntu focal/main arm64 Packages [2,599 B]
Get:15 http://ports.ubuntu.com/ubuntu-ports focal-updates/main arm64 Packages [3,509 kB]                                                
Get:16 http://ports.ubuntu.com/ubuntu-ports focal-updates/multiverse arm64 Packages [12.0 kB]                                           
Get:17 http://ports.ubuntu.com/ubuntu-ports focal-updates/restricted arm64 Packages [60.3 kB]                                           
Get:18 http://ports.ubuntu.com/ubuntu-ports focal-security/universe arm64 Packages [1,177 kB]                                           
Get:19 http://ports.ubuntu.com/ubuntu-ports focal-security/multiverse arm64 Packages [5,907 B]                                          
Get:20 http://ports.ubuntu.com/ubuntu-ports focal-security/restricted arm64 Packages [60.0 kB]                                          
Get:21 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 Packages [3,124 kB]                                               
Fetched 11.6 MB in 13s (912 kB/s)                                                                                                       
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.kitware.com/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1A127079A92F09ED
W: Failed to fetch https://apt.kitware.com/ubuntu/dists/focal/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1A127079A92F09ED
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@0ec14ea9dbaf:/# apt-cache search ros-humble-isaac-ros-realsense
root@0ec14ea9dbaf:/# 

How do I install the package inside the container?

P.S: I tried the latest container which is “nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_5d698e0d23e98e2567b1c9b70abd0c1f” but it seems it only supports Jetpack 6.x which I can’t go with my Jetson Xavier NX.

Thanks.

UPDATES: I followed the ROS apt repository add to add the source list. Here is the added source in source.list.

root@0ec14ea9dbaf:/etc/apt# cat sources.list
...
deb https://repo.download.nvidia.com/jetson/common r35.4 main
deb https://isaac.download.nvidia.com/isaac-ros/ubuntu/main focal main
deb https://isaac.download.nvidia.com/isaac-ros/release-3.0 focal release-3.0

But, still no luck. By the way, this is what I see from my NX orin,

root@b91bd48679b7:/etc/apt# apt show ros-humble-isaac-ros-realsense
Package: ros-humble-isaac-ros-realsense
Version: 3.1.0-0jammy
Priority: optional
Section: misc
Maintainer: Isaac ROS Maintainers <isaac-ros-maintainers@nvidia.com>
Installed-Size: 58.4 kB
Depends: ros-humble-isaac-ros-depth-image-proc
Homepage: https://developer.nvidia.com/isaac-ros/
Download-Size: 5,254 B
APT-Sources: https://isaac.download.nvidia.com/isaac-ros/release-3 jammy/release-3.0 arm64 Packages
Description: Isaac ROS Launch Fragment for Intel RealSense cameras

So… the package does not exist in Ubuntu 20.04 focal?

Hi @ironyonghokim

Thank you to write this post, currently I don’t have a setup to test it, but you can avoid to install the realsense package from binaries, just compiling from source GitHub - IntelRealSense/realsense-ros: ROS Wrapper for Intel(R) RealSense(TM) Cameras

@Raffaello Thanks for the quick reply. But, the link is the realsense-ros pakcage, not ros-humble-issac-ros-realsense. Are they the same? For your information, when I use the container I also install “ros-humble-realsense2-*”. Here’s a snippet of my Dockerfile.

# This is for Jetpack 6.x
# FROM nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_5d698e0d23e98e2567b1c9b70abd0c1f

# This is for Jetpack 5.x
FROM nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970

RUN apt-get update \
  && apt-get install -y \
  ros-humble-librealsense2*

RUN apt-get update \
  && apt-get install -y \
  ros-humble-realsense2-* \
  ros-humble-isaac-ros-examples \
  ros-humble-isaac-ros-realsense

Is it correct that I do not need to install “ros-humble-isaac-ros-realsense” if I install “ros-humble-realsense2-*”? Am I understanding what you recommended?

More updates…

I was able to add apt source to install VSLAM, which is the package I need to use eventually.

root@ubuntu:/usr/lib# apt show ros-humble-isaac-ros-visual-slam
Package: ros-humble-isaac-ros-visual-slam
Version: 2.1.0-0focal
Priority: optional
Section: misc
Maintainer: Swapnesh Wani <swani@nvidia.com>
Installed-Size: 6,687 kB
Depends: libc6 (>= 2.29), libgcc-s1 (>= 3.0), libopencv-core4.2 (>= 4.2.0+dfsg), libstdc++6 (>= 9), ros-humble-console-bridge-vendor, ros-humble-cv-bridge, ros-humble-geometry-msgs, ros-humble-isaac-ros-nitros, ros-humble-isaac-ros-visual-slam-interfaces, ros-humble-nav-msgs, ros-humble-rclcpp, ros-humble-rclcpp-components, ros-humble-sensor-msgs, ros-humble-tf2-geometry-msgs, ros-humble-tf2-msgs, ros-humble-tf2-ros, ros-humble-visualization-msgs
Homepage: https://developer.nvidia.com/isaac-ros-gems/
Download-Size: 1,682 kB
APT-Manual-Installed: yes
APT-Sources: https://isaac.download.nvidia.com/isaac-ros/ubuntu/main focal/main arm64 Packages
Description: Visual SLAM Package

When I run this (I didn’t connect the camera yet),

root@ubuntu:/usr/lib# ros2 launch isaac_ros_visual_slam isaac_ros_visual_slam_realsense.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-11-08-22-11-54-328849-ubuntu-28319
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [28366]
[INFO] [realsense2_camera_node-2]: process started with pid [28368]
[component_container-1] [INFO] [1731103915.158610912] [visual_slam_launch_container]: Load Library: /opt/ros/humble/lib/libvisual_slam_node.so
[component_container-1] [ERROR] [1731103915.166606681] [visual_slam_launch_container]: Failed to load library: Could not load library dlopen error: libcusolver.so.11: cannot open shared object file: No such file or directory, at /tmp/binarydeb/ros-humble-rcutils-5.1.3/src/shared_library.c:99
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'visual_slam_node' of type 'nvidia::isaac_ros::visual_slam::VisualSlamNode' in container '/visual_slam_launch_container': Failed to load library: Could not load library dlopen error: libcusolver.so.11: cannot open shared object file: No such file or directory, at /tmp/binarydeb/ros-humble-rcutils-5.1.3/src/shared_library.c:99
[realsense2_camera_node-2] [INFO] [1731103915.370442159] [camera.camera]: RealSense ROS v4.54.1
[realsense2_camera_node-2] [INFO] [1731103915.370721940] [camera.camera]: Built with LibRealSense v2.54.1
[realsense2_camera_node-2] [INFO] [1731103915.370790517] [camera.camera]: Running with LibRealSense v2.54.1
[realsense2_camera_node-2] [WARN] [1731103915.410935094] [camera.camera]: No RealSense devices were found!

The library “libcuresolver” does not get mounted inside the container. After googling people say that I might be using different versions of JetPack and the container image. Now, Getting Started — isaac_ros_docs documentation does not say it supports JetPack 5.x. Is there a working version of everything including realsense, ros, and nvidia vslam for JetPack 5.x?

@Raffaello Okay. I figured that the container “nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970” I am using isn’t compatible with Jetpack 5.1.4.

$ docker exec -ti b63b29061bff /bin/bash
root@ubuntu:/usr/local# ls
bin  cuda  cuda-11  cuda-11.4  etc  games  include  lib  man  OFF  sbin  share  src
root@ubuntu:/usr/local# cd cuda
root@ubuntu:/usr/local/cuda# ls
bin  include  lib64  nvvm  targets

# Here, I should expect more files when properly mounted.

Do you happen to know which Docker image in Isaac ROS Dev Base | NVIDIA NGC works for Jetpack 5.1.4?

Best,
Yongho.

No, unfortunately, the latest version of Isaac ROS for Jetpack 5 only works with 5.1.2.

You can find more details in our release notes: Release Notes — isaac_ros_docs documentation

Ah. Thank you for the information. When you say the latest version, it is most likely this tag (nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970) in Isaac ROS Dev Base | NVIDIA NGC, which was released a day before the release note? I will reflash the Jetson with Jetpack 5.1.2 and try that image.

Thanks!

Yes, this is the latest version for Jetpack 5, not the latest version in general.

Hello, I re-flashed the Jetson Xavier NX with Jetpack 5.1.2 as instructed and tried the same container for isaac sim for Nvidia VSLAM. I ran into the same problem that the libcusolver.so.11 does not exist when running the ROS2 launch file.

After hours of Googling, I found the post that @dusty_nv left and the post was that from Jetpack 5.x the libcusolver.so.11 should be present inside the container, not mounted from the host via nvidia-container-runtime. If this is correct, the image (nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_42f50fd45227c63eb74af1d69ddc2970) I am using should have the library inside the container.

Is it correct that I need to install CUDA library inside the container? Why doesn’t the image come with CUDA if the image was built for Jetpack 5.1.2?

Best,
Yongho.