Controlling multiple ROS robots under a common ROS Matser

asked 2020-03-03 09:27:15 -0500

Miky gravatar image


I am trying to control multiple robots using a common ROS Master. Each robot is controlled by a dedicated machine under 100 Hz control frequency, and all controllers are locally verified.

The idea is to use a single joystick to control all the robots in the network. I have successfully set up the ROS_MASTER_URI and ROS_IP on every machine, and I can subscribe to all the topics on all the robots from the server machine (ROS master).

However, only the robot directly connected to the server machine was successfully controlled, while other robots exhibited some on/off behaviors when I launched all the robots under a common ROS Master. In addition, I noticed that the control frequency on the client machine was 200 Hz despite it was programmed to 100 Hz. Is this an issue related to clock synchronization on different machines? Any advice would be appreciated.

edit retag flag offensive close merge delete


Just making sure: the ROS master is not at all involved in communication between nodes. So "control[ling] multiple robots using a common ROS master" is at best a strange thing to say. The ROS master is like a DNS server or a phone book.

Nodes can certainly be configured to use a single ROS master to register their publications, subscriptions and services and actions, but I'm not entirely sure how that would affect node-to-node direct communication.

Something to test would be:

  • run a master on PC1
  • run control algorithm on PC2

now see whether this affects performance, if you "connect" the joystick (ie: your input device) to PC2.

gvdhoorn gravatar image gvdhoorn  ( 2020-03-03 14:15:53 -0500 )edit