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 | Organisation | |
|---|---|---|
| Dorin Clisu | dorin.clisu@nttdata.com |
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.