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

Will this Project be possible? / ROS Time Syncronisation

asked 2012-08-07 11:38:17 -0600

dinamex gravatar image

updated 2016-10-24 09:03:07 -0600

ngrennan gravatar image

Hi Guys,

I would like to discuss the doability of a project. I want to run a couple of ARM Boards (Pandaboard ES) which are connected to each other with an Ethernet-switch. The Boards already run ROS electric and Ubuntu 11.10. Every board is hosting a sensor like a Kinect or Webcam. Now I want to trigger an event and every sensor should publish the data from the exact same time-stamp (synchronization of the data should be in the milliseconds range).

Will that be possible by exporting the master to a single board which is providing the ROS-Time for all other nodes. Did I get I right that the Timestamps in the Sensor_msgs depend on the ROS-Time and so it should be possible to obtain data from the exact same time stamp or will I encounter a summation of time delays? Or does the timestamp in the sensor_msgs header depend on the system time? Is there a way to use the clock just from a single board

It would be great to here about your expertise/opinion.


edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2012-08-08 18:11:20 -0600

bit-pirate gravatar image
  • ROS on ARM

Which ARM devices are you talking about? ROS on ARM is in some cases possible (e.g. running a Linux system on an ARM board, such as the Beagleboard), but there aren't many user out there AFAIK. This Q&A gives an insight:

  • Synchronisation

As cagatay already mentioned, you will need to sync your machines (your ARM boards) by hand or with tools like chrony. A Q&A on this topic:

Regarding the actual synchronisation of your data, you have to keep in mind that the data is usually time-stamped on creation. Once you request data, you would get the most recent one. So you need to implement some mechanism to align your data. I recommend to look around for existing code & projects, since data synchronisation is common problem.

But after all, I say, yes it is possible! :-)

edit flag offensive delete link more


So the timestamp in each header of an sensor_msgs depends on the systemclock one the machine and not on the ROS-Master?

dinamex gravatar image dinamex  ( 2012-08-09 03:32:48 -0600 )edit

for the ARM part see the edited Question.

dinamex gravatar image dinamex  ( 2012-08-09 04:08:01 -0600 )edit

Yes, ROS times are relative to the system clock, not the time on the master (unless you are using sim_time, but that is for simulation). You sync computer clocks with something like ntp or chrony. Also, you need to make sure your sensors are triggerable - I don't think the Kinect is.

Eric Perko gravatar image Eric Perko  ( 2012-08-09 05:35:48 -0600 )edit

answered 2012-08-07 11:43:05 -0600

cagatay gravatar image

have you tried using ntp or chrony ?

edit flag offensive delete link more


Thank you for the answer. Do I need to sync the clocks of all boards even when I export the ROS-MASTER?

dinamex gravatar image dinamex  ( 2012-08-07 11:53:18 -0600 )edit

I guess, you may encounter problem with various computers running ros. check the network setup for ros, fifth topic is related with your question as far as i understand

cagatay gravatar image cagatay  ( 2012-08-07 11:55:30 -0600 )edit

answered 2015-11-08 07:13:46 -0600

mpatalberta gravatar image

I have had to combine 5 different computers where 1 machine is the ROS_MASTER and the other are not. I can get sub microsecond accuracy but this requires a continual time update from the master server.

I use and NTP server on the machine running ROS_MASTER. The remaining machine i run a simple cron job updating the time.

edit flag offensive delete link more

Question Tools


Asked: 2012-08-07 11:38:17 -0600

Seen: 718 times

Last updated: Nov 08 '15