发明内容
有鉴于此,本发明的目的在于提供自动驾驶算法仿真测试方法、装置及电子设备,以提高自动驾驶算法的测试效率。
第一方面,本发明实施例提供了一种自动驾驶算法仿真测试方法,包括:基于预设的实体测试场,建立虚拟测试场;基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果;基于仿真测试结果、目标阈值以及车辆在实体测试场的测试结果,确定自动驾驶算法的更新参数。
进一步地,基于预设的实体测试场,建立虚拟测试场的步骤,包括:建立与预设的实体测试场对应的静态三维模型;静态三维模型包括多个静态元素;基于预设的仿真算法,为静态三维模型添加动态元素,生成虚拟测试场。
进一步地,车辆模型通过以下方式建立:通过预设实验获取车辆的参数;通过神经网络模型对车辆的参数进行训练,得到车辆对应的车辆模型。
进一步地,基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果的步骤,包括:通过待测的自动驾驶算法,运行车辆模型在虚拟测试场的测试;通过预先设置的虚拟传感器,采集车辆模型在测试过程中的监测数据;将监测数据确定为自动驾驶算法的仿真测试结果。
进一步地,上述仿真测试结果包括多个子测试结果;目标阈值包括子测试结果对应的子阈值;基于仿真测试结果、目标阈值以及车辆在实体测试场的测试结果,确定自动驾驶算法的更新参数的步骤,包括:针对每个子测试结果,基于与子测试结果对应的实体子测试结果,确定子测试结果与实体子测试结果的一致性;如果一致性满足预设条件,判断子测试结果与对应的子阈值是否满足预设条件;如果不满足,将子测试结果与子阈值的差值确定为自动驾驶算法的更新参数。
第二方面,本发明实施例还提供一种自动驾驶算法仿真测试装置,包括:虚拟测试场建立模块,用于基于预设的实体测试场,建立虚拟测试场;测试结果确定模块,用于基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果;更新参数确定模块,用于基于仿真测试结果、目标阈值以及车辆在实体测试场的测试结果,确定自动驾驶算法的更新参数。
进一步地,上述虚拟测试场建立模块还用于:建立与预设的实体测试场对应的静态三维模型;静态三维模型包括多个静态元素;基于预设的仿真算法,为静态三维模型添加动态元素,生成虚拟测试场。
进一步地,上述装置还包括车辆模型建立模块,车辆模型建立模块还用于:通过预设实验获取车辆的参数;通过神经网络模型对车辆的参数进行训练,得到车辆对应的车辆模型。
第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述自动驾驶算法仿真测试方法。
第四方面,本发明实施例还提供机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述自动驾驶算法仿真测试方法。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种自动驾驶算法仿真测试方法、装置及电子设备,首先基于预设的实体测试场,建立虚拟测试场;然后基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果;最后基于仿真测试结果以及目标阈值,确定自动驾驶算法的更新参数。该方式提高了自动驾驶算法的测试效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,自动驾驶的产品不断推到大众面前,一次次惊艳世人的眼球,但是在自动驾驶系统向更加智能的方向演化的过程中,也发生了一些令人扼腕叹息的事件。汽车电控系统的功能越来越复杂,如何保证自动驾驶产品的稳定性和安全性已经成为自动驾驶专业人的首要解决的问题。
在此暂且不论基于里程的测试和基于场景的测试的意义大小,在自动驾驶不具备大规模测试的现有阶段,基于典型场景的测试更加符合现有需求。Waymo在无人驾驶领域处于世界领先地位,该团队最重要的两个秘密武器:模拟软件Carcraft和秘密基地Castle,仿真测试和实车测试相互补充。Carcraft建立虚拟场景的数据,一些来自路测,更多则来自Waymo的测试基地Castle。大多数人知道前者,殊不知后者也发挥着重要作用。测试代价不仅包括人力成本、场地费用,还包括潜在的风险造成车辆的损害和测试人员的伤害。仿真测试成为通往自动驾驶安全的必由之路,已成为行业共识。L2级简单场景,测试工程师利用仿真软件很容易构建出来;L3、L4级别自动驾驶产品大多依赖高精地图,仿真场景很难直接构造出来。公开道路范围太大,测试场对于采集高精地图相对方便。
国内外的测试场众多,现列举部分测试场,如表1所示:
表1
中国的自动驾驶起步晚,和欧美等国家准许自动驾驶道路测试的时间较晚。国内对测试申请的评审过程的时间较长,封闭测试场的容量有限。目前国内自动驾驶测试场数量不多,测试场的地点较偏远,北上广深的自动驾驶公司测试需要耗费大量的人力物力。
自动驾驶仿真技术尚未成熟,存在诸多问题和难点,仿真测试与实际测试结果的一致性问题仍然没有解决,如何保证仿真模型与实际被测件的标定真实性和特性匹配;
1.现有的发明技术大多停留在理论上,可操作性不强,本发明旨在针对现有测试场,改造测试场相对方便,地域相对固定;
2.成本高,自动驾驶需要测试的场景非常多,采集高精地图的成本相对较高。
3.难以覆盖典型工况,许多边缘工况很难在现实场景中收集到,而这恰恰是测试的重点。如果不进行测试,量产后的自动驾驶系统会带上一系列问题,对乘车人员造成伤害;
4.现阶段采集的实车数据只能做开环的回放,由于场景无法完全复现,算法开发人员对算法进行修改后无法直接验证,必须上实车测试验证;
5.实车测试和仿真测试的无法对比,现有仿真场景和实车测试的场景区别较大,无法相互验证;
6.现有测试的场景有限,无法保证测试覆盖度,无法制造极端工况,测试仍然存在长尾效应。
基于此,本发明实施例提供的一种自动驾驶算法仿真测试方法、装置以及电子设备,可以应用于车辆的仿真测试场景中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种自动驾驶算法仿真测试方法进行详细介绍。
本发明实施例提供了一种自动驾驶算法仿真测试方法,如图1所示,该方法包括如下步骤:
步骤S100,基于预设的实体测试场,建立虚拟测试场。
具体而言,可以首先建立与预设的实体测试场对应的静态三维模型;静态三维模型包括多个静态元素;其实体测试场已包括较为全面的测试工况;然后再基于预设的仿真算法,为静态三维模型添加动态元素,生成虚拟测试场,具体可以采用多种仿真软件实现。
步骤S102,基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果。
在具体实现过程中,该车辆模型通过以下方式建立:首先通过预设实验获取车辆的参数;然后通过神经网络模型对车辆的参数进行训练,得到车辆对应的车辆模型。
在确定自动驾驶算法的仿真测试结果时,可以通过待测的自动驾驶算法,运行车辆模型在虚拟测试场的测试;并通过预先设置的虚拟传感器,采集车辆模型在测试过程中的监测数据;最后将监测数据确定为自动驾驶算法的仿真测试结果。
步骤S104,基于仿真测试结果、目标阈值以及车辆在实体测试场的测试结果,确定自动驾驶算法的更新参数。
通常情况下,上述仿真测试结果包括多个子测试结果;目标阈值包括子测试结果对应的子阈值;车辆在实体测试场的测试结果包括多个实体子测试结果。针对每个子测试结果,基于与子测试结果对应的实体子测试结果,确定子测试结果与实体子测试结果的一致性;如果一致性满足预设条件,判断子测试结果与对应的子阈值是否满足预设条件;如果不满足,将子测试结果与子阈值的差值确定为自动驾驶算法的更新参数。
本发明实施例提供了一种自动驾驶算法仿真测试方法,首先基于预设的实体测试场,建立虚拟测试场;然后基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果;最后基于仿真测试结果以及目标阈值,确定自动驾驶算法的更新参数。该方式提高了自动驾驶算法的测试效率。
本发明实施例还提供了另一种自动驾驶算法仿真测试方法,该方法在图1所示的方法基础上实现。该方法主要解决如下问题:
1.自动驾驶系统需要的测试场景多,覆盖度高,可以在封闭测试场中利用各种元素制造实际场景,可以在仿真测试中制造出大量的仿真场景;
2.仿真测试和实车测试的一致性,同一个场景下,仿真测试和实车测试可以对结果进行很好的对比,也可以推动仿真平台更好地建设,一旦确保两者的相似性,实车测试的比例可以大幅下降;
3.数据闭环,开发人员在实车测试中发现的bug,修复bug后可以在仿真环境中测试后,确保问题修复后,再进行实车测试可以加速bug修复,更快的迭代算法,改变以往只能做数据回放的开环测试形式;
4.测试成本,由于在仿真中做了大量测试,封闭场的测试戏份的比例不会很高,可以大大地降低成本,人力成本和测试场测试的成本将大幅下降;
5.安全性高;首先,真实的测试比例大幅降低,测试人员的安全性也得到了提高;其次,由于算法在虚拟环境中做了大量的仿真测试,大部分的bug已经修复关闭,再次提高了测试人员的安全性;
6.在封闭测试场,更容易采集车辆数据,在仿真测试时,车辆模型和实车车辆模型的差距可以更小;
7.可以测试更多的场景,更多的极端场景将被覆盖;
8.修复算法的BUG更快,研发效率加快。
结合图2可知,该方法主要包括如下步骤:
第一,要实现基于封闭场的仿真测试,需要构建与封闭测试场等比例的虚拟测试场,步骤如下:
1.首先选定一个测试场,然后改造测试场,尽可能多的覆盖各种场景--高速、隧道和转盘等场景,各种动态道具--假人、假车、动物等,最好能实现各种气象,如刮风、下雨、沙尘等。
2.测试场改造完毕后,采集测试场高精地图,目前仿真软件支持的格式OpenDRIVE。
3.搭建整个测试场的静态3D模型,等比例复现测试场环境,需要在测试场标注各个静态元素的位置、尺寸和形状,然后在对应的位置上采用3Dmax将需要的模型建立处理。
4.搭建测试场中的动态元素,如果仿真软件具备了所需的元素,直接利用即可否则需要用3Dmax或者草图大师建立元素后导入仿真软件。
5.将2、3和4构建的元素导入仿真软件,在此不限定仿真软件只要能实现和满足仿真功能即可。
至此,虚拟的测试场环境已经搭建完毕,测试场可以将其发放给需要测试的自动驾驶公司,测试场也可以用来给客户展示和交流,在前期对接时可以直接将虚拟测试场展示给客户,客户可以更好地了解测试场,可以改变现有的需求确认方式,测试人员去现场确认场地是否满足要求。
第二,搭建车辆动力学模型,可以采用两种方法来获取车辆模型:
1.采集车辆参数,采用经典实验得到车辆的关键参数,可以分横向、纵向实验进行,例如空挡滑行实验可以得到车辆的空气阻力系数和滚动阻力系数。
2.由于封闭测试场的场地有限,可以多采集数据,采用神经网络的方法学习一个模型作为车辆模型。
第三,传感器安装,封闭测试场的实车需要安装激光雷达、相机和毫米波雷达,虚拟测试场的车辆同样需要安装虚拟传感器,并确保传感器能正确输出算法需要的数据。
第四,虚拟测试场和真实的封闭测试场的测试环境都具备了可以测试条件,算法人员可以部署开发的算法在两个环境中。
第五,虚拟测试场和真实测试场的一致性评估,评估的指标包括车辆模型和传感器数据输出,这两部分数据尽可能保证一致性,这样能在虚拟测试场对算法更好的验证。
第六,测试人员构建大量的仿真工况测试算法,关闭比较初级的错误,前期算法的一些逻辑验证工作也可以在虚拟环境中进行。
第七,经过第六步的测试,算法人员和测试人员评估是否具备了实车在测试场测试的条件,若具备了可测试条件则准许在测试场中测试,否则继续在虚拟测试场中继续测试。
第八,在真实测试场中的实车测试需要进行的测试,如有需求,可将利用各种道具制造场景,并可能将道具的数据也采集下来,测试应该覆盖各种工况,分为几大类测试如功能场景测试、极限工况。
第九,在测试场采集的数据中,算法需要调整的数据将场景在虚拟测试场中复现,搭建完全的一样的场景。
第十,算法开发人员修复算法后,在虚拟测试场上仿真验证确认算法修复后再上测试场测试。
第十一,不断在第六到第十步中循环进行,直至自动驾驶系统完全通过所有的场景测试。
该方法提供了虚拟测试场的构建方式,实现了虚拟和真实场景的算法相互验证,并提供了算法验证的流程。基于该方法,算法的迭代验证加快,因为实车测试的比例下降,修复算法bug的流程更科学;提高了测试安全性,仿真验证的比例增加;仿真和实车测试的一致性可以很好的验证,因为可以有同样的场景,保证算法输入输出的一致性;实车测试结果可以作为仿真测试的评价标准。
对应于上述方法实施例,本发明实施例还提供一种自动驾驶算法仿真测试装置,如图3所示,该装置包括:
虚拟测试场建立模块300,用于基于预设的实体测试场,建立虚拟测试场;
测试结果确定模块302,用于基于虚拟测试场、预先建立的车辆模型以及待测的自动驾驶算法,确定自动驾驶算法的仿真测试结果;
更新参数确定模块304,用于基于仿真测试结果、目标阈值以及车辆在实体测试场的测试结果,确定自动驾驶算法的更新参数。
具体地,上述虚拟测试场建立模块还用于:建立与预设的实体测试场对应的静态三维模型;静态三维模型包括多个静态元素;基于预设的仿真算法,为静态三维模型添加动态元素,生成虚拟测试场。
具体地,上述装置还包括车辆模型建立模块,车辆模型建立模块还用于:通过预设实验获取车辆的参数;通过神经网络模型对车辆的参数进行训练,得到车辆对应的车辆模型。
本发明实施例提供的自动驾驶算法仿真测试装置,与上述实施例提供的自动驾驶算法仿真测试方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供了一种电子设备,参见图4所示,该电子设备包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现上述自动驾驶算法仿真测试方法。
进一步地,图4所示的电子设备还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述自动驾驶算法仿真测试方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的自动驾驶算法仿真测试方法及装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。