CN115016318A - 自动驾驶仿真测试场景描述语言的融合方法及*** - Google Patents
自动驾驶仿真测试场景描述语言的融合方法及*** Download PDFInfo
- Publication number
- CN115016318A CN115016318A CN202210611699.XA CN202210611699A CN115016318A CN 115016318 A CN115016318 A CN 115016318A CN 202210611699 A CN202210611699 A CN 202210611699A CN 115016318 A CN115016318 A CN 115016318A
- Authority
- CN
- China
- Prior art keywords
- scene
- information
- execution engine
- simulator
- description language
- 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请适用于自动驾驶仿真测试技术领域,提供了一种自动驾驶仿真测试场景描述语言的融合方法及***,该方法应用于仿真测试***,仿真测试***包括目标场景描述语言解析器、对象拆分模块、第一执行引擎、第二执行引擎和模拟器,该方法包括:目标场景描述语言解析器将输入的场景脚本解析为场景信息并发送至对象拆分模块;对象拆分模块将场景信息拆分为车辆信息和环境信息,并将车辆信息转换为第一执行引擎对应的格式并发送至第一执行引擎,将环境信息发送至第二执行引擎;第二执行引擎根据环境信息控制模拟器进行场景渲染;第一执行引擎根据车辆信息和模拟器中渲染的场景对自动驾驶***进行仿真测试。可以实现目标场景描述语言与仿真测试的融合。
Description
技术领域
本申请属于自动驾驶仿真测试技术领域,尤其涉及一种自动驾驶仿真测试场景描述语言的融合方法及***。
背景技术
随着科学技术的不断发展,基于先进的通信、计算机、网络和控制技术的自动驾驶***的研发日益白热化。为了保证自动驾驶***在实际应用中的安全,在研发过程中需要对自动驾驶***进行大量的测试。基于实际场景的测试存在成本高昂、人员生命财产风险较大、实景测试场景丰富度有限等技术问题。而软件仿真测试可以有效弥补实际场景测试的不足,因此逐渐被广泛应用于自动驾驶***的测试中。其中,软件仿真测试指的是利用软件对应用场景进行模拟生成仿真场景,在仿真场景中实现测试。
为了实现各种复杂场景的描述,越来越多的场景描述语言被开发出来,但是很多优秀的场景描述语言由于兼容性的问题很难直接在现有的仿真测试平台中融合使用。
因此,如何实现强封闭性场景描述语言工具链中的场景描述语言与现有的仿真测试平台的融合成为亟待解决的技术问题。
发明内容
本申请实施例提供了一种自动驾驶仿真测试场景描述语言的融合方法、自动驾驶仿真测试***、终端设备及可读存储介质,解决了强封闭性的场景描述语言工具链中的场景描述语言无法直接融合到现有的仿真测试平台的技术问题。
第一方面,本申请实施例提供了一种自动驾驶仿真测试场景描述语言的融合方法,应用于仿真测试***,所述仿真测试***包括目标场景描述语言解析、对象拆分模块、第一执行引擎、第二执行引擎和模拟器,所述方法包括:
所述目标场景描述语言解析器将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至所述对象拆分模块;
所述对象拆分模块将所述场景信息拆分为车辆信息和环境信息,其中所述车辆信息用于所述自动驾驶***控制所述模拟器中的目标车辆模型进行仿真驾驶;
所述对象拆分模块将所述车辆信息转换为所述第一执行引擎对应的格式并发送至所述第一执行引擎,以及将所述环境信息发送至所述第二执行引擎;
所述第二执行引擎根据所述环境信息控制所述模拟器进行场景渲染;
所述第一执行引擎根据所述车辆信息和所述模拟器中渲染的场景对所述自动驾驶***进行仿真测试。
上述实施例中,通过对象拆分模块对场景信息进行拆分,得到车辆信息和环境信息;第二执行引擎为目标场景描述语言工具链中配套的执行引擎,用于根据环境信息控制模拟器进行场景渲染,而第一执行引擎用于根据车辆信息和所述模拟器中渲染的场景对自动驾驶***进行仿真测试。如果按照常规方法,想要将目标场景描述语言应用到自动驾驶***的仿真测试中,需要针对性的进行执行引擎的研发,而执行引擎的研发成本是非常巨大的,并且由于目标场景描述语言工具链自带执行引擎,如果重新研发的话其实属于做了很多重复性的工作。本申请实施中,巧妙的同时设置了第一执行引擎和第二执行引擎,其中第一执行引擎基本沿用现有的仿真测试***执行引擎中除了场景渲染以外的所有的总体控制功能,而第二执行引擎沿用了目标场景描述语言工具链中的执行引擎除了目标车辆控制以外的所有功能,从而实现了对研发成本的控制。该方法通过对场景信息进行拆分,并利用两个执行引擎分别实现场景渲染和自动驾驶***的仿真测试控制,在较低的研发成本的基础上实现了将目标场景描述语言融合应用到仿真测试***目的,该方法充分利用了目标场景描述语言的语言描述能力,同时使得自动驾驶***可以对目标车辆进行控制,进而实现对自动驾驶***的仿真测试。
在第一方面的一种可能的实现方式中,所述车辆信息包括目标车辆模型起始点坐标、目标车辆模型终点坐标、目标车辆启动指令和目标车辆模型停止指令。
在第一方面的一种可能的实现方式中,所述方法还包括:
所述第一执行引擎在检测到预设的测试结束条件时,控制所述自动驾驶***、所述第二执行引擎和所述模拟器停止运行,并将所述模拟器恢复到初始状态。
在第一方面的一种可能的实现方式中,所述测试结束指令包括所述目标车辆模型完成测试、所述目标车辆模型发生预设事故、或者检测到停止测试指令。
在第一方面的一种可能的实现方式中,所述对象拆分模块将所述场景信息拆分车辆信息和环境信息,包括:
所述对象拆分模块从所述场景信息中,提取所述车辆信息;
所述对象拆分模块将所述场景信息中的所述车辆信息删除,获得所述环境信息。
第二方面,本申请实施例提供了一种自动驾驶仿真测试***,包括目标场景描述语言解析器、对象拆分模块、第一执行引擎、第二执行引擎和模拟器,其中:
所述目标场景描述语言解析器用于将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至所述对象拆分模块;
所述对象拆分模块用于将所述场景信息拆分为车辆信息和环境信息,其中所述车辆信息用于所述自动驾驶***控制所述模拟器中的目标车辆模型进行仿真驾驶;
所述对象拆分模块用于将所述车辆信息转换为所述第一执行引擎对应的格式并发送至所述第一执行引擎,以及将所述环境信息发送至所述第二执行引擎;
所述第二执行引擎用于根据所述环境信息控制所述模拟器进行场景渲染;
所述第一执行引擎用于根据所述车辆信息和所述模拟器中渲染的场景对所述自动驾驶***进行仿真测试。
在第二方面的一种可能的实现方式中,所述第一执行引擎在检测到预设的测试结束条件时,还用于控制所述自动驾驶***、所述第二执行引擎和所述模拟器停止运行,并将所述模拟器恢复到初始状态。
在第二方面的一种可能的实现方式中,所述对象拆分模块用于将所述场景信息拆分为车辆信息和环境信息,包括:
所述对象拆分模块从所述场景信息中,提取所述车辆信息;
所述对象拆分模块将所述场景信息中的所述车辆信息删除,获得所述环境信息。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如以上第一方面中任一实施方式中所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上第一方面中任一实施方式中所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的自动驾驶仿真测试***的结构示意图;
图2是本申请一实施例提供的自动驾驶仿真测试场景描述语言的融合方法的交互图;
图3是本申请一实施例提供的仿真测试过程的交互图;
图4是本申请一实施例提供的自动驾驶仿真测试场景描述语言的融合装置的结构框图;
图5是本申请一实施例提供的终端设备的内部结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了便于理解,首先对本申请实施例中涉及的名词进行解释:
场景:在自动驾驶***的仿真测试中,“场景”指某一次测试中所需要仿真的具体情境;仿真测试的场景一般包含了静态部分和动态部分,静态部分包括地图、道路、天气、时间、红绿灯、障碍物等,动态部分包括移动的行人、车辆等。
EGO车辆(ego vehicle):在自动驾驶***的仿真测试中,仿真环境里由自动驾驶***控制的车辆(即需要测试的车辆)。
NPC(non-player character)车辆:在自动驾驶***的仿真测试中,仿真环境里作为EGO车辆的交通环境的其他车辆。
场景描述语言:是一种支持概率行为的场景描述语言,拥有较强的场景描述能力,能描述很多复杂的交通场景。
工具链:包括场景描述语言解析器和场景描述语言执行引擎,主要用于帮助自动驾驶仿真测试平台更好的实现仿真测试。
目前,自动驾驶***的软件仿真测试***包括仿真测试平台和自动驾驶模拟器,其中,仿真测试平台包括脚本解析器和平台执行引擎。场景描述语言遵循一定语法规则,基于变量编写出场景脚本,从而是实现对仿真测试场景的描述。在测试中,解析器用于对输入的场景脚本进行解析并将解析数据发送至平台执行引擎;平台执行引擎用于根据解析数据控制模拟器进行驾驶环境的渲染仿真,并且基于渲染出的驾驶场景对自动驾驶***进行仿真驾驶。在软件仿真测试***中平台执行引擎起到统筹控制的作用,除了上述作用外还用于控制仿真测试的开始和结束,对测试过程中模拟器中产生的数据进行记录,测试结束后对模拟器中产生的数据进行分析获得测试结果,以及在模拟器和网页前端之间进行图像数据的传递等。
为了实现各种复杂场景的描述,越来越多的场景描述语言被开发出来,例如Scenic场景描述语言、M-SDL场景描述语言和GeoScenario场景描述语言等。然后这些场景描述语言的研发者会提供基于场景描述语言的场景描述语言工具链,工具链包括场景描述语言对应的解码器和执行引擎,其解析器和执行引擎与自动驾驶***仿真测试平台并不兼容。
下面以Scenic场景描述语言为例对现有技术中存在的技术问题进行示例性的说明,Scenic是由UC Berkeley提出的一种新的概率规划语言,拥有很强的场景描述功能和简单易学等优势,但Scenic以Scenic工具链的形式出现,而Scenic工具链具备较强的封闭性;具体来说,Scenic工具链包括Scenic自带的解码器和执行引擎,在使用Scenic工具链时,Scenic自带的执行引擎直接连接模拟器并对模拟器中的所有要素进行控制,从而导致无法直接与现有的仿真测试平台融合。
Scenic场景描述语言:是一种支持概率行为的场景描述语言,拥有较强的场景描述能力,能描述很多复杂的交通场景。
Scenic工具链:包括Scenic解析器和Scenic执行引擎,Scenic工具链是与Scenic场景描述语言相配套的解析器和执行引擎的总称。
目前流行的自动驾驶***仿真测试平台如Prescan和VTD等,大多能够使用OpenScenario这一繁琐的场景描述语言进行场景脚本的配置,而对于语法简洁、描述能力强的Scenic场景描述语言,目前并没有仿真测试平台进行兼容性支持。
如果想要将Scenic场景描述语言应用到现有仿真测试平台中,当前常规的研发思路是将Scenic场景描述语言作为一般的场景描述语言来使用,分别研发出与仿真测试平台和Scenic场景描述语言均能适配的解析器,以及与仿真测试平台、自动驾驶***和模拟器均能适配的执行引擎。而针对解析器和执行引擎进行研发存在较大的弊端,首先针对解析器和执行引擎的研发(尤其是执行引擎的研发)需要极大的工作量;再者由于Scenic场景描述语言实际上已经存在配套的Scenic解析器和Scenic执行引擎,上述研发实际上属于重复研究,浪费研发资源。
为了将解决上述问题,本申请实施例提供一种自动驾驶仿真测试场景描述语言的融合方法,该方法应用于仿真测试***,仿真测试***中设计对象拆分模块、第一执行引擎和第二执行引擎,在所述方法中对象拆分模块负责将EGO车辆信息与其他信息拆分开,第一执行引擎用于对仿真测试***进行总体控制,包括根据EGO车辆信息控制自动驾驶***;而第二执行引擎采用目标场景描述语言工具链中的执行引擎,用于根据其他信息控制模拟器中的要素生成驾驶场景。利用第一执行引擎实现仿真测试***的总体控制,利用第二执行引擎控制模拟器进行场景渲染,从而实现EGO车辆和模拟器场景渲染的分别控制。通过上述方法可以非常简单和直接地将目标场景描述语言工具链与仿真测试平台进行融合。
下面结合具体实施例,对本申请提供的自动驾驶***的仿真测试方法进行示例性的说明。
参见图1,为本申请提供的一种自动驾驶仿真测试***。如图1所示,该自动驾驶仿真测试***包括仿真测试平台和模拟器,其中仿真测试平台包括目标场景描述语言解析器、对象拆分模块、第一执行引擎和第二执行引擎。该***用于对自动驾驶***进行仿真测试,自动驾驶***的仿真测试具体来说是测试自动驾驶***在特定场景下的行驶性能。
实施例中,场景脚本采用目标场景描述语言编写得到,目标场景描述语言解析器对场景脚本进行解析。自动驾驶仿真测试***中设置了对象拆分模块和两个执行引擎,对象拆分模块用于将目标场景描述语言解析器所解析出的信息拆分为EGO车辆信息和环境信息。实施例中对现有自动驾驶仿真测试平台中的平台执行引擎的功能进行拆分,即通过设置的第一执行引擎和第二执行引擎来完成现有仿真测试平台中的平台执行引擎的功能。其中第一执行引擎实现现有平台执行引擎统筹控制的功能,采用目标场景描述语言工具链中的第二执行引擎来实现现有平台执行引擎控制模拟器场景渲染的功能。
实施例中,第一执行引擎沿袭了平台执行引擎的大部分功能,而第二执行引擎沿袭了目标场景描述语言工具链中的执行引擎的大部分功能。通过简单的方法将两个成熟的执行引擎功能在该仿真测试***中进行了融合。通过这样的设置,一方面可以采用目标场景描述语言编写脚本,从而充分利用了目标场景描述语言丰富的场景描述能力,提高了仿真测试***对复杂场景的适应性;另一方面无需对现有的平台执行引擎和目标场景描述语言工具链中的执行引擎做过多的改变,可以大大降低研发成本。
如图1所示,本实施例中仿真测试***中的目标场景描述语言解析器、对象拆分模块、第一执行引擎和第二执行引擎运行在同一个服务器上。该服务器上的各功能模块通过Websocket协议进行通信,仿真测试***通过Websocket协议对各功能模块进行命令调用。
实施例中,由于自动驾驶***和模拟器的运行需要较大的运算量,占用计算资源较多,为了保证整个***运行的平稳,采用两个服务器分别运行自动驾驶***和模拟器。
在一个实施例中,其中目标场景描述语言为Scenic场景描述语言,工具链为Scenic工具链,场景脚本为Scenic场景脚本,Scenic工具链包括Scenic解析器和Scenic执行引擎。
下面结合具体实施例对本申请提供的一种自动驾驶仿真测试场景描述语言的融合方法进行示例性的说明。所述方法应用于图1所示的自动驾驶仿真测试***上。
图2示出了本申请一实施例中提供的自动驾驶仿真测试场景描述语言的融合方法的交互图。作为示例而非限定,所述自动驾驶***仿真测试场景描述语言的融合方法包括以下步骤:
步骤S201、目标场景描述语言解析器将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至对象拆分模块。
实施例中,场景脚本主要描述进行测试所需要的交通情况,包含了静态的交通要素(比如道路、建筑、障碍物等)和动态的交通情景(比如行走的人、驾驶的车等)。
实施例中,场景脚本是采用目标场景描述语言编写得到的。例如,目标场景描述语言可以为Scenic场景描述语言,此时场景脚本采用Scenic场景描述语言编写得到。
可选的,在场景脚本的编写过程中,为了实现场景脚本与仿真场景的对应,可以参照需要的仿真场景选择合适的模拟器(即模拟器中包括仿真场景所需要的所有模型)。当然,在一些情况下(例如找不到合适的模拟器的情况),也可以根据模拟器的实际情况适当调整仿真场景,从而实现场景脚本与仿真场景的对应。
其中,场景脚本可以作为文件输入到仿真测试***中。目标场景描述语言解析器对场景脚本的解析主要是将场景脚本的内容整理成目标场景描述语言工具链携带的第二执行引擎能够识别和使用的格式。例如,Scenic解析器将场景脚本转换成Scenic执行引擎能够识别和使用的数据结构,从而方便Scenic执行引擎对变量的读取和使用。
步骤S202、对象拆分模块将场景信息拆分为车辆信息和环境信息;其中,车辆信息用于自动驾驶***控制模拟器中的目标车辆模型进行仿真驾驶。
实施例中,目标车辆模型即为EGO车辆,车辆信息指的是目标场景描述语言解析器所解析出的场景信息中与EGO车辆相关的信息,例如可以包括EGO车辆的标签、EGO车辆在模拟器中的起始点坐标和终点坐标、EGO车辆启动指令和EGO车辆停止指令等。
实施例中,环境信息包括场景信息中除了车辆信息以外的所有信息。环境信息一般包括EGO车辆以外的其他交通要素的定义及配置参数,例如可以包括一个路灯以及其位置坐标、一个行人出现的坐标位置和时间、NPC车辆的相关信息等。
示例性的,对象拆分模块对场景信息的拆分过程可以为:对象拆分模块首先从场景信息中提取与EGO车辆相关的信息,从而得到车辆信息;然后再将场景信息中的车辆信息删除,得到环境信息。
可选的,对象拆分模块对场景信息的拆分过程还可以为:对象拆分模块从场景信息中剪切出与EGO车辆相关的信息从而得到车辆信息,那么场景信息剩下的信息即为环境信息。
步骤S203、对象拆分模块将车辆信息转换为第一执行引擎对应的格式发送至第一执行引擎,并将环境信息发送至第二执行引擎。
实施例中,场景信息是由目标场景描述语言解析器解析得到的,因此场景信息可以被第二执行引擎识别和使用。对象拆分模块拆分出的环境信息的格式没有发生变化,第二执行引擎能够直接识别和使用,因此对象拆分模块无需对环境信息做任何修改直接将其发送至第二执行引擎。
实施例中,对象拆分模块拆分出的车辆信息的格式与场景信息的格式相同,第一执行引擎无法识别和使用,因此对象拆分模块需要将车辆信息转换为自动驾驶***能够识别的格式之后,再发送至第一执行引擎。
示例性的,对象拆分模块对车辆信息格式转换,可以包括将车辆信息中目标车辆模型的标签改变为自动驾驶***中EGO车辆的标签,将车辆信息中的指令信息和坐标信息的转换成自动驾驶***所要求的数据格式等。
步骤S204、第二执行引擎根据环境信息控制模拟器进行场景渲染。
实施例中,环境信息是EGO车辆以外的其他交通要素的信息。场景渲染指的是在模拟器中模拟出EGO车辆的行驶环境,例如行驶环境可以包括EGO车辆行驶途中的其他交通要素的运行状态,例如交通指示灯的变化、路上行人的行动、其他NPC车辆的运动情况、天气情况等。
实施例中,模拟器可以根据需要进行选用,例如LGSVL模拟器、Carla模拟器等,在此不做具体限定。
步骤S205、第一执行引擎根据车辆信息和模拟器中渲染的场景对自动驾驶***进行仿真测试。
实施例中,仿真测试用于验证自动驾驶***在模拟器渲染出的场景下的驾驶性能。驾驶性能主要指的是自动驾驶***对渲染场景中设计的突发场景的应对能力,例如可以通过对自动驾驶***在渲染场景下是否能够控制目标车辆模型安全到达终点、目标车辆模型在行驶过程中是否违反渲染场景所设定的行驶规则等指标来进行判断。
为了便于理解,下面对本申请实施例中的仿真测试的过程进行说明,图3为本申请一实施例中的仿真测试过程的交互图,如图3所示,仿真测试过程主要包括:
S301、第二执行引擎根据环境信息控制模拟器进行场景渲染。
S302、第一执行引擎将车辆信息发送至自动驾驶***,车辆信息包括起始点坐标、终点坐标和车辆启动指令。
S303、自动驾驶***根据车辆信息中的起始点坐标和终点坐标制定初始行驶路线,并控制模拟器中的EGO车辆从起始点坐标按照初始行驶路线开始行驶。
S304、模拟器向自动驾驶***反馈当前时刻的环境运行状态信息;环境运行状态信息包括渲染场景中的各个要素的运行状态。例如其他车辆的运行速度、运行方向,交通指示灯状态等。
S305、自动驾驶***根据当前时刻的环境运行状态信息、EGO车辆行驶状态信息,利用自动驾驶算法生成下一时刻的EGO车辆驾驶策略,并根据EGO车辆驾驶策略控制EGO车辆在渲染场景中继续行驶。
实施例中,自动驾驶***按照自身内部的算法来控制EGO车辆的行驶,其中控制EGO车辆的行驶可以包括规划EGO车辆的行驶路线以及根据行驶过程中的场景情况作出行驶决策等。
实施例中,EGO车辆行驶状态信息包括EGO车辆的当前坐标、行驶速度、行驶方向等。自动驾驶***在生成EGO车辆驾驶策略时,参考的环境运行状态信息主要包括EGO车辆当前所处位置附近的各个要素的状态信息。
示例性的,如果EGO车辆当前位置为十字路口,自动驾驶***生成的行驶策略需要关注该十字路口附近的要素状态信息,包括交通指示灯状态、斑马线是否有行人、可能影响EGO车辆通行的其他NPC车辆的当前速度等;自动驾驶***对上述信息的判断来决定EGO车辆通过该十字路口的等待时间、速度、行驶方向等。
S306、模拟器实时向第一执行引擎反馈测试过程中产生的数据,其中测试过程中产生的数据可以包括环境运行状态信息和EGO车辆行驶状态信息等。
S307、第一执行引擎对模拟器反馈的数据进行记录。
S308、第一执行引擎在检测到测试结束条件时,向自动驾驶***、第二执行引擎和模拟器发送停止运行指令。
S309、第一执行引擎对记录的模拟器反馈的数据进行分析,获得测试结果。
实施例中,测试结果包括自动驾驶***控制的EGO车辆是否到达终点、是否有违规记录,是否发生碰撞等。
可选的,为了使得模拟器和自动驾驶***的启动时间尽量接近,本申请实施例将第一执行引擎启动目标车辆模型的时间与模拟器开始进行渲染的时间进行关联,即第一执行引擎在检测到模拟器中开始进行场景渲染时,将车辆信息(包括EGO车辆起始点坐标、EGO车辆终点坐标和EGO车辆启动指令)发送至自动驾驶***,自动驾驶***启动EGO车辆,并根据起始点坐标和终点坐标规划出初始行驶策略,根据初始策略控制EGO车辆在模拟器渲染出的场景中从起始点坐标开始行驶。
在一个实施例中,仿真测试的停止是由第一执行引擎来控制的,具体来说仿真测试停止的具体过程包括:第一执行引擎在检测到预设的测试结束条件时,控制自动驾驶***、第二执行引擎和模拟器停止运行,并将模拟器恢复到初始状态。可选的,第一执行引擎可以同时发送测试结束指令和第二执行引擎和模拟器的停止指令。
实施例中,第二执行引擎(例如Scenic执行引擎)在测试运行结束后不会自动停止,会一直占用***资源;而模拟器在第二执行引擎停止运行后,虽然不再受到第二执行引擎控制,但是模拟器中的渲染要素还处在最终场景状态之下,依然会消耗服务器资源;因此需要及时控制第二执行引擎和模拟器停止运行。通过第一执行引擎来控制自动驾驶***、第二执行引擎和模拟器停止运行,保证了仿真测试平台对仿真测试的控制权,并且避免了服务器资源的占用和消耗。
实施例中,仿真测试***在进行下一个仿真测试时需要一个初始化的模拟器,在模拟器停止运行之后利用第一执行引擎将模拟器恢复到初始状态,避免模拟器参数非初始化对下一个仿真测试产生不利影响。
示例性的,测试结束条件可以是由第一执行引擎对EGO车辆在模拟器中的行驶状态进行监控获得的,例如当第一执行引擎检测到EGO车辆行驶到终点坐标位置时,或者当第一执行引擎检测到EGO车辆发生预设事故时,可以认为检测到测试结束条件。
可选的,预设事故可以根据实际情况进行设置,例如可以为EGO车辆发生碰撞、EGO车辆50%以上的车身离开车道线、EGO车辆加速度大于9m/s2、EGO车辆闯黄灯/红灯或EGO车辆在预设时间内没有到达终点坐标等。
可选的,测试结束条件还可以是检测到输入的停止测试指令。其中停止测试指令是测试人员根据需要进行输入的。
实施例中,当仿真测试***达到预设的测试结束条件时可以随时结束仿真测试,避免仿真测试结束条件单一导致的仿真测试***可能存在持续无效运行而而导致的服务器资源的浪费。并且由于测试人员可以根据需要结束测试,使得测试过程更加方便。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的自动驾驶***的仿真测试方法,图4示出了本申请实施例提供的一种自动驾驶仿真测试场景描述语言的融合装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,自动驾驶仿真测试场景描述语言的融合装置400包括解析单元401、拆分单元402、第一执行单元403、第二执行单元404:
解析单元401,用于将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至拆分单元402;
拆分单元402,用于将场景信息拆分为车辆信息和环境信息,其中车辆信息用于自动驾驶***控制模拟器中的目标车辆模型进行仿真驾驶;
拆分单元402,还用于将车辆信息转换为第一执行单元403对应的格式并发送至第一执行单元403,以及将环境信息发送至第二执行单元404;
第二执行单元404,用于根据环境信息控制模拟器进行场景渲染;
第一执行单元403,用于根据车辆信息和模拟器中渲染的场景对自动驾驶***进行仿真测试。
可选的,第一执行单元403在检测到预设的测试结束条件时,还用于控制自动驾驶***、第二执行单元404和模拟器停止运行,并将模拟器恢复到初始状态。
可选的,拆分单元402用于将场景信息拆分为车辆信息和环境信息,包括:
拆分单元402从场景信息中,提取与目标车辆模型相关的信息,获得车辆信息;
拆分单元402将场景信息中的车辆信息删除,获得环境信息。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请一实施例还提供了一设终端设备。如图5所示,该实施例的终端设备500包括:处理器501、存储器502以及存储在存储器502中并可在处理器501上运行的计算机程序504。计算机程序504可被处理器501运行,生成指令503,处理器501可根据指令503实现上述各个自动驾驶***的仿真测试方法实施例中的步骤。或者,处理器501执行计算机程序504时实现上述各装置实施例中各模块/单元的功能。
示例性的,计算机程序504可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序504在终端设备500中的执行过程。
处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以是终端设备500的内部存储单元,例如终端设备500的硬盘或内存。存储器502也可以是终端设备500的外部存储设备,例如终端设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器502还可以既包括终端设备500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及终端设备500所需的其它程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/服务器实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种自动驾驶仿真测试场景描述语言的融合方法,其特征在于,应用于仿真测试***,所述仿真测试***包括目标场景描述语言解析器、对象拆分模块、第一执行引擎、第二执行引擎和模拟器,所述方法包括:
所述目标场景描述语言解析器将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至所述对象拆分模块;
所述对象拆分模块将所述场景信息拆分为车辆信息和环境信息,其中,所述车辆信息用于所述自动驾驶***控制所述模拟器中的目标车辆模型进行仿真驾驶;
所述对象拆分模块将所述车辆信息转换为所述第一执行引擎对应的格式并发送至所述第一执行引擎,以及将所述环境信息发送至所述第二执行引擎;
所述第二执行引擎根据所述环境信息控制所述模拟器进行场景渲染;
所述第一执行引擎根据所述车辆信息和所述模拟器中渲染的场景对所述自动驾驶***进行仿真测试。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一执行引擎在检测到预设的测试结束条件时,控制所述自动驾驶***、所述第二执行引擎和所述模拟器停止运行,并将所述模拟器恢复到初始状态。
3.如权利要求2所述的方法,其特征在于,所述测试结束条件包括所述目标车辆模型完成测试、所述目标车辆模型发生预设事故、或者检测到停止测试指令。
4.如权利要求1至3任一项所述的方法,其特征在于,所述对象拆分模块将所述场景信息拆分为车辆信息和环境信息,包括:
所述对象拆分模块从所述场景信息中,提取所述车辆信息;
所述对象拆分模块将所述场景信息中的所述车辆信息删除,获得所述环境信息。
5.如权利要求1至3任一项所述的方法,其特征在于,所述车辆信息包括目标车辆模型起始点坐标、目标车辆模型终点坐标、目标车辆模型启动指令和目标车辆模型停止指令。
6.一种自动驾驶仿真测试***,其特征在于,包括目标场景描述语言解析器、对象拆分模块、第一执行引擎、第二执行引擎和模拟器,其中:
所述目标场景描述语言解析器用于将输入的基于目标场景描述语言编写的场景脚本解析为场景信息并发送至所述对象拆分模块;
所述对象拆分模块用于将所述场景信息拆分为车辆信息和环境信息,其中所述车辆信息用于所述自动驾驶***控制所述模拟器中的目标车辆模型进行仿真驾驶;
所述对象拆分模块用于将所述车辆信息转换为所述第一执行引擎对应的格式并发送至所述第一执行引擎,以及将所述环境信息发送至所述第二执行引擎;
所述第二执行引擎用于根据所述环境信息控制所述模拟器进行场景渲染;
所述第一执行引擎用于根据所述车辆信息和所述模拟器中渲染的场景对所述自动驾驶***进行仿真测试。
7.如权利要求6所述的***,其特征在于,所述第一执行引擎在检测到预设的测试结束条件时,还用于控制所述自动驾驶***、所述第二执行引擎和所述模拟器停止运行,并将所述模拟器恢复到初始状态。
8.如权利要求6或7所述的***,其特征在于,所述对象拆分模块用于将所述场景信息拆分为车辆信息和环境信息,包括:
所述对象拆分模块从所述场景信息中,提取所述车辆信息;
所述对象拆分模块将所述场景信息中的所述车辆信息删除,获得所述环境信息。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611699.XA CN115016318A (zh) | 2022-05-31 | 2022-05-31 | 自动驾驶仿真测试场景描述语言的融合方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611699.XA CN115016318A (zh) | 2022-05-31 | 2022-05-31 | 自动驾驶仿真测试场景描述语言的融合方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115016318A true CN115016318A (zh) | 2022-09-06 |
Family
ID=83071386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210611699.XA Pending CN115016318A (zh) | 2022-05-31 | 2022-05-31 | 自动驾驶仿真测试场景描述语言的融合方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115016318A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115688496A (zh) * | 2023-01-05 | 2023-02-03 | 西安深信科创信息技术有限公司 | 一种获取自动驾驶仿真测试脚本方法及相关装置 |
CN115981998A (zh) * | 2022-11-23 | 2023-04-18 | 阿尔特(北京)汽车数字科技有限公司 | 车辆的场景演示***及场景演示方法 |
CN116991084A (zh) * | 2023-09-28 | 2023-11-03 | 北京斯年智驾科技有限公司 | 一种无人驾驶模拟仿真***、方法、装置和存储介质 |
-
2022
- 2022-05-31 CN CN202210611699.XA patent/CN115016318A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981998A (zh) * | 2022-11-23 | 2023-04-18 | 阿尔特(北京)汽车数字科技有限公司 | 车辆的场景演示***及场景演示方法 |
CN115981998B (zh) * | 2022-11-23 | 2023-08-22 | 阿尔特(北京)汽车数字科技有限公司 | 车辆的场景演示***及场景演示方法 |
CN115688496A (zh) * | 2023-01-05 | 2023-02-03 | 西安深信科创信息技术有限公司 | 一种获取自动驾驶仿真测试脚本方法及相关装置 |
CN115688496B (zh) * | 2023-01-05 | 2023-04-14 | 西安深信科创信息技术有限公司 | 一种获取自动驾驶仿真测试脚本方法及相关装置 |
CN116991084A (zh) * | 2023-09-28 | 2023-11-03 | 北京斯年智驾科技有限公司 | 一种无人驾驶模拟仿真***、方法、装置和存储介质 |
CN116991084B (zh) * | 2023-09-28 | 2023-12-19 | 北京斯年智驾科技有限公司 | 一种无人驾驶模拟仿真***、方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795818B (zh) | 一种确定虚拟测试场景方法、装置、电子设备和存储介质 | |
CN115016318A (zh) | 自动驾驶仿真测试场景描述语言的融合方法及*** | |
CN110765661A (zh) | 自动驾驶仿真场景生成方法及装置、电子设备、存储介质 | |
CN111123735B (zh) | 自动驾驶仿真运行方法和装置 | |
US20230138650A1 (en) | Test method for automatic driving, and electronic device | |
CN110909460A (zh) | 车联网v2x仿真测试方法、装置、设备和存储介质 | |
US20230415787A1 (en) | Method and apparatus for generating a simulation scene, electronic device and storage medium | |
CN113341935A (zh) | 一种车辆测试方法、装置、测试设备、***及存储介质 | |
CN113343461A (zh) | 自动驾驶车辆的仿真方法、装置、电子设备及存储介质 | |
CN112015164A (zh) | 基于数字孪生的智能网联汽车复杂测试场景实现*** | |
CN113342704B (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN111765904B (zh) | 自动驾驶车辆的测试方法、装置、电子设备和介质 | |
WO2022037085A1 (zh) | 车辆的仿真测试场景的构建方法和装置 | |
CN113093569A (zh) | 自动驾驶的仿真测试方法、装置、设备和存储介质 | |
CN113268244A (zh) | 一种自动驾驶场景库的脚本生成方法、装置及电子设备 | |
CN112799964B (zh) | 测试场景生成方法、装置、设备和存储介质 | |
CN114047742B (zh) | 一种智能领航高级辅助驾驶硬件在环测试***及方法 | |
CN114091223A (zh) | 一种仿真交通流的构建方法及仿真设备 | |
CN115113542A (zh) | 自动驾驶仿真方法、***、电子设备及可读存储介质 | |
CN112799653B (zh) | 测试场景生成源码的编译器和测试场景生成*** | |
CN117151246B (zh) | 智能体决策方法、控制方法、电子设备及存储介质 | |
CN114415542A (zh) | 自动驾驶仿真***、方法、服务器及介质 | |
CN111983934B (zh) | 一种无人车仿真测试用例生成方法及*** | |
CN117131589A (zh) | 智能网联车辆协同算法的仿真测试方法及装置 | |
CN116225921A (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 |