ros2 / ros1_bridge

ROS 2 package that provides bidirectional communication between ROS 1 and ROS 2
Apache License 2.0
452 stars 288 forks source link

Service pass ROS1 > ROS2 not showing up, but ROS2 > ROS1 works #320

Open XDGFX opened 3 years ago

XDGFX commented 3 years ago

Bug report

Required Info:

Steps to reproduce issue

Start ROS1 container (host networking) which advertises a service /start_row_mode as a std_srvs/Trigger type. Start second ROS2 container which advertises other services, using std_srvs/srv/Trigger.

Start third container based on ros:foxy-ros1-bridge

  bridge:
    depends_on: ["roscore"]
    restart: unless-stopped
    container_name: bridge
    image: ros:foxy-ros1-bridge
    network_mode: host
    command: ros2 run ros1_bridge dynamic_bridge
    restart: unless-stopped

Inside the container, in turn, source the respective ROS workspace and attempt to list/call the service from the other version of ROS.

Expected behavior

ROS1 can see and call ROS2 services. ROS2 can see and call ROS1 services.

Actual behavior

ROS1 can see and call ROS2 services. However, ROS2 cannot see any ROS1 services.

Additional information

I had wondered if communication within Docker containers could be an issue (I have previously had issues with ROS2 communication between Docker containers when using host networking, even if sharing /dev/shm), however I am trying both of these from inside the ros1_bridge container, so that should not have any effect.