
I followed the tutorial on http://wiki.ros.org/ROS/Tutorials/MultipleMachines. 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?
Originally posted by Vic on ROS Answers with karma: 71 on 2021-06-02
Post score: 0
Original comments
Comment by parzival on 2021-06-02:
Is it related to this: https://answers.ros.org/question/371773/
Comment by Vic on 2021-06-02:
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.
Comment by gvdhoorn on 2021-06-02:
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.
Comment by gvdhoorn on 2021-06-02:\
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.
Comment by Vic on 2021-06-03:
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