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

Synchronizing multiple robots from 1 machine and 1 ros master

asked 2013-04-27 02:12:22 -0600

updated 2013-04-27 03:07:07 -0600


Are there any tips or common practice how to synchronize 2 or more robots to do the same "move". Example: when all robots are started up and waiting, both go forward for 10 seconds, starting at the same time.

I was thinking with 1 master node and X robot nodes. Robot nodes publish their state to the master node by calling master's node service. Master node waits until all robot nodes are ready. Then when all robots are ready, it publishes a msg on a topic. This topic is constantly checked by the robot nodes and when the msg is published, they start the move. Should this be synchronous enough?

Are there any other possibilities how to synchronize moves, or maybe one more simple than mine described above?


edit retag flag offensive close merge delete


How accurate would you like the synchronization to be? And how do you intend to measure?

SL Remy gravatar image SL Remy  ( 2013-04-29 12:42:35 -0600 )edit

Accurate as possible :) Synchronization won't be specially measured. It is enough that it looks synchronized with the human eye and that that error does not increase much over time.

Grega Pusnik gravatar image Grega Pusnik  ( 2013-04-30 08:04:20 -0600 )edit

This could be done via open-loop approaches (if the total sequence in short), but closed-loop approaches (for the robot nodes) would in general be more robust. So for either of the answers below consider that option.

SL Remy gravatar image SL Remy  ( 2013-04-30 13:05:17 -0600 )edit

3 Answers

Sort by ┬╗ oldest newest most voted

answered 2013-04-29 05:51:54 -0600

Great thanks for the tips. I will try to join both prepositions. Message that the master sends also has a time stamp. So the robots will start the move at the same time: msg_time stamp + fixed_delay.

edit flag offensive delete link more

answered 2013-04-28 22:52:52 -0600

Your approach seems good enough, but make sure the frequency at which each of X robot checks for message is same and the frequency at which it publishes motion command is also same. Inherently each robot has its own delay of executing the published commands so even though they are receiving commands at same frequency there motion might not be completely synchronized.

edit flag offensive delete link more

answered 2013-04-28 21:08:57 -0600


Instead of starting when the msg is received, I would make them start at a given time. Like this, even if the msg takes a little more time to reach one of the robot, they should still be synchronized.



edit flag offensive delete link more

Question Tools


Asked: 2013-04-27 02:12:22 -0600

Seen: 936 times

Last updated: Apr 29 '13