Skip to content

[Bug] Bridge does not expose topics and services #480

@Yeisonint

Description

@Yeisonint

Describe the bug

I have two devices connected by ethernet, on the client side some nodes are running that consume their topics and services from the host (router), both the host and the client run the bridge, but unexpectedly the topics may stop publishing and the services stop responding, this can also occur at the beginning of the execution of both bridges and the only way to solve it is to restart both bridges with the inconvenience that it can happen again.

Iperf test (client):

iperf3 -c 172.16.40.254
Connecting to host 172.16.40.254, port 5201
[  5] local 172.16.40.141 port 57828 connected to 172.16.40.254 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  12.1 MBytes   101 Mbits/sec    0    209 KBytes       
[  5]   1.00-2.00   sec  11.3 MBytes  94.9 Mbits/sec    0    209 KBytes       
[  5]   2.00-3.00   sec  11.3 MBytes  94.9 Mbits/sec    0    209 KBytes       
[  5]   3.00-4.00   sec  11.3 MBytes  94.9 Mbits/sec    0    209 KBytes    

Bridge node working correctly:

# ros2 node info /zenoh_bridge_ros2dds_peripherals_server
/zenoh_bridge_ros2dds_peripherals_server
  Subscribers:
    /gary/emergency: raya_emergency_msgs/msg/Emergency
  Publishers:
    /gary/emergency: raya_emergency_msgs/msg/Emergency
    /gary/leds/leds_engine/status: raya_status_msgs/msg/ComponentStatus
    /gary/odom/mileage: sensor_msgs/msg/Range
    /gary/odom/odom: nav_msgs/msg/Odometry
    /gary/sensors/button_states: gary_sensors_msgs/msg/DurationBool
    /gary/sensors/chest_button: raya_primitive_msgs/msg/RaYaFloat32
    /gary/sensors/relay_state: gary_sensors_msgs/msg/DurationBool
    /gary/sensors/serialized_sensors: gary_sensors_msgs/msg/SerializedSensors
    /gary/sensors/srf_1: sensor_msgs/msg/Range
    /gary/sensors/srf_2: sensor_msgs/msg/Range
    /gary/sensors/srf_3: sensor_msgs/msg/Range
    /gary/sensors/srf_4: sensor_msgs/msg/Range
    /gary/sensors/srf_5: sensor_msgs/msg/Range
    /gary/sensors/srf_6: sensor_msgs/msg/Range
    /gary/sensors/status: raya_status_msgs/msg/ComponentStatus
    /gary/sound/speaker/status: raya_status_msgs/msg/ComponentStatus
    /gary/status/battery: sensor_msgs/msg/BatteryState
    /gary/status/battery_bms: sensor_msgs/msg/BatteryState
    /rosout: rcl_interfaces/msg/Log
  Service Servers:
    /gary/odom/restart_odometry: gary_sensors_msgs/srv/RestartOdometry
    /gary/status/set_battery_level: gary_sensors_msgs/srv/SetBatteryLevel
  Service Clients:

  Action Servers:
    /gary/leds/leds_play_animation: gary_leds_msgs/action/LedsPlayAnimation
    /gary/sensors/set_relay_state: gary_sensors_msgs/action/SetRelayState
  Action Clients:

Same node after restart client (connection was successful).

# ros2 node info /zenoh_bridge_ros2dds_peripherals_server
/zenoh_bridge_ros2dds_peripherals_server
  Subscribers:

  Publishers:
    /gary/emergency: raya_emergency_msgs/msg/Emergency
    /gary/leds/leds_engine/status: raya_status_msgs/msg/ComponentStatus
    /gary/odom/odom: nav_msgs/msg/Odometry
    /gary/sensors/status: raya_status_msgs/msg/ComponentStatus
    /gary/sound/speaker/status: raya_status_msgs/msg/ComponentStatus
    /gary/status/battery: sensor_msgs/msg/BatteryState
  Service Servers:

  Service Clients:

  Action Servers:
    /gary/leds/leds_play_animation: gary_leds_msgs/action/LedsPlayAnimation
  Action Clients:


Architecture

Image

To reproduce

  1. Start server with zenoh-bridge-ros2dds -c /robot/config/sensors/ZENOH_BRIDGE_CONFIG_SERVER.json5 in host computer
  2. Start client with zenoh-bridge-ros2dds -c /robot/config/sensors/ZENOH_BRIDGE_CONFIG_CLIENT.json5 in client computer
  3. Wait until it stops publishing or the client reconnects

I attach logs of the last test reconnecting the client

client_logs.txt

host_logs.txt

Configuration files

ZENOH_BRIDGE_CONFIG_CLIENT.txt
ZENOH_BRIDGE_CONFIG_SERVER.txt

System info

Host - Jetson Orin AGX

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"

Linux MINIGARY001 5.10.104-tegra # 1 SMP PREEMPT Sun Mar 19 07:55:28 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux

Client - Raspberry pi CM4 with Raspberry Pi OS

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
Linux RPI1 6.12.20+rpt-rpi-v8 # 1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux

Zenoh bridge

zenoh-bridge-ros2dds v1.3.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions