二. 多传感器时间同步方案(时序闭环)--1

news2024/9/29 19:15:40

前两篇文章讲了器件选型和多传感器系统设计:

一. 器件选型心得(系统设计)--1_goldqiu的博客-CSDN博客

一. 器件选型心得(系统设计)--2_goldqiu的博客-CSDN博客

二. 多传感器时间同步方案(时序闭环)--1

这个章节开始讲多传感器的时间同步方案,即多传感器时钟闭环问题,如何让所有传感器在同一个时钟下工作?

在进行多传感器融合之前,首先要对多传感器进行时空同步,空间上的同步就是多传感器标定,时间上的同步便是时序闭环。

问题提出

我们从问题描述、误差分析、需求分析三个角度来谈论:

问题描述

每种电子设备都有各自的时钟,起始时间均不相同,而且因晶振质量的差异,频率也不同。

同步误差分析

传感器之间的时钟偏差,会导致各传感器检测到的障碍物位置发生偏差,自车速度越大,偏差越大。

比如车速为120km/h,∆t = 0.1s,∆s = v ∗ ∆t = 3.33m,能达到3m左右的误差。

需求分析

自动驾驶完整系统的误差需要控制在0.3m以内,通常需要将闭环时钟同步误差控制在微秒级别。(因为还有其他误差来源)

基于这些考虑,我们有两个选择:

  1. 网络NTP时钟同步

  2. GNSS的PPS+GPRMC同步

而网络NTP时钟其实也是需要接入GNSS的,最终还是基于原子钟时钟源,所以本质上我们的时钟同步来源只有一个:卫星原子钟。

根据NTP的原理和协议,我们能够从NTP Server计算出和client的偏差offset,根据offset调整client时钟,可将时钟误差稳定控制在微秒级别。

但是,目前的车载传感器不一定支持NTP以太网接入:

LiDAR

支持两种时钟同步方式:

• IEEE 1588-2008(PTPv2):以太网接口同步;

• PPS脉冲信号+NMEA消息(GPS)。

Camera

非定制相机模组不支持时钟同步,定制相机可选择支持。

Radar

非定制Radar不支持时钟同步,量产可定制。

超声波雷达

非定制超声波雷达不支持时钟同步,量产可定制。

因此,在目前的多传感器系统中,时钟无法做到微秒级同步。

而在多传感器定位和感知系统中,LiDAR和Camera的融合所占比例和重要性是最大的。所以,提高LiDAR和Camera的时序同步性能是很有必要的。

多传感器系统成像同步能力分析

由于时钟域未完全同步,所以未同步传感器的数据,时间戳只能定为计算平台接收到数据时的时间戳;这中间的误差∆t,通常在几ms到几十ms之间。

各传感器成像的时间不一致,导致成像结果之间无法有效对齐。所以多传感器系统需要尽量降低时间戳与真实成像时间之间的误差。

时间戳误差分析:

• Camera、Radar和超声波成像结果和时间戳间存在不可控误差。

• LiDAR:成像的点云中,由于已经完成时间同步,每个点的成像时间与时间戳之间无误差。

为达到尽量减少误差的目的,我们可以通过第一个方法:离线统计&在线补偿

分别在驱动中加入对 ∆t-camera、 ∆t-radar、 ∆t-us的时间戳补偿,可以达到∆t < 20𝑚s的效果。

这里有一个提高这个估计的参数的方法(一般只适用于激光雷达和相机,因为它们的成像都比较丰富):

即选取一段有合适标志物(如广告牌)的道路场景,在激光雷达和相机外参已经标定好的前提下,在一段时间序列下对这个场景进行成像(包含广告牌等合适标志物),将∆t 作为时间域上的外参,在空间外参已知的情况下将三维点云投在二维平面上,或者将二维图像对应三维空间的点转换到三维空间上,然后两个传感器对这个标志物在二维或三维上有了成像的结果,就可以构建误差代价函数,求解的参数为∆t。理论上如果没有标定时间参数,雷达和图像在二维或三维上在一段时间序列中会错位,而标定了时间参数并补偿过去能够很好地解决这个问题。这在一些论文中也有这些问题的解决方案。

但这种离线估计,在线补偿的方式很容易出现问题,比如计算平台接收到数据的延迟时间不是很可控,有可能会变动比较大。

所以,一个比较好的方式就是硬件时间同步。

即构造一个触发装置,在指定的时刻,发送触发信号,让所有的传感器触发成像,减少成像时刻误差。该设备功能如下:

• 连接GPS信号或NTP server,确保时钟实现微秒级同步

• 设置触发逻辑(如LiDAR正前方的成像相位),同时触发LiDAR和Camera成像

• 支持多LiDAR和多Camera,暂不支持Radar和超声波雷达

优点:系统精度更高,可将系统同步精度控制在∆t< 5𝑚s;

硬件时间同步

基于这个方式,这里说一下我做过的几个方案:

方案1:

• 组合导航模块将GPRMC-Tx输出引脚和PPS秒脉冲接入雷达。

• 同时硬件时间同步装置接收GNSS信号或者使用NTP server,对齐到绝对时间上,将秒脉冲和相机触发脉冲控制在绝对时间域上。

• 分频控制相机抓拍,将此时的时间,包括秒以上和秒以下,精确到ms,通过串口发送给工控机,这样工控机接收的每张图像都带有时间戳了,就可以利用图像和雷达的时间戳进行融合了。

• 可以支持多相机多雷达,且相机的频率可调。

• 时间同步精度有限,受限于单片机的时钟精度。

• 这个方案的缺点是增加了串口的需求,比较麻烦。还有就是由于串口通讯,会存在一些微小的延迟,虽然影响不是很大,但是如果帧率大,速度快就会影响很大,但是用于离线融合系统是可以的。

方案2:

参考论文:FAST-LIVO: Fast and Tightly-coupled Sparse-Direct LiDAR-Inertial-Visual Odometry

• 组合导航模块只将GPRMC-Tx输出引脚接入雷达,而PPS秒脉冲由单片机提供,相机的触发脉冲也由单片机分频提供。相机和雷达的秒以上绝对时间由组合导航提供(雷达的帧已经有了GNSS绝对时间-秒以上),秒以下时间对齐到单片机秒脉冲。

• 可以支持多相机多雷达,且相机的频率可调。

• 时间同步精度有限,受限于单片机的时钟精度,但胜在方案简单有效,可直接实时运行。

• 存在系统上电时间误差,即单片机输出秒脉冲是在系统上电后,会有很小的上电延迟,不像组合导航的秒脉冲是严格对齐到原子钟的。

• 存在与组合导航GPRMC绝对时间的误差,是因为单片机的秒脉冲是上电就开启的。但是如果不需要对齐到绝对时间上,是不影响的。

这个硬件时间同步装置可以优化:接收GNSS信号或者使用NTP server,对齐到绝对时间上,将秒脉冲和相机触发脉冲控制在绝对时间域上。

这里我们可以提升硬件时间同步精度指标的点有:

  1. 采用FPGA来进行计数、分频、触发,普通STM单片机的时间精度还是太低了。

2. 硬件时间同步装置接收GNSS信号或者使用NTP server不仅是为了对齐到一个绝对时间上,同时也可以利用高精度原子钟对嵌入式时钟进行定期时间矫正。(这个有专门的模块,专门的技术,例如电波钟)

参考:深蓝学院《多传感器融合感知》

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

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

相关文章

选择适合产品需求管理的项目管理系统,打造完美项目流程!

一般来说&#xff0c;互联网产品经理收到的需求一般分为业务需求、用户需求和产品功能需求。业务需求主要包括战略和规则需求&#xff1b;用户需求一般是真实反馈、真实需求、吐槽、建议等。&#xff1b;功能需求主要围绕产品的旧功能问题进行升级&#xff0c;bug处理、技术问题…

高德地图JS API升级到2.0版本

项目上反馈高德地图底图信息更新不及时&#xff0c;不利于进行点位规划。经研究发现高德地图JS API 1.4.15版本相对于2.0版本&#xff0c;确实地图切片上的标注信息较少。通过工单的形式询问高德的技术工程师认识到1.4.15版本数据更新有延迟&#xff0c;1.4.15版本地图的数据以…

深入理解Go语言中的并发编程【29】【原子操作(atomic包)、并发安全性】

文章目录 原子操作(atomic包)原子操作atomic包示例 并发安全性 原子操作(atomic包) 原子操作 代码中的加锁操作因为涉及内核态的上下文切换会比较耗时、代价比较高。针对基本数据类型我们还可以使用原子操作来保证并发安全&#xff0c;因为原子操作是Go语言提供的方法它在用户…

iOS 应用上架的步骤和工具简介

APP开发助手是一款能够辅助iOS APP上架到App Store的工具&#xff0c;它解决了iOS APP上架流程繁琐且耗时的问题&#xff0c;帮助跨平台APP开发者顺利将应用上架到苹果应用商店。最重要的是&#xff0c;即使没有配置Mac苹果机&#xff0c;也可以使用该工具完成一系列操作&#…

C#实现滑动拼图验证码

开发环境&#xff1a;C#&#xff0c;VS2019&#xff0c;.NET Core 3.1&#xff0c;ASP.NET Core 1、建立一个验证码控制器 新建两个方法Create和Check&#xff0c;Create用于创建验证码&#xff08;返回2张图片和令牌&#xff09;&#xff0c;Check用于验证&#xff08;验证图…

EXCEL数据自动web网页查询----高效工作,做个监工

目的 自动将excel将数据填充到web网页,将反馈的数据粘贴到excel表 准备 24KB的鼠标连点器软件(文末附链接)、Excel 宏模块 优势 不需要编程、web验证、爬虫等风险提示。轻量、稳定、安全。 缺点 效率没那么快 演示 宏环境 http://t.csdn.cn/DRAC2 宏按钮

idea导入maven项目问题

问题产生原因&#xff1a; ①idea加载maven项目&#xff0c;如果网络不通畅&#xff0c;会在maven仓库中产生一个文件&#xff0c;如下图所示: ②当网络通畅时&#xff0c;在下载就会因为此文件导致无法下载正确的maven依赖 解决方案&#xff1a; ①打开maven仓库的根目录 ②…

(学习笔记-内存管理)虚拟内存

单片机是没有操作系统的&#xff0c;每次写完代码&#xff0c;都需要借助工具把程序烧录进去&#xff0c;这样程序才能跑起来。另外&#xff0c;单片机的CPU是直接操作内存的[物理地址]。 在这种情况下&#xff0c;要想在内存中同时运行两个程序是不可能的。如果第一个程序在 2…

骨传导耳机和入耳式耳机哪个好?骨传导耳机适合什么人群使用

骨传导耳机和入耳式耳机哪个好&#xff0c;这个问题&#xff0c;首先我们先了解一下骨传导耳机的对比入耳式耳机的优势有哪些&#xff1a; &#xff08;1&#xff09;健康 骨传导耳机因为是利用骨振动原理&#xff0c;完全不需要经过我们耳膜进行传输&#xff0c;可以有效缓解…

Selenium API基础 8种定位

id定位 class定位 xpath定位 css定位 link partial_link模糊匹配 tag name

Redis 哨兵 (sentinel)

是什么 官网理论&#xff1a;https://redis.io/docs/management/sentinel/ 吹哨人巡查监控后台 master 主机是否故障&#xff0c;如果故障了根据投票数自动将某一个从库转换为新主库&#xff0c;继续对外服务。 作用&#xff1a;无人值守运维 哨兵的作用&#xff1a; 1…

index页面通过<script>引入根目录下的js文件后,vite打包项目后,项目中无js文件解决方法

解决方法&#xff1a; 根据打包报错提示&#xff0c;如图&#xff1a;即在<script>标签中加入&#xff1a;type&#xff0c;如图&#xff1a; 再打包 js文件就会被打包进去&#xff01;

华为认证 | HCIE考过了,证书编号怎么查?

我们都知道&#xff0c;每一个HCIE都拥有属于自己的独一无二的编号&#xff0c;这个编号到底是指什么呢&#xff1f; HCIE作为华为专家级的认证&#xff0c;考试难度极高&#xff0c;你要通过HCIE的笔试、实验LAB考试。 当你“过五关斩六将”&#xff0c;通过LAB的那一刻&…

手风琴案例(jQuery)

案例效果 代码实现 jQuery代码&#xff08;两种方法&#xff09; 方法一&#xff1a;hover版 $(function () {$(".king li").hover(function() {$(this).addClass("current").siblings().removeClass("current");}, function() {$(".king…

DDSv1.4规范(中文版)

实时数据分发 (DDS) V1.4 (2015-04-10正式发布) https://www.omg.org/spec/DDS/1.4/PDF http://www.omg.org/spec/DDS/20140501/dds_dcps.idl

vue3-eslint-prettier-czgit配置

vue3 eslint prettier cz-git 一&#xff1a;vue3 1.1 vue3创建 输入命令后根据提示选择&#xff0c;项目是ts所以必选typescript pnpm create vite1.2 安装依赖 pnpm i1.3 运行 pnpm run dev二&#xff1a;配置eslint 2.1 执行安装命令 pnpm add eslint -D2.2 初始化…

POI 导出 树形结构

参考文章&#xff1a;(327条消息) Excel树状数据绘制导出_excel导出树形结构_Deja-vu xxl的博客-CSDN博客https://blog.csdn.net/weixin_45873182/article/details/120132409?spm1001.2014.3001.5502 Overridepublic void exportPlus(String yearMonth, HttpServletRequest re…

SQL-每日一题【627. 变更性别】

题目 Salary 表&#xff1a; 请你编写一个 SQL 查询来交换所有的 f 和 m &#xff08;即&#xff0c;将所有 f 变为 m &#xff0c;反之亦然&#xff09;&#xff0c;仅使用 单个 update 语句 &#xff0c;且不产生中间临时表。 注意&#xff0c;你必须仅使用一条 update 语句…

Bad owner or permissions on ~/.ssh/config

错误原因&#xff1a;设置本地所有文件的权限为741等。。。 在执行ssh免密码登录时报如下的错误&#xff1a;Bad owner or permissions on ~/.ssh/config。 解决方案&#xff1a; chmod 600 ~/.ssh/config

MySQL笔记——数据库当中的事务以及Java实现对数据库进行增删改查操作

系列文章目录 MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库&#xff0c;对MySQL数据库的简单操作&#xff0c;MySQL的外接应用程序使用说明 MySQL笔记——表的修改查询相关的命令操作 MySQL案例——多表查询以及嵌套查询 文章目录 系列文章目录 前言 一…