康谋技术 | 自动驾驶:揭秘高精度时间同步技术(一)

众所周知,在自动驾驶中,主要涵盖感知、规划、控制三个关键的技术层面。在感知层面,单一传感器采集外界信息,各有优劣,比如摄像头采集信息分辨率高,但是受外界条件影响较大,一般缺少深度信息;激光雷达有一个较大的感知范围和精度,但是分辨率上不如相机。因此,市面上普遍采用多传感器的方案进行车辆感知。而做传感器融合时,需要先进行运动补偿、时间同步和传感器标定。

要实现多传感器的时间同步,首先,我们需要选择一个统一的时钟源,为整个系统提供时间基准,通过”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:时间同步配置

这里我们也附上了激光雷达与XTSS配置的视频,欢迎各位点击观看,了解更多详情。   

激光雷达时间同步


如您对上述产品和解决方案感兴趣,

欢迎联系康谋自动驾驶团队了解更多信息。

我们将竭诚为您服务!

期待与您的交流!

康谋科技 - 您的一站式自动驾驶解决方案合作伙伴,助力自动驾驶商业化落地 - keymotek康谋科技有限公司是原虹科自动驾驶业务孵化出来的全新独立公司,专注于自动驾驶领域。我们以数据为驱动力,提供高性能的数据采集、记录、传输方案,针对各种驾驶场景进行精准的仿真模拟,以及对大量自动驾驶数据进行高效、高质量处理。我们的一站式服务能够满足自动驾驶领域研发测试的全流程需求,助力客户在自动驾驶领域取得更大突破。icon-default.png?t=N7T8https://keymotek.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/341365.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐一个免费的相亲工具

推荐一个免费的相亲工具,步骤如下: 1)微信里面搜索公众号“光源桥”,并关注 2)输入搜索条件进行搜索对象 例如下面搜索:

Pinterest免费引流实操演示

这篇文章中你将了解到 1.Pinterest网站介绍,用户群体,适合做什么品类。 2.现在的商家都在上面做什么?案例展示。 3.我们在这个站免费引流要怎么做以及注意事项。 1.Pinterest网站介绍,用户群体,适合做什么品类。 P…

【Excel】Excel中将日期格式转换为文本格式,并按日期显示。

【问题需求】 在使用excel进行数据导入的过程中, 有的软件要求日期列必须是文本格式。 但是直接将日期列的格式改为文本后,显示一串数字,而不按日期显示。 进而无法导入使用。 【解决方法】 使用【TXET】函数公式进行处理, 在单…

百度ERNIE系列预训练语言模型浅析(4)-总结篇

总结:ERNIE 3.0与ERNIE 2.0比较 (1)相同点: 采用连续学习 采用了多个语义层级的预训练任务 (2)不同点: ERNIE 3.0 Transformer-XL Encoder(自回归自编码), ERNIE 2.0 Transformer Encode…

泛微开发修炼之旅--05Ecode入门讲解、接口调用源码示例及踩坑总结

文章链接:泛微开发修炼之旅--05Ecode入门讲解、接口调用源码示例及踩坑总结

操作系统复习-linux的进程管理

linux的进程管理 linux进程的相关概念 进程的类型 前台进程 前台进程就是具有终端,可以和用户交互的进程,会占用终端shell,不可以输入其他的命令。 后台进程 前台进程就是具有终端,可以和用户交互的进程。 不会占用终端shell&a…

数据分析必备:一步步教你如何用Pandas做数据分析(17)

1、Pandas 连接 Pandas 连接的操作实例 Pandas具有与SQL等关系数据库非常相似的功能齐全的高性能内存中连接操作。 Pandas提供单个功能merge作为DataFrame对象之间所有标准数据库联接操作的入口点 pd.merge(left, right, howinner, onNone, left_onNone, right_onNone,left_i…

实战|基于YOLOv10与MobileSAM实现目标检测与分割【附完整源码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

[240605] FreeBSD 发布 v14.1 | ChatGPT 出现故障,部分用户无法使用

目录 FreeBSD 发布 v14.1ChatGPT 出现故障,部分用户无法使用 FreeBSD 发布 v14.1 一、概述 FreeBSD 项目发布了 FreeBSD 14.1-RELEASE,这是 stable/14 分支的第二个稳定版本。 二、主要更新 C 库在 amd64 架构上实现了 SIMD 字符串和内存操作&#x…

Navicat使用ssh隧道连接mysql数据库

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139352748 文章目录 前言新建连接MySql,填写ssh隧道信息方式1:使用密码方式连接方式二:使用密钥方式连接 填写常规信息总结 前言 使用ssh隧道连接数据库,方便本机…

月入30000的软件测试人员,简历是什么样子的?

我们都知道,简历是一个人进入职场的敲门砖。从某种层面来说,简历也像一个人的具象身份证,或者专业资格证。所以,一份简历的好坏,不仅关乎个人的“脸面”,更关乎你是不是一个有“含金量”的技术人员。 所以…

<vs2022><问题记录>visual studio 2022使用console打印输出时,输出窗口不显示内容

前言 本文为问题记录。 问题概述 在使用visual studio 2022编写代码时,如C#,在代码中使用console.writeline来打印某些内容,以便于观察,但发现输出窗口不显示,而代码是完全没有问题的。 解决办法 根据网上提供的办法…

FastDFS分布式文件系统

一、概述 FastDFS是一款由国人余庆开发的轻量级开源分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,主要解决大容量文件存储和高并发访问问题&#xff0c…

ru域名如何申请ssl证书

SSL证书是一种数字证书,通过它可以在客户端和服务器之间建立加密通道,保证数据在传输过程中的安全性。对于.ru域名来说,申请SSL证书可以有效提升网站的安全性,增强用户对网站的信任度,提高网站的排名和权重。今天就随S…

C#使用GDI对一个矩形进行任意角度旋转

C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…

【遂愿赠书 - 2期】:618火热来袭,网络安全书单推荐

文章目录 一、网络安全书单背景二、网络安全与编程实践书单2.1 🏰《内网渗透实战攻略》2.2 🛡️《Kali Linux高级渗透测试(原书第4版)》2.3 🎖️《CTF那些事儿》2.4 🚀《权限提升技术:攻防实战与…

JVM学习-类加载过程(二)

Initialization初始化阶段 为类的静态变量赋予正确的初始值 具体描述 类的初始化是类装载的最后一个阶段,如果前面的步骤没有问题,那么表示类可以顺利装载到系统中,此时,类才会开始执行Java字节码(即,到了初始化阶段…

LLVM技术在GaussDB等数据库中的应用

目录 LLVM和数据库 LLVM适用场景 LLVM对所有类型的SQL都会有收益吗? LLVM在OLTP中就一定没有收益吗? GaussDB中的LLVM 1. LLVM在华为应用于数据库的时间线 2. GaussDB LLVM实现简析 3. GaussDB LLVM支持加速的场景 支持LLVM的表达式&#xff1a…

【Kubernetes】k8s集群的污点、容忍、驱逐 以及排障思路

污点和容忍以及驱逐 一、污点(Taint) 污点介绍 节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 Pod。 Taint 和 Tol…

非递归实现快排排序及归并排序(尾篇)

1.快速排序(双指针实现) 2.非递归实现快排 3.递归实现归并排序 4.非递归实现归并排序 5.总代码 1.快速排序(双指针实现) 俩有个指针一前一后的排放着,cur先走并且去找比kye对应值小的数组值,一旦找到后…