ROS2 bidirectional bridge#834
Merged
Merged
Conversation
This extends and replaces the previous ros2-sink with TX/RX capabilities. Extending the message mapping will be in the next PR.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR replaces the unidirectional cu_zenoh_ros_sink component with a new bidirectional cu_ros2_bridge bridge component. The new bridge supports both transmit (Tx) and receive (Rx) channels for ROS 2 messaging over Zenoh transport, enabling more flexible integration between Copper applications and ROS 2 nodes.
Changes:
- Replaced one-way sink
cu_zenoh_ros_sinkwith bidirectional bridgecu_ros2_bridgeimplementing theCuBridgetrait - Added new demo example
cu_ros2_bridge_demodemonstrating loopback communication (Tx → Rx on same topic) - Removed old example
cu_zenoh_rosalong with its configuration and documentation
Reviewed changes
Copilot reviewed 13 out of 23 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| components/bridges/cu_ros2_bridge/src/lib.rs | Core bidirectional bridge implementation with Tx/Rx channel support |
| components/bridges/cu_ros2_bridge/src/{topic,node,liveliness,keyexpr,error,attachment}.rs | Supporting modules for ROS 2 protocol integration |
| components/bridges/cu_ros2_bridge/README.md | Bridge documentation with configuration examples |
| components/bridges/cu_ros2_bridge/Cargo.toml | Package renamed from cu-zenoh-ros-sink to cu-ros2-bridge |
| examples/cu_ros2_bridge_demo/* | New loopback demo exercising Tx/Rx paths with i8 payloads |
| examples/cu_zenoh_ros/* | Removed old sink-only example |
| components/sinks/cu_zenoh_ros_sink/* | Removed old sink implementation |
| Cargo.toml | Updated workspace members to reflect component reorganization |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Just best effort we map to the std messsages.
Collaborator
Author
|
@kamibo if you could test if this still works in your setup that would be amazing! |
makeecat
requested changes
Feb 14, 2026
makeecat
approved these changes
Feb 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This extends and replaces the previous ros2-sink with TX/RX capabilities.
This also includes all the message mappings back and forth.
Summary
Related issues
Changes
Testing
just fmtjust lintjust testjust std-ci(if std/runtime paths are impacted)just nostd-ci(if embedded/no_std paths are impacted)pro-top:
justwith no parameters in the root defaults tojust fmt,just lintandjust test.Checklist
Breaking changes (if any)
Additional context