stereolabs/zed-ros2-wrapper
ROS 2 wrapper for the ZED SDK
What it is
zed‑ros2‑wrapper is an official ROS 2 package that lets you use Stereolabs ZED depth‑sensing cameras inside a ROS 2 robot system. It wraps the ZED SDK (which runs on CUDA‑enabled GPUs) and publishes the camera’s data as standard ROS 2 topics.
Key capabilities (as described in the README)
| Feature | What you get in ROS 2 |
|---|---|
| Image streams | Rectified/unrectified colour and greyscale images. |
| Depth | Per‑pixel depth maps. |
| Point clouds | Colored 3‑D point clouds (with optional point‑cloud‑transport compression). |
| Positional tracking & mapping | Odometry, SLAM‑style mapping, and optional GNSS fusion for Earth‑referenced localization. |
| Object detection | Built‑in object detector (GPU‑accelerated) and optional custom YOLO‑style ONNX models. |
| Body tracking | Human skeleton extraction. |
| Sensor data | IMU, barometer, magnetometer (when supported by the camera). |
| Simulation mode | Runs the same pipeline against a virtual ZED streamed from NVIDIA Isaac Sim, useful for testing without hardware. |
| Integration | Works with NVIDIA Isaac ROS / NITROS for accelerated data transport. |
How you get it running
- Prerequisites – Ubuntu 20.04/22.04/24.04/26.04, the ZED SDK v5.2, CUDA, and a supported ROS 2 distro (Humble, Jazzy, Lyrical, Foxy for backward compatibility, or Rolling for developers).
- Installation – Clone the repo into a ROS 2 workspace, install dependencies with
rosdep, then build withcolcon build --symlink-install. - Launching – Use the provided launch file:
Replaceros2 launch zed_wrapper zed_camera.launch.py camera_model:=<model><model>with the exact ZED model you have (e.g.,zed2i,zedx,virtual, etc.). - Configuration – All parameters live in a set of YAML files under
zed_wrapper/config(e.g.,common_stereo.yaml,zed2.yaml). You can edit them to change resolution, frame rate, enable/disable object detection, mapping, GNSS fusion, etc. - Visualization – A ready‑made RViz2 config is supplied; run
rviz2 -d ./zed_wrapper/config/rviz2/<model>.rvizor launch the helperzed_display_rviz2package. - Simulation – Add
sim_mode:=true use_sim_time:=trueto the launch command to connect to an Isaac Sim instance that streams synthetic camera data.
Who would use this?
- Robotics developers building perception pipelines on ROS 2 who need high‑resolution depth, object detection, or human pose estimation.
- Researchers experimenting with SLAM, GNSS‑fused localization, or AI‑based object detection on real‑time video streams.
- Simulation engineers who want to prototype with virtual ZED cameras in NVIDIA Isaac Sim before deploying on hardware.
Limitations noted in the README
- Some features (object detection, body tracking, GNSS fusion, 2‑D mode, etc.) are not available on older first‑generation ZED cameras or on the ZED X One models.
- Point‑cloud‑transport is optional; you must install
ros-$ROS_DISTRO-point-cloud-transportyourself if you need compressed point clouds. - The package is officially tested only on LTS ROS 2 releases; newer non‑LTS releases may work but are not guaranteed.
- On Jetson platforms with JP6 you may need to set
CUDA_TOOLKIT_ROOT_DIRvia thenvidia‑jetpackpackages.
Quick start cheat‑sheet
# 1. Set up workspace
mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src
git clone https://github.com/stereolabs/zed-ros2-wrapper.git
cd ..
rosdep update && rosdep install --from-paths src --ignore-src -r -y
# 2. Build
colcon build --symlink-install --cmake-args=-DCMAKE_BUILD_TYPE=Release
source install/local_setup.bash
# 3. Run a ZED camera (replace model as needed)
ros2 launch zed_wrapper zed_camera.launch.py camera_model:=zed2i
All information above is taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project
- Project