CN116009519A - 仿真测试方法、装置、设备和存储介质 - Google Patents
仿真测试方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116009519A CN116009519A CN202310101745.6A CN202310101745A CN116009519A CN 116009519 A CN116009519 A CN 116009519A CN 202310101745 A CN202310101745 A CN 202310101745A CN 116009519 A CN116009519 A CN 116009519A
- Authority
- CN
- China
- Prior art keywords
- test
- domain controller
- controller program
- task
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种仿真测试方法、装置、设备和存储介质,属于车辆技术领域。该方法在仿真测试平台中创建虚拟运行环境,在该虚拟运行环境中加载第一版本的域控制器程序。基于测试要求,创建多个测试场景,生成与多个测试场景匹配的多个测试任务;基于域控制器程序,在虚拟运行环境中执行多个测试任务;响应于多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;重复执行在虚拟运行环境中加载域控制器程序的步骤,直至多个测试任务的测试结果满足要求。该方法在仿真测试平台的虚拟运行环境中运行域控制器程序,无需获取自动驾驶算法的源代码也可以完成对自动驾驶算法的仿真测试,从而满足测试需求。
Description
技术领域
本申请涉及车辆技术领域,特别涉及一种仿真测试方法、装置、设备和存储介质。
背景技术
车辆自动驾驶系统按照测试方式的不同,可以分为以下几类:模型在环(MIL)、软件在环(SIL)、硬件在环(HIL)、驾驶员在环(DIL)和车辆在环(VIL)。其中,SIL主要是指对自动驾驶算法进行仿真测试。
目前,对于未开展自动驾驶算法研究或研究还不成熟的车辆生产商来说,一般会委托供应商来开展自动驾驶算法的研究和开发。相关技术中,供应商开发完成自动驾驶算法后,将自动驾驶算法的源代码交付给车辆生产商,车辆生产商将自动驾驶算法的源代码接入仿真测试平台,在仿真测试平台运行该源代码,从而验证自动驾驶算法的准确性。
但当供应商无法交付或尚未发布全部源代码时,车辆生产商就无法开展对自动驾驶算法的仿真测试,无法满足测试需求。
发明内容
本申请实施例提供了一种仿真测试方法、装置、设备和存储介质,可以在无自动驾驶算法的源代码的情况下,完成对自动驾驶算法的仿真测试。所述技术方案如下:
一方面,提供了一种仿真测试方法,所述方法包括:
获取第一版本的域控制器程序,所述域控制器程序是通过对自动驾驶算法进行编译得到的;
在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序;
在加载成功的情况下,基于测试要求,创建多个测试场景;
生成与所述多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务;
基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务;
响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;所述第二版本的域控制器程序是对所述第一版本的域控制器程序进行改进得到的;
重复执行在所述虚拟运行环境中加载所述域控制器程序的步骤,直至所述多个测试任务的测试结果满足要求。
在一种可能的实现方式中,所述方法还包括:
当车辆在现实世界中行驶出现故障时,确定出现故障时的故障场景;所述车辆植入有第三版本的域控制器程序,所述第三版本与所述多个测试任务的测试结果满足要求时对应的域控制器程序匹配;
生成与所述故障场景匹配的故障任务;
基于所述第三版本的域控制器程序,在所述虚拟运行环境中执行所述故障任务;
基于所述故障任务的执行结果,确定故障原因。
在另一种可能的实现方式中,所述方法还包括:
对于每个测试任务,获取所述测试任务的任务详情;
在所述测试任务执行完成后,获取所述测试任务的测试结果;
基于所述测试任务的任务详情和测试结果,生成测试报告。
在另一种可能的实现方式中,所述响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序,包括:
基于所述多个测试任务的测试结果,生成所述多个测试任务的综合测试报告;
响应于所述综合测试报告不满足要求,向供应商发送所述综合测试报告;所述供应商用于基于所述综合测试报告,对所述第一版本的域控制器程序进行改进,得到第二版本的域控制器程序;
接收所述第二版本的域控制器程序。
在另一种可能的实现方式中,所述在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序,包括:
确定待植入所述域控制器程序的目标车辆的车型;
在所述仿真测试平台中创建与所述目标车辆的车型对应的虚拟运行环境;
在所述虚拟运行环境中加载所述域控制器程序。
在另一种可能的实现方式中,所述基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务,包括:
将所述多个测试任务添加至任务队列中;
确定当前可用的处理资源的第一数量;所述处理资源用于执行测试任务;
从所述任务队列中选取第一数量个测试任务,将所述第一数量个测试任务分配给第一数量个处理资源;
基于所述域控制器程序,通过所述第一数量个处理资源在所述虚拟运行环境中并行执行所述第一数量个测试任务;
在任一处理资源执行完其分配到的测试任务时,从所述任务队列中选取下一个测试任务,将所述下一个测试任务分配给所述处理资源,直至执行完所述多个测试任务。
在另一种可能的实现方式中,通过处理资源执行测试任务的过程,包括:
在所述测试任务对应的测试场景下,获取模拟的环境感知信息和所述测试场景的场景信息;
基于所述环境感知信息、所述场景信息和所述域控制器程序,通过所述处理资源执行所述测试任务。
另一方面,提供了一种仿真测试装置,所述装置包括:
第一获取模块,用于获取第一版本的域控制器程序,所述域控制器程序是通过对自动驾驶算法进行编译得到的;
加载模块,用于在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序;
创建模块,用于在加载成功的情况下,基于测试要求,创建多个测试场景;
第一生成模块,用于生成与所述多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务;
第一执行模块,用于基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务;
第二获取模块,用于响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;所述第二版本的域控制器程序是对所述第一版本的域控制器程序进行改进得到的;
所述加载模块,还用于重复执行在所述虚拟运行环境中加载所述域控制器程序的过程,直至所述多个测试任务的测试结果满足要求。
在一种可能的实现方式中,所述装置还包括:
第一确定模块,用于当车辆在现实世界中行驶出现故障时,确定出现故障时的故障场景;所述车辆植入有第三版本的域控制器程序,所述第三版本与所述多个测试任务的测试结果满足要求时对应的域控制器程序匹配;
第二生成模块,用于生成与所述故障场景匹配的故障任务;
第二执行模块,用于基于所述第三版本的域控制器程序,在所述虚拟运行环境中执行所述故障任务;
第二确定模块,用于基于所述故障任务的执行结果,确定故障原因。
在另一种可能的实现方式中,所述装置还包括:
第三获取模块,用于对于每个测试任务,获取所述测试任务的任务详情;
第四获取模块,用于在所述测试任务执行完成后,获取所述测试任务的测试结果;
第三生成模块,用于基于所述测试任务的任务详情和测试结果,生成测试报告。
在另一种可能的实现方式中,所述第二获取模块,用于基于所述多个测试任务的测试结果,生成所述多个测试任务的综合测试报告;响应于所述综合测试报告不满足要求,向供应商发送所述综合测试报告;所述供应商用于基于所述综合测试报告,对所述第一版本的域控制器程序进行改进,得到第二版本的域控制器程序;接收所述第二版本的域控制器程序。
在另一种可能的实现方式中,所述加载模块,用于确定待植入所述域控制器程序的目标车辆的车型;在所述仿真测试平台中创建与所述目标车辆的车型对应的虚拟运行环境;在所述虚拟运行环境中加载所述域控制器程序。
在另一种可能的实现方式中,所述第一执行模块,用于将所述多个测试任务添加至任务队列中;确定当前可用的处理资源的第一数量;所述处理资源用于执行测试任务;从所述任务队列中选取第一数量个测试任务,将所述第一数量个测试任务分配给第一数量个处理资源;基于所述域控制器程序,通过所述第一数量个处理资源在所述虚拟运行环境中并行执行所述第一数量个测试任务;在任一处理资源执行完其分配到的测试任务时,从所述任务队列中选取下一个测试任务,将所述下一个测试任务分配给所述处理资源,直至执行完所述多个测试任务。
在另一种可能的实现方式中,所述第一执行模块,用于在所述测试任务对应的测试场景下,获取模拟的环境感知信息和所述测试场景的场景信息;基于所述环境感知信息、所述场景信息和所述域控制器程序,通过所述处理资源执行所述测试任务。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一项所述的仿真测试方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一项所述的仿真测试方法。
另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一项所述的仿真测试方法。
本申请实施例提供了一种仿真测试方法,该方法先在仿真测试平台中创建虚拟运行环境,然后在该虚拟运行环境中运行域控制器程序,基于该域控制器程序,在该虚拟运行环境中执行测试任务。可见,该方法无需获取自动驾驶算法的源代码也可以完成对自动驾驶算法的仿真测试,从而满足测试需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1是本申请实施例提供的一种仿真测试方法的实施环境的示意图;
图2是本申请实施例提供的一种仿真测试方法的流程图;
图3是本申请实施例提供的一种仿真测试平台的架构示意图;
图4是本申请实施例提供的一种仿真测试的示意图;
图5是本申请实施例提供的一种仿真测试装置的结构示意图;
图6是本申请实施例提供的一种终端的结构框图;
图7是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为使本申请的技术方案和优点更加清楚,下面对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的自动驾驶算法、域控制器程序、场景信息以及环境感知信息等都是在充分授权的情况下获取的。
图1是本申请实施例提供的一种仿真测试方法的实施环境的示意图,参见图1,该实施环境包括:第一电子设备101和第二电子设备102,第一电子设备101和第二电子设备102之间可以通过无线或有线网络连接。其中,第一电子设备101为车辆生产商对应的电子设备,第二电子设备102为研究和开发自动驾驶算法的供应商对应的电子设备。第一电子设备101可以提供为第一终端1011和第一服务器1012,第一终端1011和第一服务器1012之间通过无线或有线网络连接。第一终端1011上安装仿真测试平台,第一服务器1012为该仿真测试平台运行仿真测试任务对应的服务器。第二电子设备102可以提供为第二终端1021和第二服务器1022,第二终端1021和第二服务器1022之间通过无线或有线网络连接。
在本申请实施例中,供应商可以对自动驾驶算法进行编译,得到域控制器程序,将该域控制器程序存储在第二服务器1022中。第二终端1021从第二服务器1022中获取该域控制器程序,向第一终端1011发送该域控制器程序。第一终端1011通过其上安装的仿真测试平台对该域控制器程序进行仿真测试。在仿真测试过程中,第一终端1011和第一服务器1012之间进行数据传输和交互。
若该域控制器程序通过仿真测试,说明自动驾驶算法研究完成,可以将通过仿真测试的域控制器程序植入到车辆中。
若该域控制器程序未通过仿真测试,则第一终端可以向第二终端1021发送通知消息,用于通知供应商该域控制器程序未通过仿真测试。这种情况下,供应商可以对该域控制器程序进行改进,得到新版本的域控制器程序,通过第二终端1021向第一终端1011发送新版本的域控制器程序,第一终端1011再通过仿真测试平台对新版本的域控制器程序进行仿真测试。如何重复操作,直至域控制器程序通过仿真测试,车辆生产商将通过仿真测试的域控制器程序植入到车辆中。
其中,第一终端1011和第二终端1021为手机、平板电脑、PC(Personal Computer,个人计算机)设备、智能语音交互设备和车载终端等设备中的至少一种,但并不局限于此。第一服务器1012和第二服务器1022是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
图2是本申请实施例提供的一种仿真测试方法的流程图,由第一电子设备执行,参见图2,该方法包括:
步骤201:第一电子设备获取第一版本的域控制器程序。
第一版本的域控制器程序是通过对自动驾驶算法进行编译得到的。
第一电子设备可以获取第二电子设备发送的第一版本的域控制器程序,该过程可以为:供应商对自动驾驶算法进行编译,得到第一版本的域控制器程序,通过第二电子设备向第一电子设备发送第一版本的域控制器程序,第一电子设备接收第一版本的域控制器程序。
目前,车辆可以划分为多个功能域,例如,动力域、底盘域、车身域、座舱域等,不同的功能域对应不同的域控制器。本申请实施例中的域控制器可以为动力域对应的域控制器,也可以为车身域对应的域控制器,对此不作具体限定。
步骤202:第一电子设备在仿真测试平台中创建虚拟运行环境,在该虚拟运行环境中加载域控制器程序。
本步骤中,第一电子设备先确定待植入域控制器程序的目标车辆的车型,然后在仿真测试平台中创建与目标车辆的车型对应的虚拟运行环境,最后在该虚拟运行环境中加载域控制器程序。
该实现方式中,不同的车型对应不同型号的域控制器,而不同型号的域控制器采用不同的域控制器程序。基于此,第一电子设备可以在仿真测试平台中显示参数界面,在该参数界面获取输入的待植入域控制器程序的目标车辆的车型。第一电子设备确定目标车辆的车型后,通过虚拟机技术在仿真测试平台中创建该目标车辆的车型对应的虚拟运行环境。
第一电子设备创建对应的虚拟运行环境后,在该虚拟运行环境中加载域控制器程序。若加载成功,说明该域控制器程序可以在该虚拟运行环境中正常运行,则第一电子设备执行步骤203。若加载失败,说明该域控制器程序无法在该虚拟运行环境中运行,则第一电子设备重新创建虚拟运行环境或者将该域控制器程序返回给第二电子设备,由供应商重新编译。
需要说明的一点是,同一车型对应的虚拟运行环境只需创建一次,若第一版本的域控制器程序不符合要求,后续加载第二版本的域控制器程序时,可以直接在该虚拟运行环境中加载,无需重复创建。
步骤203:第一电子设备在加载成功的情况下,基于测试要求,创建多个测试场景。
本步骤中,第一电子设备可以根据测试要求,确定不同测试场景的场景信息,基于不同测试场景的场景信息,创建多个测试场景。或者,第一电子设备从场景库中直接获取预先创建好的多个测试场景。例如,多个测试场景包括:地下车库泊车场景、露天停车场泊车场景、自适应巡航场景等。
步骤204:第一电子设备生成与多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务。
参见图3,仿真测试平台包括:测试任务生成模块。对于每个测试场景,第一电子设备可以按照测试规范,通过测试任务生成模块生成相应的测试任务,最终得到多个测试任务。其中,一个测试场景对应一个测试任务。
步骤205:第一电子设备基于域控制器程序,在该虚拟运行环境中执行多个测试任务。
本步骤可以通过以下步骤(1)至(5)实现,包括:
(1)第一电子设备将多个测试任务添加至任务队列中。
在一种可能的实现方式中,第一电子设备可以确定每个测试任务的预计完成耗时,按照预计完成耗时的长短,将多个测试任务添加至任务队列中。
例如,第一电子设备按照预计完成耗时由短到长的顺序,将多个测试任务添加至任务队列中,这种情况下,预计完成耗时越短的测试任务,在任务队列中的位置越靠前。再如,第一电子设备按照预计完成耗时由长到短的顺序,将多个测试任务添加至任务队列中,这种情况下,预计完成耗时越长的测试任务,在任务队列中的位置越靠前。
在另一种可能的实现方式中,第一电子设备也可以随机将多个测试任务添加至任务队列中。
(2)第一电子设备确定当前可用的处理资源的第一数量;处理资源用于执行测试任务。
在本申请实施例中,仿真测试平台为云平台,该云平台对应的服务器为云服务器集群,该云服务集群包括多个服务器,一个服务器可以看作是一个处理资源。相应的,第一电子设备确定处于空闲状态的服务器的数量,得到第一数量。
(3)第一电子设备从任务队列中选取第一数量个测试任务,将第一数量个测试任务分配给第一数量个处理资源。
仿真测试平台还包括:测试管理模块,测试管理模块负责管理各个模块协同执行测试任务。第一电子设备可以通过测试管理模块从任务队列中选取位置靠前的第一数量个测试任务,将第一数量个测试任务分配给第一数量个处理资源,一个处理资源对应一个测试任务。
(4)第一电子设备基于域控制器程序,通过第一数量个处理资源在虚拟运行环境中并行执行第一数量个测试任务。
对于每个处理资源,第一电子设备通过该处理资源执行测试任务的过程为:第一电子设备在该测试任务对应的测试场景下,获取模拟的环境感知信息和测试场景的场景信息;基于该环境感知信息、该场景信息和该域控制器程序,通过该处理资源执行该测试任务。
该实现方式中,仿真测试平台还包括:场景模块、传感器感知模块、虚拟机模块和车辆动力学模块,第一电子设备通过场景模块获取场景信息,通过传感器感知模块获取环境感知信息,然后将环境感知信息和场景信息进行融合,发送给虚拟机模块。虚拟机模块根据融合后的信息在虚拟运行环境中运行域控制器程序,生成控制指令,向车辆动力学模块发送该控制指令。车辆动力学模块根据该控制指令,通过处理资源控制模拟车辆的行驶行为,从而使得模拟车辆执行该测试任务。其中,环境感知信息为模拟传感器采集的信息,例如,模拟车辆与其他车辆之间的距离或者模拟车辆与障碍物之间的距离。
在本申请实施例中,第一电子设备根据处理资源的占用情况,通过多个处理资源并行执行多个测试任务,可以缩短仿真测试时间,从而提高仿真测试效率。
(5)第一电子设备在任一处理资源执行完其分配到的测试任务时,从任务队列中选取下一个测试任务,将下一个测试任务分配给处理资源,直至执行完多个测试任务。
在本申请实施例中,当测试任务的数量远远大于第一数量时,第一电子设备也可以根据当前可用的处理资源的第一数量,将多个测试任务平均分配给第一数量个处理资源。这种情况下,每个处理资源需执行多个测试任务。对于每个处理资源,该处理资源可以并发执行其分配到的测试任务。例如,将该处理资源的可执行时间均匀地分成多份,在第一时间段内执行第一测试任务,然后记录第一测试任务的状态,在第二时间段执行第二测试任务,记录第二测试任务的状态,在第三时间段根据第一测试任务的状态,继续执行第一测试任务。
在本申请实施例中,对于每个测试任务,第一电子设备可以获取该测试任务的任务详情;在该测试任务执行完成后,获取该测试任务的测试结果;基于该测试任务的任务详情和测试结果,生成测试报告。
该实现方式中,仿真测试平台还包括:评估模块。第一电子设备可以通过评估模块根据该测试任务的任务详情和测试结果,对该测试任务进行评估,确定该测试结果是否符合要求、对该测试结果的满意度等,生成测试报告。例如,该测试任务为地下车库泊车,第一电子设备根据测试结果,确定模拟车辆是否成功泊车,在泊车过程中是否出现剐蹭、碰撞等,从而生成测试报告。
在本申请实施例中,车辆生产商可以根据每个测试任务的测试报告,清楚了解每个测试任务是否成功以及任务完成度等。
步骤206:响应于多个测试任务的测试结果不满足要求,第一电子设备获取第二版本的域控制器程序。
在多个测试任务执行完成后,第一电子设备可以综合多个测试任务的测试结果,生成综合测试报告。该综合测试报告中包括每个测试任务的测试结果以及对存在问题的测试任务的改进建议。若该综合测试报告满足要求,则车辆生产商可以将第一版本的域控制器程序作为最终版本的域控制器程序植入实车。若该综合测试报告不满足要求,第一电子设备可以向供应商对应的第二电子设备发送综合测试报告。供应商根据第二电子设备接收到的综合测试报告,针对存在问题的测试任务对第一版本的域控制器程序进行改进,得到第二版本的域控制器程序,向第一电子设备发送第二版本的域控制器程序。相应的,第一电子设备接收第二版本的域控制器程序。
步骤207:第一电子设备重复执行在虚拟运行环境中加载域控制器程序的步骤,直至多个测试任务的测试结果满足要求。
第一电子设备在虚拟运行环境中加载第二版本的域控制器程序,然后执行步骤203-205。若第二版本的域控制器程序对应的多个测试任务的测试结果不满足要求,则第一电子设备获取下一个版本的域控制器程序,然后在虚拟运行环境中加载下一个版本的域控制器程序,直至多个测试任务的测试结果满足要求,参见图4。由此可见,步骤201-207将迭代开展,贯穿自动驾驶算法开发全过程,直至算法开发满足验收交付条件。
在本申请实施例中,在供应商或者合作开发模式下,算法源代码尚未完全交付时,通过虚拟机模拟域控制器硬件,无需域控制器硬件就可以在仿真测试平台上开展与HIL仿真同等效果的大规模仿真,解决了车辆生产商在仿真测试平台上开展SIL测试的问题。
并且,仿真测试平台通过虚拟机技术运行域控制器虚拟机,只需域控制器固件就可以开展SIL仿真测试,适合采用与自动驾驶算法供应商合作开发自动驾驶功能的车辆生产商,开展算法验收与算法开发验证工作。
另外,当更换硬件平台时,通过虚拟机开发新的运行组件支持新硬件平台,可以起到仿真测试平台与硬件和算法开发平台解耦,仿真测试平台的虚拟机运行方式和接口保持不变,实现高兼容性以及较低维护和开发成本。
在本申请实施例中,当多个测试任务的测试结果满足要求时,车辆生产商就可以将满足要求的域控制器程序植入车辆中。当车辆在现实世界中行驶出现故障时,第一电子设备可以确定出现故障时的故障场景;生成与该故障场景匹配的故障任务;基于第三版本的域控制器程序,在虚拟运行环境中执行该故障任务;基于该故障任务的执行结果,确定故障原因。其中,该车辆植入有第三版本的域控制器程序,第三版本与多个测试任务的测试结果满足要求时对应的域控制器程序匹配。
第一电子设备在虚拟运行环境中执行故障任务的过程与上述执行测试任务的过程相似,这里不再赘述。第一电子设备可以根据该故障任务的执行结果进行分析,确定故障原因,在该故障任务的测试报告中显示该故障原因,这样车辆生产商就可以根据故障原因对车辆进行修复。
由此可见,在试验场测试或者用户使用场景下,当发生自动驾驶功能故障或事故时,本申请可以使用故障车辆所使用的域控制器程序在仿真测试平台的虚拟运行环境中运行,精准复现问题场景以及在此过程中的实车行为表现,提高问题原因分析和修复速率,满足问题复现和解决过程中对仿真的功能需求。
本申请实施例提供了一种仿真测试方法,该方法先在仿真测试平台中创建虚拟运行环境,然后在该虚拟运行环境中运行域控制器程序,基于该域控制器程序,在该虚拟运行环境中执行测试任务。可见,该方法无需获取自动驾驶算法的源代码也可以完成对自动驾驶算法的仿真测试,从而满足测试需求。
图5是本申请实施例提供的一种仿真测试装置的结构示意图,参见图5,该装置包括:
第一获取模块501,用于获取第一版本的域控制器程序,域控制器程序是通过对自动驾驶算法进行编译得到的;
加载模块502,用于在仿真测试平台中创建虚拟运行环境,在虚拟运行环境中加载域控制器程序;
创建模块503,用于在加载成功的情况下,基于测试要求,创建多个测试场景;
第一生成模块504,用于生成与多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务;
第一执行模块505,用于基于域控制器程序,在虚拟运行环境中执行多个测试任务;
第二获取模块506,用于响应于多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;第二版本的域控制器程序是对第一版本的域控制器程序进行改进得到的;
加载模块502,还用于重复执行在虚拟运行环境中加载域控制器程序的过程,直至多个测试任务的测试结果满足要求。
在一种可能的实现方式中,该装置还包括:
第一确定模块,用于当车辆在现实世界中行驶出现故障时,确定出现故障时的故障场景;车辆植入有第三版本的域控制器程序,第三版本与多个测试任务的测试结果满足要求时对应的域控制器程序匹配;
第二生成模块,用于生成与故障场景匹配的故障任务;
第二执行模块,用于基于第三版本的域控制器程序,在虚拟运行环境中执行故障任务;
第二确定模块,用于基于故障任务的执行结果,确定故障原因。
在另一种可能的实现方式中,该装置还包括:
第三获取模块,用于对于每个测试任务,获取测试任务的任务详情;
第四获取模块,用于在测试任务执行完成后,获取测试任务的测试结果;
第三生成模块,用于基于测试任务的任务详情和测试结果,生成测试报告。
在另一种可能的实现方式中,第二获取模块506,用于基于多个测试任务的测试结果,生成多个测试任务的综合测试报告;响应于综合测试报告不满足要求,向供应商发送综合测试报告;供应商用于基于综合测试报告,对第一版本的域控制器程序进行改进,得到第二版本的域控制器程序;接收第二版本的域控制器程序。
在另一种可能的实现方式中,加载模块502,用于确定待植入域控制器程序的目标车辆的车型;在仿真测试平台中创建与目标车辆的车型对应的虚拟运行环境;在虚拟运行环境中加载域控制器程序。
在另一种可能的实现方式中,第一执行模块505,用于将多个测试任务添加至任务队列中;确定当前可用的处理资源的第一数量;处理资源用于执行测试任务;从任务队列中选取第一数量个测试任务,将第一数量个测试任务分配给第一数量个处理资源;基于域控制器程序,通过第一数量个处理资源在虚拟运行环境中并行执行第一数量个测试任务;在任一处理资源执行完其分配到的测试任务时,从任务队列中选取下一个测试任务,将下一个测试任务分配给处理资源,直至执行完多个测试任务。
在另一种可能的实现方式中,第一执行模块505,用于在测试任务对应的测试场景下,获取模拟的环境感知信息和测试场景的场景信息;基于环境感知信息、场景信息和域控制器程序,通过处理资源执行测试任务。
本申请实施例提供了一种仿真测试装置,该装置先在仿真测试平台中创建虚拟运行环境,然后在该虚拟运行环境中运行域控制器程序,基于该域控制器程序,在该虚拟运行环境中执行测试任务。可见,该装置无需获取自动驾驶算法的源代码也可以完成对自动驾驶算法的仿真测试,从而满足测试需求。
参考图6,图6示出了本申请一个示例性实施例提供的终端600的结构框图。该终端600可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器601所执行以实现本申请中方法实施例提供的仿真测试方法中终端所执行的操作。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头组件606、音频电路607和电源608中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置在终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在另一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
电源608用于为终端600中的各个组件进行供电。电源608可以是交流电、直流电、一次性电池或可充电电池。当电源608包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器609。该一个或多个传感器609包括但不限于:加速度传感器610、陀螺仪传感器611、压力传感器612、光学传感器613以及接近传感器614。
加速度传感器610可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器610可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以基于加速度传感器610采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器610还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器611可以检测终端600的机体方向及转动角度,陀螺仪传感器611可以与加速度传感器610协同采集用户对终端600的3D动作。处理器601基于陀螺仪传感器611采集的数据,可以实现如下功能:动作感应(比如基于用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器612可以设置在终端600的侧边框和/或显示屏605的下层。当压力传感器612设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601基于压力传感器612采集的握持信号进行左右手识别或快捷操作。当压力传感器612设置在显示屏605的下层时,由处理器601基于用户对显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器613用于采集环境光强度。在一个实施例中,处理器601可以基于光学传感器613采集的环境光强度,控制显示屏605的显示亮度。具体地,当环境光强度较高时,调高显示屏605的显示亮度;当环境光强度较低时,调低显示屏605的显示亮度。在另一个实施例中,处理器601还可以基于光学传感器613采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器614,也称距离传感器,通常设置在终端600的前面板。接近传感器614用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器614检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制显示屏605从亮屏状态切换为息屏状态;当接近传感器614检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
服务器的结构框图可以参见图7,该服务器700可因配置或性能不同而产生比较大的差异,可以包括处理器(Central Processing Units,CPU)701和存储器702,其中,该存储器702中存储有至少一条程序代码,该至少一条程序代码由该处理器701加载并执行以实现上述仿真测试方法中服务器所执行的操作。当然,该服务器700还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器700还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的仿真测试方法。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的仿真测试方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是为了便于本领域的技术人员理解本申请的技术方案,并不用以限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种仿真测试方法,其特征在于,所述方法包括:
获取第一版本的域控制器程序,所述域控制器程序是通过对自动驾驶算法进行编译得到的;
在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序;
在加载成功的情况下,基于测试要求,创建多个测试场景;
生成与所述多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务;
基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务;
响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;所述第二版本的域控制器程序是对所述第一版本的域控制器程序进行改进得到的;
重复执行在所述虚拟运行环境中加载所述域控制器程序的步骤,直至所述多个测试任务的测试结果满足要求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当车辆在现实世界中行驶出现故障时,确定出现故障时的故障场景;所述车辆植入有第三版本的域控制器程序,所述第三版本与所述多个测试任务的测试结果满足要求时对应的域控制器程序匹配;
生成与所述故障场景匹配的故障任务;
基于所述第三版本的域控制器程序,在所述虚拟运行环境中执行所述故障任务;
基于所述故障任务的执行结果,确定故障原因。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于每个测试任务,获取所述测试任务的任务详情;
在所述测试任务执行完成后,获取所述测试任务的测试结果;
基于所述测试任务的任务详情和测试结果,生成测试报告。
4.根据权利要求1所述的方法,其特征在于,所述响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序,包括:
基于所述多个测试任务的测试结果,生成所述多个测试任务的综合测试报告;
响应于所述综合测试报告不满足要求,向供应商发送所述综合测试报告;所述供应商用于基于所述综合测试报告,对所述第一版本的域控制器程序进行改进,得到第二版本的域控制器程序;
接收所述第二版本的域控制器程序。
5.根据权利要求1所述的方法,其特征在于,所述在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序,包括:
确定待植入所述域控制器程序的目标车辆的车型;
在所述仿真测试平台中创建与所述目标车辆的车型对应的虚拟运行环境;
在所述虚拟运行环境中加载所述域控制器程序。
6.根据权利要求1所述的方法,其特征在于,所述基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务,包括:
将所述多个测试任务添加至任务队列中;
确定当前可用的处理资源的第一数量;所述处理资源用于执行测试任务;
从所述任务队列中选取第一数量个测试任务,将所述第一数量个测试任务分配给第一数量个处理资源;
基于所述域控制器程序,通过所述第一数量个处理资源在所述虚拟运行环境中并行执行所述第一数量个测试任务;
在任一处理资源执行完其分配到的测试任务时,从所述任务队列中选取下一个测试任务,将所述下一个测试任务分配给所述处理资源,直至执行完所述多个测试任务。
7.根据权利要求6所述的方法,其特征在于,通过处理资源执行测试任务的过程,包括:
在所述测试任务对应的测试场景下,获取模拟的环境感知信息和所述测试场景的场景信息;
基于所述环境感知信息、所述场景信息和所述域控制器程序,通过所述处理资源执行所述测试任务。
8.一种仿真测试装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一版本的域控制器程序,所述域控制器程序是通过对自动驾驶算法进行编译得到的;
加载模块,用于在仿真测试平台中创建虚拟运行环境,在所述虚拟运行环境中加载所述域控制器程序;
创建模块,用于在加载成功的情况下,基于测试要求,创建多个测试场景;
第一生成模块,用于生成与所述多个测试场景中各个测试场景匹配的测试任务,得到多个测试任务;
第一执行模块,用于基于所述域控制器程序,在所述虚拟运行环境中执行所述多个测试任务;
第二获取模块,用于响应于所述多个测试任务的测试结果不满足要求,获取第二版本的域控制器程序;所述第二版本的域控制器程序是对所述第一版本的域控制器程序进行改进得到的;
所述加载模块,还用于重复执行在所述虚拟运行环境中加载所述域控制器程序的过程,直至所述多个测试任务的测试结果满足要求。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至7任一项所述的仿真测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至7任一项所述的仿真测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310101745.6A CN116009519A (zh) | 2023-01-19 | 2023-01-19 | 仿真测试方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310101745.6A CN116009519A (zh) | 2023-01-19 | 2023-01-19 | 仿真测试方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116009519A true CN116009519A (zh) | 2023-04-25 |
Family
ID=86019330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310101745.6A Pending CN116009519A (zh) | 2023-01-19 | 2023-01-19 | 仿真测试方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116009519A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302364A (zh) * | 2023-05-17 | 2023-06-23 | 清华大学 | 自动驾驶可靠性测试方法、装置、设备、介质和程序产品 |
CN117970906A (zh) * | 2024-03-28 | 2024-05-03 | 深圳市卓驭科技有限公司 | 自动驾驶系统测试方法、系统、计算机设备、存储介质及程序产品 |
-
2023
- 2023-01-19 CN CN202310101745.6A patent/CN116009519A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302364A (zh) * | 2023-05-17 | 2023-06-23 | 清华大学 | 自动驾驶可靠性测试方法、装置、设备、介质和程序产品 |
CN116302364B (zh) * | 2023-05-17 | 2023-08-15 | 清华大学 | 自动驾驶可靠性测试方法、装置、设备、介质和程序产品 |
CN117970906A (zh) * | 2024-03-28 | 2024-05-03 | 深圳市卓驭科技有限公司 | 自动驾驶系统测试方法、系统、计算机设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582579B (zh) | 应用程序测试方法、装置、电子设备及存储介质 | |
CN116009519A (zh) | 仿真测试方法、装置、设备和存储介质 | |
CN111340482B (zh) | 冲突检测方法、装置、节点设备及存储介质 | |
CN113204298B (zh) | 显示发布进度的方法、装置、电子设备及存储介质 | |
CN113867848A (zh) | 图形接口的调用方法、装置、设备及可读存储介质 | |
CN112667290B (zh) | 指令管理方法、装置、设备及计算机可读存储介质 | |
CN113766043B (zh) | 配置目标容器的方法、装置、计算机设备及存储介质 | |
CN112148499A (zh) | 数据上报方法、装置、计算机设备及介质 | |
CN109977570A (zh) | 车身噪声确定方法、装置及存储介质 | |
CN114594751B (zh) | 车辆功能的测试方法、装置、设备及计算机可读存储介质 | |
CN110569064A (zh) | 接口标识生成方法、装置、设备及存储介质 | |
CN112783533A (zh) | 版本信息更新方法、装置、终端及存储介质 | |
CN112596810A (zh) | 加载提示信息显示方法、装置、电子设备及存储介质 | |
CN113433862B (zh) | 新能源汽车能量管理系统的仿真方法、装置及存储介质 | |
CN113361035B (zh) | 四轮转向系统的模拟仿真方法、装置及计算机存储介质 | |
CN113722827B (zh) | Cad数据的创建方法、装置及计算机存储介质 | |
CN116067669A (zh) | 制动模拟系统、方法、设备及存储介质 | |
CN113051164A (zh) | 车载程序的测试方法、装置、设备及计算机可读存储介质 | |
CN116366514A (zh) | 硬件在环测试系统、方法、设备及存储介质 | |
CN117390946A (zh) | 强化学习的策略迁移方法、设备和存储介质 | |
CN116431257A (zh) | 页面跳转方法、装置、计算机设备及存储介质 | |
CN116126699A (zh) | 压力测试方法、装置、设备、存储介质及产品 | |
CN116659901A (zh) | 自适应巡航功能的测试方法、装置及存储介质 | |
CN115758364A (zh) | 安全检测方法、装置、设备及介质 | |
CN114168120A (zh) | 数据获取方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |