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

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

Hey,

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?

Thanks

edit retag flag offensive close merge delete

Comments

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
0

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
1

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

Hi,

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.

Bests,

Stéphane

edit flag offensive delete link more
1

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

Question Tools

Stats

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

Seen: 1,174 times

Last updated: Apr 29 '13