Nvblox with rosbag (r2b_galileo2)

Hi,

I am using Jetson Orin Nano 8GB Developer Kit with Jetpack 6.0. I want to try Nvblox by first taking a look the r2b_galileo2 example instead of my camera from this website:

https://nvidia-isaac-ros.github.io/concepts/scene_reconstruction/nvblox/tutorials/tutorial_realsense.html#realsense-example

This is what is showed in my terminal:

mic-711on@ubuntu:~$ cd ${ISAAC_ROS_WS}/src
git clone --recursive -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox.git isaac_ros_nvblox
fatal: destination path 'isaac_ros_nvblox' already exists and is not an empty directory.
mic-711on@ubuntu:/mnt/nova_ssd/workspaces/isaac_ros-dev/src$ cd ${ISAAC_ROS_WS}/src/isaac_ros_nvblox/nvblox_examples/realsense_splitter && \
    git update-index --assume-unchanged COLCON_IGNORE && \
    rm COLCON_IGNORE
rm: cannot remove 'COLCON_IGNORE': No such file or directory
mic-711on@ubuntu:/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_nvblox/nvblox_examples/realsense_splitter$ cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
Launching Isaac ROS Dev container with image key aarch64.ros2_humble.realsense.user: /mnt/nova_ssd/workspaces/isaac_ros-dev/
Building aarch64.ros2_humble.realsense.user base as image: isaac_ros_dev-aarch64
Building layered image for key aarch64.ros2_humble.realsense.user as isaac_ros_dev-aarch64
Using configured docker search paths: /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker
Checking if base image nvcr.io/isaac/ros:aarch64-ros2_humble-realsense-user_32b155f63ddec545d52bb654c4b55f0e exists on remote registry
Checking if base image nvcr.io/isaac/ros:aarch64-ros2_humble-realsense_6c677b302ddf2d9594dd22518b05fcae exists on remote registry
Checking if base image nvcr.io/isaac/ros:aarch64-ros2_humble_5d698e0d23e98e2567b1c9b70abd0c1f exists on remote registry
Checking if base image nvcr.io/isaac/ros:aarch64_614b366df729318fe81c054b575cee53 exists on remote registry
Resolved the following 4 Dockerfiles for target image: aarch64.ros2_humble.realsense.user
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.user
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.realsense
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.ros2_humble
/mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.aarch64
Building /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.aarch64 as image: aarch64-image with base: 
[+] Building 1.7s (26/26) FINISHED                               docker:default
 => [internal] load build definition from Dockerfile.aarch64               0.0s
 => => transferring dockerfile: 8.32kB                                     0.0s
 => [internal] load metadata for nvcr.io/nvidia/l4t-cuda:12.2.12-devel     1.6s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [stage-0  1/22] FROM nvcr.io/nvidia/l4t-cuda:12.2.12-devel@sha256:f9c  0.0s
 => CACHED [stage-0  2/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base &&  0.0s
 => CACHED [stage-0  3/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  4/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  5/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0  6/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0  7/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  8/22] RUN update-alternatives --install /usr/bin/pyt  0.0s
 => CACHED [stage-0  9/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 10/22] RUN python3 -m pip install -U     Cython     p  0.0s
 => CACHED [stage-0 11/22] RUN update-alternatives --install /usr/bin/llv  0.0s
 => CACHED [stage-0 12/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 13/22] RUN --mount=type=cache,target=/var/cache/apt m  0.0s
 => CACHED [stage-0 14/22] RUN mkdir -p /opt/nvidia/tao && cd /opt/nvidia  0.0s
 => CACHED [stage-0 15/22] RUN python3 -m pip install --no-cache           0.0s
 => CACHED [stage-0 16/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 17/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 18/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 19/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 20/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 21/22] RUN python3 -m pip install -U     jetson-stats  0.0s
 => CACHED [stage-0 22/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base &&  0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:95e57c22b73207a19593592a29be22ebf77aaa5d209cc  0.0s
 => => naming to docker.io/library/aarch64-image                           0.0s

 1 warning found (use docker --debug to expand):
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 18)
Building /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.ros2_humble as image: ros2_humble-image with base: aarch64-image
[+] Building 0.2s (27/27) FINISHED                               docker:default
 => [internal] load build definition from Dockerfile.ros2_humble           0.0s
 => => transferring dockerfile: 13.71kB                                    0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG $BASE_IMAGE resu  0.0s
 => WARN: LegacyKeyValueFormat: "ENV key=value" should be used instead of  0.0s
 => [internal] load metadata for docker.io/library/aarch64-image:latest    0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [stage-0  1/22] FROM docker.io/library/aarch64-image:latest            0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 276.05kB                                      0.0s
 => CACHED [stage-0  2/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base &&  0.0s
 => CACHED [stage-0  3/22] RUN locale-gen en_US en_US.UTF-8 && update-loc  0.0s
 => CACHED [stage-0  4/22] RUN echo "Warning: Using the PYTHONWARNINGS en  0.0s
 => CACHED [stage-0  5/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0  6/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  7/22] RUN python3 -m pip install -U         flake8-b  0.0s
 => CACHED [stage-0  8/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  9/22] COPY rosdep/extra_rosdeps.yaml /etc/ros/rosdep  0.0s
 => CACHED [stage-0 10/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 11/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 12/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 13/22] COPY patches/rclcpp-disable-tests.patch /tmp/   0.0s
 => CACHED [stage-0 14/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 15/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 16/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 17/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 18/22] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0 19/22] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => CACHED [stage-0 20/22] RUN python3 -m pip install -U         paho-mqt  0.0s
 => CACHED [stage-0 21/22] RUN sudo sed -i '917i #ifdef GTEST_INTERNAL_NE  0.0s
 => CACHED [stage-0 22/22] RUN mkdir -p /opt/nvidia/isaac_ros_dev_base &&  0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:cb12713cc76a520d1a7a941eba92f3ef92e51d2d71b15  0.0s
 => => naming to docker.io/library/ros2_humble-image                       0.0s
Building /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.realsense as image: realsense-image with base: ros2_humble-image
[+] Building 0.1s (12/12) FINISHED                               docker:default
 => [internal] load build definition from Dockerfile.realsense             0.0s
 => => transferring dockerfile: 1.33kB                                     0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} re  0.0s
 => [internal] load metadata for docker.io/library/ros2_humble-image:late  0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [1/7] FROM docker.io/library/ros2_humble-image:latest                  0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 11.54kB                                       0.0s
 => CACHED [2/7] COPY scripts/build-librealsense.sh /opt/realsense/build-  0.0s
 => CACHED [3/7] COPY scripts/install-realsense-dependencies.sh /opt/real  0.0s
 => CACHED [4/7] RUN chmod +x /opt/realsense/install-realsense-dependenci  0.0s
 => CACHED [5/7] RUN mkdir -p /opt/realsense/                              0.0s
 => CACHED [6/7] COPY scripts/hotplug-realsense.sh /opt/realsense/hotplug  0.0s
 => CACHED [7/7] COPY udev_rules/99-realsense-libusb-custom.rules /etc/ud  0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:d1bfb53fa6b43ba2a5de0402fa5d61852a8a338a8e545  0.0s
 => => naming to docker.io/library/realsense-image                         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 12)
Building /mnt/nova_ssd/workspaces/isaac_ros-dev/src/isaac_ros_common/scripts/../docker/Dockerfile.user as image: isaac_ros_dev-aarch64 with base: realsense-image
[+] Building 0.2s (16/16) FINISHED                               docker:default
 => [internal] load build definition from Dockerfile.user                  0.0s
 => => transferring dockerfile: 2.23kB                                     0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} re  0.0s
 => [internal] load metadata for docker.io/library/realsense-image:latest  0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 2.00kB                                        0.0s
 => [stage-0  1/11] FROM docker.io/library/realsense-image:latest          0.0s
 => CACHED [stage-0  2/11] RUN --mount=type=cache,target=/var/cache/apt a  0.0s
 => CACHED [stage-0  3/11] RUN if [ $(getent group triton-server) ]; then  0.0s
 => CACHED [stage-0  4/11] RUN if [ ! $(getent passwd admin) ]; then       0.0s
 => CACHED [stage-0  5/11] RUN echo admin ALL=(root) NOPASSWD:ALL > /etc/  0.0s
 => CACHED [stage-0  6/11] RUN mkdir -p /usr/local/bin/scripts             0.0s
 => CACHED [stage-0  7/11] COPY scripts/*entrypoint.sh /usr/local/bin/scr  0.0s
 => CACHED [stage-0  8/11] RUN  chmod +x /usr/local/bin/scripts/*.sh       0.0s
 => CACHED [stage-0  9/11] RUN mkdir -p /usr/local/share/middleware_profi  0.0s
 => CACHED [stage-0 10/11] COPY middleware_profiles/*profile.xml /usr/loc  0.0s
 => CACHED [stage-0 11/11] RUN --mount=type=cache,target=/var/cache/apt    0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:0e657db478a3680d9f54a8fcf8558f83d251fb2de55f3  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 10)
Running isaac_ros_dev-aarch64-container
 * Stopping hotplug events dispatcher systemd-udevd                      [ OK ] 
 * Starting hotplug events dispatcher systemd-udevd                      [ OK ] 
admin@ubuntu:/workspaces/isaac_ros-dev$ cd /workspaces/isaac_ros-dev
colcon build --symlink-install --packages-up-to-regex realsense*
source install/setup.bash
Starting >>> realsense2_camera_msgs
Starting >>> isaac_ros_common
Finished <<< isaac_ros_common [0.56s]                                          
--- stderr: realsense2_camera_msgs                              
ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
---
Finished <<< realsense2_camera_msgs [2.85s]
Starting >>> realsense2_camera
Starting >>> realsense2_description
Starting >>> realsense_splitter
Finished <<< realsense2_description [0.35s]                                
Finished <<< realsense_splitter [0.57s]                                    
Finished <<< realsense2_camera [0.68s]                  

Summary: 5 packages finished [4.57s]
  1 package had stderr output: realsense2_camera_msgs
admin@ubuntu:/workspaces/isaac_ros-dev$ cd /workspaces/isaac_ros-dev
source install/setup.bash
admin@ubuntu:/workspaces/isaac_ros-dev$ ros2 launch nvblox_examples_bringup realsense_example.launch.py \
rosbag:=./r2b_galileo2
[INFO] [launch]: All log files can be found below /home/admin/.ros/log/2024-10-29-15-11-43-345454-ubuntu-102823
[INFO] [launch]: Default logging verbosity is set to INFO
Using container type: component_container_mt, with arguments: ['--ros-args', '--log-level', <launch.substitutions.launch_configuration.LaunchConfiguration object at 0xffff8057f040>]
Using container type: component_container_mt, with arguments: ['--ros-args', '--log-level', 'info']
[INFO] [launch.user]: Adding nodes [ /nvblox_node ] to container nvblox_container.
[INFO] [launch.user]: Starting nvblox for 'realsense' in mode 'static'
[play_rosbag]: Running the following command: ros2 bag play ./r2b_galileo2 --clock
[INFO] [ros2-1]: process started with pid [102833]
[INFO] [rviz2-2]: process started with pid [102835]
[INFO] [component_container_mt-3]: process started with pid [102837]
[rviz2-2] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-admin'
[component_container_mt-3] [INFO] [1730185903.918708928] [nvblox_container]: Load Library: /workspaces/isaac_ros-dev/install/nvblox_ros/lib/libnvblox_ros_lib.so
[component_container_mt-3] [ERROR] [1730185903.921573312] [nvblox_container]: Failed to load library: Could not load library dlopen error: libgxf_isaac_optimizer.so: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'nvblox_node' of type 'nvblox::NvbloxNode' in container 'nvblox_container': Failed to load library: Could not load library dlopen error: libgxf_isaac_optimizer.so: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99
[ros2-1] stdin is not a terminal device. Keyboard handling disabled.[INFO] [1730185904.376879264] [rosbag2_player]: Set rate to 1
[ros2-1] [INFO] [1730185904.397964448] [rosbag2_player]: Adding keyboard callbacks.
[ros2-1] [INFO] [1730185904.398059456] [rosbag2_player]: Press SPACE for Pause/Resume
[ros2-1] [INFO] [1730185904.398081280] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message
[ros2-1] [INFO] [1730185904.398098016] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10%
[ros2-1] [INFO] [1730185904.398109856] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10%
[rviz2-2] [INFO] [1730185904.561914080] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] [INFO] [1730185904.562182816] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-2] [INFO] [1730185904.650916000] [rviz2]: Stereo is NOT SUPPORTED
[INFO] [launch.user]: Adding nodes [ /visual_slam_node ] to container nvblox_container.
[component_container_mt-3] [ERROR] [1730185904.772580256] [nvblox_container]: Could not find requested resource in ament index
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'visual_slam_node' of type 'nvidia::isaac_ros::visual_slam::VisualSlamNode' in container 'nvblox_container': Could not find requested resource in ament index
[ros2-1] [WARN] [1730185904.826412704] [rosbag2_player]: New subscription discovered on topic '/camera/realsense_splitter_node/output/depth', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY
[ros2-1] [WARN] [1730185904.832347744] [rosbag2_player]: New subscription discovered on topic '/camera/color/image_raw', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: RELIABILITY_QOS_POLICY
[rviz2-2] [INFO] [1730185904.965514432] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] [INFO] [1730185905.017196896] [rviz2]: Stereo is NOT SUPPORTED
[INFO] [ros2-1]: process has finished cleanly [pid 102833]



3D-reconstruction is not working in Rviz.

Any ideas/suggestions/help would be super helpful! Thanks!

Hi @AustinCTH ,

Thank you for your post.

[component_container_mt-3] [INFO] [1730185903.918708928] [nvblox_container]: Load Library: /workspaces/isaac_ros-dev/install/nvblox_ros/lib/libnvblox_ros_lib.so
[component_container_mt-3] [ERROR] [1730185903.921573312] [nvblox_container]: Failed to load library: Could not load library dlopen error: libgxf_isaac_optimizer.so: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99
[ERROR] [launch_ros.actions.load_composable_nodes]: Failed to load node 'nvblox_node' of type 'nvblox::NvbloxNode' in container 'nvblox_container': Failed to load library: Could not load library dlopen error: libgxf_isaac_optimizer.so: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99

It looks nvblox node is not loaded correctly. Please ensure you have completed the nvblox quickstart.

Let me know.

Best,
Ahung

1 Like

Yep, it worked after I did the nvblox quickstart again. Thanks a lot @Ahung !