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

在自动驾驶中,对车辆外界环境进行感知需要用到很多传感器的数据(Lidar,Camera,GPS/IMU),如果计算中心接收到的各传感器消息时间不统一,则会造成例如障碍物识别不准等问题。

为了对各类传感器进行高精度的时间同步,可以分为几部分内容:统一时钟源,硬件同步,软件同步。


目录

一、统一时钟源

二、时间戳误差

三、硬件同步

四、软件同步

作者介绍


一、统一时钟源

在构建自动驾驶的时间同步架构时,我们面临着一个核心问题:如何确保系统中各个传感器的时间基准一致?由于每个传感器可能拥有自己的内部时钟,而这些时钟之间可能存在微小的频率差异,即所谓的“钟漂”。这些差异随时间累积,会导致各传感器时间基准的不一致。

为了解决这一问题,引入了统一时钟源的概念。统一时钟源的作用是提供一个所有传感器都遵循的共同时间参考,如图1所示。

图1:统一时钟源

 统一时钟源有两种常见方式:一种是基于GPS的“PPS+NMEA”,另一种是基于以太网的IEEE 1588/802.1AS(PTP/gPTP)时钟同步协议。关于两种时钟源同步方式可查看上篇文章:自动驾驶:揭秘高精度时间同步技术(一)。 康谋技术 | 自动驾驶:揭秘高精度时间同步技术(一)-CSDN博客

二、时间戳误差

当传感器数据被标记上从GPS接受到的全局时间戳,时间戳通常来源于精确的时间同步协议(如UTC time·),这样以GPS为基准的时间戳,简化了同步过程,非常方便。每个传感器数据都有了全局一致的时间参考。

但同样也会面临一个问题,不同的传感器采样频率不一样,比如激光雷达(通常为10Hz)和相机(通常为25/30Hz)。导致在特定时间获取同步数据可能会有延迟,在动态环境中可能造成较大的误差。

比如图2中,三个传感器具有不同的采样频率,在T1时刻,传感器2有一个数据,此时,我们需要对应传感器1和3的数据是多少,就会进行查找。查找的方式就是找对应的传感器数据和传感器2时间差最近的数据包。如果查找的数据包时间和T1时刻传感器2数据包的差距较大,在加上车身和障碍物都在移动,这样误差会比较大。

图2:传感器时间戳

 为了缓解查找时间戳造成的误差现象,主要采用的方式有硬件同步和软件同步。

三、硬件同步

硬件同步是一种通过物理信号来确保不同传感器数据采集时间一致性的方法。自动驾驶上使用的相机(Rolling Shutter)一般是支持外部触发曝光的。激光雷达通常支持两种时间同步接口,基于PTP时间同步和PPS+NMEA协议。因此,一种常见的硬件同步方法是使用PPS信号作为触发器。PPS信号是一个精确的时钟信号,可以触发传感器在特定的时间点采集数据。

例如,激光雷达和相机可以配置为在PPS信号的上升沿采集数据,从而确保两者的数据采集是同步的。具体来说,激光雷达可以利用其相位锁定功能来实现与PPS信号的同步,如图3所示。通过设置激光雷达的相位锁定角度与相机视野的中心对齐,可以在激光雷达的激光束旋转到特定角度时触发相机,实现两者的同步采集。

图3:激光雷达与相机时间同步触发

 当然,由于激光雷达是连续旋转采集数据,而相机则是瞬间曝光,所以硬件同步只能近似实现。例如,激光雷达的帧率若是10Hz,那么一帧点云中最早和最晚采集的点之间的时间差可能达到100ms。相机由于曝光是瞬时的,其所有像素点的采集时刻是一致的。因此,对于相机视野中心的点云,采集时间与图像采集时间一致,但对于视野边缘的点云,存在一定的时间偏差,这个偏差可能在5ms到20ms之间。

四、软件同步

软件同步是一种在数据处理阶段对传感器数据进行时间校正的方法。当硬件同步无法实现或不足以满足系统要求时,软件同步提供了一种解决方案,利用已知的时间标签和传感器的运动信息来推算传感器数据的准确时间点。

内插外推法是软件同步中常用的一种算法。通过以下步骤实现同步:

  • 时间差计算:首先,计算两个传感器数据帧之间的时间差。例如,如果有一个激光雷达(Lidar)数据帧和一个相机数据帧,它们的时间标签可能不同,我们需要找出这两个时间标签之间的差异;
  • 运动信息获取:收集传感器在两个时间标签期间的运动信息,这通常包括速度、加速度和旋转等;
  • 位置推算:利用传感器的运动信息和时间差,通过物理模型或机器学习模型推算目标在两个时间点之间的位置变化;
  • 建立新帧:根据推算出的目标位置,创建一个新的数据帧,这个新帧代表了两个原始数据帧之间的某个时间点的状态。

软件同步通过智能的数据处理技术弥补了硬件同步的不足,提高了传感器数据的同步精度,当然,它也需要额外的计算和实时性要求,需要精心设计和优化算法来实现高效准确的同步。


作者介绍

郑工

康谋高级自动驾驶技术研发工程师,拥有超过5年的汽车电子和自动驾驶数据分析经验,专精于高精度传感器数据的获取、整合与优化。在数据采集技术方面造诣深厚,尤其在车载网络和实时数采系统上富有实践成果,设计并优化了多种数据采集与传输方案。曾多次代表公司参加海外技术研讨会和培训项目,深入了解国际自动驾驶行业的最新动态和技术趋势,积累了丰富的国际视野。


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

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

我们将竭诚为您服务!

期待与您的交流!

康谋QX550车载时间同步板卡 - 多接口高速传输 | 高精度时间同步 | 高效同步不同时间源 | 无缝集成各操作系统康谋QX550是基于PCIe的时间同步板卡,配备四个10GBASE-T接口,基于双Intel X550AT2以太网控制器,支持多接口高速数据传输。QX550支持PTP和gPTP时间同步协议,同步精度最高可达100纳秒。此外,QX550能够与外部时间源或内部设备进行精确同步,增强网络时间同步的可靠性和灵活性。icon-default.png?t=N7T8https://keymotek.com/timesync-card_qx550/

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

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

相关文章

提高工作效率的神器有哪些?

在这个人工智能技术蓬勃发展的时代,很多AI工具极大地提升我们的工作效率,比如很多人在用的ChatGPT、Kimi,它们几乎无所不能,小编在日常工作也用它们,建议想抓住AI风口,或者是想用这些工具提升自己的朋友去学…

2024年BCSP-X小学高年级组初赛真题解析

一、单项选择题(共15题,每题2分,共计30分) 计算机在工作过程中突然停电,() 中的信息不会丢失。 A. 缓存 B. 寄存器 C. RAM D. ROM正确答案是 D. ROM。 首先,我们来看看计算机中几种不同的存储器: 1 . 缓存(Cache):位于CPU内部或非常靠近CPU,用于存储CPU即将使用的数据和指令。…

windows10 安装子linux系统(WSL安装方式)

在 windows 10 平台采用了WSL安装方式安装linux子系统 1 查找自己想要安装的linux子系统 wsl --list --online 2 在线安装 个人用Debian比较多,这里选择Debian,如下图: wsl --install -d Debian 安装完成,如下: 相关…

【JS重点知识03】定时器—间歇函数

一:间歇函数的应用场景 网页倒计时是需要每个一段时间需自动执行一段代码,而不需要手动去触发;间歇函数刚好满足了这一要求; 二:间歇函数的使用 1 开启定时器 语法规范: 1 setInterval(匿名函数,时间)…

Java版电商平台B2B2C:多商家直播商城系统特性解析

B2B2C平台,立足于传统电商领域,同时引入了创新的商业模式。该平台不仅支持商家入驻和平台自营,还积极构建了一个全新的市场环境,旨在为各行各业及互联网创业者提供更多收益机会。 该平台以消费者需求为中心,帮助企业构…

PyQt5+SQLlite3基于邮箱验证的登陆注册找回系统

本期教程投稿一篇实用性的基于邮箱登陆注册找回于一体的系统,在日常的开发和软件应用中非常常见,并且也使用了逻辑与界面分离的写法,那这个文章将详细的为大家介绍整个流程,但是细节的话还需要大家自己去完善,也欢迎大…

人工智能的兴起和发展

人工智能的兴起 人工智能,artificial intelligence,缩写为AI。 它是随着计算机技术的发展才逐步产生并发展起来的一门学科。关于AI的定义有很多种,通俗一点说,它企图了解智能的实质,并生产出一种新的,能以…

ekho 编译安装

ekho 编译安装 ekho 编译安装ekho 介绍源码下载源码编译编译依赖编译 测试 参考文献 ekho 编译安装 ekho 介绍 Ekho(余音)是一个免费、开源的中文语音合成软件。它是eGuideDog project.项目的一部分。 它目前支持粤语、普通话(国语&#xf…

【无人机协同】基于改进灰狼算法实现多峰环境下的多无人机协同路径规划附matlab代码

% 初始化算法参数 num_drones 5; % 无人机数量 num_iterations 100; % 迭代次数 num_wolves 20; % 灰狼数量 alpha 0.5; % 狼群更新参数 beta 0.8; % 狼个体更新参数 delta 0.5; % 灰狼群体更新参数 lb [0 0]; % 路径范围下限 ub [100 100]; % 路径范围上限 % 初始化无…

Transformer学习(2)

这是Transformer的第二篇文章,上篇文章中我们了解了分词算法BPE,本文我们继续了解Transformer中的位置编码和核心模块——多头注意力。下篇文章就可以实现完整的Transformer架构。 位置编码 我们首先根据BPE算法得到文本切分后的子词标记,然…

拿捏红黑树(C++)

文章目录 前言一、红黑树介绍二、插入操作三、验证红黑树四、红黑树与AVL性能比较与应用五、总体代码总结 前言 我们之前介绍了一种AVL的高阶数据结构,在本篇文章中,我们将会介绍一种与AVL旗鼓相当的数据结构–红黑树。 我们并且会对它的部分接口进行模…

C语言面试题30至39题

30. 用变量a给出下面定义 由于题目没有提供具体的定义,这里给出几个常见的变量定义示例: 整数变量:int a;字符变量:char a;浮点变量:float a;双精度浮点变量:double a;指针变量:int *a; 31. …

Mongo 地理位置查询:海量密集点转换成聚合信息

通俗来说:将地图上的海量密集点通过网格分割的方式实现聚合; 需求:用mongo实现设备地理位置聚合查询 :多边形,矩形查询; 背景:上万设备数据量 目的:分享Mongo地理位置查询,以及文…

zdppy_amauth 实现给角色批量绑定权限

新增接口 api.resp.post("/auth/role_auth", amauth.role.add_auths)如何测试 如何测试能不能给指定的角色批量的添加权限呢? 1、需要新建一个角色2、需要拿到这个角色的ID3、需要新增三个权限4、需要拿到新增的三个权限的ID5、拿着角色ID和权限ID列表…

SSL代码签名最佳实践

代码签名就是软件发布者使用全球可信的证书颁发机构CA颁发的代码签名证书对软件代码进行签名,由此来验证软件开发者的真实身份,确保软件代码的完整性和可信任性。然而,攻击者一直试图渗透代码签名,意将恶意软件嵌入可信代码中。由…

【二叉树】Leetcode 637. 二叉树的层平均值【简单】

二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[3.00000,14.50000,11.00000] 解释&#xff1a…

前端 JS 经典:如何实现私有字段

前言:方法有很多,但是我们需要择优选择。 1. 命名规范 我们可以通过命名规范实现私有字段,如:下划线 缺点:没有强约束力,我们用了也就用了 class A {_key 1; }const a new A(); a._key; // 1 2. Sym…

深入探讨5种单例模式

文章目录 一、对比总览详细解释 二、代码1. 饿汉式2. 饱汉式3. 饱汉式-双检锁4. 静态内部类5. 枚举单例 三、性能对比 一、对比总览 以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。 …

必应bing国内广告怎样开户投放呢?

企业都在寻找高效、精准的营销渠道以扩大品牌影响力,提升市场占有率,作为全球第二大搜索引擎,微软旗下的必应Bing凭借其卓越的搜索技术和庞大的用户基础,成为了众多企业拓展市场的首选广告平台。在中国,必应Bing广告以…

Day33

Day33 SQL-续 数据类型 tinyint、int、unsigned、float、double、decimal、char、varchar、BLOB、LONGBLOB、TEXT、LONGTEXT、date、time、datetime、timestamp、year # 数据类型# 整数类型 ------------------------------------------------------------- # tinyint - 1字节…