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版本官方文档