In Regard to Installing ZED ROS2 Wrapper in NVIDIA Docker

Dear StereoLabs,

I managed to find ZED camera’s launch file for the NVIDIA ISAAC Elbrus Library:

However, when I try to launch it, it gave the following error message:

[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught exception when trying to load file of format [py]: "package ‘zed_wrapper’ not found,

I have installed ZED ROS2 wrapper on my ubuntu 22.04 powered laptop. Do you know how to connect the ZED ROS2 wrapper to NVIDIA Docker?

I also tried to install the ZED ROS2 wrapper in the NVIDIA Container by following the instruction in this page: Getting Started with ROS2 and ZED | Stereolabs

However, I got the following error:

Can I just install the wrapper in the container as if it is outside the container?

Thanks in advance!

Sincerely,
Tse Lin

Hi @PiperArrow
the ZED SDK must be available inside the container, so you must install it inside the Docker container even if it’s already installed in your OS.

Dear Mr. Myzhar,

Thank you for the reply!

I tried to install ZED SDK within my NVIDIA Docker, however, I encountered the following error:

Or is it correct way to install ZED SDK inside the Docker container? :thinking:

Update:
I did “docker pull stereolabs/zed:3.7-runtime-cuda11.4-ubuntu20.04”, however, still have the same error while building the ZED ROS Wrapper…

In fact, could you please show me how to install ZED SDK within the existing NVIDIA Docker Container?

Sincerely,
Tse Lin

Your command misses “:” after zed :
docker pull stereolabs/zed:3.8-runtime-cuda11.7-ubuntu20.04

Ok, I did it. However, I don’t think it is installed within the NVIDIA Docker Container, as I still have the following error when trying to colcon build the ZED_Wrapper:

Could you please guide me through the following steps?

  1. Install ZED SDK within NVIDIA Docker Container
  2. Install ZED ROS2 Wrapper within NVIDIA Docker Container

Thanks in advance!

Sincerely,
Tse Lin

You installed the “runtime” image, that does not contain the requirements to build application using the ZED SDK.

Try to use instead the devel image:
docker pull stereolabs/zed:3.8-devel-cuda11.7-ubuntu20.04

Ok, I did it, but I still cannot launch the ZED camera from NVIDIA container. However, I still cannot install the ZED Wrapper within the NVIDIA container.

I followed the instructions in this page, and placed the image_common.git and zed-ros2-wrapper.git in the same working directory as the NVIDIA VSLAM:

Nevertheless, I still got the error after colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release:

I think the docker pull stereolabs/zed:3.8-devel-cuda11.7-ubuntu20.04 did not place the ZED SDK within the NVIDIA Container. Is there any way I can use ZED M camera for NVIDIA VSLAM?

In fact, is it possible to request for a video call today or tomorrow?

Thanks!

At this moment, I have both NVIDIA VSLAM and ZED SDK installed in separate dockers, how do I run NVIDIA VSLAM with ZED M camera?

Hi @PiperArrow
if the two containers can communicate using ROS, then you must set up the NVIDIA’s nodes to receive the required topics from the ZED Node.

We do not provide support for this, I guess you can find more info in the NVIDIA documentation.

I see, does that mean I can also publish the ZED topics from my OS environment without go through ZED Docker?

Yes, that’s correct.

Ok. So, rather than pulling down and establish a brandnew ZED SDK docker, is there any way to install ZED SDK in an existing docker?

I tried to “wget https://download.stereolabs.com/zedsdk/3.8/cu117/ubuntu20” into my docker, however, neither can I run the file as root,

nor install it by ./ubuntu20 due to “premission denied”, as follow:

Here you can find helpful examples of how to correctly add the ZED SDK and the ZED Wrapper in an existing Dockerfile:

Thanks, but do you know what should I do with this particular docker?

I can’t see which image to tag.

Beside, about the issue with installing ZED SDK from file within NVIDIA Docker, is it because of the udev rules?

“Another component of this detection is adjusting the permissions of the device to be accessible to non-root users and groups.”

https://wiki.archlinux.org/title/Udev

How do you think?

Nevermind, I solved the problem!

Thanks anyway! :smiley:

1 Like