Skip to content

wip(zenoh): ROS 2 -> Zenoh telemetry gateway example (#421) - #442

Merged
lxsaah merged 2 commits into
mainfrom
claude/github-issue-421-6s1mel
Nov 8, 2026
Merged

lxsaah merged 2 commits into
mainfrom
claude/github-issue-421-6s1mel

Conversation

@lxsaah

@lxsaah lxsaah commented Nov 7, 2026

Copy link
Copy Markdown
Member

Draft for #421, not yet run against real ROS 2:

  • examples/ros2_gateway.rs: geometry_msgs/msg/Twist on /cmd_vel over
    ros2://, stored as a typed record, republished as JSON on
    zenoh://telemetry/cmd_vel on the same Zenoh session, and served
    read-only over AimX on a Unix socket for aimdb watch.
  • examples/zenoh_sub.rs: prints samples on a key expression, a
    stand-in for z_sub.
  • tests/interop: the gateway against ros2 topic pub in domain 42,
    asserting the JSON payload and the aimdb watch output; the image
    installs geometry_msgs; make ros2-interop builds the aimdb CLI.

Still open: the walkthrough, the README link, and an interop run.

Co-Authored-By: Claude Opus 5.5 [email protected]
Claude-Session: https://claude.ai/code/session_01WGkDJ6wdeKyJ6ZH7uXTMDi

Draft for #421, not yet run against real ROS 2:

- examples/ros2_gateway.rs: geometry_msgs/msg/Twist on /cmd_vel over
  ros2://, stored as a typed record, republished as JSON on
  zenoh://telemetry/cmd_vel on the same Zenoh session, and served
  read-only over AimX on a Unix socket for `aimdb watch`.
- examples/zenoh_sub.rs: prints samples on a key expression, a
  stand-in for z_sub.
- tests/interop: the gateway against ros2 topic pub in domain 42,
  asserting the JSON payload and the aimdb watch output; the image
  installs geometry_msgs; make ros2-interop builds the aimdb CLI.

Still open: the walkthrough, the README link, and an interop run.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WGkDJ6wdeKyJ6ZH7uXTMDi
- ros2_gateway: geometry_msgs/Twist on /cmd_vel over ros2://, kept as a
  SingleLatest record, republished as JSON on zenoh://telemetry/cmd_vel
  on the same session, and served read-only over AimX.
- turtlesim_mcp: turtle.goal (Stop | GoTo { x, y }) is the only record
  writable over AimX. A transform_join controller turns goal and pose
  into turtle.cmd_vel, so remote writes to cmd_vel are refused. The pose
  type follows ROS_DISTRO: turtlesim/msg/Pose on Jazzy,
  turtlesim_msgs/msg/Pose after it.
- zenoh_sub: prints a key expression's samples, a stand-in for z_sub.
- docs/ros2-walkthrough.md, linked from the connector README and the
  ROS 2 guide.
- ros2_interop.sh checks the gateway's JSON, aimdb watch and the late
  snapshot, a GoTo reaching its target and a refused cmd_vel write; the
  image adds geometry_msgs and turtlesim; make ros2-interop builds the CLI.

Passes make ros2-interop on Jazzy and Lyrical.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WGkDJ6wdeKyJ6ZH7uXTMDi
@lxsaah
lxsaah merged commit 3d04efb into main Nov 8, 2026
14 checks passed
@lxsaah
lxsaah deleted the claude/github-issue-421-6s1mel branch November 8, 2026 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants