A network bridge enabling bidirectional message and service communication between ROS 1 and ROS 2 systems.
ros1_bridge is a ROS 2 package that provides a network bridge for bidirectional communication between ROS 1 and ROS 2 systems. It enables the exchange of messages and services across the two Robot Operating System versions, solving the problem of interoperability during migration from legacy ROS 1 to modern ROS 2 frameworks. The bridge dynamically connects topics and services, allowing nodes from both ecosystems to communicate seamlessly.
Robotics developers and system integrators who are migrating from ROS 1 to ROS 2 or need to maintain hybrid systems using both versions. It is particularly useful for teams with legacy ROS 1 nodes that must interact with new ROS 2 components.
Developers choose ros1_bridge because it is the official, maintained solution for ROS 1/ROS 2 interoperability, offering reliable dynamic bridging, support for custom types, and configurable QoS settings. Its ability to bridge both topics and services reduces the complexity of incremental migration compared to custom communication layers.
ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Bridges topics only when matching publisher-subscriber pairs are active, reducing unnecessary network overhead as described in the dynamic topic bridging feature.
Supports bridging ROS services between versions with automatic type matching for common interfaces, enabling RPC calls across ecosystems without custom code.
Parameter_bridge allows per-topic Quality of Service configuration, such as durability and reliability, to match ROS 2's advanced communication models, as shown in the YAML examples.
Maintained by the ROS 2 project, providing a standardized and reliable solution for incremental system upgrades, as emphasized in the README's philosophy.
Prebuilt binaries only include common interfaces; custom types require building from source, adding setup complexity and compilation time for each new message.
Dynamic bridging causes tools like ros2 topic echo to fail without active subscribers, necessitating manual workarounds like specifying topic types, as admitted in the README.
Not supported on Ubuntu 24.04 due to ROS 1's end-of-life, limiting deployment on modern systems and creating long-term compatibility issues.
Requires careful sourcing of both ROS 1 and ROS 2 environments, with potential for errors if overlays are mismatched, increasing setup friction.