高精地图数据应用分发引擎建设实践
1. 什么是高精数据分发引擎
1.1 高精地图概述
高精地图(High Definitation Map,HD MAP),和普通导航电子地图的主要区别是精度更高、信息更丰富。精度更高主要体现在高精地图的绝对坐标精度更高(指的是地图上某个目标和外部的真实世界事物所在位置之间的精度),可以精确到厘米级别;信息更丰富主要体现在高精地图不仅包含了道路信息,还涵盖了几乎所有与交通相关的周围静态信息。
相比于普通导航电子地图,高精度地图所包含的道路交通信息更丰富和准确。除此以外,在应用场景方面,普通导航地图主要供驾驶员使用,而高精度地图是面向机器的、供自动驾驶汽车使用的地图。
精度是高精度地图与普通导航电子地图的最大区别。普通车载电子导航地图的精度一般在10米左右,高精度地图应用在自动驾驶领域,需要精确定位到具体某条车道上,还需要知道周围所有可能参与自动驾驶决策的道路和交通信息,精度需要达到10~20厘米,这样的精度基本上和一个车道边线的宽度差不多,才能保证智能驾驶的汽车不会跨越到其他车道,避免与其他车辆发生侧面碰撞的风险。
普通导航电子地图要描绘出道路(link),而高精度地图不仅要描绘道路,还会描绘出一条道路上有多少条车道(lane),真实地反映出道路的实际样式。
高精度地图信息更丰富主要体现在以下几个方面:
准确的道路形状:每条车道的坡度、曲率、航向、高程,侧倾的数据。
详细的车道线信息:车道之间的车道线是虚线、实线还是双黄线,线的颜色,道路隔离带,隔离带的材质都会有描述。
此外,人行横道,道路沿线看板,限速标志,红绿灯,路边电话亭等等,这类通常统称为LandMark Object的绝对地理坐标,物理尺寸以及他们的特质特性等也都会出现在高精度数据中。
1.2 高精数据分发引擎
ADAS(Advanced Driver Assistant System,高级驾驶辅助系统)应用需要用车辆前方路网及属性数据信息用于决策控制及判断,普通数字地图数据通常仅供导航系统使用,但高精地图数据可供车辆内的其他ADAS应用使用,因此需要依赖高精数据及用于高精数据播发的高精数据分发引擎。
ADASIS(ADAS接口规范)定义了“ADAS电子地平线”的概念,“ADAS电子地平线”表达了车辆前方的路网及路网属性信息。为了实现这种表达方式,我们需要构建车辆的位置模型以及车辆前方路网的各个可能行驶的道路模型,可以通过一个树状的层次结构来表达可通行的道路。此外,道路的几何形状及相关属性也会建立相关的属性模型来表达。“ADAS电子地平线”数据通过车载以太网络来序列化及传输。
1.3 名词解释
ADAS(Advanced DriverAssistance System)
即高级驾驶辅助系统,利用车载传感器感知车辆环境,并融合计算,预先让驾驶者察觉可能发生的危险,有效提升车辆驾驶的安全性、经济性和舒适性。
ADASIS(Advanced DriverAssistance System Interface Specification)
ADAS论坛制定的行业国际标准,用于规范地图数据和车辆ADAS应用之间交换地图数据的标准接口协议。
AHP(ADAS Horizon Provider)
即高精数据分发引擎,为ADAS应用提供超视距的前方道路和数据信息。
AHR(ADAS Horizon Reconstructor)
用于解析AHP发出的消息并重建地图数据,供终端ADAS应用模块使用。
2. 为什么需要高精数据的分发引擎
高精数据分发引擎作为高精数据及ADAS应用的桥梁,其价值总结下来有以下几个方面:
- 自动驾驶远程视距的需要,高精地图作为自动驾驶的地图传感器,可以提供更可靠的超视距范围,支持更可靠的决策判断。
- 精度提高的需要,由导人到导车的转变使得对精度要求提高了。
- 高精地图数据分发的接口标准化。
3. 高精数据分发引擎的建设
3.1 高精数据分发引擎与ADAS应用的关系
数据分发引擎涉及到以下几个部分组成及交互:
- AHP
- AHR
- ADASIS V3 Protocol
- ADAS应用,详见上图的终端应用部
3.2 高精数据分发引擎架构
高精数据分发引擎由多个层级组成,包括引擎层、协议组织层、系统适配层,相关的平台及工具支撑如下图所示:
- 引擎层:高精数据的加载,解析及车道路网数据的组织。
- 协议层:主要将引擎层提供的数据组装协议消息,并向适配层传递分发。
- 适配层:主要负责和系统对接及交互,并将组织的协议数据分发给ADAS应用。
3.4 高精数据分发引擎的模型表达
3.4.1 路网模型的抽象及表达
数据分发引擎的路网模型包含三层的模型抽象,首先经由现实世界模型抽象成高精路网模型,再由高精路网模型进一步组织及划分抽象为Path及Offset表达的树状模型。
- 现实世界的抽象模型的表达
- 数字化地图模型及用户设置的导航路径,地图要素的表达
- 在数据化地图模型的车辆位置及路网表达
- 在车辆位置附近的路网模型通过links来表达路网之间的连接关系。在数字地图数据库中,道路网表示为一组连接和定义链接之间的节点组成。
- 从ADAS应用角度来看,对车辆后方的路网并不关心,因此数据分发引擎由车辆前方的路网组成。
- 将车辆前方路网按Path来组织,每个Path是一组link的集合。车前方的路网数据可以通过两种算法来表达。
简单Path方式,从车所在link开始,每个可以通行的路径都独立表达为Path.
优化路径组织方式,这种方式减少了数据冗余,也可以完整表达车辆前方的路网数据。
因此,数据分发引擎根据车辆前方及其周围环境的路网形状描述为不同路径和地图数据属性的集合,组成预测树。这个预测树由多条路径连接而成,每一条路径代表一部分道路,及道路与道路之间的交叉点。
一旦车辆移动更改其位置时,预测视图也会更改,一些车后方的的路径可能会被删除,或车前方的路径可能会添加新的。路径的特征表达为一组属性,如高速及城快路网本身包括的车道数、几何形状、曲率等。属性在路径上的位置用一组偏移值表示,偏移值是一种距离标记,通过定义沿路径本身的绝对距离,以厘米表示。一条路径的原点是零偏移值点,属性的偏移值表示属性本身和路径原点之间的距离。如果路径是新开始的并且没有父路径,则偏移值0点为车辆所在的起始位置。
3.4.2 高精数据分发引擎的属性模型
数据分发引擎的属性模型数据来源于高精路网上的属性信息,定义为沿着Path表达,并定义在Path上的位置,通过Offset来表达。例如,速度限制属性为路径上的点提供速度限制值。
属性模型根据插值类型可以分为以下三种不同的类型,即Spot, Step, Linear类型
Spot类型的属性只有在Path内某一给定的Offset位置有效,属性的不同由不同的Offset位置来表达。例如交通灯可以定义为Spot类型的属性,因为可以被表达为Path内某一位置存在这个点属性
Step类型的属性定义为到下一属性的Offset位置处一直有效。属性表达为Path上的Offset到EndOffset区间范围内的值。
如上图所示例子中,Path长度为200。速度限制80是整体有效,从Offset 0点到200。从偏移量50和100开始有两个限速值。因此整个图上属性分布如下:
- 偏移量0:开始限速值80。
- 偏移量50:引入雨天限速值60,限速80的属性继续。
- 偏移量100:重复速度限制80,新增雾天限制50,雨天的限速60结束。
- 偏移量150:重复速度限制80,雾天的速度限制50结束。
Linear类型的属性定义为在给定的位置间进行线性差值表达。
线性插值型属性不是连续表达的,在同一个Offset处,左边的值和右边的值是不同的,属性模型用以下方式来表达这种不连续的属性值。
- 在Offset处,存储一个属性,值存储左边的属性值,EndOffset为0。
- 在同一个Offset存储一个属性,值存储右边的属性值,但EndOffset > Offset
3.4.3 车的位置信息模型
在数据分发引擎中,车的位置信息可以通过Path, Offset来表达。在不确定情况下,车的位置可能存在于多个Path上,因此需要用一个集合来描述车的位置信息。通过车位置信息可以表达以下信息:
- 车信息是否脱离了数据区域。
- 车信息是否匹配到了Path的数据范围。
- 车信息是否匹配到了个多个Path上。
- 车信息是否进入及离开了数据区域范围。
车位置信息的TimeStamp值表达了接收到传感器信息的时间时刻值。
车的位置信息还可以表达前方更可能选择的Path路径。
如上图中左边可能选择的路径是P1, 右图为P3。
3.4.4 高精数据分发引擎与接收端的同步机制
数据分发引擎通过pathControl消息来同步AHP及AHR之间的路网Path数据。
- 当pathControl消息不包含某一Path时,AHR收到消息后删除路网中的Path。
- 当pathControl消息和上次维持不变时,AHR收到消息后维持当前路网不变。
- 当pathControl消息增加了某一Path时,AHR收到消息后增加Path信息
通过profileControl同步属性数据。
3.4.5 高精数据分发引擎与接收端的交互机制
数据分发引擎(AHP)与接收端(AHR)有以下几种交互机制:
- 广播方式
- 请求/提供方式
- 订阅/发布模式
目前高精数据分发引擎建设时采用的是“请求/提供”方式,AHP向AHR发送 ADAS message, AHR可以请求及反馈信息。
3.4.6 辅助AHP及ADAS应用融合
3.4.6.1 主AHP及辅助AHP
ADASIS协议中并不是所有的数据都由数据分发引擎提供,也可以增加辅助的AHP引擎。辅助的AHP引擎可以发送传感器信息或传感器的融合信息。
形成的主数据分发引擎及辅助的AHP引擎。
3.4.6.2 ADAS应用的两种融合方式
根据主AHP及辅助AHP引擎,可以实现2种ADAS应用的融合方式,即下游融合及上游融合。
下游融合
在AHP端不做融合处理,通过通信方式把各个传感器数据及高精地图数据传给AHR端,进行融合的处理,然后再传给ADAS功能应用。
上游融合
在AHP端做融合处理,将融合结果通过协议传给AHR处理,直接作用于ADAS功能。
4. 质量建设
为了保证软件质量,高精数据分发引擎建设中采用了如下技术手段:
- 单元测试
- 功能测试
- 质检工具
可视化工具
- 可视化工具截图
5. 典型架构应用形态
根据高精数据分发引擎构架可以分为以下的几种集成形态:
5.1 数据分发引擎(即EHP引擎)集成在地图盒子内
地图盒子概念
用于承载“地图数据+高精定位”能力的车规级软硬一体化产品,有别于纯软件的产品形态。(以下名称都指高精地图盒子:定位盒子/MAP ECU/MAP BOX/HDLM...其中L:Localization M:Module)
包含内容
- 地图及相关应用:HD数据、AHP、定位、OTA...
- 基础软件:系统、底层驱动、诊断...
- 基础硬件:系统级芯片(SoC)、内存、存储、IMU(可选),保护壳体...
- 网络及通讯接口:CAN/以太输入、以太输出、USB接口...
方案特点
任务分工清晰:车企能将以这种架构将功能拆解为小模块,分别提出产品要求进行管控,避免全黑盒方案无从下手。遇到交付风险时可以替换供应商。
功能安全方面的考虑:芯片选型、硬件设计、网络安全、系统诊断等细节工作可以交给专业的供应商;地图质量、在线更新以及回传等功能安全层级存在不确定性、需要与AD ECU隔离开,以使AD ECU满足功能安全要求。
便于高配低配等产品管理:可选用供应商的不同配置的产品。
减轻域控制器的算力负担:便于寻找满足算力要求的功能安全硬件。
5.2 集成在IHU内
方案特点
降低成本:不需要额外采购硬件模块。
集成V2方案、降低不确定性:AHP V2大多在车机端,方案已跑通,所以将地图和V3采用相似的方式可以规避新架构的不确定性。
车企内部原因容易推进:部分车企,高精地图业务规划导航地图部门,若自下而上推进盒子方案,对整体架构改动较大,很难推进。
5.3 集成在域控制器内
方案特点
减少跨域通信对车载网络带宽的占用:用于感知的传感器大多与域控制器相连,如果将地图及定位放在域控制器,后端应用不需要跨域通信就可以直接或间接使用地图,减少对于车载网络带宽的占用。
更适用于走自研路线及选用整体方案的车企:对于走自研路线的车企,以及选用单一方案商提供完整方案,没有必要将功能模块分开部署。
6. 场景应用举例
6.1 高精定位应用
结合高精数据辅助进行横向定位及纵向定位。
纵向定位多结合路牌obj、车道几何等相关信息,横向定位多结合车道线、护栏等相关信息。
主动安全应用多结合传感器(毫米波雷达、摄像头)信息和地图数据进行匹配纠偏,从而提升定位精度。
6.2 高速自动驾驶(HWP)
功能激活
驾驶环境主要依赖地图判断:(1)高速城快;(2)车道线清晰;(3)曲率坡度;(4)无引发报警或制动的物体或事件:包含动态道路环境;(5)非夜晚,天气状况良好(能见度200米以上)。
实现功能
以本车道巡航横向控制及异常场景本车道自主停车为例:
- 车道类型:自动驾驶依靠车道类型来划分可行驶区域,如果类型错误会导致车辆行驶在非行驶区域,会给自车带来安全隐患;同时在自主安全停车的场景中,如果车道类型错误会直接导致自主安全停 车的的自主性和安全性。
- 车道线类型:辅助摄像头进行车道线线型识别;和摄像头进行对比检查,进而进行车道保持。
6.3 基于导航路线自动巡航
功能激活
工况环境依赖地图判断:
- 道路等级:高速/城块。
- PartOfcalculateRoute(导航路径标识)是否连续无断开。
- 天气类型:晴天/小雨/阴天等天气状况下,允许功能激活。
实现功能
- 上/下JCT,会根据导航路径标识和车辆前方路网判断是否上/下JCT,并提前对变道匝道侧进行提醒。
- 自动变道进入JCT/合入高速,会根据车道线线型辅助摄像头进行车道线线型识别,并和摄像头进行检测对比,线型的虚实判断车辆变道的时机。
7. 未来演进
一方面,考虑进一步融合AHP V2,V3的架构设计,更好的辅助自动驾驶。此外,作为数据闭环的一部分,丰富数据提供及回收能力等。