Rmw_zenoh router configuration

Okay, found it right in the README … Shame on me :smiley:

To directly connect to a router running on the robot, just do this:

ZENOH_CONFIG_OVERRIDE='mode="client";connect/endpoints=["tcp/192.168.1.1:7447"]' ros2 run rqt_image_view rqt_image_view

Alternatively, run a router on your laptop that communicates with the robot’s router:

ZENOH_CONFIG_OVERRIDE='connect/endpoints=["tcp/192.168.1.1:7447"]' ros2 run rmw_zenoh_cpp rmw_zenohd

And then all other ROS 2 commands work without anything special.


A downside I found is that you can’t enter hostname in the endpoint.

1 Like

Definitely possible to use hostnames in the endpoint, this all-in-one command is what we use to bridge from a router running on a remote robot (va0003) to the local router on the dev machine.

 podman run -it --init --pull=newer --cgroups=split --tz=local --ipc=host --net=host --dns=127.0.0.53 docker.io/eclipse/zenoh --cfg='listen/endpoints:[]' --cfg='connect/endpoints:["tcp/localhost:7447","tcp/va0003:7447#iface=tailscale0"]' --cfg='scouting/multicast/enabled:false'

Could you be running a particularly old version?

I’m using the RMW-bundled Zenoh. Could the problem be in using the Avahi .local address?

It should just work if you have NSS configured correctly.

What distro are you using? Are you running in containers or not?