ROS 2 middleware bridge serializing topic data between different RMW implementations
The ros_middleware_bridge node forwards ROS 2 topic data between two endpoint
processes that can run with different RMW_IMPLEMENTATION values. Each endpoint
subscribes to configured local topics, serializes the messages as
rclcpp::SerializedMessage, transfers them via UDP or shared memory, and
republishes them on the opposite side with the original ROS message type. The
default launch file starts two instances of the same node, one for side A and
one for side B, so data can be bridged in both directions between middleware
domains such as eProsima Fast DDS and Eclipse Zenoh.
🚀 Quick Start • 💻 Development • 📝 Documentation
Important
This repository is part of OpenADS, the Open Automated Driving Systems project. OpenADS and its modules have been initiated and are currently being maintained by the Institute for Automotive Engineering (ika) at RWTH Aachen University.
- Start a container of the pre-built runtime image.
docker run --rm -it ghcr.io/openads-project/ros_middleware_bridge:latest bash
- Inside the container, launch the pre-built nodes.
ros2 launch ros_middleware_bridge ros_middleware_bridge.launch.py
- Clone the repository.
git clone https://github.com/openads-project/ros_middleware_bridge.git
- Initialize the
.openads-dev-environmentsubmodule containing development environment configuration.cd ros_middleware_bridge git submodule update --init --recursive - Open the repository in Visual Studio Code.
code . - Install the recommended VS Code extensions.
Ctrl+Shift+P / Extensions: Show Recommended Extensions / Install Workspace Recommended Extensions (Cloud Download Icon)
- Reopen the repository in a Dev Container.
Ctrl+Shift+P / Dev Containers: Rebuild and Reopen in Container
Ctrl+Shift+B
colcon buildCtrl+Shift+P / Tasks: Run Test Task
colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1
colcon test
colcon test-result --verbosePackage and node interfaces are documented in the respective package READMEs listed below. Implementation details are found in the Source Code Documentation.
| Package | Description |
|---|---|
| ros_middleware_bridge | ROS 2 middleware bridge serializing topic data between different RMW implementations |
The source code in this repository is licensed under Apache-2.0, see LICENSE. Container images provided by this repository may contain third-party software shipped with their own license terms.
Development and maintenance of this repository are supported by the following projects. We acknowledge the funding of the respective institutions.
| Project | Funding Institution | Grant Number |
|---|---|---|
| AIGGREGATE | 🇪🇺 European Union | 101202457 |
Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Climate, Infrastructure and Environment Executive Agency (CINEA). Neither the European Union nor CINEA can be held responsible for them.
