RealSense bridge for ROS

General Description

The RealSense ZMQ Bridge ROS is a bridging component that connects Intel RealSense camera data streaming over ZeroMQ to a ROS2 environment. It subscribes to ZMQ topics containing RealSense camera data (currently focusing on color channels) and republishes this data as standard ROS2 sensor_msgs/Image messages. The bridge supports multiple camera channels, performs latency monitoring to ensure data freshness, and runs within a containerized environment for easy deployment. This component enables seamless integration of RealSense camera feeds into ROS2-based robotic systems without direct hardware connections to each consumer node.

Resource Link
Source code https://gitc.piap.lukasiewicz.gov.pl/ai-prism/wp3/ambient-digitalization/realsense-zmq-bridge-ros
Demo Video

Contact

The following table includes contact information of the main developers in charge of the component:

Name Email Organisation
Dorin Clisu dorin.clisu@nttdata.com NTT Data Romania

License

Proprietary.

Technical Foundations

Integrated and Open Source Components

Overview

This component integrates several open-source libraries to enable communication between ZeroMQ-based data streams and ROS2 environments. The primary dependencies include ROS2 Humble, OpenCV Python bindings, and cv_bridge for image format conversion. These components work together to create a bridge that transforms data from a custom ZeroMQ data stream into standard ROS2 messages.

Pre-existing Components

ROS2 Humble

Source

ROS2 (Robot Operating System 2) is developed by Open Robotics. https://docs.ros.org/en/humble/index.html

Description

ROS2 is an open-source robotics middleware that provides libraries and tools for building robot applications. It uses a publisher-subscriber architecture to facilitate communication between different components of a robotics system.

Modifications

None.

Purpose in AI-PRISM

ROS2 serves as the communication backbone of the system, allowing this bridge to publish camera data in a standardized format that can be consumed by other ROS2-enabled components in the AI-PRISM ecosystem.

License

ROS2 is primarily licensed under Apache License 2.0. https://github.com/ros2/ros2/blob/master/LICENSE

OpenCV Python

Source

OpenCV (Open Source Computer Vision Library): https://github.com/opencv/opencv-python

Description

OpenCV is a library of programming functions mainly aimed at real-time computer vision. The Python bindings provide access to OpenCV functionality in Python.

Modifications

None.

Purpose in AI-PRISM

OpenCV is used for handling image data received from the RealSense cameras and preparing it for publication to the ROS2 network.

License

OpenCV is released under the Apache 2 License. https://github.com/opencv/opencv/blob/master/LICENSE

cv_bridge

Source

cv_bridge is part of the ROS2 vision_opencv package: https://github.com/ros-perception/vision_opencv

Description

cv_bridge provides a bridge between ROS2 image messages and OpenCV image format, allowing easy conversion between the two.

Modifications

None.

Purpose in AI-PRISM

cv_bridge enables the conversion of OpenCV image formats to ROS2 sensor_msgs/Image messages, which is essential for publishing camera data to the ROS2 network.

License

cv_bridge is licensed under the BSD 3-Clause License. https://github.com/ros-perception/vision_opencv/blob/ros2/LICENSE

How to install

Every AI-PRISM component is installed using the Cluster management service. During the installation process, the user needs to configure a set of high-level parameters.

How to use

This component is relevant only when there are simultaneous ZMQ and ROS2 consumers of the realsense camera data. If there are only ROS2 consumers, it may also possible to use realsense-ros directly, although that package has some limitations with regards to performance and arm64 compatibility.