• Stars
    star
    440
  • Rank 98,428 (Top 2 %)
  • Language
    C++
  • License
    MIT License
  • Created about 9 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ROS wrapper for the ZED SDK

Stereolabs ZED Camera - ROS Noetic Ninjemis Integration

This package lets you use the ZED stereo camera with ROS. It outputs the camera left and right images, depth map, point cloud, pose information and supports the use of multiple ZED cameras.

More information

Note: The zed_interfaces package has been removed from this repository and moved to its own zed-ros-interfaces repository for allowing better integration of the ZED Wrapper on remote ground stations that do not require the full package to be installed. To update your repository please follow the new update instructions. For more information please read issue #750.

Getting started

Prerequisites

Build the repository

The zed_ros_wrapper is a catkin package. It depends on the following ROS packages:

  • nav_msgs
  • tf2_geometry_msgs
  • message_runtime
  • catkin
  • roscpp
  • stereo_msgs
  • rosconsole
  • robot_state_publisher
  • urdf
  • sensor_msgs
  • image_transport
  • roslint
  • diagnostic_updater
  • dynamic_reconfigure
  • tf2_ros
  • message_generation
  • nodelet

Open a terminal, clone the repository, update the dependencies and build the packages:

$ cd ~/catkin_ws/src
$ git clone --recursive https://github.com/stereolabs/zed-ros-wrapper.git
$ cd ../
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin_make -DCMAKE_BUILD_TYPE=Release
$ source ./devel/setup.bash

Update the local repository

To update the repository to the latest release you must use the following command to retrieve the latest commits of zed-ros-wrapper and of all the submodules:

$ git checkout master # if you are not on the main branch  
$ git pull --recurse-submodules # update recursively all the submodules

Remember to always clean the cache of your catkin workspace before compiling with the catkin_make command to be sure that everything will work as expected:

$ roscd
$ cd ..
$ rm -rf build devel
$ catkin_make -DCMAKE_BUILD_TYPE=Release

Run the ZED wrapper

To launch the ZED node use

ZED camera:

$ roslaunch zed_wrapper zed.launch

ZED Mini camera:

$ roslaunch zed_wrapper zedm.launch

ZED 2 camera:

$ roslaunch zed_wrapper zed2.launch

ZED 2i camera:

$ roslaunch zed_wrapper zed2i.launch

ZED X camera:

$ roslaunch zed_wrapper zedx.launch  

ZED X Mini camera:

$ roslaunch zed_wrapper zedxm.launch  

To select the ZED from its serial number:

 $ roslaunch zed_wrapper zed.launch serial_number:=1010 #replace 1010 with the actual SN

Rviz visualization

Example launch files to start a pre-configured Rviz environment to visualize the data of ZED, ZED Mini, ZED 2, ZED X, and ZED X Mini cameras are provided in the zed-ros-examples repository

SVO recording

SVO recording can be started and stopped while the ZED node is running using the service start_svo_recording and the service stop_svo_recording. More information

Object Detection

The SDK v3.0 introduces the Object Detection and Tracking module. The Object Detection module is available only with a ZED 2 camera.

The Object Detection can be enabled automatically when the node start setting the parameter object_detection/od_enabled to true in the file common.yaml.

The Object Detection can be enabled/disabled manually calling the services start_object_detection and stop_object_detection.

Body Tracking

The Body Tracking module is not available for the ZED ROS Wrapper. Please consider migrating to the ZED ROS2 Wrapper if you need it.

Spatial Mapping

The Spatial Mapping can be enabled automatically when the node start setting the parameter mapping/mapping_enabled to true in the file common.yaml. The Spatial Mapping can be enabled/disabled manually calling the services start_3d_mapping and stop_3d_mapping.

Geo Tracking (GNSS Fusion)

The Geo tracking module is not available for the ZED ROS Wrapper. Please consider migrating to the ZED ROS2 Wrapper if you need it.

Diagnostic

The ZED node publishes diagnostic information that can be used by the robotic system using a diagnostic_aggregator node.

With the rqt plugin Runtime monitor, it is possible to retrieve all the diagnostic information, checking that the node is working as expected.

2D mode

For robots moving on a planar surface it is possible to activate the "2D mode" (parameter tracking/two_d_mode in common.yaml). The value of the coordinate Z for odometry and pose will have a fixed value (parameter tracking/fixed_z_value in common.yaml). Roll and pitch and relative velocities will be fixed to zero.

Examples and Tutorials

Examples and tutorials are provided to better understand how to use the ZED wrapper and how to integrate it in the ROS framework. See the zed-ros-examples repository

Examples

Alongside the wrapper itself and the Rviz display, a few examples are provided to interface the ZED with other ROS packages :

Tutorials

A few tutorials are provided to understand how to use the ZED node in the ROS environment :

More Repositories

1

zed-sdk

⚑️The spatial perception framework for rapidly building smart robots and spaces
C++
784
star
2

zed-unity

ZED SDK Unity plugin
C#
245
star
3

zed-python-api

Python API for the ZED SDK
Cython
206
star
4

zed-yolo

3D Object detection using Yolo and the ZED in Python and C++
Python
155
star
5

zed-ros2-wrapper

ROS 2 wrapper for the ZED SDK
C++
148
star
6

zed-opencv

ZED SDK interface sample for OpenCV
C++
137
star
7

zed-open-capture

Low level Linux camera driver for the ZED USB3 stereo cameras. API docs available here:
C++
96
star
8

zed-ros-examples

Examples for the ZED SDK ROS wrapper
C++
85
star
9

zed-unreal-examples

Stereolabs ZED - UE4 Examples
C++
77
star
10

zed-tensorflow

3D Object detection using the ZED and Tensorflow
Python
77
star
11

zed-UE5

ZED plugin and examples for Unreal Engine 5 (Standard Engine)
C++
60
star
12

zed-gstreamer

Package of GStreamer elements to interface with ZED Cameras
C++
59
star
13

zed-pcl

ZED SDK interface sample for PCL, the Point Cloud Library
C++
58
star
14

zed-multi-camera

ZED SDK sample with multiple ZEDs
C++
52
star
15

zed-pytorch

3D Object detection using the ZED and Pytorch
Jupyter Notebook
48
star
16

zed-docker

Docker images for the ZED SDK
Dockerfile
48
star
17

zed-unreal-plugin

Stereolabs ZED - UE4 Plugin
C++
41
star
18

zed-openpose

Real-time 3D multi-person with OpenPose and the ZED
C++
40
star
19

zed-opencv-native

Native stereo capture with OpenCV
C++
37
star
20

zed-livelink

ZED LiveLink Plugin for Unreal
C++
32
star
21

zed-ros2-examples

A collection of examples and tutorials to illustrate how to better use the ZED cameras in the ROS2 framework
C++
30
star
22

zed-matlab

ZED SDK interface sample for Matlab
C++
28
star
23

zed-oculus

ZED Viewer for Oculus Rift
C++
27
star
24

zed-aruco

ZED SDK samples using ArUco tag detection
C++
21
star
25

zed-tracking-viewer

[DEPRECATED] ZED SDK sample to show the tracking capability
C++
17
star
26

zed-csharp-api

C# API for the ZED SDK
C#
10
star
27

zed-3d-social-distancing

Using 3D Cameras to Monitor Social Distancing
C++
10
star
28

zed-ros-interfaces

ROS interfaces for the ZED ROS Wrapper
CMake
9
star
29

zed-ros2-interfaces

ROS2 interfaces for the ZED ROS2 Wrapper
CMake
5
star
30

zed-hub-examples

ZEDHub app tutorials
Python
5
star
31

zed-isaac-sim

NVIDIA Isaac Sim integration for ZED SDK
Python
5
star
32

zed-unity-livelink

ZED Livelink plugin for Unity
C++
5
star
33

zed-opengl

ZED SDK interface sample for OpenGL
C++
2
star
34

zed-openni

C
2
star
35

zedx-one-capture

Camera control API for ZED X One GMSL2 cameras from Stereolabs
C++
2
star