ZED SDK 4.x on Jetson AGX Xavier in 22.04 Docker

Hi!

We have purchased a Zed 2i camera. We are trying to interface this camera with a Jetson AGX Xavier computer.

The AGX Xavier only supports L4T versions equivalent to Ubuntu 20.04, but our stack requires integration with ROS2 Humble, which requires Ubuntu 22.04. As such, we operate within a Docker Container running Ubuntu 22.04.

However, this solution is not working with ZED. I note that on the ZED Jetson Docker instructions it states to:

Please ensure that the L4T (Linux for Tegra) version of your host system matches the L4T version of the container you are using.

This is not possible in our case as we need to run a higher version of L4T in the docker container to integrate with ROS2 Humble.

We imagine that this is primarily due to a CUDA version conflict? Our Jetson has CUDA 11.4 and the ZED SDK for Jetpack 6.1 seems to have CUDA 12.6 installed.

What is the recommended method for getting the ZED SDK working inside a docker container running Ubuntu 22.04 (or L4T/JP equivalent) on a Jetson AGX Xavier with CUDA 11.4 installed?

Thank you for your support.

Hi @mitch_cr
Welcome to the StereoLabs community.

This is indeed required.

The only available solution is to use a Docker image where ROS 2 Humble is built from the source.
I recommend you use the Docker files in the docker folder of the ZED ROS2 Wrapper repository as an example to start from:

Hi Myzhar thank you for your quick support!

Looking into this issue - it seems as though this solution of running ROS humble on 20.04 equivalent (L4T35.x) will cause a significant development overhead as rosdep would no longer be functional and as such we would need to install packages from source.

Can you please clarify why the ZED SDK requires L4T matching between host and container? Is it just a CUDA issue that I may be able to seek support from with NVIDIA?

Please let me know, thank you.

Cheers,
Mitch

In this case, the only viable solution is to upgrade to L4T 36.x with Jetpack 6.

It’s not only a CUDA issue, but also a driver compatibility issue.

Hi Myzhar, thank you for your advice.

As Jetpack 6.x is not available for the Jetson AGX Xaviers, does this effectively mean that ZED Ros Wrapper is not compatible with the Jetson AGX Xaviers?

The only way to make it compatible is to use a Jetpack 5.x (Ubuntu 20.04) installation with ROS Humble built from source and then build all subsequent ros packages from source as well?

So the best option for compatibility would be to use the Jetson AGX Orin or the Jetson NX 16GB?

Thanks again!

This is not correct. The ZED ROS2 Wrapper is compatible with ROS 2 Foxy, even if it cannot provide all the features when used with this ROS 2 distribution.
For example, point cloud compression is not available.

This is the most effective way to use it

NVIDIA Jetson Xavier are old devices, so for new products I recommend considering the new Orin models.
Please consider that NVIDIA will launch a new Jetson family soon together with the new Jetpack 7.

Hi Myzhar,

Thanks for your support on this.

I believe long term we will look into the Orin series - most likely the NX 16gb or the AGX. Short term, we will try to get the Jetpack 5 docker installation working with ROS.

Thanks again!