一种无人车仿真测试用例生成方法及系统与流程

文档序号:23068463发布日期:2020-11-25 17:56阅读:256来源:国知局
一种无人车仿真测试用例生成方法及系统与流程

本发明涉及无人车测试技术领域,具体而言,涉及一种无人车仿真测试用例生成方法及系统。



背景技术:

随着人工智能技术的不断进步,无人车技术受到了科学界和工业界的广泛关注。包括tesla、waymo、uber和百度在内的一些知名企业已将卷积神经网络、递归神经网络、深度强化学习和模型预测控制等先进技术应用于无人车产品中。不幸的是,tesla和uber发生的致命事故表明,目前的无人车技术仍然是不安全的。根据rand的报告,在现实世界中,由于巨大的时间成本和公共安全,评估无人车的安全性和可靠性是不可行的。因此,需要利用虚拟环境对无人车进行仿真测试。

传统上,在虚拟环境中构建无人车仿真测试场景需要基于真实交通数据集,如美国国家公路交通安全管理局(nhtsa)车辆碰撞数据,构建特定的测试用例;又如,百度的apollo平台提供了100多个测试用例。然而,与真实驾驶情况的巨大数据空间相比,利用这些固定的测试用例进行无人车仿真测试显然不能够充分证明无人车的安全性和可靠性。这极大限制了无人车仿真测试领域的实际应用意义,阻碍了无人车仿真测试领域技术的快速发展进步。



技术实现要素:

为了解决现有技术的缺陷,本发明提供了一种无人车仿真测试用例生成方法及系统、计算机设备和计算机存储介质,能够在自然语言抽象层面灵活高效地创建测试场景,实现自动驾驶测试用例的定制化设计,推动无人车仿真测试的发展进步。

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

第一方面,本发明提供了一种无人车仿真测试用例生成方法,包括如下步骤:

在仿真环境中选择测试用例的测试场地;

确定所述测试用例中的主车和参与者的初始状态,并在所述测试场地中生成主车和参与者;

根据原子行为动作设计所述测试用例中所述参与者的动作行为,设计所述主车的判定规则;

将被测对象连接到所述仿真环境的所述主车,并控制所述参与者进行测试;

根据所述参与者的动作行为和所述主车的判定规则,分析测试数据,返回测试结果。

在其中一个实施例中,所述测试场地是指仿真环境中的具体场景,包括但不限于测试场、城市、乡村等场景。

在其中一个实施例中,所述主车是在仿真环境中受被测对象控制的虚拟车辆,反映被测对象的自动驾驶能力。

在其中一个实施例中,所述参与者为在仿真环境中测试用例相关的交通要素,包括但不限于车辆、行人、交通灯、交通标识牌、障碍、区域等。

在其中一个实施例中,所述被测对象是指无人车中具有感知、决策、规划等功能或其中之一的软件模块,能够根据所述测试场地的地图数据和所述主车的实时运行数据给出所述主车的控制量。

在其中一个实施例中,所述初始状态是指所述主车和参与者在测试用例开始执行时的静态信息和动态信息。所述主车的初始状态包括但不限于主车的中心位置、包围盒尺寸、速度、朝向等信息。对于所述的车辆、行人、交通灯、交通标识牌、障碍、区域,所述初始状态的具体体现会有所不同。对于所述车辆和行人,所述初始状态信息可包括中心位置、包围盒尺寸、速度、朝向等信息;对于所述交通灯,所述初始状态可包括中心位置、朝向、触发区域、红绿黄状态、红绿黄持续时间等;对于所述交通标识牌,所述初始状态可包括中心位置、朝向、触发区域等;对于所述障碍,所述初始状态包括中心位置、包围盒尺寸、朝向;对于所述区域,所述初始状态可包括中心位置、形状尺寸、朝向、依附物体等。

在其中一个实施例中,所述动作行为包括所述的车辆和行人所采取的原子动作组合。所述原子动作根据所述的车辆和行人本身的动态变化和与其他区域的位置变化分为方向、速度、空间三个方面。所述方向变化的原子动作,可包括保持车道、向左变换车道、向右变换车道、直行、左转、右转、掉头等;所述速度变化的原子动作,可包括加速至某速度、减速至某速度、在某时间内或某距离内定速巡航、切换倒挡、以某程度刹车、停车等;所述空间变化的原子动作,可包括进入某区域、穿过某区域、离开某区域等。优选地,车辆和行人的动作行为和原子动作可设置最大的执行时间。

在其中一个实施例中,所述动作行为还包括交通灯的状态切换和状态持续。具体地,所述状态切换可包括切换红灯、切换绿灯、切换黄灯等;所述状态持续指在某段时间内持续当前状态,然后按照“红绿黄”顺序切换。

在其中一个实施例中,所述动作行为还包括不同动作间的时序关系或前提条件。这里以动作1和动作2为例进行说明,所述不同动作间的时序关系可包括:动作1完成后动作2开始;动作1、动作2同时开始;动作1开始需等待动作2完成;动作2开始后动作1开始等;所述前提条件指,每当动作1发生时,触发动作2的发生。所述时序关系和所述前提条件的区别在于,前者仅主动执行一次;后者会实时检测前提动作的发生,可能导致多次后续动作的被动触发。

在其中一个实施例中,所述判定规则用于设置所述测试用例执行过程中所述主车需要遵守规则,可包括:不发生碰撞、不进入某区域、进入某区域、穿过某区域、不逆行、不超速、合理停车、遵守交通灯等。

在其中一个实施例中,所述将被测对象连接到所述仿真环境的所述主车中的连接方式可以通过网络连接的方式实现,从而将被测系统与仿真环境进行分离。

在其中一个实施例中,所述测试数据可包括主车的实时运行数据、参与者的动作执行数据、交通灯和交通标识牌的记录数据。具体地,所述主车的实时运行数据可包括:主车的位置、速度、加速度,主车周围的物体及其位置、速度,主车周围的交通灯、交通标识信息,与主车发生碰撞的物体信息,主车的控制信息(油门、转向、刹车、手刹、倒挡)等;所述参与者的动作执行数据可包括动作行为及其状态(等待、正在执行、完成、失败)等;交通灯和交通标识牌的记录数据可包括,进入触发区域时间、离开触发区域时间、交通灯或标识牌的状态。

在其中一个实施例中,所述测试结果分为三种情况,具体的包括:测试用例未正确执行、测试用例执行失败、测试用例执行成功。

第二方面,本发明提供了一种无人车仿真测试用例生成系统,所述系统包括如下模块:

地图模块,用于向生成模块提供地图数据,向控制模块提供规划路线;

生成模块,用于在测试场地中生成主车和参与者,以满足其初始状态;

行为模块,用于获取参与者的动作行为描述,生成动作行为树;

连接模块,用于连接被测对象与主车,进行数据交互;

控制模块,用于调度所述动作行为树,控制原子动作;

判定模块,用于记录所述主车的判定规则,获取测试数据,分析所述测试用例的测试结果;

仿真模块,用于连接仿真引擎,提供地图模块、生成模块、控制模块、判定模块的统一访问接口。

第三方面,本发明提供了一种计算机设备,包括处理器、存储器、网络接口及总线;处理器、存储器及网络接口通过总线实现相互通信,网络接口建立与被测对象的数据交互,存储器存储计算机程序,处理器执行计算机程序实现上述任意一项所述方法的步骤。

第四方面,本发明提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被处理器执行以实现上述任意一项所述方法的步骤。

上述的无人车仿真测试语言、系统、计算机设备和计算机存储介质,突破了传统无人车仿真测试利用固定测试场景的局限性,同时通过行为动作及其序列的定义简洁地实现了在抽象的语言层面上对无人车测试用例的模型化描述,为测试用例设计带来了极大的灵活性从而能够提供丰富的测试场景,为自动驾驶领域构建基于模型的测试验证奠定了技术基础。本发明的其他优势还在于,本发明中的系统架构实现了测试用例设计和仿真引擎调用两者的分割,有利于无人车测试人员和仿真引擎开发人员的协同工作;同时,本发明提供对于主车的判定规则设计,极大地扩展了测试过程中可评估对象指标的范围,让使用者能够有针对性地开展更为细致的无人车仿真测试评估工作。

为使本发明的上述目的、特征和优点能更明显易懂,下文配合所附附图,对较佳实施例作详细说明。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面对实施例中所需要使用的附图作简单介绍,显然,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1是一个实施例的无人车仿真测试用例生成方法的流程图;

图2是一个实施例的根据初始状态在测试场地中生成主车和参与者的流程图;

图3是一个实施例的设计车辆和行人动作行为的流程图;

图4是一个实施例的控制车辆和行人动作行为的流程图;

图5是一个实施例的分析测试数据的流程图;

图6是一个实施例的无人车仿真测试用例生成系统的结构示意图;

图7是一个实施例的计算机设备的内部结构示意图。

具体实施方式

下面结合具体实施例,进一步阐述本发明,应理解这些实施例仅用于说明本发明而不用与限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附属权利要求多限定的范围。

本发明的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在本发明各实施例中,“被测对象”是无人车软件层面上能够响应测试场景对主车进行控制的系统或模块。“主车”表示在虚拟环境中由“被测对象”进行控制的车辆。“参与者”是除主车外测试用例中声明的其他物体,具体可以包括非主车、行人、交通灯、交通标识牌、障碍等。

在一个实施例中,如图1所示,图1是无人车仿真测试用例生成方法的流程图,本实施例提供了一种无人车仿真测试用例生成方法,具体可以包括以下步骤:

s101:在仿真环境中选择测试用例的测试场地。

在本步骤中,根据仿真环境中提供的测试场地进行选取,确定本次测试用例所在的测试场地。其中,测试场地可包括但不限于测试场、城市、乡村等场景。根据具体的测试场地,可获取到对应的地图信息供下述步骤利用。

s102:确定所述测试用例中的主车和参与者的初始状态,并在所述测试场地中生成主车和参与者。

在本步骤中,主车是在仿真环境中受被测对象控制的虚拟车辆,需要在测试用例执行时给出初始状态,包括但不限于主车的中心位置、包围盒尺寸、速度、朝向等信息;测试用例开始执行后,主车由被测对象进行控制,反映被测对象的自动驾驶能力。

参与者是在仿真环境中测试用例相关的交通要素,包括但不限于车辆、行人、交通灯、交通标识牌、障碍、区域等。参与者的初始状态根据其类型不同会有不同的具体体现。对于车辆和行人,初始状态信息可包括中心位置、包围盒尺寸、速度、朝向等信息;对于交通灯,初始状态可包括中心位置、朝向、触发区域、红绿黄状态、红绿黄持续时间等;对于交通标识牌,初始状态可包括中心位置、朝向、触发区域等;对于障碍,初始状态包括中心位置、包围盒尺寸、朝向;对于区域,初始状态可包括中心位置、形状尺寸、朝向、依附物体等。

在确定主车和参与者的初始速度、位置等信息时,可通过世界坐标系进行描述;优选地,还可通过局部坐标系进行刻画。

s103:根据原子行为动作设计所述测试用例中所述参与者的动作行为,设计所述主车的判定规则。

在本步骤中,车辆和行人的原子动作根据动态变化和与其他区域的位置变化分为方向、速度、空间三个方面,方向变化的原子动作,可包括保持车道、向左变换车道、向右变换车道、直行、左转、右转、掉头等;速度变化的原子动作,可包括加速至某速度、减速至某速度、在某时间内或某距离内定速巡航、切换倒挡、以某程度刹车、停车等;空间变化的原子动作,可包括进入某区域、穿过某区域、离开某区域等。交通灯的原子动作包括切换红灯、切换绿灯、切换黄灯和状态持续等。优选地,车辆和行人的动作行为和原子动作可设置最大的执行时间。

设计动作行为时,需要考虑不同动作间的时序关系或前提条件。这里以动作1和动作2为例进行说明,所述不同动作间的时序关系可包括:动作1完成后动作2开始;动作1、动作2同时开始;动作1开始需等待动作2完成;动作2开始后动作1开始等;所述前提条件指,每当动作1发生时,触发动作2的发生。所述时序关系和所述前提条件的区别在于,前者仅主动执行一次;后者会实时检测前提动作的发生,可能导致多次后续动作的被动触发。

判定规则用于设置所述测试用例执行过程中主车需要遵守规则,可包括:不发生碰撞、不进入某区域、进入某区域、穿过某区域、不逆行、不超速、合理停车、遵守交通灯等。

利用这些原子动作,可以设计出更加复杂的参与者动作行为,突破传统固定测试用例的限制;定制化的判定规则,则有利于针对不同的测试用例设计合适的评判标准。

s104:将被测对象连接到所述仿真环境的所述主车,并控制所述参与者进行测试。

在本步骤中,被测对象通过网络连接到仿真环境的主车,利用网络进行被测对象与主车之间实时运行数据的交互,从而驱动仿真环境中主车的行驶。实时运行数据可包括:主车的位置、速度、加速度,主车周围的物体及其位置、速度,主车周围的交通灯、交通标识信息,与主车发生碰撞的物体信息,主车的控制信息(油门、转向、刹车、手刹、倒挡)等。

对于车辆和行人,可将s103中行为动作的控制分解为速度和转向两个层面的控制。

s105:根据所述参与者的动作行为和所述主车的判定规则,分析测试数据,返回测试结果。

在本步骤中,测试数据可包括s104中主车的实时运行数据、参与者的动作执行数据、交通灯和交通标识牌的记录数据。参与者的动作执行数据可包括动作行为及其状态(等待、正在执行、完成、失败、超时)等。结合测试用例中动作行为的执行情况、主车的实时运行数据和判定规则,进行测试用例的数据分析,得到测试结果。交通灯和交通标识牌的记录数据可包括,进入触发区域时间、离开触发区域时间、交通灯或标识牌的状态。测试结果分为三种情况,具体的包括:测试用例未正确执行、测试用例执行失败、测试用例执行成功。

在一个实施例中,s102中在所述测试场地中生成主车和参与者的步骤,参考图2所示,图2是一个实施例的根据初始状态在测试场地中生成主车和参与者的流程图,可以包括如下步骤:

s201:获取测试场地对应的测试地图。

在本步骤中,测试地图的格式可包括高精地图、语义地图等,需要描述测试场地中可通行区域以及各位置的方向信息。通常,需要将高精地图或语义地图转化为若干个可通行区域的集合并表明集合内元素的方向信息。

s202:建立以主车为参考点的局部坐标系,将参与者的初始状态转换到该局部坐标系下。

在本步骤中,需要将主车和参与者的空间坐标进行转换,统一参与者的初始状态描述。同时,对主车和参与者状态描述中的随机变量进行采样,在主车为参考点的局部坐标系下获得参与者的确定性描述。

s203:在测试地图中根据中心位置和朝向放置主车。

在本步骤中,优选地,根据测试地图中的道路类型对主车放置范围进行筛选,然后在筛选后的区域中随机放置主车。

s204:将参与者的初始状态从s202的局部坐标系转换到世界坐标系,并放置参与者。

在本步骤中,需要将参与者的局部坐标转换为世界坐标,首先需要对局部坐标进行旋转,然后从主车的世界坐标进行偏移。

s205:检查参与者放置的合理性;若不满足,重新执行s202。

在本步骤中,优选地,检查参与者的中心位置、包围盒是否处于可通行范围,检查参与者的朝向与所处位置的方向是否满足初始状态描述。

在一个实施例中,s103的根据原子行为动作设计所述测试用例中所述参与者的动作行为的步骤,参考图3所示,图3是一个实施例的设计参与者动作行为的流程图,可以包括如下步骤:

s301:利用原子动作组装动作行为片段。

在本步骤中,动作行为片段中的原子动作以串行顺序执行。

s302:对于主动执行式行为,给出动作行为片段的时序关系。

在本步骤中,动作行为片段可以并行顺序执行。

s303:对于被动触发式行为,确定动作行为片段的触发条件。

在本步骤中,触发条件是主车或参与者的某一动作行为。

s304:添加起始和结束的动作行为,生成动作行为树。

在本步骤中,起始动作行为作为动作行为树的根节点,用于动作行为控制的入口;结束动作行为作为动作行为控制的结束符。

在一个实施例中,s104的控制所述参与者进行测试的步骤,参考图4所示,图4是一个实施例的控制参与者动作行为的流程图,可以包括如下步骤:

s401:从动作行为树的起始动作行为开始,依次获取动作行为片段。

在本步骤中,对于并行顺序执行的动作行为,需要同时进行下面的步骤。

s402:对于选取的动作行为片段,确定当时需要执行的原子动作行为。

在本步骤中,每个动作行为片段中的原子动作串行执行,即只能选取一个。

s403:对于交通灯,根据动作行为描述控制灯的状态和持续时间。

s404:对于车辆和行人,将原子动作行为分解为速度控制和转向控制两个方面。根据速度期望进行速度控制;利用转向控制目标结合测试地图信息确定行驶路线,根据行驶路线控制转向。

在本步骤中,优选地,对于速度控制,可利用pid控制技术,设计速度控制环和加速度控制环,将目标速度和当前车辆运动状态信息最终转换成油门、刹车数值;对于朝向控制,需要基于地图提供的道路数据计算路线点,然后基于路线点和物体运动状态,利用mpc计算转向值。

s405:s403与s404的控制目标完成或达到原子动作设置的最大的执行时间后,返回s402控制下一个原子动作的执行。

在本步骤中,原子动作可能一直处于正在执行过程。为避免原子动作无法结束,若达到设置的最大的执行时间,则立即结束当前原子动作。

s406:当前行为动作执行完成后,返回s401获取下一动作行为片段,直至遇到结束动作行为。

在本步骤中,遇到结束动作行为意味着测试用例的执行结束。

在一个实施例中,s105的分析测试数据的步骤,参考图5所示,图5是一个实施例的分析测试数据的流程图,可以包括如下步骤:

s501:根据参与者的动作执行数据分析测试测试用例是否正确执行。

在本步骤中,若参与者的动作执行状态出现超时、等待或正在执行的情况,则说明测试用例未正确执行;否则,测试用例正确执行。

s502:根据主车的实时运行数据,结合主车的判断规则以及交通灯和交通标识牌的记录数据,分析测试用例是否执行成功。

在本步骤中,由主车的实时运行数据分析,若满足主车的判断规则并且没有违反交通灯和交通标识牌,则认为测试用例执行成功;否则,测试用例执行失败。

s503:若测试用例执行失败,给出失败的原因。

在本步骤中,给出未满足的主车判断规则以及违反的交通灯和交通标识牌信息。

下面通过一个实施例,介绍本发明提供的一种无人车仿真测试用例生成系统,参考图6所示,图6是一个实施例的无人车仿真测试用例生成系统的结构示意图,包括如下模块:

地图模块601,用于向生成模块提供地图数据,向控制模块提供规划路线。

地图模块601中,通过仿真模块607获取仿真环境中各测试场地的语义地图、高精地图,用于生成模块602中主车和参与者的生成计算,同时向控制模块提供地图定位、规划路线的功能。

生成模块602,用于在测试场地中生成主车和参与者,以满足其初始状态。

生成模块602中,根据主车和参与者的初始状态,结合地图模块601提供的语义地图、高精地图,通过仿真模块607在仿真环境的测试场地中生成主车和参与者。

行为模块603,用于获取参与者的动作行为描述,生成动作行为树。

行为模块603中,生成测试用例的动作行为树,用于控制模块605对测试用例的实时控制。

连接模块604,用于连接被测对象与主车,进行数据交互。

连接模块604中,通过仿真模块607获取主车的实时运行数据,再利用网络发送至被测对象;然后,利用网络获取被测对象计算的控制信息,再通过仿真模块607控制主车的运动。

控制模块605,用于调度所述动作行为树,控制原子动作。

控制模块605中,根据行为模块603生成的动作行为树,通过仿真模块607,控制测试用例中的参与者。

判定模块606,用于记录所述主车的判定规则,获取测试数据,分析所述测试用例的测试结果。

判定模块606中,通过仿真模块607获取参与者的动作执行数据、交通灯和交通标识牌的记录数据、主车的实时运行数据等测试数据,结合主车的判定规则,分析测试结果。

仿真模块607,用于连接仿真引擎,提供地图模块、生成模块、连接模块、控制模块、判定模块的统一访问接口。

仿真模块607中,直接访问仿真引擎,提供地图模块601、生成模块602、连接模块604、控制模块605、判定模块606所需的地图获取、物体生成、行为控制、数据获取等底层功能。

下面通过一个实施例,介绍本发明提供的一种计算机设备,参考图7所示,图7是一个实施例的计算机设备的内部结构示意图,可以包括处理器701、存储器702、网络接口703和总线704。其中,总线704用于实现各元件之间的连接。存储器702中存储有计算机程序,计算机程序被处理器702执行时可以实现上述任一方法实施例提供的无人车仿真测试用例生成方法的技术方案,网络接口703建立与被测对象的数据交互。

应该理解的是,图7中示出的结构,仅仅是与本发明方案相关的部分结构,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

下面通过一个实施例中,介绍本发明提供的一种计算机存储设备。本实施例中的计算机存储介质,用于存储计算机程序,所述计算机程序被处理器执行以实现上述任一方法实施例提供的无人车仿真测试用例生成方法的技术方案。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

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