ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Foreign Relay

asked 2013-10-17 09:23:46 -0600

ps4321 gravatar image

updated 2013-10-17 09:27:20 -0600

Dear all,

I have ROS Groovy running on a remote system, but need to have topics available locally as well.

I've looked into multimaster_fkie and foreign_relay. I got foreign_relay working locally (running a ros master on two different ports), however when I did the same setup on two different laptops (connected to the same router / on the same subnet, no firewall) I only could see the topics but not the messages. I have the same issue with multimaster_fkie (which I would not like to use because of the mandatory discovery process, I much prefer foreign_relay's approach to have the remote master specified explicitely).

I saw the other questions on this site, but though the symptoms are precisely the same as answers.ros.org/question/10074/help-troubleshooting-foreign-relay, the fix did not help. I see answers.ros.org/question/12420/foreign_relay-problem has the exact same issue, but no answer. I hope that somebody using foreign_relay successfully could shed some light on this issue.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2013-10-22 04:08:17 -0600

autonomy gravatar image

I'm assuming you have a good reason to want to use foreign_relay instead of relying on the usual ROS infrastructure (ROS_IP, ROS_MASTER).

foreign_relay is a weird duck. First, you need to make sure you start *roscor on each machine before you start your other nodes. foreign_relay attempts to register with the remote master on start and if it is unable to do so, it will fail. Second, if I remember correctly, you need to get rid of the ROS_MASTER export on your computers because it's irrelevant and it confuses the nodes. You may even need to get rid of ROS_IP. This may solve your problem.

If not, try debugging using rostopic info. Look for topics in the /transport namespace published by foreign_relay nodes, see who's subscribing to them and who's publishing. You say that you see the topics but not the messages - it could very well be that you see the topics because foreign_relay is advertising them, but it's actually not making a connection with the remote foreign_relay node. The connection won't be made until you publish a message to a relayed topic, but most likely it's because the relays can't talk to one another.

edit flag offensive delete link more

Comments

It was actually somehow the other way around - i.e. I had to set ROS_IP (at least for the foreign_relay node) to get it working. Apparently a DNS issue, as there is no DNS entry for the local hostname.

ps4321 gravatar image ps4321  ( 2013-10-23 22:33:22 -0600 )edit

Ah, so it was probably trying to find a path to "yourhostname", but it didn't know how to do that since it wasn't in the remote computers /etc/hosts file. Glad you solved it.

autonomy gravatar image autonomy  ( 2013-10-24 04:17:13 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2013-10-17 09:23:46 -0600

Seen: 712 times

Last updated: Oct 22 '13