写点什么

多传感器时间同步

作者:秃头小苏
  • 2022 年 7 月 12 日
  • 本文字数:1809 字

    阅读完需:约 6 分钟

时间同步

   第一次谈及时间同步,可能会有点懵逼。其实这在我们生活中是很常见的,小时候应该都用过那种电子手表,这种电子手表往往隔一段时间就会不准确,需要手动进行校准。这种手动校准的过程就可以认为是时间同步。想想看,若是没有时间同步,那可真是乱了套了,想要在家看个世界杯,都不能及时的和别人分享进球的喜悦,这这这...是不是也太难受了...  好了,下面就重点来说说多传感器的时间同步。多传感器数据的时间同步是多传感器信息融合的必备条件之一。实际上,由于各个传感器独立封装并按照自己的时钟基准运行,往往采样频率也不尽不同,这些将导致种采样数据时间上不同步。针对这一问题有硬同步和软同步两种解决方案。硬件同步是指定制传感器,使得多个传感器能在同一时刻触发采样,例如多个传感器安装于同一个晶振下工作。软件同步是指通过统一的主机给各个传感器提供基准时间,使得传感器每帧数据同步到统一的时间戳上。 

1.1 软同步

   软件同步的方法主要就是利用时间戳进行不同传感器的匹配。通常是将各传感器数据统一到扫描周期较长(频率较小)的传感器数据上。拿某 4 线激光雷达(采样频率约 12.5Hz)和某相机(采样频率约 30Hz)来说明,显然记过雷达的周期大,则以激光雷达的采样频率为基准进行匹配,如下图所示:



  图中绿色虚线框表示激光雷达采集频率,蓝色虚线框表示相机采集频率,横轴表示统一的时间戳。传感器的每个采样时刻记录在统一的时间序列上。当激光雷达完成一次采样时,寻找与该时刻<font color="red">最近邻时刻</font>的图像,这样便完成了两种数据的时间匹配,如图中红色方框所示。可以看出,这种时间同步的方式可能存在一些问题:上文红色字体所述的最近邻时刻较为模糊,若最近邻的时刻同样和激光雷达采样时间差距较大,那最终的时间同步的效果肯定不好;另一方面,如若随着需要进行时间同步的传感器越来越多,那么匹配的难度必然加大,匹配的精度也大大折扣。这时候可能就需要别的方法来支持时间同步了,硬件同步就油然而生。  

1.2 硬同步

  硬同步主要是通过 GNSS 进行授时的,传感器自身集成了 GPS 通信接口,可以接收一些数据和信号。目前使用较多的是使用 PTP 协议解决各传感器设备时间同步的问题。  首先先来介绍一下 PTP 协议,其是基于数据包的时间同步协议。数据传输和时间同步使用同一网络,它描述了如何在基于数据包网络(比如以太网)上分配同步时间的机制。时钟精度达到亚微秒级。PTP 是一种主从式的时间同步系统,采用硬件时间戳,因此可以大幅减少软件处理时间。同时 PTP 可运行在 L2 层(MAC 层)和 L4 层(UDP 层),运行在 L2 层网络时,直接在 MAC 层进行报文解析,不用经过四层 UDP 协议栈,从而大幅减少协议栈驻留时间,进一步提高时间同步精度,对于自动驾驶系统来说非常友善。  好了,是不是没怎么看懂,我也是。我觉得姑且可以认为这种方法还是蛮不错的,可以较好的完成时间同步的任务。下面具体阐述通过 PTP 协议进行时间同步的过程。  还是先来对一些基本概念进行一个了解。设备中运行 PTP 协议的网络端口称为 PTP 端口,PTP 主端口用来发布时间,PTP 从端口用来接收时间。同时还定义了如下三种始终节点:



  PTP 通过在主从设备之间交互同步报文,并记录下报文发送时间,从而计算网络传输延迟和主从设备间时钟的偏差。PTP 定义了四条同步报文:Sync、Follow_Up、Delay_Req、Delay_Resp,精确同步过程如下。



1、PTP 主端口向从端口发送 Sync 报文,同步记录下 Sync 发送的时间 t1。从端口收到 Sync 报文后,记录下收到的时间 t2。


2、紧接着主端口将 t1 时间放到 Follow_Up 报文发送给从端口,从端口收到此报文后就可以解析出 t1,并由此得到第一个方程式:<font color="red">t1+网络延时+时钟偏差=t2</font>。


3、从端口向主端口发送 Delay_Req 报文,同步记录下 Delay_Req 发送的时间 t3。主端口收到报文后,记录下收到的时间 t4。


4、紧接着主端口将 t4 时间放到 Delay_Resp 报文发送给从端口,从端口收到此报文后就可以解析出 t4,并由此得到第一个方程式:<font color="red">t3+网络延时-时钟偏差=t4</font>。


上文红色公式有两个未知数,两个方程组,应用初中数学知识可以解出:网络延时 Delay=[(t2-t1)+(t4-t1)]/2,时钟偏差 Offset=[(t2-t1)-(t4-t3)]/2。


  知道了 Delay 和 Offset 就能对传感器的时间进行调整,从而进行传感器的时间同步。


咻咻咻咻~~duang~~点个赞呗


参考文章: https://zhuanlan.zhihu.com/p/135938786https://mp.weixin.qq.com/s/zE32DmNAVthRBlPXK9OA3w

发布于: 刚刚阅读数: 3
用户头像

秃头小苏

关注

还未添加个人签名 2022.07.01 加入

还未添加个人简介

评论

发布
暂无评论
多传感器时间同步_时间同步_秃头小苏_InfoQ写作社区