1、是否有必要进行时间同步
目前的自动驾驶系统包括 感知、定位、决策规划、控制 等模块,这些模块的正常运行需要依靠各种不同类型的传感器数据的准确 融合。尤其是激光雷达与相机这两种传感器在感、知定位模块中起着至关重要的作用。机械式旋转扫描激光雷达本身较低的扫描频率(常用10Hz),而车辆经常运行在高速、高机动的运动状态下,造成激光雷达测量的点云会产生 运动畸变。而在激光雷达与相机图片的融合过程中,也会由于数据采集的不同步造成的一定测量偏差,这个偏差会随着车辆的运动速度增加而被放大。在车辆高速行驶时,即使是微小的时间偏差会对最终的激光点云和图像的时空对准造成影响,进而对融合定位、融合感知等的结果造成很大的偏差,从而影响自动驾驶的安全运行。为了满足自动驾驶系统对安全性和稳定性的高要求,需要保证不同传感器数据融合的准确性和可靠性。
假设车速在低速情况下10Km/H = 2.78m/s的情况下,如果同时存在3D激光的数据+摄像头情况下;3D激光的数据为10Hz,摄像头数据能够达到30Hz,当时间未同步下的,3D激光的权重大于摄像头的权重时,0.1s * 2.78m/s = 0.278m的盲区,速度越高盲区越大对于导航决策越危险。当前推算仅对于车体本身,当车体前面或者对面有高速移动目标的时候情况还会变得更复杂。
2、时间同步的原理
其中包含时钟同步和硬件两个方面来保证 时空同步:
这一切的目的是为了算法在后期做感知算法的时候,做 插值算法 的时候有据可依,没有准确的时钟同步,各传感器在哪一帧进行融合,在哪进行插值都没有办法进行判断。
时间同步: 就是通过统一的主机给各个传感器提供基准时间,各传感器根据已经校准后的各自时间为各自独立采集的数据加上时间戳信息,确保所有传感器时间戳同步。
空间同步 :就是不同传感器坐标系下的测量值转换到同一坐标系下(也可以理解为传感器在整车坐标系下的标定参数)。
这里仅对时间同步进行展开说明,先讲述两个重要概念。
GPS不仅是一个定位装置,还是一个 授时装置,这就是 PPS+NMEA ,GPRMC报文提供年月日时分秒信息(一般通过波特率9600串口发送接收,处理时间为毫秒级别)、PPS则通常使用1PPS即频率为1次每秒的秒脉冲。
PS:这个时间是绝对时间,由GPS上的原子钟校准得来的
另一种方式就基于IEEE 802.1 时间敏感组网(gPTP协议)与IEEE1588v2 精确时间协议(PTP协议)。
此种方式能够通过网络获得 nS级别 的精度,但此协议需要硬件支持,后续有空研究下这个硬件的操作。
3、时间同步方案
GPS作为主时钟来统一时钟看起来没有任何问题,但在某些时候GPS信号丢失的时候会造成整个系统没有主时钟的参考,这时候需要一个边界时钟在主时钟丢失的时候保证此时的时间相对一致。
另外GPS时钟输出一般为一个PPS IO信号和串口,通常只有一路信号,这个信号无法复用给多路传感器使用。某些传感器既不支持PPS也不支持网络PTP,例如相机支持硬件触发为IO电平触发。
此时需要一个时钟同步模块来进行分频触发,常用框架如图所示。
在多个系统框架中,可以采用如下方案:
其中两个ORIN之前采用PCIE通信,其中也可以添加FPGA来进行同步触发处理,通过添加PCIE交换机来实现。