Error with rosdep building Isaac ROS Docker Dev Environment

Hi,

I’m following this guide: Isaac ROS Dev — isaac_ros_docs documentation to setup the Isaac ROS Docker Dev Environment on Ubuntu 22.04 and I’m getting an error while building the x86_64-image docker images. I’ve retried the install and configuration from scratch a couple of times on two different computers and I’m always getting the following error:

=> [internal] load build definition from Dockerfile.user                                                                                                                                              0.0s
 => => transferring dockerfile: 2.23kB                                                                                                                                                                 0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 10)                                                                           0.0s
 => [internal] load metadata for docker.io/library/ros2_humble-image:latest                                                                                                                            0.0s
 => [internal] load .dockerignore                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                        0.0s
 => [stage-0  1/11] FROM docker.io/library/ros2_humble-image:latest                                                                                                                                    0.0s
 => [internal] load build context                                                                                                                                                                      0.0s
 => => transferring context: 2.00kB                                                                                                                                                                    0.0s
 => CACHED [stage-0  2/11] RUN --mount=type=cache,target=/var/cache/apt apt-get update && apt-get install -y         sudo         udev                                                                 0.0s
 => CACHED [stage-0  3/11] RUN if [ $(getent group triton-server) ]; then         groupmod -o --gid 1000 -n admin triton-server ;         usermod -l admin -u 1000 -m -d /home/admin triton-server ;   0.0s
 => CACHED [stage-0  4/11] RUN if [ ! $(getent passwd admin) ]; then         groupadd --gid 1000 admin ;         useradd --no-log-init --uid 1000 --gid 1000 -m admin ;     fi                         0.0s
 => CACHED [stage-0  5/11] RUN echo admin ALL=(root) NOPASSWD:ALL > /etc/sudoers.d/admin     && chmod 0440 /etc/sudoers.d/admin     && adduser admin video && adduser admin plugdev && adduser admin   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/scripts/                                                                                                                         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_profiles                                                                                                                           0.0s
 => CACHED [stage-0 10/11] COPY middleware_profiles/*profile.xml /usr/local/share/middleware_profiles/                                                                                                 0.0s
 => ERROR [stage-0 11/11] RUN --mount=type=cache,target=/var/cache/apt     rosdep update                                                                                                               6.6s
------                                                                                                                                                                                                      
 > [stage-0 11/11] RUN --mount=type=cache,target=/var/cache/apt     rosdep update:                                                                                                                          
0.492 ERROR: unable to process source [file:///etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml]:                                                                                                            
0.492   <urlopen error [Errno 13] Permission denied: '/etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml'> (file:///etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml)                                          
6.494 ERROR: Not all sources were able to be updated.                                                                                                                                                       
6.494 [[[                                                                                                                                                                                                   
6.494 ERROR: unable to process source [file:///etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml]:
6.494 	<urlopen error [Errno 13] Permission denied: '/etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml'> (file:///etc/ros/rosdep/sources.list.d/nvidia-isaac.yaml)
6.494 ]]]
6.494 reading in sources list data from /etc/ros/rosdep/sources.list.d
6.494 Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
6.494 Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
6.494 Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
6.494 Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
6.494 Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
6.494 Skip end-of-life distro "ardent"
6.494 Skip end-of-life distro "bouncy"
6.494 Skip end-of-life distro "crystal"
6.494 Skip end-of-life distro "dashing"
6.494 Skip end-of-life distro "eloquent"
6.494 Skip end-of-life distro "foxy"
6.494 Skip end-of-life distro "galactic"
6.494 Skip end-of-life distro "groovy"
6.494 Add distro "humble"
6.494 Skip end-of-life distro "hydro"
6.494 Skip end-of-life distro "indigo"
6.494 Add distro "iron"
6.494 Skip end-of-life distro "jade"
6.494 Add distro "jazzy"
6.494 Skip end-of-life distro "kinetic"
6.494 Skip end-of-life distro "lunar"
6.494 Skip end-of-life distro "melodic"
6.494 Add distro "noetic"
6.494 Add distro "rolling"
6.494 updated cache in /home/admin/.ros/rosdep/sources.cache
------

 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)
Dockerfile.user:59
--------------------
  58 |     USER ${USERNAME}
  59 | >>> RUN --mount=type=cache,target=/var/cache/apt \
  60 | >>>     rosdep update
  61 |     USER root
--------------------
ERROR: failed to solve: process "/bin/bash -c rosdep update" did not complete successfully: exit code: 1

It looks like rosdep is trying to access a file that does not exist, I’ve tried to add the file manually and change permissions to no avail.

I’ve also tried to install natively following the Dockerfile installation steps, but I’m not able to launch any of the binary installed packages. Getting errors in the form of:

[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container_mt-1]: process started with pid [751115]
[component_container_mt-1] [INFO] [1733499426.889916163] [rectify_container]: Load Library: /opt/ros/humble/lib/librectify_node.so
[component_container_mt-1] [ERROR] [1733499426.895324244] [rectify_container]: Failed to load library: Could not load library dlopen error: libcudart.so.12: 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 'left_rectify' of type 'nvidia::isaac_ros::image_proc::RectifyNode' in container '/rectify_container': Failed to load library: Could not load library dlopen error: libcudart.so.12: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99
[component_container_mt-1] [INFO] [1733499426.897530713] [rectify_container]: Load Library: /opt/ros/humble/lib/librectify_node.so
[component_container_mt-1] [ERROR] [1733499426.899249263] [rectify_container]: Failed to load library: Could not load library dlopen error: libcudart.so.12: 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 'right_rectify' of type 'nvidia::isaac_ros::image_proc::RectifyNode' in container '/rectify_container': Failed to load library: Could not load library dlopen error: libcudart.so.12: cannot open shared object file: No such file or directory, at ./src/shared_library.c:99
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[component_container_mt-1] [INFO] [1733499920.817562153] [rclcpp]: signal_handler(signum=2)
[INFO] [component_container_mt-1]: process has finished cleanly [pid 751115]

Please advise,
HB

Hi @hugo.borne-pons

If you are working on an x86 device, please check if CUDA is installed correctly: Getting Started — isaac_ros_docs documentation. Based on your error, the libraries are not found on the x86 machine.

Best,
Raffaello