Time Synchronization
Overviewβ
SENSR-I supports the distributed system with multiple Algo nodes. In this case, the time synchronization between the Master node machine and Algo node machines is required to ensure the accuracy of the perception result. Itβs because SENSR-I uses timestamps to merge the perception results of each Algo node.
In general, time synchronization is not very important, but use it when many Algo nodes are used, and system clock differences may occur due to long-term use.
Protocolβ
SENSR-I supports configuring the time synchronization between the Master node machine and Algo node machines using the PTP protocol. The built-in function of SENSR-I makes it easy to set up a very simple PTP configuration for customer convenience. The guide below is also an elementary PTP setting. If you have an additional understanding of PTP, you can use the relevant config information to configure the settings optimized for your needs.
Furthermore, time synchronization can be set outside SENSR-I using the network. It can be solved through other protocols or software other than the built-in function of SENSR-I.
How to check the time difference of each Algo nodeβ
You can find the time difference between the Master node machine and Algo node machines either by hovering the mouse over ** ms
at the right side of Algo node in Project Setup
mode or Window > Connection Monitor
in Runtime
mode.
Time synchronization between LiDARs and Algo node machinesβ
SENSR-I currently does not support time synchronization between LiDARs and Algo node machines. Theoretically, LiDARs supporting the PTP protocol can also be synchronized together. For details, please refer to the manuals of LiDAR manufacturers or ask via support@seoulrobotics.org.
How to use Time-sync feature in SENSR-Iβ
Check the network information of each node machine.
- You can check it with
ifconfig
command in the terminal. - Check the network interface (for example,
enp4s0
) and whether it's unicast.
- You can check it with
Click
Start Algo node(s)
inProject Setup
mode or Go toRuntime
mode.Go
Settings > Advanced Features > Time Synchronization
and selectManual Setup
tab.Configure the settings following the guide below.
- Select any nodes, type the name of a new network interface (recommended name is the network interface, such as
enp4s0
), and click+
button. - Put the PTP configurations for the node. (Since it exposes underlying
ptpd
configuration parameters for time synchronization, you can refer to ptpd configs for full list ofptpd
configs and configure by yourself, or follow the sample configuration below.) - Repeat the step 1 and 2 for each node machines.
- You must not set it up for the Algo node which is running in the same machine with the Master node.
- Select any nodes, type the name of a new network interface (recommended name is the network interface, such as
Press
Apply
button.You can check time synchronization is working in
Status
tab.- For Master node time sync instance, we show IP of each devices connected and estimated offset from master clock.
- For Algo node time sync instance, we show IP of master clock device, last time sync, and delay from delay request packet.
Sample PTP configurationβ
- Master node machine with unicast
ptpengine:interface = <network-interface>
ptpengine:preset = masteronly
ptpengine:transport = ipv4
ptpengine:ip_mode = unicast
ptpengine:unicast_negotiation = Y
ptpengine:delay_mechanism = E2E
ptpengine:domain = 3
ptpengine:unicast_destinations = [<list-of-algo-node-ips-using-comma-seperation>]
# example of unicast_destinations = [10.10.1.101, 10.10.1.120]
# don't put the IP of the Algo node which is running in the same machine with the Master node. - Algo node machine with unicast:
ptpengine:interface = <network-interface>
ptpengine:preset = slaveonly
ptpengine:transport = ipv4
ptpengine:ip_mode = unicast
ptpengine:unicast_negotiation = Y
ptpengine:delay_mechanism = E2E
ptpengine:domain = 3
ptpengine:unicast_destinations = <master-node-machine-ip>