Needing Clarification Re: Using Docker and ZED SDK

Greetings all,

I am hung up here on how to properly use Docker to develop with Zed.

To begin: The reason I am pursuing this is that I am on a dual booted machine with Ubuntu 22.04 and Cuda 12.2. It is crazy how all the developers of robotics things can’t seem to get alignment on which distro to use (ROS, ROS2, Ubuntu 18.04 - 24.04)

So today I downloaded the most recent version of Docker Engine (27.2.1), and Nvidia-Container-Toolkit.

I pulled a few images from other sources to ensure that I am able to run containers and such. All good here. I pulled the following ZED SDK Images.

stereolabs/zed               4.1-runtime-cuda12.1-ubuntu22.04    75a5aa3f24af   2 months ago        3.97GB
stereolabs/zed               4.1-gl-devel-cuda11.4-ubuntu20.04   70914d09e586   2 months ago        9.44GB

Right off the bat, I am under the impression that if one wanted to develop something that has an output window, an image that supports OpenGL is needed. I took the gl-devel for a spin and sure enough the ZED Diagnostic tool runs in a window! What confused me though is that the CUDA versions don’t match. The name of the image indicated 11.4 but the Diagnostic tool shows a version requirement of 11.8…

Would anyone be able to help me to find the most straight forward dev path? I have two dual booted PCs with higher end GPUs, An Orin Nano, and Xavier AGX. Obviously I would really like to use my Laptop PC as the main dev machine as I can carry it around easily. For the sake of focus, I am working to recreate a project that used a Kinect for Windows to build a topograpgical sandbox for the STEM kids in my area. So I think I need to be able to use the Zed Depth or PointCloud, and Python outputting to an OpenCV/OpenGL window. In order to do that, I need help optimizing the workflow on Docker…

P.S. I am not a consistent developer meaning it is not my daily job and I only know enough to read samples and apply/customize. So Docker is a relatively new concept for me. Thanks in advance for any assistance.

Cheers,

This forum seems to mostly be one sided and I will use this to topic to continue to document my journey as it doesn’t seem to solicit responses. Sarcasm…

Today, I had to completely fresh install Ubuntu because I though 24.04 was far enough along to justify the upgrade. Well after an hour or so of wasted time, I went back down to Ubuntu 22.04 and completed fresh installs of Docker, Nvidia-Container-Toolkit, VS Code, Pycharm.

I pulled the image tagged 4.1-devel-cuda12.1-ubuntu22.04 and ran it using: docker run --gpus all -it --privileged stereolabs/zed:4.1-devel-cuda12.1-ubuntu22.04

I attempted to add the interpreter to my PyCharm project. It seems to have succeed. However, when I:

import pyzed.sl as sl

I get an error:

ImportError: libcuda.so.1: cannot open shared object file: No such file or directory

Some googling leads me to think that the cuda might be an issue. So I run: nvidia-smi and for some reason it’s saying that I am running the host version of cuda @ 12.4.

If anybody gets this message (the vacuum of space)… Send help… Otherwise I will continue to comment on my own posts as I struggle through this issue.

Hi @Coach
Welcome to the Stereolabs community.

Did you have the opportunity to read our extensive Docker documentation that explains in detail how to use our cameras with Docker?
There’s also a specific section dedicated to ROS and ROS 2.

Furthermore, the ZED ROS 2 Wrapper provides specific instructions and ready Docker files: zed-ros2-wrapper/docker at master · stereolabs/zed-ros2-wrapper · GitHub