CN110073352B - 用于自主车辆仿真的方法、系统及计算机可读介质 - Google Patents

用于自主车辆仿真的方法、系统及计算机可读介质 Download PDF

Info

Publication number
CN110073352B
CN110073352B CN201780075678.8A CN201780075678A CN110073352B CN 110073352 B CN110073352 B CN 110073352B CN 201780075678 A CN201780075678 A CN 201780075678A CN 110073352 B CN110073352 B CN 110073352B
Authority
CN
China
Prior art keywords
scene
sequence
scenario
primitive
primitives
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.)
Active
Application number
CN201780075678.8A
Other languages
English (en)
Other versions
CN110073352A (zh
Inventor
R·M·卡洪
G·林斯科特
A·朱莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zoox Inc
Original Assignee
Zoox Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zoox Inc filed Critical Zoox Inc
Publication of CN110073352A publication Critical patent/CN110073352A/zh
Application granted granted Critical
Publication of CN110073352B publication Critical patent/CN110073352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Computational Mathematics (AREA)
  • Educational Technology (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Ecology (AREA)
  • Educational Administration (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

域特定语言或场景描述语言(SDL)可以用于在仿真中快速枚举场景,以用于测试和验证环境内的对象(例如,自主车辆)的交互。使用一个或多个原语来限定仿真中的场景。原语用于限定要实例化的对象(例如,主体大小、位置、定向、速率等)和/或对象在仿真中要执行的动作(例如,等候一段时间、目标位置、跟随特定的对象等)。SDL通过组合性地组合原语并且在一些示例中将创建的场景限制为与提供有意义信息的组合相对应的场景来简单地创建多个场景。另外,SDL允许实例化对地图特征不可知,使得可以在地图内的所有可能位置自动地实例化特定场景。

Description

用于自主车辆仿真的方法、系统及计算机可读介质
相关申请的交叉引用
该PCT国际申请与2017年1月13日递交的、题为“SCENARIO DESCRIPTIONLANGUAGE”的美国申请第15/405,649号有关,该申请要求享有于2016年10月14日递交的美国临时申请第62/408,641号的权益,该申请的全部内容通过引用并入本文中。
背景技术
在给定指定起始条件的环境中对象彼此的交互通常可以称为场景。可以基于在给定来自系统的输入的情况下场景的结果(即,最终结果)来对系统的各种参数(例如,鲁棒性)进行分类。通常,对特定场景的物理测试或验证既不可行也不可能。对于足够简单的场景,可以获得用于测试或验证目的的分析解决方案,并且在必要时结合物理近似。但是,在情形变得过于复杂的情况下,分析解决方案可能不可行。在这种情形下,通过使用仿真进行测试和验证。
作为一个示例,已经使用仿真来测试用于自主车辆的操作软件。要求进行仿真,因为在交通和行人之间安全地测试软件是不可能的。另外,实际上不可能使用完全相同的条件重复这些测试。例如,由于安全问题和可重复性两者,几乎不可能精确地重建自主车辆在高速公路上反复避开醉酒驾驶员的情形。此外,物理测试还呈现了对可以测试的场景的可行数量的限制(例如,数百万次测试某些结果可能是不可行的)。因此,这些仿真试图重建世界及其中的障碍,以便准确地再现自主车辆可能遇到的场景。
附图说明
现在将参考附图通过示例的方式描述本文描述的技术,在附图中,相同的附图标记表示相同的元件,并且其中:
图1示出了说明如何使用场景描述语言限定场景的框图的示例;
图2描绘了可以使用场景描述语言创建的示例场景;
图3示出了示例渲染场景;
图4A示出了通过组合性地组合如由用户使用场景描述语言限定的原语而创建的许多场景中的第一示例场景;
图4B示出了如图4A中所示的许多场景中的第二示例场景;
图4C示出了如图4A中所示的许多场景中的第三示例场景;
图4D示出了如图4A中所示的许多场景中的第四示例场景;
图4E示出了如图4A中所示的许多场景中的第五示例场景;
图5示出了示例计算系统,其可以用于使用场景描述语言来限定场景和/或仿真使用场景描述语言限定的场景;
图6示出了用于在仿真环境中构造场景的示例过程;
图7示出了通过组合性地组合如由用户使用场景描述语言限定的原语来生成多个场景的示例过程;以及
图8示出了用于确定提供有用信息的场景并且过滤掉不提供有用信息的其他场景的示例过程。
具体实施方式
以下具体实施方式针对用于创建用于构造仿真的域特定语言的技术。尽管所描述的技术通常可以适用于各种仿真环境,但为了简洁起见,详细讨论针对涉及车辆的示例。如上所述,许多行业使用仿真环境进行测试和验证。作为非限制性示例,仿真可以用于验证在自主车辆上运行的软件(即,自主控制器),以确保软件能够安全地控制这种自主车辆。在附加和/或替代示例中,可以使用仿真来了解对基于软件运行的自主车辆的约束。例如,仿真可以用于考虑到地面条件、环境噪声、故障部件等而了解自主车辆的操作空间(即,自主控制器高效地控制自主车辆的参数包络)。仿真也可以用于生成反馈,以改进自主车辆的操作和设计。例如,在一些示例中,仿真可以用于确定自主控制器中要求的冗余量,或者如何基于通过仿真获知的内容来修改自主控制器的行为。此外,在附加和/或替代示例中,仿真可以用于告知自主车辆的硬件设计,例如,优化自主车辆上的传感器的放置。
当创建仿真环境以执行测试和验证时,可以利用各种且具体的示例来具体地枚举环境。这种环境的每个实例都可以是唯一的并且是限定的。手动枚举所有可能的场景可能要求过多的时间量,并且如果不是每个可能的场景都被构造,则各种场景可能未经测试。此外,即使可以描述多个场景,也无法保证附加场景提供任何附加有用信息。例如,十字路口处的仿真车辆的起始位置的增量差异只能提供与自主车辆在给定一组特定计算机代码的场景中进行响应的能力有关的边际(如果有的话)附加有用信息。
本文描述的技术针对域特定语言,其使得用户能够以高级别简明地描述要仿真的场景。域特定语言可以由计算系统执行,以在仿真环境中将场景实例化。在一个示例中,域特定语言可以用于限定有用的场景的结果,以便可以过滤掉不太可能有用的场景。通过这种方式,域特定语言可以用于确定有限数量的场景来仿真哪些场景将提供有用的信息。然后,可以在仿真环境中将确定用于提供有用信息的场景实例化。这种域特定语言通过优化特定场景来降低计算复杂度、存储器需求和处理时间,这些场景为验证和测试提供有用的信息。
在至少一个示例中,可以通过使用与环境(例如,地图)交互的原语来构造仿真环境。原语可以包括但不限于实体(可以是静态的或动态的)、实体行为、动作、条件、噪声、故障等。在至少一个示例中,场景可以包括与地图交互的一个或多个原语。在一些示例中,实体可以与坐标系(例如,二维或三维坐标系)相关联,例如,惯性坐标系、基于轨道的坐标系、基于地图的坐标系等,其中可以描述实体的位置和/或速率。可以以场景限定格式(SDF)来枚举这样的场景。另外,如下面将详细讨论的,原语可以经由线性时序逻辑连接。作为非限制性示例,一个场景可以被限定为一个实体,例如,具有特定尺寸和速率的汽车沿着道路被定位为在也具有指定尺寸和速率的仿真测试自主车辆之前预定距离。
如上所述,SDF能够枚举无限数量的场景。然而,与其他场景相比,可以创建的场景中的许多场景是非物理的或提供边际信息返回。例如,单纯地使用原语来创建场景可能导致原语实体彼此相交的场景。这种场景将是非物理的。另外,如上所述,与其他场景相比,上述场景的起始位置的增量变化可能不提供有用的数据。
如下面详细描述的,域特定语言可以用于以高级别指定场景,使得可以使用很少的命令容易地将多个场景实例化。因此,多个场景能够详尽且高效地探索与环境相关联的参数空间。在至少一个示例中,这可以通过“模板化”场景来完成,从而仅需要指定场景实例化之间的差异。通过使用域特定语言来创建场景或使用场景描述语言(SDL),可以容易地枚举原语场景,从而将提供有用信息的场景实例化。在至少一个示例中,SDL是域特定语言,其允许使用高级别限定的集合来指定环境中的原语。在一些示例中,SDL能够以用户限定的方式组合性地组合原语。在一个示例中,SDL的使用提供了要经由仿真进行测试的可行且感兴趣的场景的集合。
如上所述,可以在环境内(例如,在地图内)将原语实例化。在至少一个示例中,SDL允许在地图上在可以以独立于地图坐标的方式表达的位置处自动实例化,例如,通过相对于地图拓扑或“语义坐标”将原语实例化。作为非限制性示例,SDL允许用户指定在T形十字路口处进行原语的实例化(与要求用户输入特定的二维坐标或三维坐标相反)。通过使用地图拓扑限定高级别场景,用户无需了解有关地图的任何信息。另外,通过相对于十字路口类型限定实例化,例如,给定类型的所有十字路口可以实质上同时利用类似的原语实例化。使用SDL,可以对测试场景进行简明限定,这使计算机代码高度可读,并且允许无论何时更新地图数据时快速更新大量测试场景。因此,SDL使得能够对条件运行“详尽枚举”搜索,以及使得用户能够在其开发系统时经常运行测试。另外,通过迭代提供有用信息的场景来限制迭代,减少了存储器和处理要求。下面参考图1-8提供更多细节。
原语
如上所述,SDL允许基于原语的集合容易地以高级别限定要构造的场景。在至少一个示例中,可以在环境内(例如,在地图内)将原语实例化。地图可以是二维或三维的。二维和/或三维地图可以是能够提供关于环境的信息的任何数量的数据结构,例如但不限于拓扑(例如,十字路口)、街道、山脉、道路、地形和一般环境。出于本讨论的目的,原语限定了仿真环境的特定方面。原语的非限制性示例包括坐标系、条件、动作、实体、实体行为、噪声、故障等。
可以利用坐标系来描述实体在场景中的位置和/或速度(或速率)。坐标系可以包括惯性坐标系、基于轨道的坐标系、基于地图的坐标系等。惯性坐标系可以是相对于某些局部或全局坐标系的坐标系。基于轨道的坐标系可以是相对于轨道上的某个位置的坐标系,例如,道路的一段。如上所述,基于地图的坐标系可以利用语义坐标。
在至少一个示例中,各种原语可以向在计算系统上可执行的仿真应用提供指令。下面描述的仿真应用在本文中可以称为“仿真器”。
在至少一个示例中,条件原语可以使某个动作的执行或对某个其他条件的评估延迟,直到满足与条件原语相关联的条件。条件原语可以包括但不限于“等待”条件、“等候”条件、“之间的距离或附近”条件、“速度”条件、“在区域中”条件等。另外或可替代地,“反转修改器”条件可以使条件反转。条件还可以包括布尔运算符,例如但不限于与或者非、异或、或非、与非等,使得可以组合作为原语的多个条件。应当注意,下面描述的条件的名称是非限制性的,并且在附加和/或替代示例中,可以以相同或者不同的名称来称呼条件。
“等待”条件可以指示仿真器在继续之前将某个动作的执行或对某个其他条件的评估延迟指定的时间段。也就是说,在经过该段时间后,可以满足“等待”条件。“等候”条件可以指示仿真器直到满足另一个条件才采取动作。也就是说,在满足另一个条件时可以满足“等候”条件。
“之间的距离或附近”条件可以指示仿真器延迟某个动作的执行或对某个其他条件的评估,直到两个实体之间的距离低于某个用户指定值。也就是说,当确定指定实体之间的距离在阈值距离内时,可以满足“之间的距离或附近”。在至少一个示例中,当指定实体之间的距离在阈值距离内时,布尔信令可以被中继到仿真器,指示两个实体之间的距离低于某个用户指定值。
“速度”条件可以指示仿真器延迟某个动作的执行或对某个其他条件的评估,直到实体的速度(或速率)小于(或大于)指定值或达到指定值。也就是说,当实体的速度(或速率)小于(或大于)指定值或达到指定值时,可以满足“速度”条件。在至少一个示例中,当实体的速度(或速率)小于(或大于)指定值或达到指定值时,布尔信令可以被中继到仿真器,指示实体的速度(或速率)小于(或大于)指定值或达到指定值。
“在区域中”条件可以指示仿真器延迟某个动作的执行或对某个其他条件的评估,直到实体在指定区域内。也就是说,基于实体的至少一部分在情景(例如,环境)中的对应于指定区域的空间体内,可以满足“在区域中”条件。在至少一个示例中,基于实体的至少一部分在情景(例如,环境)中的对应于指定区域的空间体内,布尔信令可以被中继到仿真器,指示实体在指定区域内。
在至少一个示例中,当在序列的实例化期间遇到动作原语时,仿真器可以执行与动作原语相对应的动作。动作可以包括打开或关闭触发器。此外,动作可以包括例如在测试结束时识别成功或失败。在至少一个示例中,动作可以包括生成日志(显示)消息,用于在被调用时将消息提供给与仿真器相关联的显示器。此外,动作可以包括创建和/或销毁实体和/或改变实体(例如,大小、形状、类型等)。在至少一个示例中,动作可以包括促进远程操作动作(即,用信号通知来自虚拟操作者的命令)。
在至少一个示例中,实体原语可以对应于情景中的实体。实体的示例可以包括汽车、行人、自行车、建筑物等。每个实体可以与给定尺寸、类型、姿势和网格相关联,以渲染为仿真环境中的实体。尺寸可以对应于实体的长度、宽度和高度。实体的类型可以指示实体是静态的(不移动的)还是动态的(移动的)。静态实体的示例可以包括建筑物。动态实体的示例可以包括汽车、行人、自行车等。
与实体原语相关联的姿势可以指示对应实体在坐标系(例如,惯性坐标系、基于轨道的坐标系、基于地图的坐标系等)中的位置和/或定向。例如,可以使用坐标(x,y)和角度偏移(偏转)在二维惯性坐标系中描述实体的姿势。类似地,可以通过坐标(x,y,z)以及定向(滚动、俯仰、偏转)在三维坐标系中描述实体的姿势。或者,可以利用坐标(s,t,[yaw_offset])在基于轨道的坐标系中描述实体的姿势,其中,“s”是沿着轨道的轨迹的偏移,“t”是垂直于轨道的轨迹的偏移,并且yaw_offset是相对于沿轨道的行进方向。在基于地图的坐标系中,姿势可以通过语义坐标来限定。语义坐标可以对应于相对于其他已知姿势的实体姿势。
实体行为原语可以指示实体在环境中如何表现。实体行为原语可以包括但不限于“停止”行为、“移动”行为、“跟随道路”行为、“穿过道路”行为、“跟随实体”行为等。“停止”行为可以向仿真器指示停止移动实体。“移动”行为可以向仿真器指示基于惯性坐标移动实体。在一些示例中,“移动”行为可以与速度(或速率)相关联。“跟随道路”行为可以向仿真器指示继续沿着地图中的道路移动实体。在一些示例中,如果实体接近十字路口,“跟随道路”行为可以向仿真器指示如何导航实体(即,要走哪条支路)。在一些示例中,“跟随道路”行为可以与速度(或速率)相关联。“穿过道路”行为可以向仿真器指示跨地图中的道路横向移动实体。在一些示例中,“穿过道路”行为可以与速度(或速率)相关联。“跟随实体”行为可以向仿真器指示应该移动第一实体以便跟随第二实体。在至少一个示例中,“跟随实体”行为可以与速度(或速率)和偏移值相关联,该偏移值是第一对象与第二对象之间的距离。
应当注意,上述实体行为的名称是非限制性的,并且在附加和/或替代示例中,可以以相同或者不同的名称来称呼实体行为。此外,在替代示例中,实体行为可以映射到实体原语或以其他方式与实体原语相关联,而不是作为其自己的原语。
噪声可以表示环境中的高斯噪声或其他遮挡。也就是说,噪声原语可以向仿真器指示导致特定噪声存在于仿真环境中。
故障可以表示与实体和/或环境相关联的故障。例如,作为非限制性示例,故障可以表示与实体相关联的传感器的故障,与实体相关联的轮胎的故障,或与实体相关联的另一组件的故障。故障原语可以向仿真器指示在仿真环境中引起相应的故障。
虽然前述段落描述了包括坐标系、条件、动作、实体、实体行为、噪声、故障等的原语的非限制性示例,但是应注意,可以使用附加和/或替代的原语来生成如本文描述的场景。
场景描述语言
图1是在一个示例中宽泛地示出如何利用SDL生成场景的框图100。如图所示,原语110可以包括实体112、动作114、条件116和任何其他原语类型118(例如,实体行为、噪声、故障等)。可以使用场景描述语言120以高级别限定场景。场景描述语言120允许基于前述原语110容易地创建场景。场景描述语言120允许用户限定关于一个或多个原语110的细节。例如,用户可以限定具有特定尺寸、姿势(例如,使用轨道坐标、惯性坐标或语义坐标)的实体112,以及通过向实体112分配实体行为来指定实体的特定速度(或速率)。在至少一个示例中,至少一个原语可以被指定为“自主车辆”,并且可以与自主控制器相关联,使得仿真的输出验证将由这样的自主控制器控制的自主车辆的行为。
另外,场景描述语言120允许用户例如使用线性时序逻辑来指定某些原语如何彼此关联。在一个示例中,用户通过指定序列来限定原语之间的关联。序列可以包括多个步骤,这些步骤将由仿真器按顺序执行。在至少一个实例中,序列可以彼此嵌套,使得序列中的一个步骤是另一序列。作为非限制性示例,序列可以包括“等候”条件,接着是“等待”条件,然后是“跟随”行为。
场景描述语言120可以使用以如由用户限定的方式组合的原语110来创建一个或多个场景122a-122n。如上所述,可以通过线性时序逻辑来限定针对每个场景122a-122n组合原语110的方式。在至少一个示例中,每个场景122a-122n可以与结果相关联,例如,结果124a-124n。结果可以指示在给定在仿真环境中创建的场景的情况下自主控制器将如何响应。结果中的每个结果可以用于确定在给定在仿真环境中创建的场景的情况下自主控制器响应是与结果一致(例如,成功)还是与结果不一致(例如,失败)。
以高级别,使用处理器(例如,图形处理单元(GPU)等),使用运行这种仿真的多个计算机或其组合,场景122a-122n中的每一个场景可以实质上同时和/或并行地在仿真中运行。因此,可以实质上同时生成许多结果。
图2示出了可以由用户创建的示例场景200的框图。示例场景200可以对应于上面参考图1描述的场景122a-122n中的任何一个。尽管图2中描绘了起始位置210,但是不一定需要限定这样的起始位置210。在场景200的开始,用户可以指定和限定要由仿真器实例化的一个或多个原语220。也就是说,用户可以提供限定场景中的(多个)原语220的指令。在图2所示的示例中,这样的原语包括测试车222和观察车226。测试车222可以被限定为具有大小、相对于十字路口的位置、速度(或速率)、运动方向(顺时针(CW))等。测试车222可以与行为(“移动到十字路口”)相关联,其被表示为原语224。观察车226也可以被限定为具有大小、相对于十字路口的位置、速度(或速率)、运动方向(逆时针(CCW))等。尽管描绘为一系列连接,但是原语220可以以任何次序实例化,或者实质上同时实例化。
如进一步所示,一旦被实例化,就可以指示仿真器执行序列228。如上所述,序列228可以使用线性时序逻辑来限定(多个)原语220之间的关联。(多个)原语220和序列228可以由场景描述语言230限定,场景描述语言230可以对应于上面参考图1描述的场景描述语言120。序列228可以可选地具有序列开始232。这样的序列开始232可以向仿真器指示序列228即将开始。在非限制性示例中,序列228可以被限定为“等候”条件234、“等待”条件236和“跟随实体”行为238。与这样的序列228相关联的指令指示仿真器首先等候测试车222接近十字路口,等待1秒,然后使测试车222跟随观察车226。
图3描绘了如将在仿真器中运行的图2中限定的场景的图示300。如图所示,较大的块表示测试车222,而较小的块表示位于诸如地图之类的环境中的观察车226。块上方的线320表示测试车222的运动。如图所示,测试车222接近十字路口310,等待,然后按照序列228的规定继续跟随观察车226。
外积
虽然以上示例已经说明了SDL如何可以使用户能够容易地指定单个场景,但是SDL还使用户能够在由用户给定更高级别(即,更一般性)描述的情况下立即生成多个场景。这种基于高级别用户描述对多个场景的创建被称为外积。外积接受任意数量的命名参量,这些参数限定用于生成测试场景的组合值。每个命名参量都可以对应于一个变量。变量的非限制性示例可以包括道路上的车道中的位置、时间、地面条件等。在一些示例中,变量可以与原语相关联。也就是说,原语可以与可以改变以生成不同场景的某个方面相关联。每个命名参量接收针对对应变量的可能值列表。在至少一个示例中,可能值列表中的可能值可以是可能值的范围。然后,分配迭代变量,该迭代变量保持针对值的每个组合的已分配参数。每次迭代都可以与更具体的场景相关联,并且可以输出每个场景以在仿真中用于测试和验证。
下面提供等式1作为上述外积的非限制性示例。
等式1
参数(变量1=[值1,值2],变量2=[值3,值4])
在等式1中,参数()对应于外积。变量1和变量2是变量的示例。如上所述,外积可以具有任意数量的变量。每个变量可以包括一个或多个可能值。在等式1中,值1和值2是变量1的可能值,而值3和值4是变量2的可能值。仿真器可以基于值的不同组合生成不同的场景。也就是说,仿真器可以创建可能值的每个可能组合的排列。例如,表1示出了可以基于等式1中的外积生成的场景的非限制性示例。
表1
场景编号
1 值1,值3
2 值1,值4
3 值2,值3
4 值2,值4
作为非限制性示例,考虑上面关于图2和图3描述的场景。在这种场景中,“等待”条件236与一秒的值相关联。然而,为了实现上述组合性组合,可以改变与“等待”条件236相关联的时间。例如,时间可以是一秒或五秒的值。场景中的第二变量可以对应于观察车226的速度(或速率)。例如,观察车226的速度(或速率)可以变化。观察车226可以以每小时10英里(mph)或30mph行进。与上述组合性组合一致,第一场景可以对应于当观察车226以10mph行进时与一秒的值相关联的“等待”条件236,第二场景可以对应于当观察车226以10mph行进时与五秒的值相关联的“等待”条件236,第三场景可以对应于当观察车226以30mph行进时与一秒的值相关联的“等待”条件236,以及第四场景可以对应于当观察车226以30mph行进时与五秒的值相关联的“等待”条件236。
图4A-4E说明了外积的幂。作为非限制性示例,在用户指定起始位置的范围和要实例化的多个其他原语(例如,具有相关联的尺寸、速率和类别的实体)的范围的情况下考虑外积。例如,外积中的第一变量可以对应于起始位置,并且与不同起始位置相关联的可能值可以与第一变量相关联,并且外积中的第二变量可以对应于原语的数目,与原语的数目相关联的可能值可以对应于第二变量。
如图4A-4E所示,可以通过单个外积创建多个场景,所有场景都分类为具有单个T形十字路口和单个测试车222。由图4A表示的场景400包括处于第一起始位置的测试车222。存在两个行人402A和402B,并且不存在其他车辆。图4B表示的场景404包括处于第二起始位置的测试车222,并且存在另两辆车406A和406B。图4C表示的场景408包括处于第三起始位置的测试车222,并且存在另一辆车410。图4D表示的场景412包括处于第四起始位置的测试车222,并且不存在其他车辆或行人。图4E表示的场景414包括处于第五起始位置的测试车222,并且存在另一辆车416。如上面指出的,可以使用单行计算机代码来创建场景中的每个场景以及许多其他场景。
在至少一个示例中,可以优化外积中包括的变量,以限制创建哪些场景用于验证和测试。在附加和/或替代示例中,可以使用启发法来过滤所生成的值的组合,以限制创建哪些场景用于验证和测试。在至少一个示例中,包括在外积中的变量的组合可以限于被确定为与“有用场景”相关联的变量,这可以由机器学习算法确定。
机器学习可以指从其接收的数据中学习的一个或多个程序。例如,机器学习机制可以构建、修改或以其他方式利用从示例输入创建的数据模型,并且使用数据模型做出预测或决策。在当前实施例中,机器学习机制可以用于预测场景和/或值的组合是否输出冗余结果。也就是说,机器学习机制可以利用与哪些场景通过(即,成功)或失败(即,不成功)(按照预先限定的标准)相关联的数据,并且可以确定哪些场景集合共同通过或失败。基于所述确定,机器学习机制可以确定场景集合中的场景是冗余的。可以使用监督学习算法(例如,人工神经网络、贝叶斯统计、支持向量机、决策树、分类器、k-最近邻等)、无监督学习算法(例如,人工神经网络、关联规则学习、分层聚类、聚类分析等)、半监督学习算法、深度学习算法等来训练数据模型。
在至少一个示例中,限制创建哪些场景用于验证和测试可以减少所要求的计算的数量。也就是说,限制创建哪些场景用于验证和测试可以减少针对可能输出有用信息的场景执行的所要求的计算的数量。
计算机化系统
简要地转向图5,计算机化系统500被描绘为示例计算机化系统,在其上可以实现本文描述的技术。计算机化系统500描绘了计算机系统510,其包括存储装置560、处理器570、存储器540和操作系统520。存储装置560、(多个)处理器570、存储器540和操作系统520可以通过通信基础设施550通信地耦合。可选地,计算机系统510可以经由I/O设备530以及网络580、经由通信基础设施550与用户交互。操作系统520可以与其他组件交互,以控制(多个)应用502。(多个)应用502可以包括:仿真应用504,其可以由(多个)处理器570执行以基于上述SDL生成场景;以及自主控制器506,其可以由(多个)处理器570执行以响应在仿真环境中创建的场景。在至少一个示例中,如上所述,自主控制器506对应于同样在自主车辆上运行的软件。因此,自主控制器506的响应可以表示自主车辆在真实环境中可能如何响应。
本文描述的系统和方法可以以软件或硬件或其任意组合来实现。本文描述的系统和方法可以使用一个或多个计算设备来实现,这些计算设备可以在物理上或逻辑上彼此分离或不彼此分离。这些方法可以由布置为预置硬件、预置虚拟系统或托管的私有实例的组件来执行。另外,本文描述的方法的各个方面可以组合或合并到其他功能中。
用于实现本文描述的技术的示例计算机化系统在图5中示出。处理器或计算机系统可以被配置为特别地执行本文描述的技术中的一些或所有技术。在一些示例中,本文描述的技术可以由一个或多个计算机或处理器部分或完全自动化。可以使用硬件、固件和/或软件中的任一个的组合来实现本文描述的技术。(多个)本方法(或其任何(多个)部分或(多个)功能)可以使用硬件、软件、固件或其组合来实现,并且可以在一个或多个计算机系统或其他处理系统中实现。在一些示例中,所示系统元件可以组合成单个硬件设备或者分成多个硬件设备。如果使用多个硬件设备,则硬件设备可以物理上位于彼此附近或彼此远离。所描述和说明的方法的示例旨在是说明性的而非限制性的。例如,可以在不同的示例中组合、重新布置和/或省略方法的步骤中的一些或所有步骤。
在一个示例性示例中,本文描述的技术可以针对能够经由操作系统(O/S)520执行本文描述的功能的一个或多个计算机系统。示例计算设备可以是但不限于运行任何操作系统(例如但不限于MicrosoftTM WindowsTM)的个人计算机(PC)系统。然而,本文描述的技术可以不限于这些平台。相反,本文描述的技术可以在运行任何适当的操作系统的任何适当的计算机系统上实现。本文描述的技术的其他组件(例如但不限于计算设备,通信设备,移动电话,电话设备,电话,个人数字助理(PDA),个人计算机(PC),手持式PC,交互式电视(iTV),数字视频录像机(DVD),客户端工作站,瘦客户端,胖客户端,代理服务器,网络通信服务器,远程访问设备,客户端计算机,服务器计算机,路由器,web服务器,数据、媒体、音频、视频、电话或流式传输技术服务器等)也可以使用计算设备来实现。可以使用例如但不限于交互式电视(iTV)、视频点播系统(VOD)和经由数字视频录像机(DVR)或其他点播观看系统来按需提供服务。
计算系统510可以包括一个或多个处理器570。(多个)处理器570可以连接到通信基础设施550,例如但不限于通信总线、交叉条(cross-over bar)或网络等。进程和处理器不需要位于相同的物理位置。换句话说,可以在一个或多个地理上较远的处理器处执行进程,例如,LAN或WAN连接。计算设备可以包括显示接口,该显示接口可以转发来自通信基础设施的图形、文本和其他数据,以在显示单元上显示。
计算系统510还可以包括存储器540,其包括但不限于主存储器、随机存取存储器(RAM)和辅助存储器等。辅助存储器可以包括例如硬盘驱动器和/或可移除存储驱动器,例如,压缩盘驱动器CD-ROM等。可移除存储驱动器可以从可移除存储单元读取和/或写入可移除存储单元。如可以认识到的,可移除存储单元可以包括计算机可用存储介质,计算机可用存储介质中存储有计算机软件和/或数据。在一些示例中,机器可访问介质可以指用于存储可由计算机访问的数据的任何存储设备。机器可访问介质的示例可以包括例如但不限于:磁性硬盘;软盘;光盘,如压缩盘只读存储器(CD-ROM)或数字通用盘(DVD);磁带;和/或存储器芯片等。
(多个)处理器570还可以包括或可操作地耦合以与存储装置560通信,例如,用于存储数据的一个或多个数据存储设备。作为非限制性示例,这种数据存储设备可以包括磁盘(包括内部硬盘和可移除磁盘)、磁光盘、光盘、只读存储器、随机存取存储器和/或闪速存储装置。适合于有形地体现计算机程序指令和数据的存储设备还可以包括所有形式的非易失性存储器,包括例如半导体存储器设备(例如,EPROM、EEPROM)和闪速存储器设备;磁盘,例如,内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由ASIC(专用集成电路)补充或并入ASIC中。
另外和/或可替代地,存储装置560可以是计算机化数据存储系统。数据存储系统可以包括非关系数据存储库或关系数据存储库,例如,MySQLTM或其他关系数据库。可以使用其他物理和逻辑数据库类型。数据存储库可以是数据库服务器,例如,Microsoft SQLServerTM、OracleTM、IBM DB2TM、SQLITETM或任何其他数据库软件、关系或其他。数据存储库可以存储标识语法标签的信息以及对语法标签操作所要求的任何信息。在一些示例中,处理系统可以使用面向对象的编程并且可以将数据存储在对象中。在这些示例中,计算系统510可以使用对象关系映射器(ORM)来将数据对象存储在关系数据库中。可以使用任何数量的物理数据模型来实现本文描述的系统和方法。在一个示例中,可以使用RDBMS。在这些示例中,RDBMS中的表可以包含表示坐标的列。在经济系统的情况下,表示公司、产品等的数据可以存储在RDBMS中的表中。表可以在它们之间具有预先限定的关系。这些表还可以具有与坐标相关联的附件。
在替代示例性示例中,存储器540可以包括辅助存储器,其可以包括用于允许将计算机程序或其他指令加载到计算系统510中的其他类似设备。这样的设备可以包括例如可移除存储单元和接口。这样的可移除存储单元和接口的示例可以包括程序盒和盒式接口(例如但不限于在视频游戏设备中找到的那些)、可移除存储器芯片(例如但不限于可擦除可编程只读存储器(EPROM)、或可编程只读存储器(PROM)和相关联的插座,以及其他可移除存储单元和接口,其可以允许软件和数据从可移除存储单元传输到计算机系统。
计算系统510还可以包括输入/输出(I/O)设备530。I/O设备530的示例可以包括输入设备,例如但不限于鼠标或其他定点设备,例如,数字转换器、键盘或其他数据输入设备(未示出)。I/O设备530的另一示例可包括输出设备,例如但不限于显示器和显示器接口。更多的I/O设备530可以包括但不限于通信接口、电缆和通信路径等。这些设备可以包括但不限于网络接口卡和调制解调器。通信接口可以允许软件和数据在计算机系统与外部设备之间传输。
在一个或多个示例中,本示例在一个或者多个计算机网络(例如,网络580)的环境中实践。网络580可以包括专用网络或公共网络(例如,互联网,如以下所描述的),或两者的组合。网络580包括硬件、软件或两者的组合。
从面向电信的视角来看,网络580可以被描述为由通信设施互连的硬件节点的集合,其中,一个或多个进程(硬件、软件或其组合)在每个这样的节点处起作用。这些进程可以使用进程间通信路径、经由它们之间的通信路径相互通信和彼此交换信息。在这些路径上,使用适当的通信协议。
根据本示例的示例性计算机和/或电信网络环境可以包括节点,节点可以包括硬件、软件或硬件和软件的组合。节点可以经由通信网络互连。每个节点可以包括可由并入节点的处理器执行的一个或多个进程。例如,单个进程可以由多个处理器运行,或者多个进程可以由单个处理器运行。另外,节点中的每个节点可以提供网络与外部世界之间的接口点,并且可以包含子网的集合。
在示例性示例中,进程可以通过支持通过任何通信协议的通信的进程间通信路径彼此通信。路径可以连续或间歇地顺序或并行地起作用。除了许多计算机使用的标准并行指令集之外,路径还可以使用本文关于通信网络描述的通信标准、协议或技术中的任一种。
节点可以包括能够执行处理功能的任何实体。可以与示例一起使用的这种节点的示例包括计算机(例如,个人计算机、工作站、服务器或大型机)、手持式无线设备和有线设备(例如,个人数字助理(PDA)、具有处理能力的调制解调器电话、包括BlackBerryTM设备的无线电子邮件设备)、文档处理设备(例如,扫描仪、打印机、传真机或多功能文档机)、或处理器的集合与其连接的复杂实体(例如,局域网或广域网),如上所述。例如,在本文描述的本技术的上下文中,节点本身可以是广域网(WAN)、局域网(LAN)、专用网络(例如,虚拟专用网络(VPN))或网络集合。
通信网络可以使节点之间的通信变得可能。节点可以连续或间歇地与通信网络连接。作为示例,在本文描述的本技术的上下文中,通信网络可以是提供足够带宽和信息安全性的数字通信基础设施。
通信网络可以包括使用任何类型的标准、协议或技术、在任何频率下的有线通信能力、无线通信能力或两者的组合。另外,在本示例中,通信网络可以是专用网络(例如,VPN)或公共网络(例如,互联网)。
通信网络使用的示例性无线协议和技术的非包含性列表可以包括BluetoothTM、通用分组无线电服务(GPRS)、蜂窝数字分组数据(CDPD)、移动解决方案平台(MSP)、多媒体消息传送(MMS)、无线应用协议(WAP)、码分多址(CDMA)、短消息服务(SMS)、无线标记语言(WML)、手持式设备标记语言(HDML)、无线二进制运行时环境(BREW)、无线电接入网(RAN)和分组交换核心网(PS-CN)。还包括各代无线技术。通信网络使用的主要有线协议和技术的示例性非包含性列表包括异步传输模式(ATM)、增强型内部网关路由协议(EIGRP)、帧中继(FR)、高级数据链路控制(HDLC)、互联网控制消息协议(ICMP)、内部网关路由协议(IGRP)、互联网络分组交换(IPX)、ISDN、点对点协议(PPP)、传输控制协议/互联网协议(TCP/IP)、路由信息协议(RIP)和用户数据报协议(UDP)。如技术人员将认识到的,可以使用任何其他已知或预期的无线或有线协议和技术。
本文描述的本技术的示例可以包括用于执行本文的操作的装置。装置可以专门构造用于期望目的,或者它可以包括由存储在设备中的程序选择性地激活或重新配置的通用设备。
在一个或多个示例中,本示例体现在机器可执行指令中。该指令可以用于使处理设备(例如,用指令编程的通用或专用处理器)执行本文描述的本技术的步骤。可替代地,本文描述的本技术的步骤可以由包含用于执行步骤的硬连线逻辑的特定硬件组件来执行,或者由编程的计算机组件和定制硬件组件的任意组合来执行。例如,本文描述的本技术可以作为计算机程序产品、应用等提供,如下所述。在该环境中,示例可以包括其上存储有指令的机器可读介质。指令可以用于对任何处理器或者多个处理器(或其他电子设备)进行编程,以执行根据本示例性示例的过程或方法。另外,本文描述的本技术还可以下载并存储在计算机程序产品上。这里,程序可以经由通信链路(例如,调制解调器或者网络连接)通过体现在载波或其他传播介质中的数据信号的方式从远程计算机(例如,服务器)传送到请求计算机(例如,客户端),并且最终这些信号可以存储在计算机系统上以便随后执行。
该方法可以以可从计算机可用存储介质或计算机可读存储介质访问的计算机程序产品来实现,该计算机可用存储介质或计算机可读存储介质提供由计算机或任何指令执行系统使用或与其结合使用的程序代码。计算机可用存储介质或计算机可读存储介质可以是能够包含或存储程序以供计算机或指令执行系统、装置或设备使用或与其结合使用的任何装置。应用502可以是被指定用于执行功能、任务、活动等的计算机程序产品。在一些示例中,应用502可以包括一个或多个模块,这些模块典型地是功能性的,使得它们可以使用(多个)指定的输入来生成有用数据或其他输出。
适合于存储和/或执行对应程序代码的数据处理系统可以包括直接或间接耦合到诸如存储器元件之类的计算机化数据存储设备的至少一个处理器。输入/输出(I/O)设备(包括但不限于键盘、显示器、定点设备等)可以耦合到系统。网络适配器也可以耦合到系统,以使数据处理系统能够变得通过中间专用网络或公共网络耦合到其他数据处理系统或远程打印机或存储设备。为了提供与用户的交互,可以在以下设备上实现特征:具有显示设备(例如,LCD(液晶显示器))的计算机,或用于向用户显示信息的另一种类型的监视器,以及键盘和输入设备(例如,鼠标或轨迹球),用户可以通过键盘和输入设备向计算机提供输入。
计算机程序可以是可以直接或间接地在计算机中使用的一组指令。本文描述的系统和方法可以使用以下来实现:诸如FlashTM、JAVATM、C++、C、C#、Python、Visual BasicTM、JavaScriptTM PHP、XML、HTML等的编程语言,或编程语言的组合,包括编译语言或解释语言,并且可以以任何形式布置,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。软件可以包括但不限于固件、驻留软件、微代码等。诸如SOAP/HTTP之类的协议可以用于实现编程模块之间的接口。本文描述的组件和功能可以使用适用于软件开发的任何编程语言在虚拟化或非虚拟化环境中执行的任何桌面操作系统上实现,这些操作系统包括但不限于不同版本的Microsoft WindowsTM、AppleTM MacTM、iOSTM、UniTM/X-WindowsTM、LinuxTM等。可以使用诸如Ruby on Rails之类的web应用框架来实现系统。
用于执行指令程序的合适处理器包括但不限于通用和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器或核中的一个。处理器可以从计算机化数据存储设备接收指令和数据并对其进行存储,该计算机化数据存储设备为例如只读存储器、随机存取存储器、两者或本文描述的数据存储设备的任意组合。处理器可以包括可操作以控制电子设备的操作和性能的任何处理电路或控制电路。
可以使用软件或硬件元件的任意组合来实现本文描述的系统、模块和方法。本文描述的系统、模块和方法可以使用单独操作或彼此组合操作的一个或多个虚拟机来实现。任何适用的虚拟化解决方案可以用于将物理计算机平台封装到虚拟机中,该虚拟机在硬件计算平台或主机上运行的虚拟化软件的控制下执行。虚拟机可以具有虚拟系统硬件和客户操作系统软件两者。
本文描述的系统和方法可以在计算机系统中实现,该计算机系统包括后端组件(例如,数据服务器),或者包括中间件组件(例如,应用服务器或互联网服务器),或者包括前端组件(例如,具有图形用户界面或互联网浏览器的客户端计算机),或其任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)连接。通信网络的示例包括例如LAN、WAN以及形成互联网的计算机和网络。
本文描述的技术的一个或多个示例可以用其他计算机系统配置来实践,包括手持式设备、微处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。本文描述的技术还可以在分布式计算环境中实践,在分布式计算环境中,任务由通过网络链接的远程处理设备执行。
术语“计算机程序介质”和“计算机可读介质”通常可以用于指代这样的介质:例如但不限于可移除存储驱动器、安装在硬盘驱动器中的硬盘。这些计算机程序产品可以向计算机系统提供软件。本文描述的技术可以针对这样的计算机程序产品。
对“一个示例”、“示例”、“各种示例”等的引用可以指示:如此描述的、本文中描述的技术的(多个)示例可以包括特定特征、结构或特性,但是并非每个示例都必须包括该特定特征、结构或特性。此外,重复使用短语“在一个示例中”或“在示例性示例中”不一定指代相同的示例,尽管它们可以指代相同的示例。
在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其衍生物。应该理解的是,这些术语不旨在作为彼此的同义词。而是,在特定示例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可以表示两个或更多个元件直接物理或电接触。然而,“耦合”还可以表示两个或更多个元件彼此不直接接触,但仍然彼此协作或彼此交互。
算法可以在这里并且通常被认为是导致期望结果的动作或操作的自相一致的序列。这些包括对物理量的物理操纵。通常,尽管不是必须的,这些量采用能够被存储、传送、组合、比较和以其他方式操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。然而,应该理解,所有这些术语和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。
除非另有明确说明,否则可以认识到,在整个说明书中,诸如“处理”、“计算”、“运算”、“确定”等的术语是指计算机或者计算系统或类似的电子计算设备的动作和/或过程,其将表示为计算系统的寄存器和/或存储器内的物理量(例如,电子量)的数据操纵和/或转换成类似地表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。
以类似的方式,术语“处理器”可以指代处理来自寄存器和/或存储器的电子数据以将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的一部分。“计算平台”可以包括一个或多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,例如,任务、线程和智能代理。而且,每个进程可以指代多个进程,以用于连续或间歇地顺序或并行执行指令。术语“系统”和“方法”在本文中可互换使用,在系统可以体现一种或多种方法并且该方法可以被视为系统的程度上。
示例过程
图6-8示出了用于利用本文描述的SDL在仿真环境中构造(多个)场景的示例过程。在图1-5的上下文中描述了图6-8,但不限于这种上下文。
图6示出了用于在仿真环境中构造场景的示例过程600。
框602示出了接收限定要在仿真环境中的(多个)场景中实例化的(多个)原语的指令。在至少一个示例中,用户可以使用SDL来限定要在场景中实例化的一个或多个原语。仿真应用504可以接收限定要在场景中实例化的一个或多个原语的指令。如上所述,原语限定了仿真环境的特定方面。原语的非限制性示例包括坐标系、条件、动作、实体、实体行为、噪声、故障等。在至少一个示例中,仿真应用504可以接收关于一个或多个原语的细节。例如,用户可以使用SDL来限定具有特定尺寸、姿势(例如,使用轨道坐标、惯性坐标或语义坐标)的实体,以及通过将实体行为分配给实体来指定实体的特定速度(或速率)。在至少一个示例中,至少一个原语可以被指定为“自主车辆”并且可以与自主控制器506相关联,使得仿真的输出验证将由这种自主控制器控制的自主车辆的行为,如上所述。
框604示出了接收限定序列的指令,该序列限定(多个)原语中的个体之间的关联。如上所述,SDL允许用户例如使用线性时序逻辑来指定某些原语如何彼此相关联。在一个示例中,用户通过指定序列来限定原语之间的关联。在这样的示例中,仿真应用504可以接收限定序列的指令。在至少一个示例中,序列可以包括多个步骤,这些步骤将由仿真应用504按顺序执行。在至少一个示例中,序列可以包括另一序列,使得序列中的一个步骤是另一序列。
框606示出了在环境内将序列实例化以生成场景。在至少一个示例中,仿真应用504可以包括可由一个或多个处理器(例如,(多个)处理器570)执行的指令,以在环境内将序列实例化以便生成场景。如上所述,在一些示例中,环境可以是地图。地图可以是二维或三维的。二维地图和/或三维地图可以是能够提供关于环境的信息的任何数量的数据结构,例如但不限于拓扑(例如,十字路口)、街道、山脉、道路、地形和一般环境。可以至少部分地基于在地图内将序列实例化的仿真应用504来生成场景。
框608示出了确定与场景相关联的信息。至少部分地基于在地图内将序列实例化,可以基于在给定在仿真环境中创建的场景的情况下自主控制器506如何响应来获知各种信息。如上所述,自主控制器506可以对应于同样在自主车辆上运行的软件。至少部分地基于在地图内将序列实例化,可以获知关于自主控制器506如何响应以验证自主控制器506能够安全地控制这种自主车辆的信息。在附加和/或替代示例中,至少部分地基于在地图内将序列实例化,可以获得关于基于自主控制器506运行的自主车辆的约束的信息。例如,至少部分地基于在地图内将序列实例化,仿真可以用于考虑到地面条件、环境噪声、故障组件等而了解自主车辆的操作空间。或者,信息也可用于生成反馈,以改进自主车辆的操作和设计。例如,在一些示例中,至少部分地基于在地图内将序列实例化,可以获知信息以用于确定自主控制器506中所要求的冗余量,或者如何基于获知的内容修改自主控制器506的行为。
图7示出了用于通过组合性地组合如由用户使用场景描述语言限定的原语来生成多个场景的示例过程700。
框702示出了接收限定原语的可能组合的子集的指令。如上所述,外积接受任意数量的命名参量,这些命名参量限定用于生成测试场景的组合值。每个命名参量可以对应于一个变量。在一些示例中,变量可以与原语相关联。也就是说,原语可以与可以改变以生成不同场景的某个方面相关联。在至少一个示例中,每个命名参量接收针对对应变量的可能值列表。在至少一个示例中,用户可以限定命名参量和每个命名参量的可能值。上面参考等式1示出了由用户限定的外积的非限制性示例。仿真应用504可以接收命名参量和每个命名参量的可能值。
框704示出了创建原语的每个组合的排列。仿真应用504可以分配迭代变量,该迭代变量保持针对值的每个组合的已分配参数。也就是说,仿真应用504可以生成与原语相关联的可能值的组合的排列。上面参考表1示出了由外积产生的排列的非限制性示例。
框706示出了在环境内将排列中的每个排列实例化,每个排列对应于场景。在至少一个示例中,仿真应用504可以包括可由一个或多个处理器(例如,(多个)处理器570)执行以考虑到外积而在环境内将序列实例化以便生成多个场景的指令。如上所述,在一些示例中,环境可以是地图。每个排列可以生成不同的场景。也就是说,至少部分地基于仿真应用504考虑到可能值的各种排列而在地图内将序列实例化,可以生成多个场景。然后,每次迭代可以与更具体的场景相关联。
框708示出了确定每个场景的结果。在至少一个示例中,仿真应用504可以输出每个场景以供在仿真中用于测试和验证。如上所述,至少部分地基于在地图内将排列实例化,可以基于在给定在仿真环境中创建的场景的情况下自主控制器506如何响应来获知各种信息。在至少一个示例中,仿真应用504可以访问指示自主控制器506如何执行(即,响应)的数据,并且可以将数据与预定结果(例如,(多个)结果124a-124n)进行比较。至少部分地基于确定自主控制器506与预定结果一致地执行(即,自主控制器506完成它应该做的所有事情),仿真应用504可以确定自主控制器成功。至少部分地基于确定自主控制器506与预定结果不一致地执行(即,自主控制器506做了它不应该做的事情),仿真应用504可以确定自主控制器失败。因此,至少部分地基于在地图内将排列实例化,可以获知关于自主控制器506如何响应每个场景的信息,如上所述。
图8示出了用于确定提供有用信息的场景并过滤掉不提供有用信息的其他场景的示例过程800。
框802示出了确定两个或更多个排列与相同、类似或实质上类似的结果相关联。至少部分地基于在环境内将排列实例化,如上面参考图7所述,可以基于在给定在仿真环境中创建的场景(或多个场景)的情况下自主控制器506如何响应来获知各种信息。在至少一个示例中,仿真应用504可以访问指示自主控制器506如何执行的数据,并且可以将数据与预定结果(例如,(多个)结果124a-124n)进行比较。至少部分地基于确定自主控制器506与预定结果一致地执行(即,自主控制器506完成它应该做的所有事情),仿真应用504可以确定自主控制器成功。至少部分地基于确定自主控制器506与预定结果不一致地执行(即,自主控制器506做了它不应该做的事情),仿真应用504可以确定自主控制器失败。
在至少一个示例中,仿真应用504可以确定:与自主控制器506在排列中的两个或更多个排列的实例化中如何执行相关联的数据指示排列中的两个或更多个排列与相同的结果相关联。也就是说,仿真应用504可以确定排列中的两个或更多个排列与成功结果或失败结果相关联。在附加和/或替代示例中,仿真应用504可以确定排列中的两个或更多个排列与某个其他共享结果(例如,置信水平、推荐等)相关联。
框804示出了确定两个或更多个排列是冗余的。至少部分地基于仿真应用504确定排列中的两个或更多个排列与相同结果相关联,仿真应用504可以确定该两个或更多个排列是冗余的。也就是说,在至少一个示例中,仿真应用504可以确定排列中的两个或更多个排列与增量差异相关联,该增量差异提供与自主控制器506在(多个)场景中进行响应的能力有关的边际(如果有的话)附加有用信息。
框806示出了在将来的实例化中将该两个或更多个排列中的一个排列实例化,而不是将该两个或更多个排列实例化。至少部分地基于仿真应用504确定排列中的两个或更多个排列是冗余的,仿真应用504可以过滤掉该两个或更多个排列中的一个或多个排列。也就是说,仿真应用504可以识别该两个或更多个排列的代表性排列。因此,在将来的实例化中,可以将代表性排列实例化,而不是将该两个或更多个排列中的每一个排列实例化。因此,仿真应用可以通过优化提供用于验证和测试的有用信息的特定场景来将被确定为提供有用信息的场景实例化,以降低计算复杂度、存储器需求和处理时间。
示例条款
A、一种用于生成仿真环境中的场景的计算机实现的方法,该计算机实现的方法包括:接收限定要在场景中被实例化的至少第一原语的指令,第一原语对应于自主车辆;接收与要被分配给第一原语的一个或多个值相关联的指令;至少部分地基于一个或多个值来创建第一原语的排列的集合,每个排列与一个或多个值中的不同值相关联;在地图内将排列中的每个排列实例化以生成场景,每个场景对应于排列的集合中的排列;以及确定与场景中的场景相关联的信息,该信息描述在给定在仿真环境中创建的场景的情况下与自主车辆相关联的自主控制器如何响应。
B、如段落A引述的计算机实现的方法,其中,第一原语与具有限定尺寸集合的主体、姿势或网格中的一个或多个相关联,以在仿真环境中渲染第一原语。
C、如段落B引述的计算机实现的方法,其中,姿势是由惯性坐标系、基于地图的坐标系或基于轨道的坐标系限定的。
D、如段落B或C引述的计算机实现的方法,其中,第一原语与指示第一原语在场景中将如何表现的实体行为相关联。
E、如段落A-D中任一项引述的计算机实现的方法,其中,指令还包括限定第一原语与至少第二原语之间的关联的序列,序列包括按顺序执行的多个步骤。
F、如段落E引述的计算机实现的方法,其中,第二原语对应于第二实体。
G、如段落F引述的计算机实现的方法,其中,第二实体是静态实体或动态实体。
H、如段落E-G中任一项引述的计算机实现的方法,其中,第二原语对应于条件、动作、故障或噪声。
I、一种或多种编码有指令的计算机可读介质,该指令当由处理器执行时,配置计算机以执行如段落A-H中任一项的方法。
J、一种设备,包括一个或多个处理器和编码有指令的一种或多种计算机可读介质,该指令当由一个或多个处理器执行时,配置计算机以执行如段落A-H中任一项引述的计算机实现的方法。
K、一种用于生成仿真环境中的场景的计算机实现的方法,该计算机实现的方法包括:用于接收限定要在场景中被实例化的至少第一原语的指令的单元,第一原语对应于自主车辆;用于接收与要被分配给第一原语的一个或多个值相关联的指令的单元;用于至少部分地基于一个或多个值来创建第一原语的排列的集合的单元,每个排列与一个或多个值中的不同值相关联;用于在地图内将排列中的每个排列实例化以生成场景的单元,每个场景对应于排列的集合中的排列;以及用于确定与场景中的场景相关联的信息的单元,该信息描述在给定在仿真环境中创建的场景的情况下与自主车辆相关联的自主控制器如何响应。
L、如段落K引述的计算机实现的方法,其中,第一原语与具有限定尺寸集合的主体、姿势或网格中的一个或多个相关联,以在仿真环境中渲染第一原语。
M、如段落L引述的计算机实现的方法,其中,姿势是由惯性坐标系、基于地图的坐标系或基于轨道的坐标系限定的。
N、如段落L或M引述的计算机实现的方法,其中,第一原语与指示第一原语在场景中将如何表现的实体行为相关联。
O、如段落K-N中任一项引述的计算机实现的方法,其中,指令还包括限定第一原语与至少第二原语之间的关联的序列,序列包括按顺序执行的多个步骤。
P、如段落O引述的计算机实现的方法,其中,第二原语对应于第二实体。
Q、如段落P引述的计算机实现的方法,其中,第二实体是静态实体或动态实体。
R、如段落O-Q中任一项引述的计算机实现的方法,其中,第二原语对应于条件、动作、故障或噪声。
S、一种用于生成仿真环境中的场景的系统,该系统包括:一个或多个处理器;存储可由一个或多个处理器执行的指令的一种或多种非暂时性计算机可读介质,其中,指令对一个或多个处理器进行编程以执行动作,该动作包括:接收限定要在仿真环境中的至少一个场景中被实例化的原语的集合的指令;接收限定原语的集合中的个体原语之间的关联的第一序列;在仿真环境内将第一序列实例化以生成第一场景;以及确定与第一场景相关联的信息,该信息描述在给定在仿真环境中创建的至少一个场景的情况下自主控制器如何响应。
T、如段落S引述的系统,其中,第一序列包括至少一个子序列。
U、如段落S或T引述的系统,其中,第一序列是使用线性时序逻辑来限定的。
V、如段落S-U中任一项引述的系统,其中,该动作还包括:接收与第一序列相关联的外积,外积包括两个或更多个变量以及与两个或更多个变量中的每个变量相关联的两个或更多个可能值,两个或更多个变量中的每个变量与原语的集合中的原语相关联;创建排列的集合,排列的集合包括与两个或更多个变量中的每个变量相关联的两个或更多个可能值的每个可能组合;在仿真环境内将排列的集合中的每个排列实例化,每个排列对应于新场景;以及确定每个新场景的结果,结果是成功的或失败的。
W、如段落S-V中任一项引述的系统,其中,该动作还包括:接收限定原语的集合中的个体原语之间的不同关联的第二序列;以及在仿真环境内将第二序列实例化以生成第二场景。
X、如段落W引述的系统,其中,该动作还包括实质上同时将第一序列和第二序列实例化。
Y、如段落S-X中任一项引述的系统,其中,确定与第一场景相关联的信息包括:验证在给定在仿真环境中创建的至少一个场景的情况下自主控制器如何响应。
Z、如段落S-Y中任一项引述的系统,其中,确定与第一场景相关联的信息包括:确定在给定在仿真环境中创建的至少一个场景的情况下自主控制器的操作空间。
AA、如段落S-Z中任一项引述的系统,其中,确定与第一场景相关联的信息包括:考虑到在给定在仿真环境中创建的至少一个场景的情况下自主控制器如何响应,生成用于改进自主控制器的操作或设计中的至少一个的反馈。
AB、一种具有一组指令的非暂时性计算机可读介质,指令在被执行时,使一个或多个处理器执行操作,该操作包括:作为用于生成至少一个仿真场景的序列的一部分,接收原语的可能组合的子集;创建排列的集合,每个排列包括来自原语的可能组合的子集的原语的一个可能组合;在地图内将排列的集合中的每个排列实例化,每个排列对应于仿真场景;以及确定每个仿真场景的结果,结果是成功的或失败的。
AC、如段落AB引述的非暂时性计算机可读介质,该操作还包括:确定排列的集合中的两个或更多个排列与相同结果相关联;确定两个或更多个排列是冗余的;以及在将来的实例化中仅将两个或更多个排列中的一个排列实例化,而不是将两个或更多个排列中的每个排列实例化。
AD、如段落AB或者AC引述的非暂时性计算机可读介质,其中,在地图内将原语的每个排列实例化是实质上同时且并行地执行的。
结论
虽然已经描述了本文描述的技术的一个或多个示例,但是各种更改、添加、排列及其等同物包括在本文描述的技术的范围内。
在示例的描述中,参考形成其一部分的附图,附图通过图示的方式示出了所要求保护的主题的特定示例。应当理解,可以使用其他示例,并且可以进行改变或更改,例如,结构改变。这些示例、改变或更改不一定脱离关于旨在要求保护的主题的范围。尽管本文的步骤可以以特定次序呈现,但是在一些情况下,可以改变排序,使得在不改变所描述的系统和方法的功能的情况下,在不同时间或以不同次序提供特定输入。所公开的过程也可以以不同的次序执行。另外,本文中的各种计算不一定需要以所公开的次序执行,并且可以容易地实现使用计算的替代排序的其他示例。除了重新排序之外,计算还可以分解为具有相同结果的子计算。

Claims (60)

1.一种用于生成仿真环境中的场景的计算机实现的方法,所述计算机实现的方法包括:
接收限定要在所述场景中被实例化的至少第一原语的指令,所述第一原语对应于自主车辆;
接收与要被分配给所述第一原语的一个或多个值相关联的指令;
至少部分地基于所述一个或多个值来创建所述第一原语的排列的集合,每个排列与所述一个或多个值中的不同值相关联;
在地图内将所述排列的集合中的每个排列实例化以生成多个场景,所述多个场景中的每个场景对应于所述排列的集合中的排列;以及
确定与所述多个场景中的各个场景相关联的信息,所述信息描述在给定在所述仿真环境中创建的所述场景的情况下与所述自主车辆相关联的自主控制器如何响应。
2.根据权利要求1所述的计算机实现的方法,其中,所述第一原语与具有限定尺寸集合的主体、姿势或网格中的一个或多个相关联,以在所述仿真环境中渲染所述第一原语。
3.根据权利要求2所述的计算机实现的方法,其中,所述姿势是由惯性坐标系、基于地图的坐标系或基于轨道的坐标系限定的。
4.根据权利要求2所述的计算机实现的方法,其中,所述第一原语与指示所述第一原语在所述场景中将如何表现的实体行为相关联。
5.根据权利要求1所述的计算机实现的方法,进一步包括接收指令以执行限定所述第一原语与至少第二原语之间的关联的序列,所述序列包括按顺序执行的多个步骤。
6.根据权利要求5所述的计算机实现的方法,其中,所述第二原语对应于第二实体。
7.根据权利要求6所述的计算机实现的方法,其中,所述第二实体是静态实体或动态实体。
8.根据权利要求5所述的计算机实现的方法,其中,所述第二原语对应于条件、动作、故障或噪声。
9.一种用于生成仿真环境中的场景的系统,所述系统包括:
一个或多个处理器;
存储可由所述一个或多个处理器执行的指令的一种或多种非暂时性计算机可读介质,其中,所述指令对所述一个或多个处理器进行编程以执行动作,所述动作包括:
接收限定要在所述仿真环境中的至少一个场景中被实例化的原语的集合的指令;
接收限定所述原语的集合中的个体原语之间的关联的第一序列;
在所述仿真环境内将所述第一序列实例化以生成第一场景;以及
确定与所述第一场景相关联的信息,所述信息描述在给定在所述仿真环境中创建的所述至少一个场景的情况下自主控制器如何响应。
10.根据权利要求9所述的系统,其中,所述第一序列包括至少一个子序列。
11.根据权利要求9所述的系统,其中,所述第一序列是使用线性时序逻辑来限定的。
12.根据权利要求9所述的系统,其中,所述动作还包括:
接收与所述第一序列相关联的外积,所述外积包括两个或更多个变量以及与所述两个或更多个变量中的每个变量相关联的两个或更多个可能值,所述两个或更多个变量中的每个变量与所述原语的集合中的原语相关联;
创建排列的集合,所述排列的集合包括与所述两个或更多个变量中的每个变量相关联的所述两个或更多个可能值的每个可能组合;
在所述仿真环境内将所述排列的集合中的每个排列实例化,每个排列对应于新场景;以及
确定每个新场景的结果,所述结果用于在给定在所述仿真环境中创建的所述新场景的情况下确定自主控制器是否与所述结果一致地响应或者与所述结果不一致地响应。
13.根据权利要求9所述的系统,其中,所述动作还包括:
接收限定所述原语的集合中的个体原语之间的不同关联的第二序列;以及
在所述仿真环境内将所述第二序列实例化以生成第二场景。
14.根据权利要求13所述的系统,其中,所述动作还包括同时将所述第一序列和所述第二序列实例化。
15.根据权利要求9所述的系统,其中,确定与所述第一场景相关联的信息包括:验证在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器如何响应。
16.根据权利要求9所述的系统,其中,确定与所述第一场景相关联的信息包括:确定在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器的操作空间。
17.根据权利要求9所述的系统,其中,确定与所述第一场景相关联的信息包括:考虑到在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器如何响应,生成用于改进所述自主控制器的操作或设计中的至少一个的反馈。
18.一种具有一组指令的非暂时性计算机可读介质,所述指令在被执行时,使一个或多个处理器执行操作,所述操作包括:
作为用于生成至少一个仿真场景的序列的一部分,接收原语的可能组合的子集;
创建排列的集合,每个排列包括来自所述原语的可能组合的子集的原语的一个可能组合;
在地图内将所述排列的集合中的每个排列实例化,每个排列对应于仿真场景;以及
确定每个仿真场景的结果,所述结果用于在给定在所述地图中创建的仿真场景的情况下确定自主控制器是否与所述结果一致地响应或者与所述结果不一致地响应。
19.根据权利要求18所述的非暂时性计算机可读介质,所述操作还包括:
确定所述排列的集合中的两个或更多个排列与相同结果相关联;
确定所述两个或更多个排列是冗余的;以及
在将来的实例化中仅将所述两个或更多个排列中的一个排列实例化,而不是将所述两个或更多个排列中的每个排列实例化。
20.根据权利要求18所述的非暂时性计算机可读介质,其中,在所述地图内将所述原语的每个排列实例化是同时且并行地执行的。
21.一种用于生成仿真环境中的场景的计算机实现的方法,所述计算机实现的方法包括:
接收限定要在所述场景中被实例化的至少第一原语的第一指令,所述第一原语对应于自主车辆;
接收与要被分配给所述第一原语的一个或多个值相关联的第二指令;
至少部分地基于所述一个或多个值来创建所述第一原语的排列的集合,所述排列的集合中的每个排列与所述一个或多个值中的不同值相关联;
至少部分地基于指示地图拓扑的语义坐标在所述地图拓扑内将所述排列中的每个排列实例化以生成场景的集合,所述场景的集合中的每个场景对应于所述排列的集合中的排列,并且所述地图拓扑包括十字路口;
接收限定在第一时间的与所述第一原语相关联的第一条件或第一行为中的至少一个以及在第二时间的与所述第一原语相关联的第二条件或第二行为中的至少一个的序列指令;以及
至少部分地基于执行所述序列指令的至少一部分来确定与所述场景的集合中的个体场景相关联的信息,所述信息描述在给定在所述仿真环境中生成的所述个体场景的情况下与所述自主车辆相关联的自主控制器如何响应。
22.根据权利要求21所述的计算机实现的方法,其中,所述第一原语与具有限定尺寸集合的主体、姿势或网格中的一个或多个相关联,以在所述仿真环境中渲染所述第一原语。
23.根据权利要求22所述的计算机实现的方法,其中,所述姿势是由惯性坐标系、基于地图的坐标系或基于轨道的坐标系限定的。
24.根据权利要求22所述的计算机实现的方法,其中,所述第一原语与指示所述第一原语在所述场景中将如何表现的实体行为相关联。
25.根据权利要求21所述的计算机实现的方法,其中,所述第二指令还包括限定所述第一原语与至少第二原语之间的关联的序列,所述序列包括按顺序执行的多个步骤。
26.根据权利要求25所述的计算机实现的方法,其中,所述第二原语对应于第二实体。
27.根据权利要求26所述的计算机实现的方法,其中,所述第二实体是静态实体或动态实体。
28.根据权利要求25所述的计算机实现的方法,其中,所述第二原语对应于第三条件、动作、故障或噪声。
29.一种用于生成仿真环境中的场景的系统,所述系统包括:
一个或多个处理器;
存储可由所述一个或多个处理器执行的指令的一种或多种非暂时性计算机可读介质,其中,所述指令对所述一个或多个处理器进行编程以执行动作,所述动作包括:
接收限定要至少部分地基于指示地图拓扑的语义坐标在所述仿真环境中的至少一个场景中被实例化的原语的集合的第一指令,所述地图拓扑包括十字路口;
接收限定所述原语的集合中的个体原语之间的关联的第一序列;
在所述仿真环境内将所述第一序列实例化以生成第一场景;以及
确定与所述第一场景相关联的信息,所述信息描述在给定在所述仿真环境中创建的所述至少一个场景的情况下自主控制器如何响应;
其中,所述第一场景至少部分地基于等待条件、跟随条件、速度条件、之间的距离或附近条件或在区域中条件中的一个或多个,并且
其中,确定与所述第一场景相关联的所述信息包括确定所述原语的集合中的第一原语是否根据所述第一序列做出响应。
30.根据权利要求29所述的系统,其中,所述第一序列包括至少一个子序列。
31.根据权利要求29所述的系统,其中,所述第一序列是使用线性时序逻辑来限定的。
32.根据权利要求29所述的系统,其中,所述动作还包括:
接收与所述第一序列相关联的外积,所述外积包括两个或更多个变量以及与所述两个或更多个变量中的每个变量相关联的两个或更多个可能值,所述两个或更多个变量中的每个变量与所述原语的集合中的原语相关联;
创建排列的集合,所述排列的集合包括与所述两个或更多个变量中的每个变量相关联的所述两个或更多个可能值的每个可能组合;
在所述仿真环境内将所述排列的集合中的每个排列实例化,每个排列对应于新场景;以及
确定每个新场景的结果,所述结果用于在给定在所述仿真环境中创建的所述新场景的情况下确定自主控制器是否与所述结果一致地响应或者与所述结果不一致地响应。
33.根据权利要求29所述的系统,其中,所述动作还包括:
接收限定所述原语的集合中的所述个体原语之间的不同关联的第二序列;以及
在所述仿真环境内将所述第二序列实例化以生成第二场景。
34.根据权利要求33所述的系统,其中,所述动作还包括并行地将所述第一序列和所述第二序列实例化。
35.根据权利要求29所述的系统,其中,确定与所述第一场景相关联的所述信息包括:验证在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器如何响应。
36.根据权利要求29所述的系统,其中,确定与所述第一场景相关联的所述信息包括:确定在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器的操作空间。
37.根据权利要求29所述的系统,其中,确定与所述第一场景相关联的所述信息包括:考虑到在给定在所述仿真环境中创建的所述至少一个场景的情况下所述自主控制器如何响应,生成用于改进所述自主控制器的操作或设计中的至少一个的反馈。
38.一种具有一组指令的非暂时性计算机可读介质,所述指令在被执行时,使一个或多个处理器执行操作,所述操作包括:
作为用于生成至少一个仿真场景的序列的一部分,接收原语的可能组合的子集;
接收限定所述原语中的要在所述至少一个仿真场景中被实例化的至少第一原语的第一指令;
创建排列的集合,每个排列包括来自所述原语的可能组合的子集的所述原语的一个可能组合;
至少部分地基于指示地图拓扑的语义坐标在地图内将所述排列的集合中的每个排列实例化,每个排列对应于所述至少一个仿真场景中的仿真场景,并且所述地图拓扑包括十字路口;
接收限定在第一时间的与所述第一原语相关联的第一条件或第一行为中的至少一个以及在第二时间的与所述第一原语相关联的第二条件或第二行为中的至少一个的序列指令;以及
至少部分地基于执行所述序列指令的至少一部分来确定所述至少一个仿真场景中的每个仿真场景的结果,所述结果用于在给定在所述地图中创建的所述仿真场景的情况下确定自主控制器是否与所述结果一致地响应或者与所述结果不一致地响应。
39.根据权利要求38所述的非暂时性计算机可读介质,所述操作还包括:
确定所述排列的集合中的两个或更多个排列与相同结果相关联;
确定所述两个或更多个排列是冗余的;以及
在将来的实例化中仅将所述两个或更多个排列中的一个排列实例化,而不是将所述两个或更多个排列中的每个排列实例化。
40.根据权利要求38所述的非暂时性计算机可读介质,其中,在所述地图内将所述原语的每个排列实例化是并行地执行的。
41.一种用于在仿真环境下生成场景的方法,包括:
接收表示要被包括在场景中的对象、对象行为、条件或动作中的至少一个的值的集合;
至少部分地基于所述值的集合来确定值的组合;
接收与地图中的所述对象相关联的语义坐标;
至少部分地基于所述值的组合和所述语义坐标来生成用于执行的所述场景;以及
至少部分地基于执行所述场景来确定指示自主控制器对所述场景的响应的结果数据。
42.根据权利要求41所述的方法,其中,所述对象与包括限定尺寸的主体、姿势或网格中的至少一个相关联,以在所述场景中渲染所述对象。
43.根据权利要求41所述的方法,其中,所述场景表示所述对象与所述地图之间的交互。
44.根据权利要求41所述的方法,其中,与所述地图中的所述对象相关联的所述语义坐标指示道路十字路口的类型。
45.根据权利要求41所述的方法,还包括限定要在所述场景的执行期间在所述对象与条件、动作、故障或噪声中的至少一个之间按顺序执行的多个步骤的序列。
46.根据权利要求45所述的方法,其中,所述序列至少部分地基于线性时间逻辑,并且
其中,所述结果数据至少部分地基于对所述线性时间逻辑的评估。
47.根据权利要求41所述的方法,其中,所述对象包括静态对象或动态对象。
48.根据权利要求41所述的方法,其中,所述场景包括第一场景,并且所述值的组合包括与所述第一场景相关联的值的第一组合和与第二场景相关联的值的第二组合,所述方法还包括:
确定所述值的第一组合和所述值的第二组合是否与相同的结果数据相关联;并且执行以下中的至少一项:
当所述值的第一组合和所述值的第二组合与所述相同的结果数据相关联时,仅执行所述第一场景或所述第二场景中的一个;或者
当所述值的第一组合和所述值的第二组合不与所述相同的结果数据相关联时,执行所述第一场景和所述第二场景。
49.一种非暂时性计算机可读介质,其存储可由一个或多个处理器执行的指令,其中,所述指令在被执行时使所述一个或多个处理器执行操作,所述操作包括:
接收表示要被包括在场景中的对象、对象行为、第一条件或第一动作中的至少一个的值的集合;
至少部分基于线性时间逻辑来限定要在所述场景的执行期间在所述对象与第二条件、第二动作、故障或噪声中的至少一个之间按顺序执行的多个步骤的序列;
至少部分地基于所述值的集合和所述序列来生成用于执行的所述场景;以及
至少部分地基于执行所述场景来确定指示自主控制器对所述场景的响应的结果数据。
50.根据权利要求49所述的非暂时性计算机可读介质,其中,所述对象与包括限定尺寸的主体、姿势或网格中的至少一个相关联,以在所述场景中渲染所述对象。
51.根据权利要求50所述的非暂时性计算机可读介质,其中,所述姿势至少部分地基于惯性坐标系、基于地图的坐标系或基于轨道的坐标系中的至少一个。
52.根据权利要求49所述的非暂时性计算机可读介质,其中,所述结果数据至少部分地基于对所述线性时间逻辑进行评估。
53.根据权利要求49所述的非暂时性计算机可读介质,其中,所述场景表示所述对象与地图之间的交互。
54.根据权利要求49所述的非暂时性计算机可读介质,其中,所述对象包括静态对象或动态对象。
55.根据权利要求49所述的非暂时性计算机可读介质,还包括:接收与地图中的所述对象相关联的语义坐标,并且其中,生成用于执行的所述场景还至少部分地基于所述语义坐标。
56.一种用于在仿真环境下生成场景的系统,包括:
一个或多个处理器;以及
存储可由所述一个或多个处理器执行的指令的一种或多种非暂时性计算机可读介质,其中,所述指令对所述一个或多个处理器进行编程以执行操作,所述操作包括:
接收表示要被包括在场景中的对象、对象行为、第一条件或第一动作的值的集合;
至少部分地基于线性时间逻辑来限定要在所述场景的执行期间在所述对象与第二条件、第二动作、故障或噪声中的至少一个之间按顺序执行的多个步骤的序列;
接收与地图中的所述对象相关联的语义坐标,所述语义坐标指示地图地形;
至少部分地基于所述值的集合、所述序列和所述语义坐标来生成用于执行的所述场景;以及
至少部分地基于执行所述场景来确定指示自主控制器对所述场景的响应的结果数据。
57.根据权利要求56所述的系统,其中,所述对象与包括限定尺寸的主体、姿势或网格中的至少一个相关联,以在所述场景中渲染所述对象。
58.根据权利要求56所述的系统,其中,所述结果数据至少部分地基于对所述线性时间逻辑的评估。
59.根据权利要求56所述的系统,其中,所述语义坐标包括道路十字路口的类型。
60.根据权利要求56所述的系统,其中,确定指示所述自主控制器如何响应所述场景的所述结果数据包括在给定所述场景的情况下确定所述自主控制器的操作空间。
CN201780075678.8A 2016-10-14 2017-10-12 用于自主车辆仿真的方法、系统及计算机可读介质 Active CN110073352B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662408641P 2016-10-14 2016-10-14
US62/408,641 2016-10-14
US15/405,649 US10489529B2 (en) 2016-10-14 2017-01-13 Scenario description language
US15/405,649 2017-01-13
PCT/US2017/056398 WO2018071708A1 (en) 2016-10-14 2017-10-12 Scenario description language for autonomous vehicle simulation

Publications (2)

Publication Number Publication Date
CN110073352A CN110073352A (zh) 2019-07-30
CN110073352B true CN110073352B (zh) 2023-07-14

Family

ID=61903894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780075678.8A Active CN110073352B (zh) 2016-10-14 2017-10-12 用于自主车辆仿真的方法、系统及计算机可读介质

Country Status (5)

Country Link
US (2) US10489529B2 (zh)
EP (1) EP3526698A1 (zh)
JP (2) JP7111702B2 (zh)
CN (1) CN110073352B (zh)
WO (1) WO2018071708A1 (zh)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489529B2 (en) 2016-10-14 2019-11-26 Zoox, Inc. Scenario description language
US10942525B2 (en) 2017-05-09 2021-03-09 Uatc, Llc Navigational constraints for autonomous vehicles
US10762447B2 (en) 2017-05-23 2020-09-01 Uatc, Llc Vehicle selection for on-demand transportation services
US10262471B2 (en) 2017-05-23 2019-04-16 Uber Technologies, Inc. Autonomous vehicle degradation level monitoring
US10489721B2 (en) 2017-05-23 2019-11-26 Uatc, Llc Path segment risk regression system for on-demand transportation services
US10884902B2 (en) * 2017-05-23 2021-01-05 Uatc, Llc Software version verification for autonomous vehicles
US11282009B2 (en) 2017-05-23 2022-03-22 Uatc, Llc Fleet utilization efficiency for on-demand transportation services
US10697789B2 (en) 2017-05-23 2020-06-30 Uatc, Llc Individualized risk routing for human drivers
US10789835B2 (en) 2017-05-23 2020-09-29 Uatc, Llc Fractional risk performance evaluation for autonomous vehicles
US11282016B2 (en) 2017-05-23 2022-03-22 Uatc, Llc Individualized risk vehicle matching for an on-demand transportation service
US11288612B2 (en) 2017-05-23 2022-03-29 Uatc, Llc Generalized risk routing for human drivers
US10501091B2 (en) 2017-05-23 2019-12-10 Uber Technologies, Inc. Software version and mode switching for autonomous vehicles
US11080806B2 (en) 2017-05-23 2021-08-03 Uber Technologies, Inc. Non-trip risk matching and routing for on-demand transportation services
US10831202B1 (en) 2017-09-01 2020-11-10 Zoox, Inc. Onboard use of scenario description language
US10599546B1 (en) * 2017-10-25 2020-03-24 Uatc, Llc Autonomous vehicle testing systems and methods
US10831636B2 (en) 2018-01-08 2020-11-10 Waymo Llc Software validation for autonomous vehicles
CN110462543B (zh) * 2018-03-08 2022-09-30 百度时代网络技术(北京)有限公司 用于评估自动驾驶车辆的感知要求的基于仿真的方法
US11954651B2 (en) * 2018-03-19 2024-04-09 Toyota Jidosha Kabushiki Kaisha Sensor-based digital twin system for vehicular analysis
US11086318B1 (en) 2018-03-21 2021-08-10 Uatc, Llc Systems and methods for a scenario tagger for autonomous vehicles
WO2019183609A1 (en) 2018-03-23 2019-09-26 NetraDyne, Inc. Traffic boundary mapping
US11561541B2 (en) 2018-04-09 2023-01-24 SafeAI, Inc. Dynamically controlling sensor behavior
US11467590B2 (en) 2018-04-09 2022-10-11 SafeAI, Inc. Techniques for considering uncertainty in use of artificial intelligence models
US11625036B2 (en) 2018-04-09 2023-04-11 SafeAl, Inc. User interface for presenting decisions
US11169536B2 (en) 2018-04-09 2021-11-09 SafeAI, Inc. Analysis of scenarios for controlling vehicle operations
US11287816B2 (en) 2018-06-11 2022-03-29 Uatc, Llc Navigational constraints for autonomous vehicles
US10795804B1 (en) 2018-08-21 2020-10-06 Waymo Llc Collision evaluation for log-based simulations
US11030364B2 (en) * 2018-09-12 2021-06-08 Ford Global Technologies, Llc Evaluating autonomous vehicle algorithms
CN109408984B (zh) * 2018-11-01 2022-10-11 西北工业大学 一种cps场景建模方法及装置
CN111177878B (zh) * 2018-11-09 2023-06-27 百度在线网络技术(北京)有限公司 衍生仿真场景筛选方法、装置和终端
US11814059B1 (en) * 2019-04-05 2023-11-14 Zoox, Inc. Simulating autonomous driving using map data and driving data
US20200409369A1 (en) * 2019-06-25 2020-12-31 Uatc, Llc System and Methods for Autonomous Vehicle Testing
CN110597086B (zh) * 2019-08-19 2023-01-13 深圳元戎启行科技有限公司 仿真场景生成方法、无人驾驶系统测试方法以及装置
EP3832548A1 (en) * 2019-12-06 2021-06-09 Universität Stuttgart Method for testing and testing device
US11999366B2 (en) 2019-12-17 2024-06-04 Foretellix Ltd. System and methods thereof for monitoring proper behavior of an autonomous vehicle
CN111324945B (zh) 2020-01-20 2023-09-26 阿波罗智能技术(北京)有限公司 传感器方案确定方法、装置、设备及存储介质
CN111290381A (zh) * 2020-02-10 2020-06-16 深圳前海微众银行股份有限公司 基于无人车的联邦学习实验系统
US11429107B2 (en) 2020-02-21 2022-08-30 Argo AI, LLC Play-forward planning and control system for an autonomous vehicle
US11643105B2 (en) 2020-02-21 2023-05-09 Argo AI, LLC Systems and methods for generating simulation scenario definitions for an autonomous vehicle system
CN111524237B (zh) * 2020-04-23 2022-11-04 九江精密测试技术研究所 一种用于汽车模拟器中的汽车与地形交互仿真方法
CN111797000B (zh) * 2020-05-27 2024-06-21 中汽数据有限公司 一种基于梯度提升决策树模型的场景复杂度评估方法
CN111680362B (zh) * 2020-05-29 2023-08-11 北京百度网讯科技有限公司 一种自动驾驶仿真场景获取方法、装置、设备及存储介质
CN112036001B (zh) * 2020-07-01 2024-04-23 长安大学 自动驾驶测试场景构建方法、装置、设备及可读存储介质
CN111870949B (zh) * 2020-07-31 2024-06-04 深圳市腾讯网域计算机网络有限公司 游戏场景中的对象处理方法、装置及电子设备
US11648959B2 (en) 2020-10-20 2023-05-16 Argo AI, LLC In-vehicle operation of simulation scenarios during autonomous vehicle runs
KR102412539B1 (ko) * 2020-11-16 2022-06-23 (주)이노시뮬레이션 자율주행 분산 시뮬레이션 동기 제어 방법
CN112464462B (zh) * 2020-11-20 2021-10-01 北京赛目科技有限公司 一种仿真运行数据的处理方法及装置
US20220197280A1 (en) * 2020-12-22 2022-06-23 Uatc, Llc Systems and Methods for Error Sourcing in Autonomous Vehicle Simulation
US12019449B2 (en) 2021-02-18 2024-06-25 Argo AI, LLC Rare event simulation in autonomous vehicle motion planning
WO2022180901A1 (ja) * 2021-02-24 2022-09-01 日立Astemo株式会社 シミュレーション方法及び装置
CN113221359B (zh) * 2021-05-13 2024-03-01 京东鲲鹏(江苏)科技有限公司 一种仿真场景生成方法、装置、设备及存储介质
CN113177266B (zh) * 2021-05-21 2024-08-30 深圳安途智行科技有限公司 仿真方法、仿真计算机设备及计算机可读存储介质
CN113419850B (zh) * 2021-06-11 2022-07-19 中国人民解放军军事科学院国防科技创新研究院 一种实体的并行仿真方法、装置、电子设备及存储介质
CN113836701A (zh) * 2021-09-03 2021-12-24 东风小康汽车有限公司重庆分公司 一种仿真场景构建方法、装置、计算机设备和存储介质
CN113793527B (zh) * 2021-09-14 2022-11-18 北京石油化工学院 一种面向城市交通主动控制的测试验证系统
FR3127313A1 (fr) * 2021-09-17 2023-03-24 Institut De Recherche Technologique Systemx Procédé d’évaluation des performances d’un modèle de conduite pour un véhicule
US11550851B1 (en) * 2022-02-10 2023-01-10 Motional Ad Llc Vehicle scenario mining for machine learning models
CN115438517B (zh) * 2022-11-07 2023-03-24 阿里巴巴达摩院(杭州)科技有限公司 仿真地图生成方法、电子设备及计算机存储介质
DE102022132922A1 (de) 2022-12-12 2024-06-13 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Verfahren und System zur virtuellen Verifikation von automatisierten Fahrfunktionen

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265259A (zh) * 2008-12-23 2011-11-30 微软公司 在环境仿真中使用科学模型
US8930180B1 (en) * 2012-08-15 2015-01-06 The Boeing Company Rapid scenario generation using natural language understanding

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006047741A2 (en) * 2004-10-27 2006-05-04 Bae Systems Land & Armaments L.P. Software test environment for regression testing ground combat vehicle software
JP2008075810A (ja) 2006-09-22 2008-04-03 Mitsubishi Fuso Truck & Bus Corp 変速機のアイドル騒音低減のための設計変数最適化方法及び変速機のアイドル騒音低減のための設計変数最適化プログラム
RU2010136929A (ru) * 2008-02-04 2012-03-20 Теле Атлас Норт Америка Инк. (Us) Способ для согласования карты с обнаруженными датчиком объектами
JP2009259194A (ja) 2008-03-17 2009-11-05 Mitsubishi Fuso Truck & Bus Corp 設計最適化方法及びその方法を用いた装置
US8270733B2 (en) * 2009-08-31 2012-09-18 Behavioral Recognition Systems, Inc. Identifying anomalous object types during classification
GB201008332D0 (en) 2010-05-19 2010-07-07 Bae Systems Plc System validation
US9201773B1 (en) * 2011-05-08 2015-12-01 Panaya Ltd. Generating test scenario templates based on similarity of setup files
US9442181B2 (en) 2012-07-18 2016-09-13 Microsoft Technology Licensing, Llc Prediction for power conservation in a mobile device
US10180995B2 (en) * 2013-07-15 2019-01-15 The Boeing Company System and method for assessing cumulative effects of a failure
JP6207960B2 (ja) * 2013-10-10 2017-10-04 東京カートグラフィック株式会社 信号機表示装置
WO2015132863A1 (ja) 2014-03-03 2015-09-11 三菱電機株式会社 シミュレーションシステム及びシミュレーション設定装置及びシミュレーション方法
US20160210382A1 (en) 2015-01-21 2016-07-21 Ford Global Technologies, Llc Autonomous driving refined in virtual environments
US9459840B1 (en) * 2015-03-31 2016-10-04 Toyota Jidosha Kabushiki Kaisha Timing-oriented and architecture-centric system design using contracts
US9511767B1 (en) 2015-07-01 2016-12-06 Toyota Motor Engineering & Manufacturing North America, Inc. Autonomous vehicle action planning using behavior prediction
US10229231B2 (en) 2015-09-11 2019-03-12 Ford Global Technologies, Llc Sensor-data generation in virtual driving environment
US10176634B2 (en) 2015-10-16 2019-01-08 Ford Global Technologies, Llc Lane boundary detection data generation in virtual environment
US10527730B2 (en) 2015-10-22 2020-01-07 Toyota Motor Engineering & Manufacturing North America, Inc. Object detection system
US9740944B2 (en) 2015-12-18 2017-08-22 Ford Global Technologies, Llc Virtual sensor data generation for wheel stop detection
US9645577B1 (en) 2016-03-23 2017-05-09 nuTonomy Inc. Facilitating vehicle driving and self-driving
CN109791575B (zh) * 2016-05-24 2024-05-14 科特罗尔有限责任公司 一种应用于机电系统的自动化设计系统及方法
US10248124B2 (en) * 2016-07-21 2019-04-02 Mobileye Vision Technologies, Inc. Localizing vehicle navigation using lane measurements
US10489529B2 (en) 2016-10-14 2019-11-26 Zoox, Inc. Scenario description language
US10228693B2 (en) 2017-01-13 2019-03-12 Ford Global Technologies, Llc Generating simulated sensor data for training and validation of detection models
US20180267538A1 (en) 2017-03-15 2018-09-20 Toyota Jidosha Kabushiki Kaisha Log-Based Vehicle Control System Verification
US10831202B1 (en) 2017-09-01 2020-11-10 Zoox, Inc. Onboard use of scenario description language

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265259A (zh) * 2008-12-23 2011-11-30 微软公司 在环境仿真中使用科学模型
US8930180B1 (en) * 2012-08-15 2015-01-06 The Boeing Company Rapid scenario generation using natural language understanding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
From Simulation Data to Test Cases for Fully Automated Driving and ADAS;Christoph Sippl等;《 Testing Software and Systems》;20161004;全文 *

Also Published As

Publication number Publication date
WO2018071708A1 (en) 2018-04-19
US11301601B2 (en) 2022-04-12
EP3526698A1 (en) 2019-08-21
CN110073352A (zh) 2019-07-30
US10489529B2 (en) 2019-11-26
JP7500663B2 (ja) 2024-06-17
JP2022165991A (ja) 2022-11-01
US20180107770A1 (en) 2018-04-19
JP2020502615A (ja) 2020-01-23
US20200050721A1 (en) 2020-02-13
JP7111702B2 (ja) 2022-08-02

Similar Documents

Publication Publication Date Title
CN110073352B (zh) 用于自主车辆仿真的方法、系统及计算机可读介质
Rajabli et al. Software verification and validation of safe autonomous cars: A systematic literature review
US11360477B2 (en) Trajectory generation using temporal logic and tree search
US20210132613A1 (en) Onboard use of scenario description language
US11740620B2 (en) Operational testing of autonomous vehicles
US20070271079A1 (en) Simulator for Vehicle Radio Propagation Including Shadowing Effects
US11474529B2 (en) System and method for motion planning of an autonomous driving machine
CN114514524A (zh) 多智能体模拟
US20200130709A1 (en) Method and device for determining a configuration for an autonomous vehicle
US11767030B1 (en) Scenario simulation execution within a truncated parameter space
Fremont et al. Safety in autonomous driving: Can tools offer guarantees?
US11673577B2 (en) System and methods of adaptive relevancy prediction for autonomous driving
Concas et al. Validation frameworks for self-driving vehicles: A survey
CN113485300B (zh) 一种基于强化学习的自动驾驶车辆碰撞测试方法
US20240303501A1 (en) Imitation and reinforcement learning for multi-agent simulation
US20240300527A1 (en) Diffusion for realistic scene generation
WO2024098163A1 (en) Neural hash grid based multi-sensor simulation
Han et al. Long-Term Interactive Driving Simulation: MPC to the Rescue
WO2023150876A1 (en) Autonomous system training and testing
NARDONE et al. Software Verification and Validation of Safe Autonomous Cars: A Systematic

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
GR01 Patent grant
GR01 Patent grant