在自动驾驶中,主要涵盖感知、规划、控制三个关键的技术层面。在感知层面,单一传感器采集外界信息,各有优劣,比如摄像头采集信息分辨率高,但是受外界条件影响较大,一般缺少深度信息;激光雷达有一个较大的感知范围和精度,但是分辨率上不如相机。因此,市面上普遍采用多传感器的方案进行车辆感知。而做传感器融合时,需要先进行运动补偿、时间同步和传感器标定。
要实现多传感器的时间同步,首先,我们需要选择一个统一的时钟源,为整个系统提供时间基准,通过"PPS+GPRMC"形式完成主设备授时。此外,在系统中包含多个不同类型的传感器,一般采用基于以太网的时间同步协议,实现主设备与传感器的高精度时间同步。这一整体流程确保了多传感器数据能在统一时间框架内准确分析处理。
一、时间源
1、GNSS
在自动驾驶系统时间同步中,多数情况下会配备高精度GNSS车载接收机,如图1所示。GNSS接收机会解算导航卫星信号从而实现定位和授时功能。具体来说,解算获得导航卫星中高精度原子时钟与本系统时间的钟差,从而校准系统时间,完成GNSS的授时功能。
图1:GNSS接收机
二、PPS+GPRMC
随后,GNSS接收机会发送PPS脉冲+GPRMC报文,信号如图2所示。
图2:PPS与GPRMC
1、PPS
PPS(Pulse Per Second,秒脉冲):基于 UTC(协调世界时)产生时间周期为1s的同步脉冲信号,脉冲宽度通常在5ms-100ms之间。
2、GPRMC
GPRMC(Global Positioning System Recommended Minimum data,全球定位系统推荐最小数据集):是NMEA 0183报文之一,包含经纬度、日期(年、月、日)和UTC时间(精确到秒)等信息,通过标准串口进行输出。
3、时间同步管理
通过PPS+GPRMC进行时间同步原理如下:
当设备(比如域控制器、工控机)接收到PPS秒脉冲后,会将内部以晶振为时钟源的系统时间进行清零(毫秒及以下部分),并由此开始计算毫秒时间。
设备收到GPRMC数据后,提取报文中的UTC时间(时、分、秒、年、月、日)。
收到秒脉冲到解析出GPRMC中UTC时间所用时间为tx,tx时间与UTC整秒时间相加同步给设备系统,进而完成一次时间同步。
每秒钟会精确校准一次系统时间,以确保时间的准确性。
4、可操作性
在智能驾驶的方案中,一般都采用多传感器进行数据采集和存储。此时如果我们在域控制器与各类传感器之前都采用"PPS+GPRMC",用两根线来连接这两个物理接口,技术上是可行的,但是实际上十分难以操作。
PPS是低功率脉冲电平信号,一次性带十几个设备是十分困难的,并且容易出现信号干扰。
GPRMC通过RS232串口发送同步报文,RS232是一种1对1的全双工通信形式,也可以通过主从形式实现1对几数据传输,但对十几,非常少见。
因此,基于单纯的PPS和GPRMC实现整个自动驾驶系统的时间同步,具有理论可行性,但并不具有实际可操作性。
三、高精度时间同步协议
1、PTP
PTP(Precision Time Protocol,精确时间协议)是一种IEEE 1588标准定义,用于在以太网中实现高精度的时间同步网络协议。它能够为网络中的所有设备提供一个统一的时间参考,从而确保数据的时效性和一致性。采用硬件时间戳,可以大幅减少软件处理时间,同步精度可以达到亚微秒级。此外,PTP可以运行在L2层(MAC层)和L4层(UDP层),在L2层网络运行时,可以在MAC层中直接进行报文解析,避免在UDP层处理,减少协议栈中驻留时间,进一步提高时间同步精度,十分适用于自动驾驶系统。
PTP网络由一个主时钟(Master Clock)和多个从时钟(Slave Clock)组成,。主时钟通常连接到一个高精度的时间源,如GPS,而从时钟则分布在网络中的各个设备上,如各类传感器。同时定义了三种时钟节点,包括普通时钟,边界时钟和透明时钟。
普通时钟(Ordinary Clock, OC):基本的从时钟,只有一个PTP通信端口,只同步时间。
边界时钟(Boundary Clock, BC):有多个PTP通信端口的时钟,可以接收一个时间信号并转发到另一个网络段,如交换机或路由器。
透明时钟(Transparent Clock, TC):通过它的报文不需要进行任何处理,直接转发。
2、时间同步过程
PTP通过在主从设备之间交互同步报文,并记录下报文发送时间,从而计算网络传输延迟和主从设备间时钟的偏差。同步报文包括:Sync、Follow_Up、Delay_Req和Delay_Resp,时间同步过程如下,如图3所示:
图3:PTP时间同步过程
主时钟周期性的发送 Sync 报文 (预计时间) → 从时钟接收 Sync 报文 (时间 t2);
主时钟发送 Follow_Up 报文 (实际发送时间 t1) → 从时钟接收 Follow_Up 报文;
从时钟发送 Delay_Req 报文 (发送时间 t3) → 主时钟接收 Delay_Req 报文 (接收时间 t4);
主时钟发送 Delay_Resp 报文 (包含时间 t4) → 从时钟接收 Delay_Resp 报文;
从时钟根据网络往返延时和时钟偏差的测量结果,调整其本地时钟。
值得注意的是,t1和t4时间由主时钟记录,t2和t3时间由从时钟记录。这样我们就可以计算网络延时和时间偏差。其中,网络延时是Sync报文和Delay_Resp报文在网络中往返传输的时间,D=[(t2-t1)+(t4-t3)]/2。时间偏差是从时钟与主时钟之间的时间差,Δ=(t2−t1)−D。
具体来说,从设备会根据网络延迟调整其接收到的同步报文的时间戳,以消除网络传输带来的延迟影响。同时,从设备还会根据时钟偏差的测量结果,调整其本地时钟的频率或相位,使其与主设备的时钟保持一致。
3、gPTP
此外,除了PTP时间同步协议,我们也会在自动驾驶领域时常看见gPTP(Generalized Precision Time Protocol)协议。gPTP和PTP都是基于IEEE标准的时间同步协议,其中PTP遵循IEEE 1588标准,而gPTP是IEEE 802.1AS标准。
PTP最初设计用于以太网,主要关注局域网(LAN)内的时间同步。而gPTP设计用于更广泛的网络环境,包括局域网和广域网(WAN),以及跨越不同网络技术的场景。gPTP在PTP的基础上增加了一些额外的功能和机制,以支持更广泛的网络环境和应用场景,比如边界时钟(Boundary Clock)的概念,用于处理网络中的复杂路径。但它们的最终目的都是为网络中的设备提供高精度的时间同步。
四、时间同步方案
1、康谋数据采集方案
针对智驾域控制器测试和数据采集,我们康谋带来了一整套的数据采集方案。基于BRICK/ATX4系列工控机和时间同步XTSS软件,如图4所示。
图4:BRICK/AXT4工控机与XTSS软件
在时间同步方面,GNSS作为上佳的时钟源,又可与智驾域控制器直接连接(或内置)。因此,可以采用智驾域控制器成为主时钟节点。方案架构如图5所示,配置BRICK/ATX4设备处于边界时钟节点,其他各类传感器通过车载以太网(PTP/gPTP)连接进行时间同步,对于相机,我们可以采用外触发方式在主控中记录此时系统时间或者通过转换器进行打时间戳进行记录。
图5:数采方案时间同步架构
总的来说,在BRICK/ATX4系列工控机中,集成了GNSS接收机,可以简便快捷的采集GPS信号,进行授时,获取精确的时间信息。配备了多个以太网接口,支持时间同步(PTP/gPTP)配置,与各类转换器一起,采集各种传感器的数据,满足自动驾驶各类场景下的数据采集任务。
通过XTSS软件可以进行灵活的时间同步配置,包括gPTP和PTP(UDP – P2P, UDP – E2E, 1588 Ethernet – E2E)。因此,通过XTSS软件可以在BRICK/AXT4工控机上(支持硬件时间戳的以太网接口)捕获精确的硬件时间戳。
五、应用案例
1、数采系统
通过BRICK/ATX4系列工控机和XTSS软件,我们可以方便快捷的搭载数采系统并配置时间同步服务。此次,我们联合友思特,搭载了以Blickfeld LiDAR+BRICK plus+XTSS软件的数采采集系统,如图6所示。
图6:数采系统
在搭载好整个系统后,就可以对XTSS软件配置PTP时间同步服务,以确保BRICKplus端口支持PTP同步,随后在LiDAR的GUI界面中配置同样的PTP,我们就可以完成激光雷达的时间同步配置。如图7所示,我们可以看到激光雷达时间同步配置服务成功,与主时钟的误差在us级别。
图7:时间同步配置