Skip to content

About

ROS 2 middleware bridge serializing topic data between different RMW implementations

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

ros_middleware_bridge


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.

🚀 Quick Start

  1. Start a container of the pre-built runtime image.
    docker run --rm -it ghcr.io/openads-project/ros_middleware_bridge:latest bash
  2. Inside the container, launch the pre-built nodes.
    ros2 launch ros_middleware_bridge ros_middleware_bridge.launch.py

💻 Development

Set up Development Environment

  1. Clone the repository.
    git clone https://github.com/openads-project/ros_middleware_bridge.git
  2. Initialize the .openads-dev-environment submodule containing development environment configuration.
    cd ros_middleware_bridge
    git submodule update --init --recursive
  3. Open the repository in Visual Studio Code.
    code .
  4. Install the recommended VS Code extensions.

    Ctrl+Shift+P / Extensions: Show Recommended Extensions / Install Workspace Recommended Extensions (Cloud Download Icon)

  5. Reopen the repository in a Dev Container.

    Ctrl+Shift+P / Dev Containers: Rebuild and Reopen in Container

Build

Ctrl+Shift+B

colcon build

Run Tests

Ctrl+Shift+P / Tasks: Run Test Task

colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1
colcon test
colcon test-result --verbose

📝 Documentation

Package 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

⚖️ Licensing

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.

🙏 Acknowledgements

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.

About

ROS 2 middleware bridge serializing topic data between different RMW implementations

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages