ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Could you make one counter example of what could happen if I don't perform time synchronization?
It becomes impossible to correlate any messages with Header
s, as comparing their stamp
s becomes meaningless.
Any by extension: matching messages to TF frames also becomes impossible, as again, comparing stamp
s from systems with unsynchronised clocks is impossible.
2 | No.2 Revision |
Could you make one counter example of what could happen if I don't perform time synchronization?
It becomes impossible to correlate any messages with Header
s, as comparing their stamp
s becomes meaningless.
Any by extension: matching messages to TF frames also becomes impossible, as again, comparing stamp
s from systems with unsynchronised clocks is impossible.
Edit:
Thank you gvdoorn. The weird thing is that currently the entire system is not "time synchronized". But still they can read sensor values from remote PC and jetson, send all the values to local PC which then calculates the control inputs and sends back to the remote PC and jetson.
You could just be lucky and have a configuration that works without synchronisation, or the clocks are close enough for your current use-case.
If you're not actually "using" time, not having synchronised clocks would obviously not be a problem. One example of a system not using time would be one where no Stamped
messages are used, or where TF is not used, or if TF is used, only the latest available transforms are being used (ie: ros::Time(0)
instead of using the stamp
to look up a transform). If you have a relatively simple control loop which only uses "latest" data, not having synchronised the clocks would most likely not lead to any problems.
I wonder what would be the negative effects of current setup? Is the system overall loop rate going to be quicker if I perform "time synchronization"?
This is not about performance (or at least not that part which is measured in "loop rate"): it's about consistency and coherency.
I would strongly recommend you invest 30 minutes in setting up proper time sync between all involved hosts, as it will save you headaches in the (near) future.
3 | No.3 Revision |
Could you make one counter example of what could happen if I don't perform time synchronization?
It becomes impossible to correlate any messages with Header
s, as comparing their stamp
s becomes meaningless.
Any And by extension: matching messages to TF frames also becomes impossible, as again, comparing stamp
s from systems with unsynchronised clocks is impossible.
(and these are just two examples)
Edit:
Thank you gvdoorn. The weird thing is that currently the entire system is not "time synchronized". But still they can read sensor values from remote PC and jetson, send all the values to local PC which then calculates the control inputs and sends back to the remote PC and jetson.
You could just be lucky and have a configuration that works without synchronisation, or the clocks are close enough for your current use-case.
If you're not actually "using" time, not having synchronised clocks would obviously not be a problem. One example of a system not using time would be one where no Stamped
messages are used, or where TF is not used, or if TF is used, only the latest available transforms are being used (ie: ros::Time(0)
instead of using the stamp
to look up a transform). If you have a relatively simple control loop which only uses "latest" data, not having synchronised the clocks would most likely not lead to any problems.
I wonder what would be the negative effects of current setup? Is the system overall loop rate going to be quicker if I perform "time synchronization"?
This is not about performance (or at least not that part which is measured in "loop rate"): it's about consistency and coherency.
I would strongly recommend you invest 30 minutes in setting up proper time sync between all involved hosts, as it will save you headaches in the (near) future.