Ask Your Question

Revision history [back]

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 Headers, as comparing their stamps becomes meaningless.

Any by extension: matching messages to TF frames also becomes impossible, as again, comparing stamps from systems with unsynchronised clocks is impossible.

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 Headers, as comparing their stamps becomes meaningless.

Any by extension: matching messages to TF frames also becomes impossible, as again, comparing stamps 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.

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 Headers, as comparing their stamps becomes meaningless.

Any And by extension: matching messages to TF frames also becomes impossible, as again, comparing stamps 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.