PTP is a new feature that allows other PTP compatible devices to synchronize their clock to the clock of an OxTS device. OxTS devices get their time solution from GNSS satellites which use very accurate atomic clocks. The time that OxTS devices receive from the satellites is the number of seconds since midnight January 5th - January 6th 1980. This is know as the GPS epoch and from this the device can calculate the current date and time. By default, when an OxTS device is used with PTP, it will be using the GPS epoch.
Different Time modes
Not all devices expect timestamps to be in the GPS epoch. Here is a list of commonly used time modes:
Time in seconds since the GPS epoch (1980-01-01 00:00:00 UTC), same as NCOM.
Time in seconds since the Unix epoch (1970-01-01 00:00:00 UTC).
Time in seconds since the Unix epoch (1970-01-01 00:00:00 UTC),
|PTP|| Time in seconds since the PTP epoch (1969-12-31 23:59:51 TAI),
including leap seconds.
To get the correct date and time from a timestamp, it is important to know which epoch is being used.
Using a different time mode
If the PTP device being synchronised to the OxTS device does not use the GPS epoch, it is possible to configure the OxTS device to output PTP timestamps from a different epoch (this will not change the timestamps in the NCOM stream). This is done by adding the relevant advanced command in NAVconfig (Modify Configuration>Advanced>Commands):
Here you can see that the different time modes can be reached by adding different offsets to the GPS timestamps. Similarly, the -ptp_custom_offset_%d command can also be used to access time modes not listed above by finding the correct offset (which will be the number of seconds between the different epochs).
Note: Some PTP devices that we have tested with ignore the Leap second information that is output alongside the timestamp. This results in an 18 s offset when UTC mode is used. To avoid this, use the corresponding custom offset command instead of the time mode command.
Adding the offset in OxTS Georeferencer
If PTP is being used to synchronize a LiDAR with an OxTS, it is possible to change the time mode in OxTS Georeferencer if the wrong time mode was used during the data collection. This is done by opening 'Advanced Settings' from the Files tab using the 'lidar_time_offset=%d' command where %d is the offset in nanoseconds.
Hesai Pandar40P example
During internal testing of the PTP feature, a data was collected with a Hesai Pandar40P and an RT3000 v3. Time synchronisation was achieved using PTP. The RT3000 v3 was in GPS mode but the Hesai Pandar40P was expecting timestamps in UTC. The following command was required to generate an accurate pointcloud:
If the RT3000 v3 was instead in Unix time mode, the following command would be required: