当前位置: 首页 > news >正文

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

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

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

相关文章:

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

众所周知,在自动驾驶中,主要涵盖感知、规划、控制三个关键的技术层面。在感知层面,单一传感器采集外界信息,各有优劣,比如摄像头采集信息分辨率高,但是受外界条件影响较大,一般缺少深度信息&…...

客户端被攻击怎么办,为什么应用加速这么适合

随着科技的进步和互联网的普及,游戏行业也正在经历前所未有的变革。玩家们不再满足于传统的线下游戏,而是转向了线上游戏。然而,随着游戏的线上化,游戏安全问题也日益凸显。游戏受到攻击是游戏开发者永远的痛点,谈“D“…...

Introduction to HAL3

目录 HAL3 behavior Overview of HAL1 v.s HAL3 HAL3 behavior: HAL3 - detail: HAL3 operation and pipeline Framework Diagram Problem of current code Operation mode Full v.s limited Do: Don’t: Metadata Manual control – ISP control...

Vue02-搭建Vue的开发环境

一、Vue.js的安装 1-1、直接用 <script> 引入&#xff08;CDN&#xff09; 1、CDN的说明 2、Vue的版本说明 生产版本是开发版本的压缩。 3、Vue的引入 验证是否存在Vue函数&#xff1a; 4、搭建Vue的开发环境 ①、下载开发版本的Vue&#xff0c;并在代码中引入 ②、安…...

Python | 句子缩写

字符串大小的比较Unicode码值 类似于asc|| 码 小写字母从 a 到 z 对应的 Unicode 码值是从 97 到 122&#xff0c;而大写字母从 A 到 Z 对应的 Unicode 码值是从 65 到 90, 大小写字母之间的差值为32&#xff0c;所以可以通过数学运算将小写字符减去32后转换为大写字符。 字…...

STM32自己从零开始实操04:显示电路原理图

一、TFT-LCD 屏接口 1.1指路 以下是该部分的设计出来后的实物图&#xff0c;我觉得看到实物图可能更方便理解这部分的设计。 图1 实物图 这部分设计的是一个屏幕的接口&#xff0c;很简单。使用的屏幕是&#xff1a;2.8inch 16BIT Module MRB2801。 1.2数据手册 &#xff0…...

数分—AB测试

一、介绍 AB测试是一种常用于比较两种或多种不同版本的产品、服务或策略效果的实验方法。在AB测试中&#xff0c;被比较的版本被标记为A组和B组&#xff0c;然后两组被随机分配给不同的用户群体或实验对象。接着&#xff0c;针对每个组收集数据&#xff0c;比如用户行为、转化…...

基于全志T507-H的Igh EtherCAT主站案例分享

基于全志T507-H的Linux-RT IgH EtherCAT主站演示 下文主要介绍基于全志T507-H&#xff08;硬件平台&#xff1a;创龙科技TLT507-EVM评估板&#xff09;案例&#xff0c;按照创龙科技提供的案例用户手册进行操作得出测试结果。 本次演示的开发环境&#xff1a; Windows开发环…...

刷题记录(20240605)

1.数组构造 题目描述 小红的数组构造小红希望你构造一个数组满足以下条件: 1.数组共有 n个元素&#xff0c;且所有元素两两不相等。 2.所有元素的最大公约数等于 k。 3.所有元素之和尽可能小。请你输出数组元素之和的最小值。 输入描述: 两个正整数 n 和 k。 输出描述&#xff…...

CUDA和OpenGL纹理texture结合

cuda和OpenGL纹理结合,并进行直方图计算 针对于单通道16位图像。结合方式在CUDA_equalizeHistogram_16函数中。 其他的为CUDA核函数。 #define HISTOGRAM_LENGTH 65536 // 2^16 表示16位深度定义直方图长度为65536,对应16位像素值的范围(0-65535)。 __global__ void com…...

市场凌乱,智能算法哪种效果好?

当我们在面对市场波动&#xff0c;个股震荡&#xff0c;无从下手的时候&#xff0c;不懂算法的朋友就只懂做t&#xff1b;懂算法的朋友这会儿就迷茫并不知道选择哪种智能算法交易&#xff1f;今天小编给大家整理一套性价比高的&#xff0c;适合个人投资者搞的算法交易&#xff…...

学会这14大招,30天涨粉两三千没问题!沈阳新媒体运营培训

很多小白在刚转入公司做新媒体时&#xff0c;基本都是从帮助公司运营账号开始的。但不同于个人号&#xff0c;一个企业本身是没有ip属性的&#xff0c;它的风格、调性等&#xff0c;都需要通过你的运营&#xff0c;让它变成一个活灵活现的、赋予独立个性人设的账号。 目前&…...

SQL数据库性能优化

1.查询尽量避免使用select * 1.1 增加磁盘开销&#xff1a;数据库本质上是将记录存储在磁盘上&#xff0c;查询操作就是一种进行磁盘IO的行为,我们查询的字段越多&#xff0c;读取的内容也就越多&#xff0c;对IO磁盘的开销也就会增大&#xff0c;特别是某些字段&#xff0c;如…...

eNSP学习——RIP路由协议基础配置

目录 主要命令 原理概述 实验内容 实验目的 实验拓扑 实验编址 实验步骤 1、基本配置 2、使用RIPv1搭建网络 开启 RIP调试功能 3、使用RIPv2搭建网络 RIPv1和RIPv2的不同 需要eNSP各种配置命令的点击链接自取&#xff1a;华为&#xff45;NSP各种设备配置命令大全PD…...

备考系统架构设计师,看这篇就够了!(包括核心总结、真题、论文、模拟试题索引)

注&#xff1a;以下章节核心总结来自最新版课本&#xff1a;系统架构设计师教程&#xff08;第2版&#xff09;: https://url35.ctfile.com/f/52515535-1268514286-ca9b3a?p6235 ( 访问密码: 6235, 电子版 pdf 文件大小: 168.9 M &#xff0c;需要的话可自行下载&#xff0c;…...

stm32编译原理

STM32编译原理主要包括以下几个方面&#xff1a; &#xff08;1&#xff09;编译器选择&#xff1a;STM32可以使用多种编译器进行开发&#xff0c;如Keil、IAR、GCC等。不同的编译器有不同的特点和优缺点&#xff0c;需要根据具体需求进行选择。 &#xff08;2&#xff09;编…...

如何以JNI方式实现安卓APP控制GPIO?

本文档提供了在 Android 10 设备上通过应用程序&#xff08;App&#xff09;控制通用输入输出&#xff08;GPIO&#xff09;的详细指南。这涵盖了从创建 gpio驱动到App 配置 以及 SELinux 策略以允许特定访问的所有必要步骤。 1. 驱动实现 添加创建gpio控制驱动bsp\kernel\ke…...

计算机网络学习笔记——运输层(b站)

目录 一、 运输层概述 二、运输层端口号、复用与分用的概念 三、UDP和TCP的对比 四、TCP的流量控制 五、TCP的拥塞控制 六、TCP超时重传时间的选择 七、TCP可靠传输的实现 八、TCP报文段的首部格式 一、 运输层概述 物理层、数据链路层、网络层实现了主机到主机的通信…...

HBase数据库面试知识点:第二部分 - 核心技术(持续更新中)

目录 1. 分布式存储与HDFS 2. 面向列的存储 3. 数据版本控制 4. Region与RegionServer 5. 分布式协调服务&#xff08;ZooKeeper&#xff09; 1. 分布式存储与HDFS HBase利用Hadoop的HDFS作为其底层存储系统&#xff0c;确保数据的高可靠性和可扩展性。 数据块&#xff0…...

Spring 使用SSE(Server-Sent Events)学习

什么是SSE SSE 即服务器发送事件&#xff08;Server-Sent Events&#xff09;&#xff0c;是一种服务器推送技术&#xff0c;允许服务器在客户端建立连接后&#xff0c;主动向客户端推送数据。 SSE 基于 HTTP 协议&#xff0c;使用简单&#xff0c;具有轻量级、实时性和断线重…...

词法分析器的设计与实现--编译原理操作步骤,1、你的算法工作流程图; 2、你的函数流程图;3,具体代码

实验原理&#xff1a; 词法分析是编译程序进行编译时第一个要进行的任务&#xff0c;主要是对源程序进行编译预处理之后&#xff0c;对整个源程序进行分解&#xff0c;分解成一个个单词&#xff0c;这些单词有且只有五类&#xff0c;分别时标识符、关键字&#xff08;保留字&a…...

linux查看磁盘类型命令

在Linux中&#xff0c;有多种方法可以查看磁盘是固态硬盘&#xff08;SSD&#xff09;还是机械硬盘&#xff08;HDD&#xff09;。以下是一些常用的方法&#xff1a; 查看/sys/block/目录 /sys/block/目录包含了系统中所有块设备的信息。你可以查看这个目录中的设备属性来判断…...

多线程调用同一个不包含可变状态,并且是线程安全的方法时,可同时执行,不必等待排队

多线程调用同一个不包含可变状态&#xff0c;并且是线程安全的方法时&#xff0c;可同时执行&#xff0c;不必等待排队 前言同时执行方法的条件示例并发执行的优势实验验证总结 前言 如果方法不包含可变状态&#xff0c;并且是线程安全的&#xff0c;那么在高并发环境下&#…...

Java文件操作①——XML文件的读取

系列文章目录 文章目录 系列文章目录前言一、邂逅XML二、应用 DOM 方式解析 XML三、应用 SAX 方式解析 XML四、应用 DOM4J 及 JDOM 方式解析 XMLJDOM 方式解析 XMLDOM4J 方式解析 XML前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…...

【记录】网络|没有路由器没有网线,分别使用手机或Windows电脑共享网络给ARM64开发板,应急连接

事情是这样的&#xff0c;我的开发板明明已经选择了记住热点 WiFi 密码&#xff0c;但是却没有在开机的时候自动连接&#xff0c;我又没有放显示器在身边&#xff0c;又不想为了这点事去找个显示器来&#xff0c;就非常难受。 我手边有的设备是&#xff1a; 笔记本电脑&#…...

一键设置常用纸张和页面边距-Word插件-大珩助手

Word大珩助手是一款功能丰富的Office Word插件&#xff0c;旨在提高用户在处理文档时的效率。它具有多种实用的功能&#xff0c;能够帮助用户轻松修改、优化和管理Word文件&#xff0c;从而打造出专业而精美的文档。 【新功能】常用纸张和常用边距 1、一键设定符合中国人常用…...

在树莓派3B+中下载opencv(遇到的各种问题及解决)

目录 前言 1、删除原版本下新版本 2、python虚拟环境 3、python版本共存换链接——给版本降低 4、烧录之前版本的文件&#xff08;在清华源中可以找&#xff0c;不用官网的烧录文件就行&#xff1b; 比如&#xff1a;&#xff08;balenaEtcher&#xff09;重新烧录有问题…...

精准检测,安全无忧:安全阀检测实践指南

安全阀作为一种重要的安全装置&#xff0c;在各类工业系统和设备中发挥着举足轻重的作用。 它通过自动控制内部压力&#xff0c;有效防止因压力过高而引发的设备损坏和事故风险&#xff0c;因此&#xff0c;对安全阀进行定期检测&#xff0c;确保其性能完好、工作可靠&#xf…...

Transformer系列:图文详解KV-Cache,解码器推理加速优化

前言 KV-Cache是一种加速Transformer推理的策略&#xff0c;几乎所有自回归模型都内置了KV-Cache&#xff0c;理解KV-Cache有助于更深刻地认识Transformer中注意力机制的工作方式。 自回归推理过程知识准备 自回归模型采用shift-right的训练方式&#xff0c;用前文预测下一个…...

基础篇03——SQL约束

概述 约束示例 完成以下案例&#xff1a; create table user (id int primary key auto_increment comment 主键,name varchar(10) not null unique comment 姓名,age tinyint unsigned check ( age > 0 and age < 120 ) comment 年龄,status char(1) default 1 commen…...

做网站打印费复印费清单/想做个网络推广

文件上传是系统中很常用的功能&#xff0c;所以今天作者就教大家在Axure中如何利用中继器&#xff0c;制作一个能自动识别常用的文件类型的上传列表。 一、效果展示 1、点击上传按钮&#xff0c;可以选择本地的文件进行上传 2、选择文件后&#xff0c;在上传列表中新增该文件…...

马鞍山市网站建设公司/新闻早知道

效果图 完整代码和详细注释 代码并不复杂,这里主要是用了 lunar 这个第三方库,具体使用详解,已相应附代码注释 主流程 main.pde import lunar.*;// 噪声种子 LVector offset = new LVector(); LVector direction = new LVector(0.01, 0.01, 0.01);// Timer,用于动画 …...

衡阳网站建设报价方案/推广宣传

难度&#xff1a;简单 给你一个下标从 0 开始的字符串 words &#xff0c;其中 words[i] 由小写英文字符组成。 在一步操作中&#xff0c;需要选出任一下标 i &#xff0c;从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件&#xff1a; 0 < i < words.l…...

网站建设及制作/潮州网站建设

关于TCP Delay ACK的概念我就不多说了&#xff0c;到处复制粘贴标准文献以及别人的文章只能让本文篇幅加长而降低被阅读完的欲望&#xff0c;再者这也不是什么论文&#xff0c;附录参考文献几乎很少有人去看&#xff0c;所以我把这些都略过了。 和风吹的干皮鞋&#xff0c;吹的…...

江苏做网站怎么收费/知名网页设计公司

本篇博客主要优化 MySQL 中的插入操作&#xff0c;核心实现 insert 优化任务。 插入数据 ** load data infile 导入数据** 使用上述命令&#xff0c;可以大幅度提高批量插入数据。 如果希望使用该命令&#xff0c;可以用 show 命令进行测试 show variables like %infile%使用…...

计算机网络技术就业率/怎么做网站关键词优化

一. extern的作用 1.1. 当它与"C"一起连用时&#xff0c;如: extern "C" void fun(int a, int b)&#xff1b; <1>. 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名&#xff0c;而不是按照C的规则 <2>. C的规则在翻译这个函…...