Setting up Isaac™ ROS to work with ZED Cameras in ROS 2
Setting up Isaac™ ROS to work with ZED Cameras in ROS 2
This guide will help you set up the NVIDIA® Isaac™ ROS packages to work with the ZED ROS 2 Wrapper.
A solid connection to the internet is required to download the NVIDIA® Isaac™ ROS packages and the StereoLabs software If you are using a Jetson device, we recommend using a wired connection for better stability and speed.
NVIDIA® Jetson™ Setup
you can ignore this section if you are not using an NVIDIA® Jetson™ device.
Before installing Isaac™ ROS on an NVIDIA® Jetson™ device, ensure that it is set up correctly and has the necessary software installed.
Install the prerequisites
Open a terminal [Ctrl+Alt+T] and enter the following commands to install the prerequisites:
Install the VPI library
Configure the VPI library for running compute on Jetson™ device’s PVA accelerator.
-
Generate CDI Spec for GPU/PVA:
-
Install
pva-allow-2package:
Install an additional SSD memory if you are using an NVIDIA® Jetson™ development kit
Using Isaac™ ROS with Docker requires a fast and large storage solution, such as an SSD, to ensure optimal performance.
The Docker images can be quite large, and running them on slower storage devices may lead to performance issues.
If you are using an NVIDIA® Jetson™ development kit device, we recommend you follow the official NVIDIA® documentation for best practices on setting up a NVMe SSD card in the Jetson developer kit’s carrier board.
If you are using instead a StereoLabs ZED Box, ZED Box Mini, or a Mini Carrier board, the preinstalled NVMe SSD is already configured for optimal performance and no further configuration is required.
Configure NVIDIA® Isaac™ ROS using Docker
You can skip this section if you are not using Docker to run your Isaac™ ROS applications and prefer to use the official Apt Repository.
This setup is recommended when using an NVIDIA® Jetson™ device.
NVIDIA® provides ready-to-use Docker images for using Isaac™ ROS. The Docker configuration allows you to easily set up your development environment with all the necessary dependencies and tools pre-installed on Jetson devices and x86_64 systems.
Please refer to the official NVIDIA® Isaac™ ROS documentation for advanced configurations and usage.
-
Install the pre-requisite:
-
Restart Docker:
-
Install Git LFS to pull down all large files:
-
Create a workspace and add it to the environment:
-
Enter the workspace and clone packages:
-
Pull the official Isaac Common Docker image and start the first instance of development environment:
-
Wait for the build to complete. This may take some time ☕
-
When the build is complete, the Docker container will start automatically. You can verify that you are inside the Docker container by checking the command prompt, which should look like
admin@ubuntu:/workspaces/isaac_ros-dev$.Enter the command
exitto leave the Docker container.
For any problems with the installation please refer to the NVIDIA® Isaac™ ROS Troubleshooting documentation.
Configure NVIDIA® Isaac™ ROS using Docker with ZED cameras
To use Isaac™ ROS with ZED cameras, you must create a Docker layer that installs the ZED SDK in the Isaac™ ROS Docker image. This layer will allow you to use ZED cameras in your Isaac™ ROS applications.
-
Create a new entrypoint script to change the permissions of the ZED SDK folder when the container starts to allow access to non-root users:
-
Open the
zed-entrypoint.shfile in a text editor and add the following content: -
Create a new
Dockerfile.zedfile in theisaac_ros_common/dockerdirectory: -
Open the
Dockerfile.zedfile in a text editor and add the following content:Uncomment the
ARG ARCH=x86_64line if you are using an x86_64 system instead of a Jetson™ device.The Dockerfile copies the
zed-entrypoint.shscript to the/usr/local/bin/scripts/entrypoint_additions/directory. This will ensure that the script is executed when the Docker container starts, as the default entrypoint script in the Isaac™ ROS Docker image is designed to run any scripts found in this directory at startup. -
Modify the
install-zed-<arch>.shfile to install the latest ZED SDK.A. Open the
isaac_ros_common/docker/scripts/install-zed-<arch>.shfile in a text editor. Replace<arch>withaarch64if you are using a Jetson device orx86_64if you are using an x86_64 system.B. Replace the content of the file with the following script:
Jetson:
click the arrow to expand the full script content
scripts/install-zed-aarch64.sh
-
If you are using a different version of the JetPack SDK, you must adjust the URL accordingly. For example, if you are using JetPack 6.0, you must change
l4t36.4tol4t36.3. -
If you are using a different version of the ZED SDK, you must adjust the URL accordingly. For example, if you want to install ZED SDK 5.1, you must change
5.0to5.1.
x86_64:
click the arrow to expand the full script content
scripts/install-zed-x86_64.sh
-
If you are using a different version of the ZED SDK, you must adjust the URL accordingly. For example, if you want to install ZED SDK 5.1, you must change
5.0to5.1. -
If you are using a different version of CUDA, you must adjust the URL accordingly. For example, if you want to install the ZED SDK for CUDA 13, you must change
cu12tocu13. -
If you are using a different version of Ubuntu, you must adjust the URL accordingly. For example, if you want to install the ZED SDK for Ubuntu 22.04, you must change
ubuntu24toubuntu22.
-
-
Build the Docker image with the ZED SDK installed:
Wait for the build to complete. This may take some time ☕
-
When the build is complete, the Docker container will start automatically. You can check that the ZED SDK is installed by running the following commands inside the Docker container:
Check the ZED SDK version:
Check camera opening and Depth extraction capabilities:
Install the ZED ROS 2 Wrapper packages
Start a new terminal and enter the Docker container with the ZED SDK installed:
You can now install the ZED ROS 2 Wrapper packages with NITROS support to be used in your Isaac™ ROS applications:
If you are new to the ZED ROS 2 Wrapper, we recommend starting with the Getting Started with ROS 2 and ZED guide. This guide will help you set up your environment and run your first ZED camera application using ROS 2.
You can also explore the ZED ROS 2 Examples repository for tutorials and advanced examples.
If the ZED ROS 2 Wrapper was already installed in your workspace, just clean and rebuild your workspace to ensure that the ZED ROS 2 Wrapper is built with the NVIDIA® Isaac™ ROS support.
You can verify that the ZED ROS 2 Wrapper is built with NVIDIA® Isaac™ ROS support by checking the output of the colcon build command. You should see messages indicating that the isaac_ros_nitros package is being used:
Configure NVIDIA® Isaac™ ROS from the official Apt Repository
you can skip this section if you are using Docker to run your Isaac™ ROS applications.
On Desktop machines, you can easily install the NVIDIA® Isaac™ ROS packages using the official Apt Repository. This repository provides pre-built packages for all supported platforms, making it easy to get started with Isaac™ ROS without using Docker.
We do not recommend this procedure when working with Jetson devices because it’s not straightforward to satisfy all dependencies.
NVIDIA® Isaac™ Apt Repository built on NVIDIA’s CDN (Content Distribution Network) hosts the following categories of packages for all users.
- All Isaac™ ROS packages pre-built for the currently supported platforms.
- Auxiliary packages to improve developer experience or to support a legacy OS.
Set up the Isaac™ Apt Repository
Open a terminal and follow these steps to set up the NVIDIA® Isaac™ ROS Apt Repository on your system. This guide assumes you are using Ubuntu 22.04.
-
Set Locale - Ensure your system locale is set to UTF-8:
-
Install Dependencies - Install the required dependencies for the Isaac™ Apt Repository:
-
Setup Source - Register the GPG key with apt. Two options are listed below, one for .com (US CDN) and one for .cn (China CDN) - choose whichever you prefer.
US CDN
China CDN
-
Add the NVIDIA Keyring - Register the NVIDIA GPG key with apt:
You are now ready to install the NVIDIA® Isaac™ ROS packages.
Install the required NVIDIA® Isaac™ ROS packages
Open a terminal and run the following command to install the required NVIDIA® Isaac™ ROS packages:
Install the ZED SDK and ZED X Driver
If you haven’t already, install the ZED SDK and the ZED X Driver on your system. The ZED X Driver is required to use ZED X, ZED X Mini, and ZED X One cameras with Isaac™ ROS.
Install the ZED ROS 2 Wrapper
You can now install the ZED ROS 2 Wrapper packages with NITROS support to be used in your Isaac™ ROS applications by following the instructions in the ZED ROS 2 Wrapper Installation Guide. The ZED ROS 2 Wrapper will automatically detect the available NVIDIA® Isaac™ ROS packages and enable NITROS support during the build process.
If you are new to the ZED ROS 2 Wrapper, we recommend starting with the Getting Started with ROS 2 and ZED guide. This guide will help you set up your environment and run your first ZED camera application using ROS 2.
You can also explore the ZED ROS 2 Examples repository for tutorials and advanced examples.
If the ZED ROS 2 Wrapper was already installed in your workspace, just clean and rebuild your workspace to ensure that the ZED ROS 2 Wrapper is built with the NVIDIA® Isaac™ ROS support.
You can verify that the ZED ROS 2 Wrapper is built with NVIDIA® Isaac™ ROS support by checking the output of the colcon build command. You should see messages indicating that the isaac_ros_nitros package is being used:
Validate the installation
To validate that the installation was successful and that the ZED ROS 2 Wrapper is properly configured with NVIDIA® Isaac™ ROS support, you can run the following command:
If the node starts successfully without errors, your installation is likely correct. You can also check the ROS 2 topic list to see if the ZED camera topics are being published:
You should see topics related to the ZED camera, such as /zed/zed_node/rgb/color/rect/image/nitros and /zed/zed_node/depth/depth_registered/nitros, indicating that the ZED ROS 2 Wrapper is running with NITROS support as expected.
When using the ZED ROS 2 Wrapper with NVIDIA® Isaac™ ROS, make sure to set the enable_ipc parameter to false in the launch file to avoid potential conflicts with the NITROS transport. Read more in the ZED Isaac™ ROS Troubleshooting Guide and the NVIDIA® Isaac™ ROS Troubleshooting Documentation.
Good practices
When starting the Isaac™ ROS Docker container, it’s a good practice to enable a few shared volumes to persist your data and configurations across sessions.
Here are some recommended volume mounts:
/usr/local/zed/settings:/usr/local/zed/settingsif you plan to use the robot in an Internet-negated area, and you previously downloaded the camera calibration files by following this guide./usr/local/zed/resources:/usr/local/zed/resourcesif you plan to use the AI module of the ZED SDK (Object Detection, Skeleton Tracking, NEURAL depth) we suggest binding mounting a folder to avoid downloading and optimizing the AI models each time the Docker image is restarted. The first time you use an AI model inside the Docker image, it will be downloaded and optimized in the local bound-mounted folder, and stored there for the next runs.
To use these volume mounts, use the following command when starting the Docker container:

