Studio publisher does not connect to remote subscribers in ROS1
See original GitHub issueStudio publisher does not connect to remote subscribers in ROS1 – in other words, if the ROS_MASTER_URI is not pointing to localhost, then messages fail to publish.
I’ve seen this behavior on our actual systems, and in this ticket I reproduce on a dummy setup. Of course it’s possible I have some configuration wrong somewhere, but I am able to publish via rostopic pub
using a remote host for ROS_MASTER_URI.
- Studio Version: 1.7.0
- OS: Ubuntu
- ROS1 live connection
Steps To Reproduce
First, verify publishing works when running all on one host (in this example, my host is called mimir
):
- Start
roscore
- Run
rostopic echo /chatter
- Open Studio and connect to ROS1 with
http://localhost:11311
- In studio, add a Publish panel and send a message on
/chatter
- Verify the message is received by the
rostopic echo
process
Then, try publishing when Studio and the ros master are on different hosts:
- On remote host, start
roscore
(in my example the remote host is calledyeti
) - On remote host, run
rostopic echo /chatter
- Open Studio and connect to ROS1 with
http://yeti:11311
- In studio, add a Publish panel and send a message on
/chatter
Expected Behavior
- The message is received by the
rostopic echo
process on the remote host
Actual Behavior
- No message is received
I can’t find an explicit error message in any logs anywhere. I’ve also triple-checked all of my configuration so I don’t think it’s that, though I’d love to be proven wrong!
For example, I can use rostopic pub
to send messages from my local to remote host:
Issue Analytics
- State:
- Created a year ago
- Comments:15 (9 by maintainers)
Top GitHub Comments
@jtbandes I’m gonna pick this up since I think its related to the other issue and I’ve got some cycles to put towards this.
https://github.com/foxglove/studio/issues/3096 is similar in the sense that a subscriber isn’t getting messages from Studio. But in that case, the issue is it’s a C++ subscriber, in this case the issue is something about networking.
In that issue, @jhurliman described here how I can run a test using the https://github.com/foxglove/ros1 repo directly, to cut out Studio from the equation and simplify testing. I then took it one step further and added an example at https://github.com/jessicaaustin/ros_demo/tree/main/cpp_subscriber and replicate using docker only, to eliminate possible issues with my local setup. So next I’ll try to do the same thing for this issue, to make sure we’re all using the same ROS/linux setup to test with.
And if I can’t replicate this issue using the ros1 chatter test directly, but I can with Studio, that’s a useful data point in itself.