Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] zenoh_bridge_ros2dds matching listener created only sometimes #368

Open
felix-kocht opened this issue Dec 20, 2024 · 1 comment
Open
Labels
bug Something isn't working

Comments

@felix-kocht
Copy link

Describe the bug

When sending ros2 messages over a topic from a client to a server via zenoh, they sometimes do not arrive.
To establish a connection over the zenoh bridge, a ros2 subscriber is to be created automatically on the client that reads in the messages from the desired topic. This does not happen in some cases, resulting in no messages transferred to the server.

With our workaround (removing some code) it works for us, but removing some code is probably not ideal: https://github.com/pixel-robotics/zenoh-plugin-ros2dds/tree/always_create_subscriber

To reproduce

For a ros2 topic we have a

  • Subscriber on server
  • Publisher on robot

We use zenoh-dds-bridge as router on server, and as client to the router on our robot.
then restart the zenoh bridge on robot -> new zenoh subscriber on robot (matching to zenoh server publisher) is sometimes created and sometimes not. Thus, the messages published on the robot only sometimes arrive on the server, sometimes not.

System info

  • Client: Jetson Xavier (Ubuntu 22.04)
  • Server: Jetson Xavier (Ubuntu 22.04)
  • connection: Wifi
  • Ros2 version: iron
  • zenoh_bridge_ros2dds version: 1.1.0
@felix-kocht felix-kocht added the bug Something isn't working label Dec 20, 2024
@jplapp
Copy link

jplapp commented Jan 20, 2025

to reproduce

on server: launch bridge in default mode (with router) zenoh-bridge-ros2dds -l tcp/0.0.0.0:7447
then ros2 topic echo /testtopic

on client: launch bridge in client mode: zenoh-bridge-ros2dds client -e tcp/192.168.1.157:7447
then ros2 topic pub /testtopic std_msgs/Int32 "data: 42"

then, restart the bridge on client until at some point, the subscriber on the server stops echoing the messages. This is unexpected, as e.g. after a robot restart the server should still receive messages without re-subscribing. Restarting the subscriber or the client bridge resolves the issue. Reproduces using the default config

Subscribing to the messages using the python API on the server has the same issue, they also stop arriving.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants