一种自动驾驶车辆测试仿真场景生成方法与流程

文档序号:18740923发布日期:2019-09-21 01:46阅读:543来源:国知局
一种自动驾驶车辆测试仿真场景生成方法与流程

本发明属于自动驾驶测试领域,具体涉及一种自动驾驶车辆测试仿真场景生成方法。



背景技术:

SAE L2/L3级自动驾驶技术逐渐体现在量产车型上,部分主机厂和自动驾驶核心技术供应商正在开展L4/L5级别自动驾驶前瞻技术和量产化研究。然而,让少数自动驾驶车辆在相对封闭的环境下行驶,和让其在现实环境内自主驾驶,两者之间存在着巨大差异,自动驾驶车辆在量产前,需要进行大量的测试以确保其安全性和可靠性。目前国内外车企多在封闭/半封闭循环场地进行实车测试,这无疑会消耗大量的时间和人力、物力,且部分典型场景也无法复现。部分车企亦采用SIL(Software in Loop)、HIL(Hardware in Loop)、VIL(Vehicle in Loop)方法,人为在场景仿真软件中搭建典型场景,但这并不能满足自动驾驶测试无限性、可扩展性、批量化及自动化的要求。因此,构建符合我国道路实际情况的、高覆盖度的自动驾驶车辆场景库是自动驾驶可靠性验证的基础。



技术实现要素:

针对上述现有技术的不足,本发明提供了一种自动驾驶车辆测试仿真场景生成方法,

为实现上述目的,本发明采用如下技术方案:

一种自动驾驶车辆测试仿真场景生成方法,所述方法包括:

步骤一、基于高精度地图提取某一区域内的真实路网信息;所述的真实路网信息包括:道路位置信息、结构特征信息、交通设施位置信息;

步骤二、基于蒙特卡洛方法生成相关道路、环境的补充定义参数,所述的补充定义参数包括:道路表面特征信息、时间与天气信息;补充定义参数与所述的真实路网信息,共同组成自动驾驶性能测试的静态环境数据集;

步骤三、基于微观交通流理论,采用蒙特卡洛方法生成多辆人工驾驶车辆的初始状态;

步骤四、基于行为树结构构建驾驶员模块,包括使用行为树结构的程序主体与驾驶员参数集,将驾驶员模块链接至人工驾驶车辆,组成动态参与者数据集,使人工驾驶车辆具备在场景中自主行驶的能力;

步骤五、将所述静态环境数据集和动态参与者数据集通过数据接口导入场景仿真软件中生成三维仿真场景,并在生成的仿真场景中测试待测试的自动驾驶车辆的自动驾驶性能。

优选的,步骤一所述道路位置信息包括:道路起始点、道路终止点、道路交叉点在世界坐标系中的坐标信息。

优选的,步骤一所述道路结构特征信息包括:道路总长度、弯道曲率半径、坡道坡度、交叉路段分叉角度以及车道宽度信息。

优选的,步骤一所述交通设施包括:道路护栏,路灯,交通信号灯、及交通标志、标线。

优选的,步骤二所述道路表面特征信息包括:道路表面附着系数、道路表面凹凸度、标线磨损程度。

优选的,步骤二所述时间与天气信息包括:各个时间段的光照强度及光源位置、水平能见度、介质散射参数、降雨量、降雪量。

优选的,步骤三所述初始状态,包括:发车车道、车型、车头时距、初始速度、初始方向。

优选的,步骤四包括:首先,基于交通法规和驾驶经验梳理出驾驶规则逻辑,其中,交通法规的优先级要高于驾驶经验,所述的驾驶规则逻辑表述的是驾驶员根据自身状态与外部环境信息采取不同动作的逻辑关系;其次,将逻辑库按照行为树的结构进行编写,其中,判断条件转换为条件节点、车辆的底层执行动作转换为行为节点,驾驶员动作转换为顺序节点、驾驶员决策过程转化为选择节点和随机选择节点;所述的驾驶员参数集是基于对人类驾驶车辆过程中所采取的驾驶行为长期测试、聚类分析获得的人类驾驶行为规律与概率统计,将其应用于行为树中随机选择节点的概率分布、各环节间用于模拟驾驶员反应时间的延迟;最后,将其组织为程序块,供人工驾驶车辆调用。

优选的,步骤四所述基于行为树结构的驾驶员模块的输入信息为当前车辆速度、最大允许加速度、交通标志/标线信息、目标行驶方向及周围车辆驾驶状况;其中周围车辆驾驶状况包括其所在车道,与其他车辆的相对位置及相对车速。

有益效果:

1、本发明提供了一种自动驾驶车辆测试仿真场景生成方法,基于高精度地图提取某区域内的真实路网信息,并通过基于蒙特卡洛方法生成相关道路、环境的补充定义参数,与真实路网信息共同组成自动驾驶车辆测试静态仿真场景;基于蒙特卡洛方法生成多辆人工驾驶车辆的初始状态,并对每辆人工驾驶车辆赋予驾驶员模块,使其具备车辆行驶中的基本逻辑判断功能及驾驶行为能力,完善自动驾驶车辆测试动态仿真场景。该方法所开发的自动驾驶车辆测试仿真场景生成方法,全面考虑了路况、交通状况、道路标识、天气等因素,实现了仿真和测试典型场景快速搭建,解决了测试自动驾驶车辆时,测试可行性低、耗时长、成本高的问题,避免了资源浪费。解决了人工在场景仿真软件中搭建典型场景、编写测试用例时,耗时长、用例覆盖面窄的问题,缩短了研发周期,丰富了测试内容。

2、本发明中的静态环境数据集、动态参与者数据集,其参数来自于基于真实世界的统计,保证了生成仿真场景的真实可靠性。

3、本发明中的驾驶员模块,依据人类驾驶行为规律与概率统计信息,使场景中人工驾驶车辆具有符合人类驾驶员习惯的行为模式,极大丰富了场景产生的动态参与者测试用例的数量与真实性。

4、本发明中的驾驶员模块,是按照行为树结构构建的决策程序,区别于有限状态机与分层有限状态机,节点不需要维护向其他节点的转换,节点的模块性大大增强。行为逻辑和状态数据分离,任何节点写好后可重复使用。

5、本发明提供的自动驾驶车辆测试仿真场景生成方法,可自动生成大量场景与测试用例,用户也可以手动调整相关参数以完成针对性训练,为自动驾驶车辆中AI算法的训练提供了有效的支撑。

附图说明

图1为整体仿真场景搭建示意图;

图2为蒙特卡洛方法实施例结果图;

图3为驾驶规则逻辑流程图;

图4为驾驶员模块超车与跟车部分的行为树典型逻辑。

具体实施方式

下面结合实施例对本发明做进一步说明。

步骤S1:基于高精度地图提取某一区域内的真实路网信息。

本实施例中,步骤S1包括:

步骤S11:截取某一区域内的高精度地图,提取道路及道路周边交通设施的位置信息。其中,所述道路的位置信息为所述道路中心线在地图中的起始和终止坐标点。

本实施示例中,道路的位置信息是通过坐标点的形式在地图数据中显示的,比如,某直道的长度为1000米,通过其中心线在地图上的坐标点(0,0)、(1000,0)来表示其位置。

步骤S12:根据截取的高精度地图,提取道路结构信息,其中,所述道路的结构信息为所述道路中心线在地图中几何参数来确定的,部分复杂道路结构可以将其表示为多个基本道路的组合。

本实施示例中,道路的位置信息是通过坐标点的形式在地图数据中显示的,比如,某弯道的长度为2000米,道路中心线曲率半径为800米,车道宽度为3.75米,结合道路位置信息,即可绘制出道路的真实情况。

步骤S13:根据截取的高精度地图,提取交通标志信息,其中所述的交通标志信息包括交通标志的位置与内容。其中,所述的交通标志位置信息为交通标志与所属道路中心线的相对位置。

本实施示例中,交通标志位置信息是通过与所属道路的相对位置矢量的形式在地图数据中显示的,比如,提取出某交通标志信息为限速标志,赋予其编号limit01,附着于弯道(ID:01)的右向车道最右端(与中心线偏移10.5米),与起始端距离100米处,则可表示为(limit01,01,+100,10.5),结合道路信息,即可准确显示出交通标志在道路中的位置。

步骤S2:基于蒙特卡洛方法生成相关道路、环境的相关参数、完善自动驾驶车辆测试仿真静态场景。

所述蒙特卡洛法又被称为统计模拟法,是一种随机模拟方法。首先梳理出影响自动驾驶可靠性的关键性因素,并采用E-R算法确保各因素间具备最小冗余度和关联度,该因素可能对人类驾驶行为没有较大影响,但对自动驾驶的传感器等设备影响较大;其次,针对已经确定的关键因素,通过实际路测或已有的统计规律获得其概率分布函数,根据该分布函数利用编程生成随机数,对各关键性因素赋予具体数值;最后,将各个关键性因素进行交叉组合,构成自动驾驶车辆测试仿真场景。其中,任意关键性因素的变化都将构成一个新的场景。若现实世界中交通场景数量一定,当生成的仿真场景数足够多时,即可大面积覆盖现实场景,确保自动驾驶的可靠性。

图2展示的是所述的蒙特卡洛方法在本发明中的一个具体实施例结果图。

已知某一参数的概率分布规律符合P(x)=e-x,使用蒙特卡洛方法生成符合这一概率分布的样本。图4用直方图(蓝色部分)统计了生成样本的概率分布,红色线条为已知的概率分布函数。当生成样本数量较少时,其概率分布与模型匹配较差,而随着样本数量的增大,样本的概率分布与模型匹配度越高,当样本数量足够大时,样本集能完全表示模型的分布规律,具有真实意义。同理,也可以用蒙特卡洛法针对路测采集到的数据进行概率分布统计,得到其概率分布模型的近似解。

本实施例中,步骤S2包括:

步骤S21:道路表面信息各参数服从不同概率分布,采用蒙特卡洛方法随机生成道路表面信息,其中,道路表面信息是通过道路表面附着系数、道路表面凹凸度、标线磨损程度来表示。

本实施示例中,道路表面信息是通过道路表面附着系数、道路表面凹凸度、标线磨损程度来确定的。比如,沥青干燥路面的附着系数在0.5~1之间均匀分布,采用蒙特卡洛方法随机生成参数0.65作为路面的附着系数。

步骤S22:采用蒙特卡洛方法随机生天气参数,其中,水平可见度、介质散射参数、降雨量、降雪量等天气状况参数服从正态分布。

步骤S23:综合真实路网信息、道路表面信息及天气信息,在场景仿真软件中构建自动驾驶性能测试的静态环境。

步骤S3:基于蒙特卡洛方法生成人工驾驶车辆的初始状态其中,其中,人工驾驶车辆的初始状态是由车型、车头时距、车辆初始速度来确定的。

本实施例中,步骤S3包括:

步骤S31:蒙特卡洛法并随机生成人工驾驶车辆的车型及车道,所述的车型具有固定的基本形状信息(质心位置、长度、宽高及高度)与动力参数如车辆允许最大加速度值。

步骤S32:车头时距到达是随机的,根据不同的交通状况可选择不同的概率统计分布。主要包括指数、移位指数、复合指数、爱尔朗分布等概率分布模型。采用不同的概率分布,可模拟出低流量或拥挤车流的交通流状况。

步骤S33:车辆初始速度交通量的概率分布受时间与地段影响,在高速或乡村,一般呈正态分布,对数正态分布是速度分布的较好模型;在城市道路或高速公路匝道口上,车速分布较为集中,一般呈偏态分布,如皮尔逊Ⅲ分布。依据车速的概率统计分布,采用蒙特卡洛法生成车辆初始速度。

步骤S4:基于行为树结构构建驾驶员模块,包括使用行为树结构的程序主体与驾驶员参数集,将驾驶员模块链接至人工驾驶车辆,组成动态参与者数据集,使人工驾驶车辆具备在场景中自主行驶的能力。

本实施例中,步骤S4包括:

步骤S41:基于交通法规和驾驶经验梳理出驾驶规则逻辑,其中,交通法规的优先级要高于驾驶经验。所述的驾驶规则逻辑表述的是驾驶员根据自身状态与外部环境信息采取不同动作之间的逻辑关系。如图3所示,驾驶规则逻辑可表述为:根据输入信息,使用判断条件筛选出当前可供执行的驾驶员动作,按照优先级排序,并区分必要性、非必要性。对于必要动作,按优先级顺序依次执行,对于并列的非必要动作,根据分布概率随机决定执行其中一项。所述驾驶员动作相当于决策结果,是类似于换道、超车这样的高层命令。当车辆做出决策后,将调出该驾驶员动作的底层执行动作程序,如简写向左打方向盘39°,以加速度10m/s2加速至80Km/h,这些底层执行动作程序执行结束后,完成的是一个驾驶员动作的效果。

步骤S42:将逻辑库按照行为树的结构进行编写,其中,判断条件转换为条件节点,车辆的底层执行动作转换为行为节点,驾驶员动作(决策结果)转换为顺序节点,驾驶员决策过程转化为选择节点和随机选择节点。按照逻辑顺序将各节点连线,组成行为树。图4所述为驾驶员模块超车与跟车部分的行为树典型逻辑。其中随机选择节点会根据概率随机选择从哪个子节点开始执行,如果该子节点执行成功返回success则算做该随机选择节点执行完成,如果子节点执行失败返回fail则父节点随机选择下一个子节点开始执行。比如第一次选择了“超车”这一顺序节点,顺序节点会按照顺序执行全部子节点,当子节点全部执行成功时该顺序节点向上返回success,否则返回fail。所以当超车节点开始执行时,首先执行的子节点是判断能否开始超车的判断节点,如果判断条件不满足,则超车节点向上返回fail,随机选择节点会重新指定“跟车”节点开始执行。如果判断条件满足,则顺序执行,场景车辆会执行向左打方向盘进入左侧车道、加速、向右打方向盘回到右侧车道并继续前进的操作,这些操作的执行完成了“超车”这一驾驶员决策。

步骤S43:将驾驶员参数集链接进程序中。所述的驾驶员参数是基于对人类驾驶车辆过程中所采取的驾驶行为长期测试、聚类分析获得的人类驾驶行为规律与概率统计。在被人工车辆调用时生成每个人工驾驶车辆的实例化驾驶员参数,比如行为树中随机选择节点的概率分布、各环节间用于模拟驾驶员反应时间的延迟等。

步骤S44:将驾驶员模块封装为程序块,供人工驾驶车辆调用。

步骤S5、将以上所述的数据集通过数据接口传入场景仿真软件PreScan中生成三维仿真场景,并在生成的仿真场景中测试所述自动驾驶性能。

本实施例中,步骤S5包括:

步骤S51:使用C++编写的调用框架,将所述步骤一至步骤四产生的数据组织为实例化场景数据集;

步骤S52:通过与仿真软件的API接口,将实例化场景数据集传入仿真软件,自动完成对仿真软件中所需参数的赋值,自动生成三维仿真场景。

步骤S53:将待测试的自动驾驶主车投入场景中,运行仿真,测试所述自动驾驶性能。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1