Skip to content

ROS2 bidirectional bridge#834

Merged
gbin merged 10 commits into
masterfrom
gbin/ros2-bridge
Feb 14, 2026
Merged

ROS2 bidirectional bridge#834
gbin merged 10 commits into
masterfrom
gbin/ros2-bridge

Conversation

@gbin

@gbin gbin commented Feb 14, 2026

Copy link
Copy Markdown
Collaborator

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 fmt
  • just lint
  • just test
  • optional full just std-ci (if std/runtime paths are impacted)
  • optional full just nostd-ci (if embedded/no_std paths are impacted)
  • Other (please specify):

pro-top: just with no parameters in the root defaults to just fmt, just lint and just test.

Checklist

  • I have updated docs or examples where needed
  • I have added or updated tests where needed
  • I have considered platform impact (Linux/macOS/Windows/embedded)
  • I have considered config/logging changes (if applicable)
  • This change is not a breaking change (or I documented it below)

Breaking changes (if any)

Additional context

This extends and replaces the previous ros2-sink with TX/RX
capabilities.

Extending the message mapping will be in the next PR.
@gbin gbin requested a review from Copilot February 14, 2026 15:22
@gbin gbin marked this pull request as draft February 14, 2026 15:22
@gbin gbin added enhancement New feature or request include in changelog labels Feb 14, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_sink with bidirectional bridge cu_ros2_bridge implementing the CuBridge trait
  • Added new demo example cu_ros2_bridge_demo demonstrating loopback communication (Tx → Rx on same topic)
  • Removed old example cu_zenoh_ros along 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.

Comment thread components/bridges/cu_ros2_bridge/src/lib.rs Outdated
@gbin gbin changed the title WIP: ROS2 bidirectional bridge ROS2 bidirectional bridge Feb 14, 2026
@gbin gbin marked this pull request as ready for review February 14, 2026 16:27
@gbin gbin requested a review from kamibo February 14, 2026 16:31
@gbin

gbin commented Feb 14, 2026

Copy link
Copy Markdown
Collaborator Author

@kamibo if you could test if this still works in your setup that would be amazing!

@gbin gbin requested a review from makeecat February 14, 2026 16:32

@makeecat makeecat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor issue, LGTM

Comment thread components/bridges/cu_ros2_bridge/README.md Outdated
Comment thread components/payloads/cu_ros2_payloads/src/std_msgs.rs
@gbin gbin requested a review from makeecat February 14, 2026 17:37
@gbin gbin merged commit 8970e21 into master Feb 14, 2026
23 checks passed
@gbin gbin deleted the gbin/ros2-bridge branch February 14, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feature: Convert the ROS2 sink to a bidirectional bridge

3 participants