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

Revision history [back]

To have TF and all the other time based things properly, it is important to have all clocks synchronized. NTP is just a very simple way to achieve that. Another one that is used e.g. on the PR2 is chrony.

If you don't set up NTP everything will be working fine as long as you are executing it on the same PC. If you have a setup using several computers communicating over a network, make sure that times are synchronized.

To have TF and all the other time based things properly, it is important to have all clocks synchronized. NTP is just a very simple way to achieve that. Another one that is used e.g. on the PR2 is chrony.

If you don't set up NTP everything will be working fine as long as you are executing it on the same PC. If you have a setup using several computers communicating over a network, make sure that times are synchronized.

Edit: Sensors, odometry, etc. publish data with a time-stamp that is generated from using system time which is set by NTP. The stamp is then used by TF to transform between coordinate frames. Example: You have a tilting laser sensor. The position of the tilt-joint and the laser scans are continuously published on topics, with a time stamp. If you now want to build up a 3D point cloud in your robot's base frame, you need to transform each laser point (using its time stamp) to the base frame, using the position of the joint at the time when the laser scan has been taken. If now the joint and the laser are connected to two different computers and the clocks are not synchronized, the resulting point cloud will be wrong.