时间同步原因
每种电子设备都有各自的时钟,起始时间均不相同,而且因晶振质量的差异,频率也不同。由于时钟域未完全同步,所以未同步传感器的数据,时间戳只能定为计算平台接收到数据时的时间戳;这中间的误差∆t,通常在几ms到几十ms之间。各传感器成像的时间不一致,导致成像结果之间无法有效对齐,进而会导致各传感器检测到的障碍物位置发生偏差,自车速度越大,偏差越大。比如车速为120km/h,∆t = 0.1s,∆s = v ∗ ∆t = 3.33m,能达到3m左右的误差。所以多传感器系统需要尽量降低时间戳与真实成像时间之间的误差。因此时间同步就是为了解决如何让所有传感器在同一个时钟下工作。
时间同步说明
大致有3种时间同步方式:
PTP:IEEE 1588v2.0 PTP 网络协议同步;
GPS:秒脉冲+GPRMC时间数据,组成GPS时间同步方式;
PPS:秒脉冲同步,需要上层应用程序通过其他途径(如:uart)获取每个脉冲的时间信息,并修正点云时间。用法较为复杂,不推荐用户使用这种方式进行时间的同步。
同步原理
PTP时间同步原理
PTP(Precision Time Protocol)是一种用于实现网络设备之间时间同步的协议。它的原理基于协调世界时(Coordinated Universal Time,UTC)和网络延迟测量,以确保各个设备具有高度准确的时间参考。PTP使用主从架构,其中一个设备充当主时钟(Master Clock),其他设备则充当从时钟(Slave Clock)。主时钟是时间源,它通过PTP协议广播时间信号,而从时钟通过接收主时钟的信号进行同步。
同步过程使用IEEE 1588v2.0 PTP的Delay request-response机制(two steps),雷达相机等设备作为slave端,和master时钟设备(如GPS卫星信号,也可以是内部高精度时钟。主时钟应该是稳定的,并且具有高精度的时间参考。)进行ptp时间同步。
主时钟周期性地发送时间戳信息到从时钟。时间戳通常使用协调世界时(UTC)表示,并包含主时钟发送时的时间值。从时钟接收到主时钟发送的时间戳信息后,计算从时钟接收到该信息的延迟时间。由于网络传输的延迟是不可预测的,从时钟需要对这个延迟进行补偿,以获得更准确的时间同步,具体过程如下图所示:
master和slave时钟通过Sync、Follow_Up、Delay_Req、Delay_Resp这几个数据包的交互,得到t1、t2、t3、t4时间,通过如下计算得到传输路径延迟和两时钟的偏移:
Offset = (t2 - t1) - Delay = [(t2 - t1) + (t3 - t4)] / 2
GPS时间同步原理
GPS时钟源的PPS端口每秒发送一次硬件脉冲(PPS信号),随后数据端口发送一次对应这个脉冲上升沿的时间信息(GPRMC格式)。雷达等设备接收到PPS信号上升沿,并由GPRMC数据解析出正确的时间信息后,会设置点云时间为GPS时间,并保持此时间基准持续累加,来实现和GPS设备的时间同步。
时间 | 描述 | 有效范围 | 推荐值 |
---|---|---|---|
t0 | 相邻两次秒脉冲上升沿的间隔 | 900 ms ~ 1100ms | 1000 ms |
t1 | 秒脉冲的高电平时间 | 5 ms ~ 900 ms | 10 ms ~ 200 ms |
t2 | GPRMC的传输时间(波特率:9600bps) | ≈ 70 ms | 70 ms |
t3 | GPRMC数据开始发送相对于脉冲上升沿的延迟 | 0 ms ~ 900 ms | 0 ms ~ 430 ms |
硬件时间同步实现
参考FAST-LIVO的配置实现方案
Fast-LIVO复现之设备配置与组装