具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
请结合参看图1,其为本发明第一实施例提供的基于事件的仿真方法的流程图。第一实施例提供的基于事件的仿真方法具体包括下面步骤。
步骤S101,将虚拟自动驾驶车辆加载至仿真场景,虚拟自动驾驶车辆设有待测自动驾驶***,仿真场景包括环境数据和多个障碍物,多个障碍物按照预设轨迹在仿真场景中运动,多个障碍物包括第一部分障碍物。具体地,待测自动驾驶***是一个用于仿真测试的自动驾驶车辆的模拟***,待测自动驾驶***包括多个可独立运行测试的自动驾驶单元待测项目,例如:车体模型单元、轮胎模型单元、制动***模型单元、转向***模型单元、动力***模型单元、传动***模型单元、空气动力学模型单元和硬件IO接口模型单元等。
仿真场景为具有所有测试要素的并具有特定属性的虚拟环境。通过语义表述的操作场景,通过语言场景符号来描述域内的待测自动驾驶***以及障碍物和环境之间的关系。环境数据,例如,道路场景包括车道数、坡度、出口、路障和道路条件等环境数据。交通场景包括其他交通参与者的数量和速度、其他驾驶员的等环境数据。总体环境场景包括能见度、天气条件等环境数据。障碍物为包括行人,车辆和路障以及其他可能会影响自动驾驶车辆行驶的物体在内的数据模型。
进一步地,将待测自动驾驶***加载至仿真场景,就等同于自动驾驶车辆处于预设的现实环境中,可以对自动驾驶车辆上锁装载的***进行分析。
步骤S102,获取虚拟自动驾驶车辆在仿真场景中的第一运行数据。具体地,获取过程请参照步骤S1021-步骤S1023,获取第一运行数据场景中的所有障碍物按照预设的时间规则进行运动。请结合参看图11,在仿真场景中自动驾驶车辆100与障碍物车辆101并排行驶,此时障碍物车辆101是根据时间按照预设轨迹周期性运动,此时获取的数据为第一运行数据。
步骤S103,判断第一运行数据和环境数据中是否存在第一触发事件。具体判定过程请参照步骤S1031-步骤S1033。例如,十字路口的红灯为触发事件。
步骤S104,当存在第一触发事件时,将第一部分障碍物从当前运动轨迹改变为第一运动轨迹,第一运动轨迹为第一触发事件触发时,第一部分障碍物根据第一预设规则改变的运动轨迹。例如,当十字路口的红灯为触发事件时,当仿真场景中,出现红灯时触发行人以及其他障碍物车辆运动轨迹的改变。
步骤S105,获取虚拟自动驾驶车辆在仿真场景中的第二运行数据。
步骤S106,根据第二运行数据获取虚拟自动驾驶车辆上的待测自动驾驶***在仿真场景中的仿真结果。具体地,获取待测自动驾驶***在面对突然显现的行人时的处理数据,并根据预设的判定标准判断该仿真数据是否有效,并能够判断待测自动驾驶***的优劣。
上述实施例中,将待测自动驾驶***加载至仿真场景,并通过第一触发事件将第一部分障碍物从当前运动轨迹改变为第一运动轨迹。增加了仿真场景的复杂性,并且增强了仿真场景的针对性,提高仿真的有效性。
请结合参看图2,其为本发明第二实施例提供的基于事件的仿真方法,第二实施例提供的基于事件的仿真方法与第一实施例提供的基于事件的仿真方法的差异在于所述多个障碍物还包括第二部分障碍物,本发明第二实施例提供的基于事件的仿真方法,还包括:
步骤S201,获取虚拟自动驾驶车辆和第一部分障碍物在仿真场景中的第三运行数据。
步骤S202,判断第三运行数据和环境数据中是否存在第二触发事件。具体地,判断第三运行数据和环境数据中是否存在第二触发事件。第二触发事件为第二次触发障碍物运动轨迹改变的事件,其中也包括障碍物的行为。例如,一个障碍物车辆出现车祸事件,其他的障碍物车辆接收到触发事件时,也会改变原有运动轨迹,以更加贴近实际情况。
步骤S203,当存在第二触发事件时,将第二部分障碍物从当前运动轨迹改变为第二运动轨迹,第二运动轨迹为第二触发事件触发时,第二部分障碍物根据第二预设规则改变的运动轨迹。具体地,当存在第二触发事件时,将第二部分障碍物从当前运动轨迹改变为预设第二运动轨迹。预设第二运动轨迹为第二部分障碍物根据第二触发事件而改变的运动轨迹。例如,在十字路口的绿灯时,自动驾驶车辆准备过马路,检测待测自动驾驶***在面对突然又行人出现的情况的性能。设定一个行人,当自动驾驶车辆准备行驶过斑马线时,行人出现在距离自动驾驶车辆指定距离的位置,并以预设的速度过马路。
步骤S204,获取虚拟自动驾驶车辆在仿真场景中的第四运行数据
步骤S205,根据第四运行数据获取虚拟自动驾驶车辆上的待测自动驾驶***在仿真场景中的仿真结果。具体地,获取待测自动驾驶***在仿真场景中处理第二部分障碍物时的仿真结果。具体地,获取待测自动驾驶***在面对突然显现的行人时的处理数据,并根据预设的判定标准判断该仿真数据是否有效,并能够判断待测自动驾驶***的优劣。
在本实施例中,通过第二触发事件将第二部分障碍物从当前运动轨迹改变为预设第二运动轨迹,不仅是由自动驾驶车辆以及环境触发障碍物行为的改变,障碍物之间也可以相互影响,提高了仿真场景的复杂程度使仿真场景更加接近实际中车辆或者行人的反应,使得仿真结果具有参考意义。从而更好地对待测自动驾驶***进行评价。
请结合参看图8,其为本发明第一实施例提供的步骤S101的子步骤流程图。其中,待测自动驾驶***包括多个可独立运行测试的自动驾驶单元待测项目。步骤S101将待测自动驾驶***加载至仿真场景。步骤S101具体包括下面步骤。
步骤S801,获取待测项目。具体地,待检测项目,可以是单元的检测,例如,轮胎模型单元、制动***模型单元、转向***模型单元等自动驾驶车辆模块的检测。也可以是对于极端情况的检测,例如雷暴天气环境、暴雪环境等。
步骤S802,分析待测项目所对应的一个或者多个自动驾驶单元。具体的,若待测项目为轮胎模型单元的性能,就可以只加载待测自动驾驶***中的轮胎模型单元。待测项目为雷暴天气环境中自动驾驶车辆的反应能力则需要加载整个待测自动驾驶***。
步骤S803,加载对应的一个或者多个自动驾驶单元至仿真场景。根据实际情况加载对应的模块至仿真场景。
上述实施例中,只加载需要检测的模块,节省了算力,提升仿真效率。更够更快更好的实现仿真测试的效果,实现仿真场景的灵活应用。
请结合参看图3,其为本发明第一实施例提供的步骤S102的子步骤流程图。步骤S102环境数据包括道路规则,获取待测自动驾驶***在仿真场景中的第一运行数据。步骤S102具体包括下面步骤。
步骤S1021,获取虚拟自动驾驶车辆在道路规则下的初始运行数据。
步骤S1022,判断初始运行数据是否符合正常标准。
步骤S1023,当初始运行数据符合正常标准时,获取虚拟自动驾驶车辆在道路规则下避让多个障碍物的第一运行数据。
上述实施例中,先检测待测自动驾驶***的性能,确保该待测自动驾驶***是一个具有正常功能的自动驾驶车辆***,防止出现因待测自动驾驶***的性能问题,而出现的仿真效果不具有参考意义的情况。
请结合参看图4,其为本发明第一实施例提供的步骤S103的子步骤流程图。步骤S103判断第一运行数据和环境数据中是否存在第一触发事件。步骤S103具体包括下面步骤。
步骤S1031,判断环境数据中是否存在预设环境事件。例如,红绿灯的红灯指令,或者某些道路的限速指令等。
步骤S1032,当存在预设环境事件时,判断第一运行数据中是否存在预设事件。例如,当红绿灯处于红灯时,待测自动驾驶***是否存在减速或者停车指令。
步骤S1033,当存在预设事件时,判断第一运行数据中是否存在与预设事件相关联的预设范围数值。例如,当红绿灯处于红灯时,待测自动驾驶***存在减速指令,自动驾驶车辆此时的速度是否是真实可用的。
上述实施例中,从场景中的环境指令开始意义判断自动驾驶车辆在仿真场景中的行为是否符合预设条件以触发指定的障碍物行为,使仿真场景更具有针对性,仿真结果更加具有参考性。
请结合参看图5,其为本发明第一实施例提供的步骤S104的子步骤流程图。步骤S104将第一部分障碍物从当前运动轨迹改变为第一运动轨迹。步骤S104具体包括下面步骤。其中,待测自动驾驶***包括待测项目。
步骤S1041,获取待测项目。
步骤S1042,根据待测项目从多个障碍物中选取第一部分障碍物。具体地,当需要检测待测自动驾驶***的对应绿灯有行人过马路的情况时,选中一个或者多个行人障碍物。
步骤S1043,根据待测项目获取与第一部分障碍物对应的第一预设规则。第一预设规则根据待测项目中需要检测的参数设定的规则。例如,速度、加速度和位置。
步骤S1044,根据第一预设规则将第一部分障碍物从当前运动轨迹改变为第一运动轨迹。第一运动轨迹是障碍物不同于之前状态的运动轨迹。具体地,计算一个或者多个行人过马路的第一运动轨迹。
具体的,当自动驾驶车辆出现在斑马线附近时,原本等在路边的行人以设定的速度过马路。
上述实施例中,被选中的一个或者多个障碍物在触发指令出现后,改变了运动轨迹,增加了仿真场景的多样性,为仿真场景提供了多种可能。为待测自动驾驶***提供更多可能性,增强仿真结果的多样性。
请结合参看,6,其为本发明第一实施例提供的步骤S1044的子步骤流程图。步骤S1044根据第一预设规则将第一部分障碍物从当前运动轨迹改变为第一运动轨迹。步骤S1044具体包括下面步骤。
步骤S10441,获取第一部分障碍物当前的速度、加速度和位置。具体地,根据计算出行人行走的速度以及相互之间的位置。
步骤S10442,根据待测项目、第一部分障碍物当前的速度、加速度和位置计算第一部分障碍物下一时刻的速度、加速度和位置。
步骤S10443,根据第一部分障碍物下一时刻的速度、加速度和位置规划出第一运动轨迹。
请结合参看图7,其为本发明第一实施例提供的步骤S10443的子步骤流程图。步骤S10443将速度和位置组合为第一运动轨迹。步骤S10443具体包括下面步骤。
步骤S104431,根据第一部分障碍物的数量确定第一部分障碍物下一时刻的位置。
步骤S104432,对下一时刻的位置上的障碍物的速度和加速度进行调整获取下一时刻的速度和加速度。
步骤S104433,根据下一时刻的速度、加速度和位置规划出第一运动轨迹。
上述实施例中,障碍物的行为不仅受环境数据以及待测自动驾驶***行为的影响,也受相关障碍物的影响,障碍物之间相互影响更加符合实际中的情况,使得仿真场景提供环境更加接近实际,仿真结果具有更好的参考效果。
上述实施例中,从场景中的环境指令开始意义判断自动驾驶车辆在仿真场景中的行为是否符合预设条件以触发指定的障碍物行为,使仿真场景更具有针对性,仿真结果更加具有参考性。
请结合参看图9,其为本发明第一实施例提供的步骤S203的子步骤流程图。步骤S203将第二部分障碍物从当前运动轨迹改变为预设第二运动轨迹。步骤S203具体包括下面步骤。其中,待测自动驾驶***包括待测项目。
步骤S2031,获取待测项目。
步骤S2032,根据待测项目从多个障碍物中选取第二部分障碍物。
步骤S2033,根据待测项目获取与第二部分障碍物对应的第二预设规则。第二预设规则根据待测项目中需要检测的参数设定的规则。例如,速度、加速度和位置。
步骤S2034,根据第二预设规则将第二部分障碍物从当前运动轨迹改变为第二运动轨迹。
上述实施例中,被选中的一个或者多个障碍物在触发指令出现后,改变了运动轨迹,障碍物之间的相互影响增加了仿真场景的多样性,为仿真场景提供了多种可能。为待测自动驾驶***提供更多可能性,增强仿真结果的多样性。
本发明第一实施例提供一种计算机设备900,计算机设备900包括:存储器901,用于存储基于事件的仿真方法的程序指令。处理器902,用于执行程序指令以使计算机设备实现上述的基于事件的仿真方法。请结合参看图10,其为本发明第一实施例提供的计算机设备900的内部结构示意图。计算机设备900至少包括存储器901、处理器902。
其中,存储器901至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器901在一些实施例中可以是计算机设备900的内部存储单元,例如计算机设备900的硬盘。存储器901在另一些实施例中也可以是计算机设备900的外部存储设备,例如计算机设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字卡(SecureDigital,SD),闪存卡(Flash Card)等。进一步地,存储器901还可以既包括计算机设备900的内部存储单元也包括外部存储设备。存储器901不仅可以用于存储安装于计算机设备900的应用软件及各类数据,例如于事件的仿真方法的程序指令等,还可以用于暂时地存储已经输出或者将要输出的数据。例如仿真结果等。
处理器902在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器901中存储的程序指令或处理数据。具体地,处理器902执行于事件的仿真方法的程序指令以控制计算机设备900实现于事件的仿真方法。上述实施例已经详细描述计算机设备900中处理器902执行于事件的仿真方法的程序指令以控制计算机设备900实现于事件的仿真方法的详细过程,在此不再赘述。
进一步地,总线903可以是外设部件互连标准总线(peripheral componentinterconnect,简称PCI)或扩展工业标准结构总线(extended industry standardarchitecture,简称EISA)等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,计算机设备900还可以包括显示组件904。显示组件904可以是LED(Light Emitting Diode,发光二极管)显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示组件904也可以适当的称为显示装置或显示单元,用于显示在计算机设备900中处理的信息以及用于显示可视化的用户界面。
进一步地,计算机设备900还可以包括通信组件905,通信组件905可选的可以包括有线通信组件和/或无线通信组件(如WI-FI通信组件、蓝牙通信组件等),通常用于在计算机设备900与其他计算机设备之间建立通信连接。
图10仅示出了具有组件901-905以及实现于事件的仿真方法的程序指令的计算机设备900,本领域技术人员可以理解的是,图10示出的结构并不构成对计算机设备900的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
具体地,该于事件的仿真方法包括一个或多个程序指令。在计算机设备900上加载和执行该程序指令时,全部或部分地产生本发明实施例的流程或功能。该计算机设备900可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机设备900实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、流动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序指令的介质。
由于计算机设备900采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再赘述。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所列举的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。