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

Ros topic echo doesn't show on multi-computer setting

asked 2021-06-02 03:15:30 -0500

Vic gravatar image

I followed the tutorial on http://wiki.ros.org/ROS/Tutorials/Mul.... I tried setting up 3 computer running ROS. Let's call them RobotComputer, MasterComputer, NodeComputer.

MasterComputer can see topics of RobotComputer, and command sent on them move the robot as expected. Calling rostopic list on NodeComputer, I can see topics from RobotComputer. The problem is : rostopic echo on MasterComputer shows data, it doesn't on NodeComputer.

I created 2 separated network, with MasterComputer acting as a gateway. I won't be able to put them all on the same network. Is there a way to make this work? Am I missing an obvious step?

edit retag flag offensive close merge delete

Comments

1
parzival gravatar image parzival  ( 2021-06-02 03:19:31 -0500 )edit

Sadly no, because topics I send on the NodeComputer doesn't show up either on MasterComputer. Plus, the unanswered question deals with services, I am only trying to read and write on a topic for now.

Vic gravatar image Vic  ( 2021-06-02 03:32:17 -0500 )edit
1

There is no difference in services, messages or actions when it comes to networking setup. So anything you read about any of those applies to your problem as well.

gvdhoorn gravatar image gvdhoorn  ( 2021-06-02 04:19:32 -0500 )edit
1

I created 2 separated network, with MasterComputer acting as a gateway. I won't be able to put them all on the same network.

please provide much more information about your network setup. IPs, subnets, routers involved, is NAT enabled? What sort of network(s)? Etc.

At the very least bi-directional IP (TCP and perhaps even UDP) traffic between all involved hosts on both networks must be working. If that works, checking DNS settings and the various ROS_ environment variables on all hosts must be configured correctly.

I followed the tutorial on http://wiki.ros.org/ROS/Tutorials/Mul.... I tried setting up 3 computer running ROS

then please show what you configured on which host.

gvdhoorn gravatar image gvdhoorn  ( 2021-06-02 04:21:25 -0500 )edit

Network between RobotComputer and MasterComputer : ethernet LAN (just an ethernet cable between the 2 computers). IP adresses are 198.168.100.40 (RobotComputer) and 198.168.100.50 (MasterComputer). Net mask is 255.255.255.0 Both device ping each other.

Network between NodeComputer and MasterComputer : ethernet LAN (just an ethernet cable between the 2 computers). IP adresses are 10.0.0.2 (NodeComputer) and 10.0.0.1 (MasterComputer). Net mask is 255.255.255.0 Both device ping each other.

I exported ROS_MASTER_URI and ROS_IP and ROS_HOSTNAME Focusing on the "faulty" network : On NodeComputer,

ping 10.0.0.1
export ROS_MASTER_URI=http://10.0.0.1:11311/
export ROS_IP = 10.0.0.2
export ROS_HOSTNAME = 10.0.0.2
Vic gravatar image Vic  ( 2021-06-03 03:00:32 -0500 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2021-06-03 03:02:12 -0500

Vic gravatar image

Should had RTFM better.

One of ROS requirement in Networking : "There must be complete, bi-directional connectivity between all pairs of machines, on all ports. " Not the case on my network. Will try again after buying a switch

edit flag offensive delete link more

Comments

Did you use a NAT router?

gvdhoorn gravatar image gvdhoorn  ( 2021-06-03 03:34:28 -0500 )edit

No, all computers are connected on the main one by Ethernet cable, on differents ethernet cards. Thus, RobotComputer is unpingable from NodeComputer, which break ROS Network requirements

Vic gravatar image Vic  ( 2021-06-03 04:22:32 -0500 )edit
1

That sounds like something which IP routing could solve for you.

You're probably aware, but a switch would only work if you place everything in the same subnet.

gvdhoorn gravatar image gvdhoorn  ( 2021-06-03 04:29:10 -0500 )edit

Yes. The actual underlying issue of the subnet : we are using 2 robots with lots of components that were'nt made to work in fleet. On the same network, there would have been tons of collision for topic because all the component share name and IP. We putted a switch linked to the second ethernet card of the computer inside the robot, everything is now reachable by everyone, problem solved

Vic gravatar image Vic  ( 2021-06-11 02:53:07 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2021-06-02 03:15:30 -0500

Seen: 522 times

Last updated: Jun 03 '21