{"id":20099147,"url":"https://github.com/ros2/domain_bridge","last_synced_at":"2025-04-07T13:08:48.017Z","repository":{"id":39628769,"uuid":"341751751","full_name":"ros2/domain_bridge","owner":"ros2","description":"Bridge communication across different ROS 2 domains.","archived":false,"fork":false,"pushed_at":"2025-01-09T23:43:54.000Z","size":270,"stargazers_count":67,"open_issues_count":18,"forks_count":13,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-03-31T12:05:27.846Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ros2.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-24T02:15:45.000Z","updated_at":"2025-03-13T01:35:56.000Z","dependencies_parsed_at":"2023-02-01T04:00:59.211Z","dependency_job_id":null,"html_url":"https://github.com/ros2/domain_bridge","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Fdomain_bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Fdomain_bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Fdomain_bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ros2%2Fdomain_bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ros2","download_url":"https://codeload.github.com/ros2/domain_bridge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657281,"owners_count":20974345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T17:08:29.794Z","updated_at":"2025-04-07T13:08:47.997Z","avatar_url":"https://github.com/ros2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# domain_bridge\n\nA ROS 2 domain bridge.\nBridges ROS communication between different ROS domain IDs.\n\nSee the [design document](doc/design.md) for more details about how the bridge works.\n\n## Prerequisites\n\n- [ROS 2](https://index.ros.org/doc/ros2/Installation) (Galactic or newer)\n\n## Installation\n\n### Ubuntu 20.04\n\nReplace `$ROS_DISTRO` with the ROS codename (e.g. `galactic`):\n\n```\nsudo apt install ros-$ROS_DISTRO-domain-bridge\n```\n\n### From source\n\n**Prerequisites:**\n\n- Git\n- [colcon](https://colcon.readthedocs.io/) (colcon_cmake)\n\n```\nmkdir -p domain_bridge_ws/src\ncd domain_bridge_ws\ngit clone https://github.com/ros2/domain_bridge.git src/\ncolcon build\n```\n\n## Usage\n\n### CLI\n\nThere is a standalone executable that can be configured via a YAML file.\n\nYou must provide the path to a YAML configuration file as the last argument to the executable.\nFor example,\n\n```sh\nros2 run domain_bridge domain_bridge examples/example_bridge_config.yaml\n```\n\nThere are also options to override the domain IDs set for all entities in the YAML config,\nfor example,\n\n```sh\nros2 run domain_bridge domain_bridge --from 7 --to 8 examples/example_bridge_config.yaml\n```\n\nUse the `--help` option for more usage information:\n\n```sh\nros2 run domain_bridge domain_bridge --help\n```\n\nYou can also load composable nodes alongside the domain bridge to allow for intra-process communication.\nUse the extra argument `domain_id` to set the domain ID for each loaded component:\n\n```sh\nros2 component load /ComponentManager composition composition::Talker -e domain_id:=1\nros2 component load /ComponentManager composition composition::Listener -e domain_id:=2\n```\n\n### Launch\n\nYou can also use the example launch script, which takes a required launch argument `config`:\n\n```xml\nros2 launch domain_bridge domain_bridge.launch.xml config:=examples/example_bridge_config.yaml\n```\n\nYou can also override domain IDs with optional launch arguments `from_domain` and `to_domain`.\n\nTo reverse the `from` and `to` domain IDs for a topic, set the `reversed` argument to `true`.\n\nTo enable bidirectional bridging of a topic, set the `bidirectional` argument to `true`.\n\nHere is an example of including the domain bridge launch script into your own:\n\n```xml\n\u003claunch\u003e\n  \u003cinclude file=\"$(find-pkg-share domain_bridge)/launch/domain_bridge.launch.xml\"\u003e\n    \u003carg name=\"config\" value=\"$(find-pkg-share domain_bridge)/examples/example_bridge_config.yaml\" /\u003e\n    \u003c!-- Optionally override domain IDs --\u003e\n    \u003carg name=\"from_domain\" value=\"42\" /\u003e\n    \u003carg name=\"to_domain\" value=\"43\" /\u003e\n  \u003c/include\u003e\n\u003c/launch\u003e\n```\n\n### C++ library\n\nThere is a C++ API that can be integrated into your own process, you can find the [API docs here](https://docs.ros.org/en/ros2_packages/rolling/api/domain_bridge/index.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fros2%2Fdomain_bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fros2%2Fdomain_bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fros2%2Fdomain_bridge/lists"}