ADASIS V2 协议-1

news2024/11/19 5:50:31

ADAS V2协议-1

  • 1 简介
  • 2 版本控制
  • 3 ADASIS v2
    • 3.1 ADASIS v2 Horizon (地平线)
    • 3.2 ADASIS v2的构建
    • 3.3 ADASIS v2 Horizon Provider (ADAS V2地平线提供者)
    • 3.4 paths and offsets (路径和偏移量)
    • 3.5 Path Profiles (路径上的profiles信息)
  • 参考文献

1 简介

ADASIS全拼Advanced Driver Assistance Systems Interface Specifications(高级驾驶员辅助系统接口规范)。ADASIS V2协议主要为车辆提供一套传输车辆位置和地图数据(也叫做ADAS Horizon)的标准接口,ADAS Horizon提供自车前方地图数据(在应用中需要保留指定范围内的车辆后方的数据可以称之为拖尾数据)。个人理解ADAS Horizon可以看做是车的眼睛,眼睛可以提供给人看到的一些信息,ADAS Horizon可以提供给车一些可能的行驶路线预测,以及路线上的地图信息。
在ADAS应用程序的通用架构中,主要由下面几个部分组成:
ADAS Horizon Provider:负责维护ADAS Horizon信息(车辆在移动过程中ADAS Horizon信息会一直更新)
ADAS Protocol:定义ADAS Horizon信息如何从ADAS Horizon的提供者发送到应用端
ADAS Application:ADAS 应用在收到ADAS协议信息后重建并使用ADAS Horizon
ADAS Reconstructor:ADAS重构器的目的是接收、解析和解释ADAS协议消息,实际上,在应用端重构ADAS Horizon的副本。
下图表现它们之间的关系(假设ADASIS V2协议使用CAN传输):
在这里插入图片描述

2 版本控制

协议版本控制
ADASIS v2协议版本用三个用点分隔的数字进行描述:X.Y.Z。
X是主要版本号。它是数字0、2或3。ADASIS v2协议的预发布版本将包含0的主要版本号;第一次正式发布的主要版本号为2;协议的下一个版本将由主要版本号3指定。
Y是0-15范围内的次要版本号。每次协议的语法发生变化时,次要版本号都会增加,例如:新的或删除的消息、新的或移除的消息字段、信号的位数变化等。
Z是0-7范围内的次要子版本号。每次修改协议的语义(例如,字段值的解释或类似内容)时,次要子版本号都会增加。
数字范围是根据META-DATA消息中的版本信号定义。
API版本控制
API版本号遵循与协议相同的约定。一般来说,API的版本控制独立于协议的版本控制。
文档的版本控制
本文件的版本ADASIS v2协议由X.Y.Z.W指定。前三个字段与相应的协议版本相同。最后一个字段W表示文件中与协议中的更改无关的更改——文本的修订、更改或扩展描述(但当语法和语义保持不变时)等。
工作版本标记为A、B、C。当W是0到999的数字时,批准发布规范文件。
由于ERTICO文件的命名约定,此文件的名称将采用以下形式:
200vX.Y.Z-D2.2-ADASIS v2 Specification.W.doc.
例如:
200v0.7.3-D2.2-ADASIS v2 Specification.C.doc
包含协议语法第7次修订的第三个工作版本(C)和协议草案语义的第3次修改规格

3 ADASIS v2

3.1 ADASIS v2 Horizon (地平线)

下面两张图片表现出了在车辆行驶过程中ADAS Horizon的变化,可已看出在图中表示了车辆的位置,车辆行驶的link,这些link组合起来就是ADAS Horizon,在车辆向前行驶经过路口但是没有选择link95-100-105这条路后,这条路在第二个图中被删除掉了,第二个图中的时间点ADAS Horizon中已经不包含link95-100-105了。这个过程就是维护ADAS Horizon的一个过程,删除一些过期数据,新增一些新数据(这两个图中未表示出这种情况,一般使用者会有要求要保持车辆前方多远距离的ADAS Horizon,因此每当车辆向前走就要继续探索车辆更前方的数据,将探索出来的数据新增到ADAS Horizon中)。
在这里插入图片描述

在这里插入图片描述
从上面两个图中可以看出如果车辆想要到达link235可以通过link200-210-230-215-235,也可以通过link200-205-220-235。
下图中将link之间的连接关系描绘成了path,这几个path包含了车辆在该点向前的所有通行路径,可以看出各个path之间存在着数据冗余(只要有两个path经过同一个link,那么这个link就会分别存储在两个path上这样就造成路数据的冗余),在应用端会将各个path视为单独的个体,ADAS Horizon提供者应该在保证可以单独提供每个path的基础上尽量的减少数据冗余
在这里插入图片描述
ADASIS v2描述了使用优化路径表示的ADAS Horizon如下图:
在这里插入图片描述
上图就可以理解为一个Horizon他包含一个或多个path,path中包含一个或多个link。 这种表达方式相对于上一张图减少了大量的冗余数据,但是可以看出仍然存在着部分冗余数据,例如path2和path4在第一个岔路口分离后在第二个岔路口又合并了,合并之后的link既在path2中存储也会在path4中存储。
在优化表示中,只需要存在一条路径(其他路径都是从这条路径的某个位置分叉出去的),让我们称之为主路径。主路径的定义特征是当前车辆位置位于其上(也就是上图中的path2)。path2中连接的子路径称之为一级子路径(path1,path4,path3),一级子路径上连接的路径称之为二级子路径(path5)以此类推。
ADAS Horizon的构建算法应该选择主路径,这样它似乎是车辆继续行驶的最有可能的替代方案。一级子路径不太可能被驱动,以此类推。

大多数ADAS应用端程序在最有可能(主)路径上运行。实际应该发送多少级别的子路径取决于应用程序对缺乏地平线的容忍度。如果几秒钟的不起作用是可以接受的,那么只有主路径可以通过通信信道发送。在车辆离开最可能的路径后,需要一段时间才能发送新的路径。如果应用程序必须始终具有地平线数据,则应传输全Horizon。这确保了即使车辆离开一条路径,它也会自动定位在客户端已经可用的另一条路径上。
对上图进一步抽象可以表示为下图
在这里插入图片描述

3.2 ADASIS v2的构建

ADASIS v2 Horizon 由多条path组成。每个path都由一个path标识符唯一标识(我们可以称之为path id)。我们将path上的分叉点称之为stub。每个stub标记一个(子)path的开始,它位于另一个(父)path上。我们还将介绍profile的概念,profile是path的特征。ADASIS v2 Horizon上stub和profiles的位置由path id和沿该path的偏移量定义(通俗来讲就是stub和profile在哪个path的哪个位置上,例如在2号path距离起点100米的位置上)。
当前车辆状态是根据其相对于Horizon的位置(同样是path id和偏移)和其他特性(如速度和航向)来描述的。

3.3 ADASIS v2 Horizon Provider (ADAS V2地平线提供者)

大多数应用端可能只需要主path相关信息,但是如果只给应用端发送一个主path如果车辆偏离主path那么这个应用将会一段时间内没有信息类似失明状态,因此我们还要提供子path,ADASIS v2 Horizon Provider可以提供扩展的配置级别,还可以将预览信息传输到子path结构中。这是通过使用stub来完成的,stub表示父路径上新的子路径的开始,并且包含有关的道路基本信息(例如转弯角度、道路类别)。如果应用程序在车辆离开主路径时对短暂的“失明”敏感,则Horizon提供者还必须预防性地传输有关即将到来的子path的信息。有了子path的可用性,当车辆位置为示例从路径2更改为路径1,应用端的可用预览数据将不会出现间隙。
在这里插入图片描述
如果应用端想要更多的horizon信息并且有充足的存储空间,那么Horizon提供者可以发送完整的horizon如下图提供比上图更多的horizon信息,根据应用端的要求(总线带宽,应用程序控制单元的存储能力)每个车辆可能具有不同的配置(需要不同的horizon数据有的范围大点有的小点)。
在这里插入图片描述

3.4 paths and offsets (路径和偏移量)

对于许多ADAS应用来说,最大56条path数量和大约8公里的最大长度的限制不会带来任何问题。许多ADAS应用程序,如基于地图的自适应巡航控制(ACC)只需要很少的path数目和很短的path长度。

path 的 offset的表示方式如下图
在这里插入图片描述
path2的起点位置offset是0,车的位置在path2上表达就是相对于起点偏移了vehicle offset这么多,
注意该偏移是相对于path的偏移量,path1相对于path2起点的偏移量是Path 1 STUB offset,path1上的STOP的偏移量是相对于path1的起点位置的这点需要注意下。
下图为示例:
当前车辆位置的偏移值为1000m
“最大偏移范围”限制为8190
“传输路径的最大长度”配置为1200m
短剖面坡度的“传输路径的当前长度”为1000m(2%),因为在偏移值2000的时候发送了新值(0%)
segment消息(包含road class)的“当前传输路径长度”仅为500米,因为最远的道路等级信息在偏移1500处,并且偏移2500处的下一个信息太远并且还没有被发送。
在这里插入图片描述

offset(偏移)是相对于当前path的起点位置的,最大offset应不大于8190,如果超过8190部分offset发8191的余数(0-8190),应用端会自己去拼接计算offset。

同种类型的消息的偏移量是一直增加的,不要求所有的profile消息偏移量一直增加比如,假设偏移20米和50米处的曲率值以及偏移30米和40米处的斜率值。我们可以将两个曲率值组合成一个短配置文件消息,将两个斜率值组合成第二个消息,这样可以节省带宽,并避免在传输某个配置文件类型时检查其他配置文件类型。
ADASIS V2 Horizon长度、拖尾长度和禁止偏移范围的可视化图如下:
在这里插入图片描述

3.5 Path Profiles (路径上的profiles信息)

path profile是一种path上的特性,它对path上的任何位置都有值(例如,曲率、道路形式、车道数量、速度限制、水平几何形状)。此值也可能是<undefined>。
path profile由一定数量的“profile点”和profile插值类型的规范组成。
点插值:表示在该类型值仅在该点位置生效
离散插值:表示该类型值在该点开始生效,直到收到下一个相同类型的不同值才发生变化,示例图如下
在这里插入图片描述

线性插值:表示该类型值在该点和该类型值下一个点之间线性变化,示例图如下
在这里插入图片描述

高阶插值:profile点也可以定义为包含平滑曲线表示,该类型值随一个高阶函数规律变化,示例图如下
在这里插入图片描述

参考文献

ADASIS V2 2.0.4版本官方文档

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

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

相关文章

【设计模式深度剖析】【1】【行为型】【模板方法模式】| 以烹饪过程为例加深理解

👈️上一篇:结构型设计模式对比 | 下一篇:命令模式👉️ 设计模式-专栏👈️ 文章目录 模板方法模式定义英文原话直译如何理解呢? 2个角色类图代码示例 应用优点缺点使用场景 示例解析:以烹饪过程为例类图代码示例…

国自然基金的检索

(1)网址 跳转国自然基金网址:https://www.nsfc.gov.cn/ (2)查询入口 (3)进行查询

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式,找到所有可能的走步方式,并记录递归深度(也就是走步次数&#x…

fastadmin/thinkPHPQueue消息队列详细教程

thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行1、通过composer安装thinkPHP消息队列 …

实验笔记之——DPVO(Deep Patch Visual Odometry)

本博文记录本文测试DPVO的过程,本博文仅供本人学习记录用~ 《Deep Patch Visual Odometry》 代码链接:GitHub - princeton-vl/DPVO: Deep Patch Visual Odometry 目录 配置过程 测试记录 参考资料 配置过程 首先下载代码以及创建conda环境 git clo…

大漠插件7.2422

工具名称:大漠插件7.2422 /更新时间2024年6月2日 / v7.2422 1. 综合工具的图像编辑工具可以缩放窗口了 2. 增加AiFindPic AiFindPicEx AiFindPicMem AiFindPicMemEx AiEnableFindPicWindow 共5个接口 / 工具简介: 大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级…

网络编程: reactor模式的步步探索与实现

网络编程: reactor模式的步步探索与实现 一.步步探索1.先看一下之前的BUG的影响2.解决拼接式读取问题3.进一步的探索4.Connection的提出5.EpollServer的修改并将监听套接字添加进去6.小演示 二.协议与业务登场1.协议,业务,解决粘包,序列反序列化等等的函数模块实现2.读写异常事…

推荐使用优豆云免费云服务器、免费虚拟主机

官网地址:https://www.udouyun.com 经济实惠:相较于其他云服务器提供商,优豆云服务器提供免费的云服务,对于一些预算有限的个人和初创企业来说,是一个不错的选择。操作便捷:优豆云服务器提供了Linux和Wind…

智能视频监控平台LntonCVS视频融合共享平台保障露营安全解决方案

在当今社会,都市生活的快节奏和压力使得越来越多的人渴望逃离城市的喧嚣,寻求一种短暂的慢生活体验。他们向往在壮丽的山河之间或宁静的乡村中露营,享受大自然的宁静与美好。随着露营活动的普及,露营地的场景也变得更加丰富多样&a…

YOLOv8---seg实例分割(制作数据集,训练模型,预测结果)

YOLOv8----seg实例分割(制作数据集,训练模型,预测结果) 内容如下:【需要软件及工具:pycharm、labelme、anaconda、云主机(跑训练)】 1.制作自己的数据集 2.在yolo的预训练模型的基础…

【scau大数据技术与原理2】综合性实验Spark集群的安装和使用——安装启动spark shell篇

实验内容简介: Spark是一个分布式计算框架,常用于大数据处理。本次实验中,首先设计一个包含主节点和从节点的Spark集群架构,并在CentOS的Linux环境下进行搭建。通过下载并解压Spark安装包,配置环境变量和集群参数&…

问题:学生品德不良的矫正与教育可以采取以下措施()。 #其他#学习方法#微信

问题:学生品德不良的矫正与教育可以采取以下措施()。 A、创设良好的交流环境,消除情绪障碍 B、提高道德认识,消除意义障碍 C、锻炼学生与诱因作斗争的意志力 D、消除习惯惰性障碍 E、发现积极因素,多方法协同进行,促进转化 参考答案如图所示

BPMN开始事件-Activiti7从入门到专家(7)

开始事件类型 bpmn开始事件表示流程的开始,定义流程如何启动,在某种情况下启动,比如接收事件启动,指定事件启动等,开始事件有5种类型: 空开始事件定时器开始事件信号开始事件消息开始事件错误开始事件 继…

Java | Leetcode Java题解之第128题最长连续序列

题目&#xff1a; 题解&#xff1a; class Solution {public int longestConsecutive(int[] nums) {Set<Integer> num_set new HashSet<Integer>();for (int num : nums) {num_set.add(num);}int longestStreak 0;for (int num : num_set) {if (!num_set.contai…

90后机器人创业者再获10亿元融资,为精密传动行业注入新动力!

据了解&#xff0c;一位90后机器人创业者再次获得近10亿元人民币的融资&#xff0c;这一消息在精密传动行业引起了广泛关注。 杭州宇树科技有限公司&#xff08;简称“宇树”&#xff09;&#xff0c;2024年春节前完成了B2轮融资&#xff0c;融资近10亿元人民币&#xff0c;本轮…

立创·天空星开发板-GD32F407VE-EXTI

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VE-EXTI 中断硬件触发中断示例软件触发中断示例 中断 中断分为内部中断和外部中断 外部中断是由外部设备&#xff08;如按键、传感器、通信接口等&#xff09…

【FAS】《CN103106397B》

原文 CN103106397B-基于亮瞳效应的人脸活体检测方法-授权-2013.01.19 华南理工大学 方法 / 点评 核心方法用的是传统的形态学和模板匹配&#xff0c;亮点是双红外发射器做差分 差分&#xff1a;所述FPGA芯片控制两组红外光源&#xff08;一近一远&#xff09;交替亮灭&…

硬件IIC和软件IIC的比较

&#xff08;一&#xff09;硬件IIC 硬件IIC是由STM32内部的硬件模块实现的&#xff0c;使用CPU的时钟信号来控制数据传输和时序&#xff0c;通信速度较快&#xff0c;可以达到几十MHz的速度。硬件IIC的实现相对简单&#xff0c;无需编写复杂的代码&#xff0c;因此在实现IIC通…

python的plt.axis()、plt.xlim() 和 plt.ylim()函数

坐标轴相关设置1、plt.axis():坐标轴设置 函数 plt.axis(*v, **kwargs) 主要用于设置坐标轴的属性,返回值为当前的坐标轴范围 [xmin, xmax, ymin, ymax],几种调用方式如下: 调用方式 说明 axis() 返回当前的坐标轴范围 [xmin, xmax, ymi…

空间搜索geohash概述

概述 通常在一些2C业务场景中会根据用户的位置来搜索一些内容。通常提供位置搜索的都是直接通过redis/mongodb/es等中间件实现的。 但是这些中间件又是怎么实现位置搜索的呢&#xff1b; 查了一番资料&#xff0c;发现背后一个公共的算法Geohash。 Geohash 经度和纬度是2个…