自动驾驶仿真测试实践:高精地图仿真

2024-06-13 10:04:39·  来源:北汇信息  
 

 01  引言


随着自动驾驶技术的快速发展,基于高精地图的自动驾驶功能已初步落地应用,并持续迭代升级。在研发测试阶段,多方面因素导致测试人员可能无法拿到控制器内部高精地图对应的OpenDRIVE文件①,使得仿真场景与控制器内部高精地图无法完全匹配,自动驾驶功能受限,得不到有效的测试验证;而实车道路测试风险和成本高、周期长、覆盖度低等问题,很难保证自动驾驶系统的可靠性和安全性。针对这一核心技术痛点,本文提出了基于外部数据注入的高精地图仿真方案,提高自动驾驶功能研发阶段的测试有效性,可以大幅降低实车道路测试的风险和成本,加速自动驾驶功能的研发和部署,确保自动驾驶系统的可靠性和安全性。


02  什么是高精地图?


高精地图,很容易被误解为相对于普通的导航电子地图精度更高的一种地图,实则两者有着完全不同的含义。


图片

图1:左-导航电子地图、右-高精地图


导航地图(SD MAP),是一种面向驾驶员使用的电子地图,它存储的主要是道路级别元素信息,如道路形状等,精度为5m-10m左右。


高精地图(HD MAP),是一种专为自动驾驶汽车设计的地图,它拥有精确(厘米级精度)的车辆位置信息和丰富的道路元素数据信息,如交通标志、地面标志、车道线、信号灯以及道路坡度、曲率等,可以帮助汽车预知路面复杂信息,是实现自动驾驶功能的关键技术之一,主要体现在一下几个方面:


1)精确定位:高精度地图提供了精确的道路信息和地标数据,帮助车辆实现精确定位,包括车辆当前位置等信息。


2)环境感知:基于高精度地图数据,车辆能够更准确地感知周围环境,包括道路标志、交通信号、障碍物等,从而提高交通场景的感知能力。


3)路径规划:高精度地图为自动驾驶系统提供了详细的道路网络数据,帮助系统规划最优路径,避开拥堵区域,优化行驶路线。


4)决策制定:基于高精度地图和环境感知数据,自动驾驶系统可以进行智能决策,比如避让障碍物、调整车速、安全变道等,以确保行驶安全。


03  高精地图仿真方案


在搭建虚拟仿真环境进行自动驾驶功能测试验证过程中,需要确保仿真场景地图和自动驾驶控制器内部高精地图完全重合(车道级精度:误差小于1cm),提高车辆的定位精确性、传感器模型输出的道路元素信息与高精地图匹配性,才能保证自动驾驶控制器融合定位及环境感知结果准确,为路径规划和决策制定提供精确的输入信息,提高自动驾驶功能研发阶段的测试有效性。


不同的测试背景及需求对应不同的仿真方案:


方案一:如测试人员拿到控制器内部高精地图对应的OpenDRIVE文件时,可以采用基于OpenDRIVE文件的定位仿真,简单有效。


方案二:针对无法拿到对应OpenDRIVE文件的情况(方案一失效),北汇信息创新地提出基于外部数据注入的高精地图仿真解决方案。


方案一

基于OpenDRIVE文件的定位仿真方案


当测试人员能够拿到控制器内部高精地图对应的OpenDRIVE文件时,直接将OpenDRIVE文件导入到场景仿真软件中,自动生成高精地图中交通标志、地面标志、车道线、信号灯以及道路坡度、曲率等信息;仿真流程如下图所示:


1) VTD(场景仿真软件)可输出精确的车辆位置信息(UTM坐标系),并通过Ethernet送至CANoe(测试管理软件)。


2) CANoe(测试管理软件)解析车辆原始坐标进行加偏处理(坐标转换),即UTM坐标系->WGS84坐标系->GCJ02坐标系,并通过Ethernet/CANFD发送至控制器。


图2 基于OpenDRIVE文件的定位仿真原理图 


方案二

基于外部数据注入的高精地图仿真方案


当测试人员拿不到控制器内部高精地图对应的OpenDRIVE文件时,无法保证仿真场景地图与控制器内部高精地图完全匹配,自动驾驶功能受限。因此,针对自动驾驶仿真测试,提出基于外部数据注入的高精地图仿真方案,使得控制器内部地图数据与仿真场景中的道路元素信息一致,如下图所示:

图3 基于外部数据注入的高精地图仿真原理图



1)屏蔽控制器内部地图模块组件,截断控制器内部地图模块与融合规控模块组件之间的数据传输,使用外部自制地图模块替代。


2)分析地图模块输出接口协议(通信协议、数据封装协议),基于Linux环境开发中间件(与控制器内部中间件保持一致、如DDS)及应用程序MapComponent(地图组件),建立与控制器内部组件之间的通信。


3)基于场景仿真软件VTD开发MapPlugin(高精地图插件),解析提取OpenDRIVE中的道路元素信息并写入共享内存。


4)MapComponent读取MapPlugin写入到共享内存中的道路元素信息,并根据接口协议封装数据,通过中间件(如DDS)发送至控制器内部。


地图解析插件MapPlugin开发原理

图4 地图解析插件MapPlugin代码框架


如上图所示:


1)MapPlugin插件主要通过数据预处理模块提取Ego车运动状态、位置等信息。


2)在此基础上,开发地图解析模块提取Ego车周围车道信息、车道线信息、道路边界信息、交通灯信息。


3)将 MapPlugin 代码编译成Plugin(.so文件),在VTD中加载运行。


OpenDrive中的道路元素信息有很多,需要提取哪些数据取决于控制器内部高精地图组件输出接口协议,一般包含两类数据:静态地图数据(如车道线、车道信息等)、动态地图数据(如Ego车到匝道口、收费站的距离等)。


地图组件MapComponent开发原理

图5 MapComponent框架原理


如上图所示:MapComponent包括共享内存数据读取(SHMRead)和中间件数据封装发送(MapAgent、如DDS)两块内容。


1) SHMRead:读取MapPlugin写入到共享内容中的道路元素信息,二次处理后对Proto中的接口信号赋值


2) MapAgent:封装proto接口数据、序列化处理后发布(MapAgent的开发需适配控制器内部环境框架)。


3) Map.yaml:应用程序配置,包括通信端口、任务使能、接口数据管理等

 

04  高精地图仿真案例


下面展示的是一个基于外部数据注入实现高精地图仿真,结合其它传感器仿真(如Lidar、Camera、Radar、USS),完成高速领航功能(自动下高速、上匝道)的仿真测试案例。


图片

图6 左-VTD仿真场景、右-注入到控制器内部的高精地图


如上图所示:左图为VTD仿真场景(OpenDRIVE格式地图),右图是MapPlugin解析提取VTD仿真场景道路元素信息,通过MapComponent注入到控制器内部后生成的高精地图;右图中绿色实线为道路边界,蓝色实线为车道线,黑色实线为推荐导航路径,粉红色实线为非推荐路线。


Ego车在高速路上行驶,导航终点设置在高速路出口,领航功能激活后,车辆会自动超车、绕障、变道、驶入匝道,到达目的地附近后请求驾驶员接管,完成领航任务。


05   总结


高精地图作为自动驾驶的关键技术之一,在产品研发阶段,测试人员无法拿到控制器内部高精地图对应的OpenDRIVE文件在一定程度上阻碍了自动驾驶功能的测试验证,北汇信息提出的基于外部数据注入的高精地图仿真方案能够有效解决这一技术痛点,加速自动驾驶功能的研发测试。


高精地图技术加速了自动驾驶功能的落地应用,与此同时,高精地图的实时性、数据准确性、范围覆盖度、隐私和安全性在一定程度上也限制了自动驾驶的推广,以特斯拉为代表的纯视觉无图自动驾驶方案已展现出一定的竞争力。随着新技术的发展与突破,自动驾驶方案也在不断迭代更新,自动驾驶功能离我们越来越近。


北汇信息作为Vector的技术合作伙伴,覆盖自动驾驶MiL/SiL/HiL/ViL测试、车联网测试,传感感知测试等,针对性地为客户提供优质的自动驾驶测试解决方案、系统集成测试和测试服务,助力自动驾驶产品的研发测试和快速迭代。


注:① OpenDRIVE是一种用于描述道路网络和交通环境的开放标准文件格式。它提供了一种统一的描述道路几何结构、车道信息、交通标志、交通灯等元素的方式,可用于创建高精度地图,供自动驾驶系统使用。

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25