生成用于测试自动驾驶车辆行为的模拟环境的制作方法

未命名 10-08 阅读:94 评论:0


1.本公开涉及在用于测试自动驾驶车辆行为的模拟环境中使用的场景的生成。


背景技术:

2.自动驾驶车辆(autonomous vehicle,av)领域取得了重大且快速的发展。自动驾驶车辆是一种配备有传感器和控制系统的车辆,传感器和控制系统使车辆能够在没有人控制其行为的情况下运行。自动驾驶车辆配备有传感器,传感器使车辆能够感知其物理环境,这样的传感器包括例如相机、雷达和激光雷达。自动驾驶车辆配备有适当编程的计算机,计算机能够处理从传感器接收的数据,并基于传感器已经感知的背景下做出安全和可预测的决策。测试特定自动驾驶车辆或一类自动驾驶车辆上的传感器和控制系统的行为有不同的方面。
3.传感器处理可以在真实世界的物理设施中进行评估。类似地,例如通过重复驾驶已知的测试路线,或者通过由车载人员驾驶来管理不可预测或未知环境的路线,可以在物理世界中测试用于自动驾驶车辆的控制系统。
4.在测试自动驾驶车辆做出安全和可预测的决策的能力时,物理世界测试仍然是一个重要因素。然而,物理世界测试既昂贵又耗时。人们越来越依赖于使用模拟环境进行测试。如果要增加模拟环境中的测试,则期望这样的环境能够尽可能地反映真实世界的场景。自动驾驶车辆需要有能力在与人类驾驶员能够在其中运行的同样多样的情形下运行。这些情形可能包含高度的不可预测性。
5.根据物理测试来测试自动驾驶车辆在其驾驶寿命中可能遇到的所有可能场景下的行为是不可行的。人们越来越关注模拟环境的创建,这可以提供使人们相信测试结果代表了自动驾驶车辆的潜在真实行为的测试。
6.为了在模拟环境中进行有效测试,被测试的自动驾驶车辆(自主车辆(ego vehicle,ev))在任何时刻都知道其位置,(基于模拟传感器输入)了解其背景,并能够就如何导航其环境以到达预先编程的目的地做出安全和可预测的决策。
7.模拟环境需要能够表示可以变化的真实世界因素。这可能包括天气条件、道路类型、道路结构、道路布局、交叉口类型等。此列表并不详尽,因为存在可能会影响自主车辆的运行的许多因素。
8.本公开解决了在自主车辆将运行的模拟环境中模拟行动者的行为时可能出现的特定挑战。这些行动者可能是其他车辆,尽管他们可能是其他行动者类型,如行人、动物、自行车等。
9.模拟器是计算机程序,当计算机程序由合适的计算机执行时,该程序使配备有传感器的车辆控制模块能够在构建和测试其物理对应物之前在模拟中进行开发和测试。模拟器提供传感器模拟系统,该系统对自动驾驶车辆可以配备的每种类型的传感器进行建模。模拟器还提供了反映自动驾驶车辆可以在其中运行的物理环境的三维环境模型。该三维环境模型至少定义了旨在自动驾驶车辆运行的道路网络以及环境中的其他行动者。除了对自
主车辆的行为进行建模外,这些行动者的行为也需要被建模。
10.模拟器生成测试场景(或处理提供给它们的场景)。正如已经解释过的,存在为什么模拟器可以产生可以测试自主车辆的许多不同的场景很重要的原因。这样的场景可能包括行动者的不同行为。自动驾驶车辆必须做出的每一个决策都涉及大量因素,以及对这些决策施加的许多其他要求(例如安全性和舒适性作为两个示例),这意味着为每一个需要测试的情况编写场景是不可行的。然而,必须尝试使模拟器能够有效地提供尽可能多的场景,并确保这些场景与真实世界高度匹配。如果在模拟中完成的测试没有生成忠实于在相应的物理世界环境中生成的输出的输出,那么模拟的价值就会显著降低。
11.场景可以根据在真实生活驾驶中记录的现场场景创建。可以标记这样的场景以识别真实的驾驶路径并将其用于模拟。例如,通过从现有场景中提取元素(如道路布局和行动者行为),并将其与其他场景相结合,来测试生成系统能够创建新的场景。可以附加地或替代地随机生成场景。
12.然而,越来越多的人要求针对特定情形定制场景,使得生成特定的因素集用于测试。期望这样的场景可以定义行动者的行为。


技术实现要素:

13.本公开的一个方面解决了这样的挑战。根据本发明的一个方面,提供了一种生成要在用于测试自动驾驶车辆的行为的模拟环境中运行的场景的计算机实现的方法,该方法包括:
14.在计算机设备的显示器上呈现静态场景拓扑的图像;
15.在显示器上呈现对象编辑节点,对象编辑节点包括用于接收用户输入的输入字段集合,对象编辑节点用于参数化挑战者对象相对于自主对象的交互;
16.将定义挑战者对象相对于自主对象的至少一个时间约束或关系约束的用户输入接收到对象编辑节点的输入字段中,至少一个时间约束或关系约束对在自主对象和挑战者对象之间定义的交互阶段的交互点进行定义;
17.将约束的集合和所定义的交互阶段存储在计算机系统的计算机存储器中的交互容器中;以及
18.生成要在模拟环境中运行的场景,场景包括在交互点处的静态场景拓扑上执行的所定义的交互阶段。
19.该系统可以配置为使得输入字段集合包括用于接收定义交互的指示的字段,挑战者对象在场景中执行定义交互。
20.然后该系统可以进一步配置为使得该输入字段集合包括用于接收以下方式的指示的输入字段:在场景中以所述方式执行定义交互的输入字段。
21.该系统可以配置为使得该输入字段集合包括用于接收挑战者对象在交互点处的行为的指示的字段。
22.该系统可以配置为使得输入字段集合包括用于接收对象类型的指示的字段。
23.该系统可以配置为输入字段中的一个或更多个包括预定选项的菜单,使得用户能够选择预定选项之一,以参数化挑战者对象。
24.该系统可以配置为静态场景拓扑包括道路布局。
25.该方法还可以包括以下步骤:从预定义场景拓扑的库中选择静态场景拓扑并在显示器上呈现所选择的场景拓扑。
26.该系统可以配置为道路布局包括一个或更多个驾驶车道,其中,输入字段集合包括用于接收挑战者对象的车道驾驶行为指示的字段。
27.该方法还可以包括将车道标识符分配给道路布局的一个或更多个驾驶车道中的每一个驾驶车道,以及经由对象编辑节点接收在交互点处的挑战者对象和所标识的车道的关联。
28.该方法还可以包括在显示器上呈现用于进一步参数化挑战者对象的第二对象编辑节点,以及接收到第二编辑节点的字段中的用户输入,以定义所定义交互的另一阶段,每个交互被定义为阶段的相应序列,其中,所生成的场景包括由挑战者对象执行的交互阶段的序列。
29.该方法还可以包括在显示器上呈现自主对象编辑节点,用于通过在交互点之前接收自主车辆的启动条件和自主车辆的行为约束来参数化场景中的自主车辆。
30.该系统可以配置为挑战者对象包括动态行动者,其中,交互定义了由动态行动者在场景中在相对于自主车辆的由至少一个时间约束或关系约束定义的时间和位置处要采取的动作。
31.然后该系统可以进一步配置为使得挑战者对象要采取的动作包括操作或行为。
32.该方法还可以包括将交互容器与标识定义交互和场景拓扑的交互容器标识符一起存储。
33.操作可以包括切入、切出和切换车道中的一个。
34.行为可以包括减速、加速、跟随车道和以固定速度行驶中的一个。
35.根据本发明的另一个方面,提供了用于生成要在用于测试自动驾驶车辆的行为的模拟环境中运行的场景的计算机系统,该系统包括:
36.计算机存储器;
37.用户界面,被配置为显示静态场景拓扑的图像;
38.处理器,被配置为在用户界面上呈现对象编辑节点,该对象编辑节点包括用于接收用户输入的输入字段集合,该对象编辑节点用于参数化挑战者对象相对于自主对象的交互;
39.该用户界面被配置为将定义挑战者对象相对于自主对象的至少一个时间约束或关系约束的用户输入接收到对象编辑节点的输入字段中,至少一个时间约束或关系约束对在自主对象和挑战者对象之间所定义的交互阶段的交互点进行定义;
40.该处理器被配置为:将至少一个约束和所定义的交互阶段存储在计算机系统的计算机存储器中的交互容器中;以及
41.生成要在模拟环境中运行的场景,该场景包括在交互点处的静态场景拓扑上执行的所定义的交互阶段。
42.还提供了一种计算机可读介质,其可以是暂时性的或非暂时性的,计算机可读介质上存储有计算机可读指令,计算机可读指令在由一个或更多个处理器执行时,执行任何预定义方法。
附图说明
43.为了更好地理解本发明,并示出本发明的实施例可以如何实施,现在将以附图为例进行参考。
44.图1示出了包含3个车辆的模拟交互空间图。
45.图2示出了由行动者车辆执行切入操作的图形表示。
46.图3示出了由行动者车辆执行切出操作的图形表示。
47.图4示出了由行动者车辆执行减速操作的图形表示。
48.图5示出了实现场景构建器的计算机的高度示意性框图。
49.图6示出了自动驾驶车辆运行栈的高度示意性框图。
50.图7示出了模拟期间自动驾驶车辆性能测试流水线的高度示意性框图。
51.图8示出了示例性切入操作路径的图形表示。
52.图9a示出了根据本发明第一实施例的用于配置模拟环境的动态层的第一示例性用户界面。
53.图9b示出了根据本发明第二实施例的用于配置模拟环境的动态层的第二示例性用户界面。
54.图10a示出了图9a中配置的示例性动态层的图形表示,其中,已选定tv1节点。
55.图10b示出了图9a中配置的示例性动态层的图形表示,其中,已选定tv2节点。
56.图11示出了图9a中配置的动态层的图形表示,其中,未选择任何节点。
57.图12示出了通用用户界面,其中,模拟环境的动态层能够被参数化。
58.图13示出了示例性用户界面,其中,模拟环境的静态层能够被参数化。
59.图14a示出了示例性用户界面,包括配置为允许和控制图9b中参数化场景的动态可视化的特征;图14a示出了第一操作开始时的场景。
60.图14b示出了与图14a中相同的示例性用户界面,其中,已经自图14a的实例经过一段时间,并且参数化车辆已经移动以反映其在该时间之后的新位置;图14b示出了参数化操作期间的场景。
61.图14c示出了与图14a和14b中相同的示例性用户界面,其中,已经自图14b的实例经过一段时间,并且参数化车辆已经移动以反映其在该时间之后的新位置;图14c示出了参数化操作结束时的场景。
62.图15a示出了在地图上链接参数化道路布局的过程的高度示意图。
63.图15b示出了地图,其上的覆盖表示在图15a所示的过程中在地图上识别的参数化道路布局的实例。
具体实施方式
64.有必要定义可用于在模拟环境中测试自主车辆行为的场景。场景是在离线模式下定义和编辑的,其中,自主车辆不受控制,然后导出用于在下面描述的测试流水线7200的下一阶段中进行测试。
65.场景包括沿着道路布局中的一条或更多条路径行驶的一个或更多个主体(有时称为行动者)。道路布局是本文中用于描述驾驶场景中可能出现的任何特征的术语,特别地,道路布局包括至少一个轨道,车辆旨在模拟中沿着该轨道行驶。轨道可以是道路或车道或
任何其他可行驶的路径。道路布局在要编辑的场景中显示为主体在其上被实例化的图像。根据本发明的实施例,从场景拓扑的数据库访问道路布局或其他场景拓扑。道路布局中定义了车道等,并在场景中进行了呈现。场景是从场景中运行的自主车辆的角度来查看的。场景中的其他主体可以包括非自主车辆或其他道路使用者,例如自行车骑行者和行人。该场景可以包括一个或更多个道路特征,例如环形交叉路口或交叉路口。这些主体旨在表示自主车辆在真实驾驶情况下遇到的真实世界实体。本描述允许用户生成这些主体和自主车辆之间的交互,该交互可以在场景编辑器中执行,然后进行模拟。
66.本描述涉及一种用于生成场景以获得用于测试自主车辆的大型验证集的方法和系统。本文描述的场景生成方案使得场景能够以更用户友好的方式被参数化和探索,并且进一步使得场景能够在闭环中被重复使用。
67.在本系统中,场景被描述为交互的集合。每个交互都是在场景的行动者和场景的静态拓扑之间相对定义的。每个场景可以包括:用于在显示器上呈现给用户的环境可视化中呈现静态对象的静态层、以及用于控制环境中移动主体的运动的动态层。请注意,术语“主体”和“行动者”在本文中可以互换使用。
68.每个交互都是在行动者和静态拓扑之间相对描述的。请注意,在这种背景下,自主车辆可以被视为动态的行动者。交互包括相对于另一个行动者或静态拓扑执行的操作(manoeuvre)或行为。
69.在本背景下,术语“行为”可解释如下。行为拥有实体(例如场景中的行动者)。给定更高级别的目标,行为会产生交互操作,使实体朝着给定的目标前进。例如,场景中的行动者可能会被赋予跟随车道目标和适当的行为模型。行动者将(在编辑器中生成的场景中,以及由此产生的模拟中)尝试实现该目标。
70.行为可以被视为一种模糊的抽象,允许用户将智能注入场景,从而产生更现实的场景。通过将场景定义为交互的集合,本系统使多个行动者能够与主动行为一起合作,以创建类似于交通模型的闭环行为网络。
71.在本背景下,术语“操作”可被视为实体跟随其行为模式为实现其特定目标而表现出的具体物理动作。
72.交互包括两个或更多个行动者和/或一个行动者与静态场景之间相对发生的条件和特定的操作(或操作的集合)/行为。
73.根据本系统的特征,可以在事后使用时间逻辑来评估交互。交互可以被视为用于排序场景的可重复使用的逻辑块,如本文更全面地描述的。
74.使用交互的概念,可以定义对特定场景很重要的交互的“关键路径”。场景可以具有可以定义其参数的全谱抽象。这些抽象场景的变体被称为场景实例。
75.场景参数对于定义场景或场景中的交互非常重要。本系统能够对任何场景值进行参数化。在场景中预期值的情况下,可以使用兼容的参数类型和适当的约束来定义参数,如本文在描述交互时进一步讨论的那样。
76.参考图1来说明本文所述概念的具体示例。自主车辆ev在车道l1上被实例化。挑战者-行动者tv1被初始化,并根据所需场景,旨在相对于自主车辆ev切入。图1中所示的交互是定义当挑战者-行动者tv1实现相对于自主车辆ev的特定关系约束时发生的切入操作。在图1中,关系约束被定义为由虚线dx0表示的相对于自主车辆的横向距离(dy0)偏移条件。在
这一点上,挑战者车辆tv1在自主车辆ev前面执行切换车道操作,如箭头m所示。该交互进一步定义了挑战者车辆在切入操作后的新行为,在这种情况下,为跟随车道目标。注意,该目标应用于车道l1(而之前挑战者车辆可能已经将跟随车道目标应用于车道l2)。由虚线定义的框将这组操作指定为交互i。注意,第二行动者车辆tv2已被分配了跟随车道目标,以跟随车道l3。
77.可以分配以下参数来定义交互:
78.对象

可以从任何本体类中填写的抽象的对象类型;
79.纵向距离dx0

纵向测量到车道的距离;
80.横向距离dy0

横向测量到车道的距离;
81.速度ve、vy

(在纵向或横向方向上)分配给对象的速度;
82.加速度gx

分配给对象的加速度;
83.车道

单个车道的拓扑描述符。
84.交互被定义为场景的动态层和静态层之间的时间约束和关系约束的集合。动态层表示场景对象及其状态,静态层表示场景的场景拓扑。参数化层的约束既可以在运行时进行监控,也可以在编辑/编写场景时在设计时进行描述和执行。
85.下表表1给出了交互的示例。
[0086][0087]
每个交互都有一个总结,定义了特定的交互以及交互中涉及的关系。例如,如图1所示的“切入”交互是对象(挑战者-行动者)从相邻车道横向移动到自主车道并与近轨迹相交的交互。近轨迹是指与另一个行动者重叠的轨迹,即使另一个行为者不需要做出回应。
[0088]
这种交互有两种关系。第一种是挑战者-行动者和自主车道之间的关系,第二种是挑战者-行动者和自主轨迹之间的关系。这些关系可以由时间约束和关系约束来定义,如下面更详细地讨论的。
[0089]
可以使用一个或更多个节点来定义每个交互的时间约束和关系约束,以输入交互的特征参数。根据本公开,持有这些参数的节点被存储在用于交互的交互容器中。场景可以通过一系列交互、编辑和连接这些节点来构建。这些使用户能够构建具有所需交互的集合
的场景,这些交互将在运行时模拟中进行测试,而无需复杂的编辑要求。在现有系统中,用户在生成和编辑场景时,需要确定需要测试的交互是否会在他们在编辑工具中创建的场景中实际发生。
[0090]
本文描述的系统使创建和编辑场景的用户能够定义交互,然后保证在运行模拟时发生交互。因此,这种交互可以在模拟中进行测试。如上所述,交互是在静态拓扑和动态行动者之间定义的。
[0091]
用户可以定义某些交互操作,例如上表中给出的交互操作。
[0092]
用户可以定义交互的参数,或者限定交互中的参数范围。
[0093]
图2示出了切入操作的示例。在该操作中,自主车辆ev和挑战车辆tv1之间的纵向距离dx0可以被设置为特定值或值的范围。自主车辆ev和挑战车辆tv1之间的内侧横向距离dy0可以被设置为特定值或在参数范围内。领先车辆横向运动(vy)参数可以被设置为特定值或特定范围内。横向运动参数my代表切入速度。作为挑战性车辆的前进速度的领先车辆速度(vo0)可以被设置为特定的定义值或在参数范围内。自主速度ve0可以设置为特定值或在参数范围内,即自主车辆在前进方向上的速度。自主车道(le0)和领先车道(lv0)可以在参数范围内定义。
[0094]
图3为示出切出交互的示意图。这种交互具有一些参数,这些参数已在上面参考图2的切入交互确定。还要注意,前方车辆被定义为fa(前方行动者),并且存在与该前方车辆相关的附加参数。这些包括纵向前进方向上的距离(dx0_f)和前方车辆的速度。
[0095]
此外,车辆速度(vf0)可以设置为特定值或参数范围内。车辆速度vf0是前方车辆在切出之前的速度;注意,在这种情况下,领先车辆横向运动vy是沿切出方向而不是切入方向的运动。还要注意,前方车辆被定义为fa(前方行动者),并且存在与该前方车辆相关的附加参数。这些包括纵向前进方向上的距离(dx0_f)和前方车辆的速度。
[0096]
图4示出了减速交互。在这种情况下,参数ve0、dx0和vo0具有与切入交互中相同的定义。这些值可以专门设置,也可以在参数范围内设置。此外,最大加速度(gx_max)可以设置为特定值或参数范围内,作为挑战性行动者的减速度。
[0097]
下文将更详细地讨论定义交互的步骤。
[0098]
用户可以设置自主车辆的配置,该配置捕获目标速度(例如道路布局的每个限速区的比例或目标速度)、最大加速度值、最大急动值等。在一些实施例中,默认速度可以应用于自主车辆,作为道路布局的特定限速区的限速。用户可以被允许用加速度/急动值覆盖该默认值,或者在交互切入点设置自主车辆的起点和目标速度。然后,这可以用于计算起点和切入点之间的加速度值。如下面将更详细地解释的,编辑工具允许用户在编辑工具中生成场景,然后以他们可以调整/探索他们已经配置的参数的方式将场景可视化。自主车辆在交互点的速度在本文中可以称为自主车辆的交互点速度。
[0099]
还可以配置挑战者车辆的交互点速度。挑战者车辆的速度的默认值可以被设置为道路的限速,或者与自主车辆相匹配。在某些情况下,自主车辆可能具有在场景运行时至少部分暴露的规划栈。请注意,后一个选项将适用于在场景运行时可以从栈中提取自主车辆的速度的情况。允许用户用加速度/急动值覆盖默认速度,或者为挑战者车辆设置起点和速度,并使用该值计算起点和切入点之间的加速度值。与自主车辆一样,当生成的场景在编辑工具中运行时,用户可以调整/探索这些值。在本文讨论的交互容器(包括节点)中,挑战者
车辆的值可以相对于自主车辆配置,因此用户可以将挑战者车辆的速度/加速度/急动配置为相对于交互点处的自主车辆值。
[0100]
在前文中,已经提到了交互点。对于每个交互,都定义了交互点。例如,在图1和图2的场景中,定义了切入交互点。在一些实施例中,这是在自主车辆和挑战者车辆具有横向重叠的点处定义的(基于车辆边缘作为前后的投影路径;横向重叠可以是其百分比)。如果不能确定,可以根据车道宽度、车辆宽度和一些横向定位进行估计。
[0101]
通过为自主车辆设置起始车道(图1中的l1),来相对于场景地形进一步定义交互。对于挑战者车辆,设置起始车道(l2)和结束车道(l1)。
[0102]
可以定义切入间隙。时间间隔是关键参数值,围绕该关键参数值构建切入交互的其余部分。如果用户将切入点设置为领先自主车辆两秒,则使用交互点处的自主车辆目标速度来计算切入间隙的距离。例如,在每小时50英里(每秒22米)的速度下,两秒的切入间隙将设定44米的切入距离。
[0103]
图5示出了实现场景构建器的计算机的高度示意性框图,该计算机包括显示单元510、用户输入设备502、保存程序代码504的计算机存储器(如电子存储器500)和场景数据库508。
[0104]
程序代码504示出为包括四个模块,配置为接收用户输入并生成将显示在显示单元510上的输出。输入到用户输入设备502的用户输入由节点接口512接收,如本文参考图9-图13所述。场景模型模块506然后被配置为从节点接口512接收用户输入并生成要模拟的场景。
[0105]
场景模型数据被发送到包括静态层7201a和动态层7201b的场景描述模块7201。静态层7201a包括场景的静态元素,静态元素通常包括静态道路布局,动态层7201b定义关于场景内的外部主体(例如其他车辆、行人、自行车等)的动态信息。由场景描述模块7201接收的来自场景模型506的数据然后可以存储在场景数据库508中,随后可以从场景数据库508加载和模拟数据。无论是通过节点接口还是场景数据库接收的来自场景模型506的数据,都被发送到配置为执行参数化场景模拟的场景运行时模块516。场景运行时的输出数据随后被发送到场景可视化模块514,场景可视化模块514被配置为以可被读取的格式产生数据以产生场景的动态视觉表示。场景可视化模块514的输出数据然后可以被发送到显示单元510,从而可以例如以视频格式查看场景。在一些实施例中,与由程序代码模块512、506、516、514执行的对模拟数据的分析有关的另外的数据也可以由显示单元510显示。
[0106]
现在将参考图6和图7来描述模拟系统,该模拟系统可以使用由本文所述的场景构建器创建的场景。
[0107]
图6示出了自动驾驶车辆(av)的运行时栈6100的高度示意性框图,在本文中自动驾驶车辆(av)也称为自主车辆(ev)。运行时栈6100被示出为包括感知系统6102、预测系统6104、规划器6106和控制器6108。
[0108]
在真实世界中,感知系统6102将从av的车载传感器系统6110接收传感器输出,并使用这些传感器输出来检测外部主体并测量其物理状态,例如其位置、速度、加速度等。车载传感器系统6110可以采用不同的形式,但通常包括各种传感器,例如图像捕获设备(相机/光学传感器)、激光雷达和/或雷达单元、卫星定位传感器(gps等)、运动传感器(加速度计、陀螺仪等)等,它们共同提供了丰富的传感器数据,可以从传感器数据中提取关于周围
环境和av以及该环境内的任何外部行动者(车辆、行人、骑自行车的人等)的状态的详细信息。传感器输出通常包括多个传感器模态的传感器数据,例如来自一个或更多个立体光学传感器、激光雷达、雷达等的立体图像。立体成像可用于收集密集的深度数据,其中激光雷达/雷达等证明了可能更准确但密度较小的深度数据。更一般地说,来自多个传感器模态的深度数据收集可以以一种最好顾及其各自不确定性水平的方式(例如,使用贝叶斯或非贝叶斯处理或一些其他统计过程等)进行组合。多个立体光学传感器对可以位于车辆周围,例如,以提供完整的360
°
深度感知。
[0109]
感知系统6102包括多个感知部件,这些感知部件协作以解释传感器输出,从而向预测系统6104提供感知输出。可以以反映外部主体在感知系统6102内的感知中的不确定性水平的方式来检测和概率地表示外部主体。
[0110]
在模拟环境中,根据测试的性质、特别是根据栈6100的切片位置,可能有必要也可能没有必要对车载传感器系统6100进行建模。对于更高级别的切片,不需要模拟传感器数据,因此不需要复杂的传感器建模。
[0111]
预测系统6104使用来自感知系统6102的感知输出来预测例如av附近的其他车辆等的外部行为者(主体)的未来行为。
[0112]
由预测系统6104计算的预测被提供给规划器6106,规划器6106使用预测来做出在给定驾驶场景中由av执行的自动驾驶决策。场景被表示为由规划器6106使用的场景描述参数的集合。典型的场景将定义可驾驶区域,还将捕获可驾驶区域内任何外部主体(从av的角度来看的障碍物)的预测移动。可以使用来自感知系统6102的感知输出并结合诸如高清(high definition,hd)地图之类的地图信息来确定可驾驶区域。
[0113]
规划器6106的核心功能是考虑预测的主体运动来规划av的轨迹(自主轨迹)。这可以称为操作规划。规划轨迹是为了在场景中实现期望的目标。例如,目标可以是:进入环形交叉路口并在期望的出口离开环形交叉路口;超过前面的车辆;或者以目标速度停留在当前车道上(车道跟随)。例如,该目标可以由自主路线规划器(未示出)来确定。
[0114]
控制器6108通过向av的车载行动者系统6112提供合适的控制信号来执行规划器6106做出的决策。特别地,规划器6106规划将由av进行的操作,并且控制器6108生成控制信号以便执行这些操作。
[0115]
图7示出了测试流水线7200的示意框图。测试流水线7200被示出为包括模拟器7202和测试预言机7252。模拟器7202运行模拟以测试av运行时栈的全部或部分。
[0116]
仅作为示例,测试流水线7200的描述参考了图6的运行时栈6100,以通过示例说明一些基本原理。如所讨论的,可能仅测试运行时栈的子栈,但为了简单起见,以下描述通篇涉及av栈6100;注意,实际测试的可能只是图6中av栈6100的一个子集,这取决于如何对其进行切片测试。因此,在图6中,附图标记6100可以表示完整的av栈或仅表示子栈,具体取决于背景。
[0117]
图7示出了正在测试的av栈6100内的预测系统6104、规划系统6106和控制系统6108,其中,模拟感知输入7203从模拟器7202馈送到栈6100。然而,这并不一定意味着预测系统6104直接运行那些模拟感知输入7203(尽管这是一个可行的切片,在这种情况下,模拟感知输入7203将在形式上对应于感知系统6102的最终输出)。在全感知系统6102被实现在被测试的栈中(或者至少在包括对原始传感器数据运行的一个或更多个较低级别感知部
件)的情况下,则模拟感知输入7203将包括模拟传感器数据。
[0118]
模拟感知输入7203被用作由规划器6106做出的预测和最终决策的基础。控制器6108又通过输出控制信号6109来实现规划器的决策。在真实世界中,这些控制信号将驱动av的物理行动者系统6112。测试中生成的控制信号的格式和内容与真实世界中的情况相同。然而,在测试流水线7200内,这些控制信号6109反而驱动自主动态模型7204以模拟自主主体在模拟器7202内的运动。
[0119]
就外部主体在模拟器7202内表现出自主行为/决策而言,实现某种形式的主体决策逻辑7210来执行这些决策,并相应地驱动模拟器7202中的外部主体动态。主体决策逻辑7210在复杂性上可以与自主栈6100本身相当,或者它可以具有更有限的决策能力。目的是在模拟器7202内提供足够真实的外部主体行为,以便能够有效地测试自主栈6100的决策能力。在一些情况下,这根本不需要任何主体决策逻辑7210(开环模拟),并且在其他情况下,可以使用相对有限的主体逻辑7210(例如基本自适应巡航控制(adaptive cruise control,acc))来提供有用的测试。类似于自主栈6100,任何主体决策逻辑7210由来自模拟器7202的输出驱动,模拟器7202的输出又用于导出到主体动态模型7206的输入,作为主体行为模拟的基础。
[0120]
如上所述,根据具有静态层7201a和动态层7201b二者的场景描述7201来运行驾驶场景的模拟。
[0121]
静态层7201a定义了场景的静态元素,通常包括静态道路布局。场景描述7201的静态层7201a被布置在从地图数据库7207加载的地图7205上。对于任何定义的静态层7201a的道路布局,系统能够在给定的地图7205上识别该地图7205的包括静态层7201a的定义的道路布局的实例的所有片段。例如,如果选择了特定的地图,并且在静态层7201a中定义了“环形交叉路口”道路布局,则系统可以在所选地图7205上找到环形交叉路口的所有实例,并将其加载为模拟环境。
[0122]
动态层7201b定义了关于场景中外部主体(例如其他车辆、行人、自行车等)的动态信息。所提供的动态信息的范围可能会有所不同。例如,对于每个外部主体,动态层7201b可以包括主体要跟随的空间路径或指定车道以及运动数据和行为数据中的一个或两个。
[0123]
在简单的开环模拟中,外部行动者只是跟随动态层中定义的空间路径和运动数据,该空间路径和数据是非反应性的,即不对模拟中的自主主体做出反应。这样的开环模拟可以在没有任何主体决策逻辑7210的情况下实现。
[0124]
然而,在“闭环”模拟中,动态层7201b定义了沿着静态路径或车道要跟随的至少一种行为(例如acc行为)。在这种情况下,主体决策逻辑7210以反应的方式在模拟中实现该行为,即对自主主体和/或其他外部主体做出反应。运动数据仍然可以与静态路径相关联,但在这种情况下是不太规范的,并且例如可以用作沿着路径的目标。例如,利用acc行为,可以沿着主体将寻求匹配的路径来设置目标速度,但是可以允许主体决策逻辑7210在沿着路径的任何点处将外部主体的速度降低到目标以下,以便保持与前方车辆的目标间隔距离。
[0125]
在本实施例中,静态层为道路网络提供了车道定义,车道定义用于代替定义“路径”。动态层包含主体到车道的分配,以及任何车道操作,而实际车道定义存储在静态层中。
[0126]
给定模拟的模拟器7202的输出包括自主主体的自主迹线7212a和一个或更多个外部主体的一个或更多个迹线7212b(迹线7212)。
[0127]
迹线是具有空间和运动分量的模拟中主体行为的完整历史。例如,迹线可以采取空间路径的形式,该空间路径具有与沿着该路径的点相关联的运动数据,例如速度、加速度、急动(加速度变化率)、速动(急动变化率)等。
[0128]
还提供了附加信息,以补充和提供迹线7212的背景。这种附加信息被称为“环境”数据7214,其可以具有静态分量(例如道路布局)和动态分量(例如天气条件在模拟过程中变化的程度)。
[0129]
在某种程度上,环境数据7214可以是“传递(passthrough)”的,因为它直接由场景描述7201定义,并且不受模拟结果的影响。例如,环境数据7214可以包括直接来自场景描述7201的静态道路布局。然而,通常环境数据7214将包括在模拟器7202内导出的至少一些元素。例如,这可以包括模拟天气数据,其中模拟器7202可以自由地改变是否随着模拟的进行而改变天气条件。在这种情况下,天气数据可以依存于时间,并且该时间依存性将反映在环境数据7214中。
[0130]
测试预言机7252接收迹线7212和环境数据7214,并根据预定义的数字性能度量7254的集合对这些输出进行评分。性能度量7254对本文可以称为“数字公路代码”(digital highway code,dhc)的内容进行编码。以下给出了一些合适的性能度量示例。
[0131]
评分是基于时间的:对于每个性能指度量,测试预言机7252跟踪该度量的值(分数)如何随着模拟的进行而随时间变化。测试预言机7252提供输出7256,该输出7256包括每个性能度量的分数-时间图。
[0132]
度量7256向专家提供信息,并且分数可用于识别和缓解测试栈6100内的性能问题。
[0133]
上述模拟系统使用的场景可以在本文描述的场景构建器中生成。回到图1中给出的场景示例,图8示出了如何将其中的交互分解为节点。
[0134]
图8示出了示例性切入操作的路径,该切入操作可定义为本文中的交互。在本例中,交互被定义为三个独立的交互节点。第一节点可以被视为“启动操作”节点,如n1点所示。该节点定义了到达交互点的时间(以秒为单位)和挑战者车辆的速度。第二节点n2可以定义切入曲线(profile),该切入曲线由双向箭头和路径的弯曲部分示意性地示出。该节点被标记为n2。该节点可以定义切入曲线的横向速度vy,以及切入持续时间和速度曲线的变化。如稍后将描述的,如果用户愿意,他们可以调整加速度和急动值。节点n3是末端操作,并且以秒为单位定义从交互点开始的时间和挑战者车辆的速度。如稍后所述,节点容器可使用户能够以具有配置切入操作的起点和终点以及设置参数的选项。
[0135]
图13示出了图9a的用户界面900a,包括道路切换901和行动者切换903。在图9a中,已经选择了行动者切换903,从而用被配置为参数化模拟环境的动态层(例如要模拟的车辆及其行为)的特征和输入字段填充用户界面900a。在图13中,选择了道路切换901。作为该选择的结果,用户界面900a已经填充有被配置为参数化模拟环境的静态层(例如道路布局)的特征和输入字段。在图13的示例中,用户界面900a包括预设的道路布局1301的集合。从其集合中选择特定的预设道路布局1301使得所选择的道路布局显示在用户界面900a中,在本示例中显示在用户界面900a的下部中,从而允许对所选择的道路布局1301进行进一步的参数化。单选按钮1303和1305被配置为在选定时参数化模拟车辆将在其上移动的道路一侧。在选定左侧单选按钮1303时,系统将配置模拟,使得动态层中的车辆在静态层中定义的道路
的左侧行驶。同样,在选定右侧单选按钮1305时,系统将配置模拟,使得动态层中的车辆在静态层中定义的道路的右侧行驶。在一些实施例中,对特定单选按钮1303或1305的选定可能导致对另一个单选按钮的自动取消选定,使得逆流车道不可配置。
[0136]
图13的用户界面900a进一步显示了可编辑道路布局1306,该可编辑道路布局1306代表所选预设道路布局1301。可编辑道路布局1306具有与其相关联的多个宽度输入字段1309,每个特定宽度输入字段1301与道路布局中的特定车道相关联。数据可以被输入到特定宽度输入字段1309,以参数化其对应车道的宽度。车道宽度用于在场景编辑器中呈现场景,并在运行时运行模拟。
[0137]
可编辑道路布局1306还具有相关的曲率字段1313,曲率字段1313被配置为修改所选预设道路布局1301的曲率。在图13的示例中,曲率字段1313显示为滑块。通过沿着条滑动箭头,可以编辑道路布局的曲率。
[0138]
可以使用车道创建器1311将附加车道添加到可编辑道路布局1306。在图13的示例中,如果左侧行驶意味着在显示的可编辑道路布局1306上从左向右行驶,则可以通过选择可编辑道路布局1306上方的车道创建器1311,将一条或更多条车道添加到道路的左侧。同样,可以通过选择在可编辑道路布局1306下方找到的车道创建器1311,将一个或更多个车道添加到道路的右手侧。针对于添加到可编辑道路布局1306的每个车道,还添加了被配置为参数化该新车道的宽度的附加宽度输入字段1309。
[0139]
在可编辑道路布局1306中找到的车道也可以在选择车道移除器1307时被移除,可编辑道路布局中的每个车道都具有唯一的相关车道移除器1307。在选择特定车道移除器1307时,移除与该特定车道移除器1307相关联的车道;与该车道相关联的宽度输入字段1309也被去除。
[0140]
通过这种方式,用户可以相对于特定布局定义交互。挑战者车辆的路径可以设置为在操作点之前以操作开始所需的恒定速度继续行驶。操作结束后,挑战者车辆的路径应使用操作结束时达到的值以恒定速度继续行驶。可以向用户提供配置操作点的开始和结束以及查看交互点处的相应值的选项。下面将对此进行更详细的描述。
[0141]
通过使用一系列定义的交互构建场景,可以利用创建的场景增强模拟后分析阶段可以做的事情。例如,可以围绕交互点组织分析输出。交互可以用作具有特定操作的所有探索场景中的一致时间点。这提供了单一的比较参考点,用户可以从该点查看在此点之前和之后(基于运行时间持续时间)的可配置的分析输出秒数。图12示出了用于构建通用用户界面900a的框架,在该框架下可以对模拟环境进行参数化。图12的用户界面900a包括场景名称字段1201,其中可以为场景分配名称。场景的描述可以进一步被输入到场景描述字段1203中,与场景有关的元数据(例如创建的日期)可以被存储在场景元数据字段1205中。
[0142]
自主对象编辑器节点n100用于参数化自主车辆,自主节点n100包括字段1202和1204,分别配置为定义自主车辆相对于所选静态道路布局的交互点车道和交互点速度。
[0143]
第一行动者车辆可以被配置在车辆1对象编辑器节点n102中,节点n102包括起始车道字段1206和起始速度字段1214,分别配置为定义模拟中相应行动者车辆的起始车道和起始速度。另外的行动者车辆(车辆2和车辆3)也可被配置在相应的车辆节点n106和n108中,节点n106与n108都还包括起始车道字段1206和起始速度字段1214,其被配置用于与节点n102中相同的目的,但用于不同的相应行动者车辆。图12的用户界面900a还包括行动者
节点创建器905b,当行动者节点创建器905b被选择时,该行动者节点创建器905b创建附加节点,从而创建将在场景中执行的附加行动者车辆。新创建的车辆节点可以包括字段1206和1214,使得可以类似于场景的其他对象来对新车辆进行参数化。
[0144]
在一些实施例中,用户界面900a的车辆节点n102、n106和n108可以进一步包括车辆选择字段f5,如稍后参考图9a所述。
[0145]
针对每个行动者车辆节点n102、n106、n108,可以使用动作节点创建器905a来创建并分配一系列相关联的动作节点,(在本例中)每个车辆节点均具有位于该车辆节点的行的最右侧的相关联的动作节点生成器905a。动作节点可以包括多个字段,多个字段被配置为当场景被执行或模拟时参数化将由相应车辆执行的动作。例如,车辆节点n102具有相关联的动作节点n103,其包括交互点定义字段1208、目标车道/速度字段1210和动作约束字段1212。节点n103的交互点定义字段1208本身可以包括一个或更多个输入字段,该一个或更多个输入字段能够定义模拟环境的静态场景拓扑上的点,车辆1将在该点处执行操作。同样,目标车道/速度字段1210可以包括一个或更多个输入字段,一个或更多个输入字段被配置为使用车道标识符来定义执行动作的车辆的速度或目标车道。动作约束字段1212可以包括被配置为进一步定义要执行的动作的各方面的一个或更多个输入字段。例如,动作约束字段1212可以包括行为选择字段909,如参考图9a所描述的,其中操作或行为类型可以从其预定义列表中选择,系统在选择特定行为类型时被配置为用参数化所选择的操作或行为类型所需的输入字段填充相关联的动作节点。在图12的示例中,车辆1具有分配给它的第二动作节点n105,第二动作节点n105包括与第一动作节点n103相同的字段1208、1210和1212的集合。注意,在选择位于第二动作节点n105右侧的动作节点创建器905a时,可以将第三动作节点添加到用户界面900a。
[0146]
图12的示例示出了第二车辆节点n106,同样包括起始车道字段1206和起始速度字段1214。第二车辆节点n106被示为具有三个相关联的动作节点n107、n109和n111,这三个动作节点中的每一个都包括能够参数化其相关联动作的字段1208、1210和1212的集合。动作节点创建器905a也存在于动作节点n111的右侧,对其的选择将再次创建被配置为在模拟期间参数化车辆2的进一步行为的附加动作节点。
[0147]
还显示了第三车辆节点n108,第三车辆节点n108也包括起始车道字段1206和起始速度字段1214,第三车辆节点n108只有一个动作节点n113被分配给它。动作节点n113再次包括能够参数化相关动作的字段1208、1210和1212的集合,可以在选择位于动作节点n113右侧的动作节点创建器905a时创建第二动作节点。
[0148]
动作节点和车辆节点同样具有可选节点移除器907,当选择可选节点移除器907时,从用户界面900a移除相关节点,从而从模拟环境移除相关动作或对象。此外,对特定节点移除器907的选择可以使得从属于或依存于该特定节点的节点也被移除。例如,选择与车辆节点(例如n106)相关联的节点移除器907可能导致在不选择动作节点的节点移除器907的情况下自动移除与该车辆节点相关联的动作节点(例如n1 07)。
[0149]
在图12的用户界面900a中输入所有相关字段后,用户可以查看其模拟环境的预模拟视觉表示,如以下参考图10a、图10b和图11对图9a中的输入所述。然后,对特定节点的选择可以显示在其中输入的参数,以显示为相关视觉表示上的数据覆盖,例如在图10a和10b中。
[0150]
图9a示出了如何利用图12的框架来提供用于定义切入点交互的节点集合的特定示例。每个节点可以在编辑工具的用户界面上呈现给用户,以允许用户配置交互的参数。n100表示用于定义自主车辆的行为的节点。车道字段f1允许用户在自主车辆起始的场景拓扑上定义车道。最大加速度字段f2允许用户使用向上和向下菜单选择按钮来配置最大加速度。速度字段f3允许使用向上和向下按钮输入固定速度。速度模式选择器允许将速度设置为固定值(如图9a中节点n100所示)或限速的百分比。限速的百分比与其自己的字段f4相关联,以供用户设置。节点102描述了挑战者车辆。它是使用字段f5中显示的下拉菜单从动态对象的本体中选择的。使用车道字段f6来选择挑战者车辆正在其中运行的车道。切入交互节点n103具有用于定义前进距离dx0的字段f8和用于定义横向距离dy0的字段f9。提供相应的字段f10和f11用于定义切入操作在前进方向和横向方向上的最大加速度。
[0151]
节点n103具有标题字段f12,其中可以通过从下拉菜单的多个选项中进行选择来定义交互的性质。当选择每个选项时,显示节点的相关字段以供用户填充适合该交互的参数。
[0152]
挑战者车辆的路径还受到第二节点n105的约束,该第二节点n105定义了变速动作。节点n105包括用于配置发起变速的挑战者车辆的前进距离的字段f13、用于配置最大加速度的字段f14以及以参考自主车辆节点n100所述的方式表现的相应限速字段f15和f16。
[0153]
使用对象节点n106进一步定义了另一辆车,该节点为挑战者车辆提供与节点n102相同的可配置参数。第二车辆与车道保持行为相关联,车道保持行为由节点n107定义,节点n107具有用于配置相对于自主车辆的前进距离的字段f16和用于配置最大加速度的字段f17。
[0154]
图9a进一步示出了道路切换901和行动者切换903。道路切换901是用户界面900a的可选特征,当选择道路切换901时,用被配置为参数化模拟环境的静态层(如道路布局)的特征和输入字段填充用户界面900b(见图13的描述)。行动者切换903是用户界面900a的可选择特征,当行动者切换903被选择时,用被配置为参数化模拟环境的动态层(例如要模拟的车辆及其行为)的特征和输入字段填充用户界面900b。
[0155]
如参考图12所述,节点创建器905是用户界面900a的可选特征,当选择节点创建器905时,创建能够对模拟环境的动态层的附加方面进行参数化的附加节点。动作节点创建器905a可以在每个行动者车辆的行的最右侧找到。当被选择时,这样的动作节点创建器905a将附加的动作节点分配给它们相关联的行动者车辆,从而允许对多个动作进行参数化以用于模拟。同样地,车辆节点创建器905b可以在最底部的车辆节点下方找到。一旦选择,车辆节点创建器905b将附加的车辆或其他动态对象添加到模拟环境中,该附加的动态对象还可通过使用相关联的动作节点创建器906a向其分配一个或更多个动作节点来配置。动作节点和车辆节点类似地可以具有可选节点移除器907,可选节点移除器907在被选择时从用户界面900a移除相关联的节点,从而从模拟环境移除相关联行为或对象。此外,对特定节点移除器907的选择可以使得从属于或依存于该特定节点的节点也被移除。例如,选择与车辆节点(例如n106)相关联的节点移除器907可能导致在不选择动作节点的节点移除器907的情况下自动移除与该车辆节点相关联的动作节点(例如n1 07)。
[0156]
每个车辆节点还可以包括车辆选择字段f5,其中特定类型的车辆可以从预定义的车辆集合中选择,例如从下拉列表中选择。一旦从车辆选择字段f5中选择了特定的车辆类
型,相应的车辆节点可以填充有被配置为参数化车辆类型特定参数的其他输入字段。此外,特定车辆的选择也可能对相应的动作节点参数(例如最大加速度或速度)施加约束。
[0157]
每个动作节点还可以包括行为选择字段909。在选择了与特定动作节点(例如n107)相关联的行为选择字段909之后,该节点例如在下拉列表上显示可配置用于模拟的预定义行为和/或操作类型的集合。在从预定义行为的集合中选择特定行为后,系统用相关车辆的所选行为的参数化所需的输入字段填充动作节点。例如,动作节点n107与行动者车辆tv2相关联,并且包括行为选择字段909,其中,已经选择了“车道保持”行为。作为该特定选择的结果,动作节点n107已经填充有用于配置相关联的车辆tv2与自主车辆ev的前进距离的字段f16和最大加速度字段f17,所示的字段允许行动者车辆tv2的所选行为类型的参数化。
[0158]
图9b示出了图9a的用户界面的另一个实施例。图9b包括相同的车辆节点n100、n102和n106,分别代表自主车辆ev、第一行动者车辆tv1和第二行动者车辆tv2。图9b的示例给出了与图9a类似的场景,但其中由节点n102定义的第一行动者车辆tv1正在执行“变道”操作而不是“切入”操作,其中由节点n106定义的第二行动者车辆tv2正在执行“保持速度”操作而非“保持车道”操作,并被定义为“重型卡车”,而不是“汽车”,输入到用户界面900b的字段的几个示例性参数也不同于用户界面900a的那些参数。
[0159]
图9b中的用户界面900b包括图9a的用户界面900a中没有的几个特征。例如,分别被配置为对行动者车辆tv1和tv2进行参数化的行动者车辆节点n102和n106包括被配置为在模拟期间定义相应车辆的初始速度的起始速度字段f29。用户界面900b还包括场景名称字段f26,其中用户可以输入一个或更多个字符来定义正被参数化的场景的名称。场景描述字段f27也被包括并且被配置为接收将有助于识别该场景并将其与其他场景区分开来的进一步的字符和/或单词。标签字段f28也存在,并且被配置为接收可以帮助对已经保存的场景进行分类和组织的单词和/或识别字符。在用户界面900b的示例中,字段f28已填充有标题为“环境|公路(env|highway)”的标签。
[0160]
图9a的用户界面900a的几个特征没有出现在图9b的用户界面900b上。例如,在图9b的用户界面900b中,没有为自主车辆节点n100定义加速度控制。此外,在图9b的示例中,道路切换和行动者切换分别为901和903;用户界面900b被专门配置用于对车辆及其行为进行参数化。
[0161]
此外,将车速定义为已定义限速的百分比的选项,图9a中的f4和f18,不是用户界面900b的可用特征;在该实施例中只有固定速度字段f3是可配置的。先前在变速操作节点n105中发现的加速度控制字段(例如字段f14)也不存在于图9b的用户界面900b中。使用不同的字段集合对变速操作的行为约束进行参数化。
[0162]
此外,分配给第一行动者车辆tv1的变速操作节点n105填充有不同的字段集合。在用户界面900a中发现的最大加速度字段f14、固定速度字段f15和%限速字段f18不存在于900b中。相反,存在目标速度字段f22、相对位置字段f21和速度字段f23。目标速度字段f22被配置为在变速操作结束时接收与相关车辆的期望速度有关的用户输入。相对位置字段f21被配置为定义测量字段f13中定义的前进距离的点或其他模拟实体;前进距离字段f13存在于用户界面900a和900b两者中。在图9b的示例中,相对位置字段f21被定义为自主车辆,但其他选项也可以例如通过下拉菜单来选择。速度字段f23定义了操作的速度或速率。
由于节点n103定义的操作是速度相关的(与位置或车道相关相反),因此速度字段f23限制了可以达到如字段f22中定义的目标速度的速率;因此,速度字段f23表示加速度控制。
[0163]
由于分配给第一行动者车辆tv1的操作节点n103在用户界面900b中被定义为变道操作,因此节点n103被填充有与用户界面900a中的相同节点不同的字段,这定义了切入操作。图9b的操作节点n103仍然包括前进距离字段f8和横向距离字段f9,但现在还包括相对位置字段f30,该相对位置字段f30被配置为定义测量字段f8的前进距离的点或其他模拟实体。在图9b的示例中,相对位置字段f30将自主车辆定义为参考点,尽管其他选项可以例如通过从下拉菜单中进行选择配置。因此,通过从f30中定义的点或实体测量字段f8和f9中定义的前进和横向距离来定义操作激活条件。图9b的变道操作节点n103还包括目标车道字段f19和速度字段f20,目标车道字段f19被配置为定义在执行操作后相关车辆占用的车道,速度字段f20被配置用于定义操作的运动约束。
[0164]
由于分配给第二行动者车辆tv2的操作节点n107在图9b中被定义为“保持速度”操作,因此图9b的节点107被填充有用户界面900a中的相同节点的不同字段,该节点107定义了“保持速度”操作。图9b的操作节点n107仍然包括前进距离字段f16,但不包括图9a中出现的最大加速度字段f17。相反,图9b的节点n107包括相对位置字段f31,其作用与相对位置字段f21和f30相同,并且可以类似地通过下拉菜单进行编辑。此外,还包括目标速度字段f32和速度字段f25。目标速度字段f32被配置为定义在操作期间要保持的目标速度。速度字段f25定义了操作的速度或速率。由于节点n105定义的操作是速度相关的(与位置或车道相关相反),因此速度字段f25限制了可以达到如字段f32中定义的目标速度的速率;因此,速度字段f25表示加速度控制。
[0165]
填充节点n103和n107的字段在图9a和图9b之间不同,因为在图9a和图9b中定义的操作不同。然而,应该注意的是,如果在这些节点中定义的操作类型在图9a和图9b之间一致,则用户界面900b仍然可以以不同于用户界面900a的方式填充每个节点。
[0166]
图9b的用户界面900b包括节点创建器按钮905,类似于图9a的用户界面900。然而,图9b的示例没有示出车辆节点创建器905b,这是图9a的用户界面900a的特征。
[0167]
在图9b的示例中,操作类型字段(如f12)可以不是可编辑字段。在图9a中,字段f12是可编辑字段,在从其下拉列表中选择特定操作类型后,相关节点将填充有相关输入字段,用于参数化特定操作类型。相反,在图9b的示例中,可以在创建节点时,例如在选择节点创建器905时,选择操作类型。
[0168]
图10a和图10b提供了系统预模拟可视化功能的示例。该系统能够创建静态和动态层的图形表示,使得用户就可以在运行参数化模拟之前将其可视化。该功能大大降低了用户无意中错误对期望场景进行编程的可能性。
[0169]
用户可以在模拟的关键时刻(例如在交互条件点)查看模拟环境的图形表示,而无需运行模拟,也无需观看模拟以发现存在编程错误。图10a和图10b还显示了图9a的用户界面900a的选择功能。可以从图9a中包含的节点集合中选择一个或更多个节点,选择这些节点会使系统在模拟环境的图形表示上对该节点的编程行为进行数据覆盖。
[0170]
例如,图10a示出了在图9a的用户界面900a中编程的模拟环境的图形表示,其中选择了标题为“车辆1”的节点。通过此选择,分配给车辆1tv1的参数和行为如图10a中的数据覆盖所示。符号x2标记满足为节点n103定义的交互条件的点,并且由于点x2是由输入到f8
和f9的距离而不是坐标定义的,因此符号x1定义了点(所有给定的示例都使用自主车辆ev来定义点x1),从该点测量f8和f9中参数化的距离。标记为“20m”的橙色虚线1001也明确指示了自主车辆ev和车辆1tv1之间的纵向距离(x1和x2之间的距离),在该纵向距离处操作被启动。
[0171]
节点n103中参数化的切入操作也可见为橙色曲线1002,从x2符号开始,到x4符号结束,符号类型定义在节点n103的左上角。同样,在节点n105中定义的变速操作被示为橙色线1003,从切入结束(在x4符号)处开始,并在x3符号处结束,符号类型被定义在节点n1105的左上角。
[0172]
选择“车辆2”节点n106后,将示出分配给车辆2tv2的数据覆盖,如图10b所示。请注意,图10a和图10b在时间上示出了相同的实例,不同之处仅在于在图9a的用户界面900a中选择的车辆节点,因此在于存在的数据覆盖。通过选择车辆2节点n106,节点n107中分配给车辆2tv2的“车道保持”操作的视觉表示如图10b所示。f16中定义的该车辆操作的激活条件如图10b上的蓝色虚线1004所示;还存在x2和x1符号,分别表示满足激活条件的点和从其测量定义激活条件的距离的点。车道保持操作被示出为覆盖在图10b上的蓝色箭头1005,其终点再次标记为节点n107左上角定义的符号,在本例中为x3符号。
[0173]
在一些实施例中,可以同时查看与多辆车有关的数据覆盖,或者查看仅与分配给特定车辆的一次操作有关的数据覆盖,而不是与分配给该车辆的所有操作有关。
[0174]
在一些实施例中,也可以编辑用于定义操作的起点或终点的符号类型,在这种情况下,图9a左上角的符号动作节点是用户界面900的可选择和可编辑特征。
[0175]
在一些实施例中,没有显示数据覆盖。图11示出了与图9a的用户界面900中配置的模拟环境相同的模拟环境,但其中没有选择任何节点。因此,图10a或图10b中所示的数据覆盖都不存在;仅示出了自主车辆ev、车辆1tv1和车辆2tv2。由图10a、图10b和图11表示的是恒定的;只有数据覆盖发生了变化。
[0176]
图14a、图14b和图14c示出了三辆车之间交互场景的预模拟图形表示:ev、tv1和tv2,分别表示自主车辆、第一行动者车辆和第二行动者车辆。每个图还包括被配置为允许在模拟之前对参数化场景进行动态可视化的拖动(scrubbing)时间线1400。针对于全部的图14a、图14b和图14c,在节点编辑用户界面(如图9b)中选择了车辆tv1的节点,以便在图形表示上显示与车辆tv1操作有关的数据覆盖。
[0177]
拖动时间线1400包括拖动手柄1407,该拖动手柄1407可沿时间线的任一方向进行控制。拖动时间线1400还具有与其相关联的多个播放控件1401、1402和1404:播放按钮1401、倒带按钮1402和快进按钮1404。播放按钮可以在选择时被配置为播放参数化场景的动态预模拟表示;播放可以从所选时刻拖动手柄1407的位置开始。倒带按钮1402一旦被选择,就被配置为在左侧方向上移动拖动手柄1407,从而使得图形表示显示相应的较早时刻。倒带按钮1402被选择时,还可以被配置为将拖动手柄1407移回到场景中的关键时刻,例如操作开始的最近时刻;场景的图形表示将因此调整为与新的时间点一致。类似地,快进按钮1404一旦被选择,就被配置为在右侧方向上移动拖动手柄1407,从而使得图形表示显示相应的稍后时刻。快进按钮1404一旦被选择,还可以被配置为移动到未来的关键时刻,例如新的操作开始的未来最近的点;在这种情况下,图形表示将因此根据新的时间点而改变。
[0178]
在一些实施例中,拖动时间线1400能够及时显示参数化场景的近乎连续的实例集
合。在这种情况下,用户能够拖动到模拟开始和结束之间的任何时刻,并在该时刻查看场景的相应预模拟图形表示。在这种情况下,选择播放按钮1401可以允许以用户感知交互场景的连续进展的帧速率播放动态可视化;即视频播放。
[0179]
拖动手柄1407本身可以是拖动时间线1400的可选特征。可以选择拖动手柄1407并将其拖拽到拖动时间线1400上的新位置,从而使得图形表示改变并显示模拟实体在新时刻的相对位置。可替换地,沿着拖动时间线1400的特定位置的选择可以使得拖动手柄1407移动到沿着拖动时间线上做出选择的点。
[0180]
拖动时间线1400还可以包括视觉指示器,例如彩色或阴影区域,其指示参数化场景的各个阶段。例如,可以将特定视觉指示分配给拖动时间线1400的区域,以指示尚未满足特定车辆的操作激活条件的时间上的实例集合。第二视觉指示然后可以表示第二区域。例如,该区域可以表示时间段,在该时间段正在进行操作,或者在该时间段已经执行了所有分配的操作。例如,图1a的示例性拖动时间线1400包括未加阴影的预激活区域1403,表示尚未满足场景的激活条件的时间段。还示出了阴影操作区域1409,其指示分配给行动者车辆tv1和tv2的操作正在进行的时间段。示例性拖动时间线1400还包括未加阴影的操作后区域1413,其指示分配给行动者车辆tv1和tv2的操作已经完成的时间段。
[0181]
如图14b所示,拖动时间线1400可以进一步包括符号指示符,例如1405和1411,它们表示场景阶段之间的边界。例如,示例性拖动时间线1400包括第一边界指示符1405,其表示操作被激活的时刻。类似地,第二边界点1411分别表示操作中阶段1409和操作后阶段1413之间的边界点。注意,在图14a、图14b和图14c中用于表示边界点的符号在所有实施例中可能不相同。
[0182]
图14a、图14b和图14c示出了单个场景的时间进程。在图14a中,拖动手柄1407分别位于场景的交互前阶段1403和交互中阶段1409之间的第一边界点1405处。结果,行动者车辆tv1被显示在发生这种转变的位置:点x2。在图14b中,行动者车辆tv1进行了第一操作(切入)并到达点x3。此时此刻,行动者车辆tv1将开始执行第二操作:减速操作。由于自在点x2或相应的第一边界点1405处激活操作以来已经过去了时间,所以拖动手柄1407已经移动,使得其与第二操作开始的时间点相对应。请注意,在图14b中,拖动手柄1407被发现在操作中阶段1409内,如阴影所指示的那样。然后,图14c示出了操作完成的时刻。行动者车辆tv1已经到达点x4并且拖动手柄已经前进到第二边界点1411,在该点操作结束。
[0183]
场景可视化是为场景选择的特定路段上的主体(在本例中为车辆)的实时呈现的描述。自主车辆ev以黑色表示,而其他车辆则标有(tv1、tv2等)。视觉覆盖可按需切换,并描述了开始和结束交互点、车辆定位和轨迹以及与其他主体的距离。在相应的节点编辑用户界面(如图9b所示)中选择不同的车辆节点,控制显示视觉覆盖的车辆或行动者。
[0184]
时间线控制器允许用户实时播放场景交互(播放按钮)、从一个交互点跳到下一个交互(跳过前一个/下一个按钮)或使用拖动手柄1407在时间上前后拖动。带圆圈的“+”表示时间线中的第一交互点,带圆圈的
“×”
表示最后的结束交互点。这对场景中的主体来说是包括一切的;也就是说,带圆圈的“+”表示模拟中任何主体的第一操作开始的时间点,而带圆圈的
“×”
表示模拟中任何主体的最后操作的结束。
[0185]
当通过时间线播放时,主体可视化将描绘由其场景动作指定的主体的移动。在图14a提供的示例中,tv1主体在领先自主车辆5米并且与自主车辆的横向距离为1.5米(表示
为点x2)处与自主ev进行了第一次交互。这会触发第一动作(用圈出的“1”表示),tv1将在场景中提供速度和加速度约束的情况下,执行从车道1到车道2的变道动作。该动作完成后,主体将继续执行下一个动作。,当tv1领先自主车辆30米时,由图14b中圈出的“2”表示的第二动作将被触发。然后tv1将执行其指定的减速动作以达到指定的速度。当达到该速度时,如图14c所示,第二动作完成。由于没有分配给该主体的进一步操作,它将不会执行进一步的操作。
[0186]
示例图像描绘了场景中的第二主体(tv2)。该车辆已被分配跟随车道2并保持稳定速度的动作。由于这种可视化视角是从上到下的道路鸟瞰图,并且该视角是在跟踪自主车辆,我们只看到了彼此相对的主体运动,因此我们在场景可视化中没有看到tv2的移动。
[0187]
图15a是该过程的高度示意图,系统据此识别地图7205上场景7201的参数化静态层7201a的所有实例。参数化场景7201也可以包括与动态层实体及其交互有关的数据,参数化场景7201被示为包括分别与场景7201中定义的静态层和静态层的距离要求有关的数据子组7201a和1501。例如,静态层参数7201a和场景行驶距离1501在组合时可以定义一段100米的双车道道路,该路段终止于四车道“双向车道”的“t形路口”[0188]
识别过程1505表示系统对存储在地图数据库中的一个或更多个地图的分析。该系统能够识别一个或更多个地图上满足参数化静态层参数7201a和场景运行距离1501的实例。然后可以将包括参数化路段的适当实例的地图7205提供给用户用于模拟。
[0189]
系统可以通过将参数化的静态层标准与每个地图中的路段相关的现有数据进行比较来搜索合适的路段。在这种情况下,系统将合适路段1503的子集从剩余的不合适路段1507的子集中区分开。
[0190]
图15b描绘了包括多种不同类型的路段的示例性地图7205。作为用户将静态层7201a和场景行驶距离150参数化为场景7201的一部分1的结果,系统已经识别了地图7205内的所有路段,这些路段是参数化道路布局的合适示例。系统识别的合适实例1503在图15b中以蓝色突出显示。

技术特征:
1.一种生成要在用于测试自动驾驶车辆的行为的模拟环境中运行的场景的计算机实现的方法,所述方法包括:在计算机设备的显示器上呈现静态场景拓扑的图像;在所述显示器上呈现对象编辑节点,所述对象编辑节点包括用于接收用户输入的输入字段集合,所述对象编辑节点用于参数化挑战者对象相对于自主对象的交互;将定义所述挑战者对象相对于所述自主对象的至少一个时间约束或关系约束的用户输入接收到所述对象编辑节点的输入字段中,所述至少一个时间约束或关系约束对在所述自主对象和所述挑战者对象之间定义的交互阶段的交互点进行定义;将约束的集合和所定义的交互阶段存储在计算机系统的计算机存储器中的交互容器中;以及生成要在模拟环境中运行的场景,所述场景包括在所述交互点处的所述静态场景拓扑上执行的所定义的交互阶段。2.根据权利要求1所述的方法,其中,所述输入字段集合包括用于接收定义交互的指示的字段,所述挑战者对象要在所述场景中执行所述定义交互。3.根据权利要求2所述的方法,其中,所述输入字段集合包括用于接收以下方式的指示的输入字段:在所述场景中以所述方式执行所述定义交互。4.根据前述权利要求中的任一项所述的方法,其中,所述输入字段集合包括用于接收所述挑战者对象在所述交互点处的行为的指示的字段。5.根据前述权利要求中的任一项所述的方法,其中,所述输入字段集合包括用于接收对象类型的指示的字段。6.根据前述权利要求中的任一项所述的方法,其中,所述输入字段中的一个或更多个包括预定选项的菜单,使得用户能够选择所述预定选项之一以参数化所述挑战者对象。7.根据前述权利要求中的任一项所述的方法,其中,所述静态场景拓扑包括道路布局。8.根据前述权利要求中的任一项所述的方法,包括以下步骤:从预定义场景拓扑的库中选择静态场景拓扑并在所述显示器上呈现所选择的场景拓扑。9.根据权利要求7或权利要求7和8所述的方法,其中,所述道路布局包括一个或更多个驾驶车道,其中,所述输入字段集合包括用于接收所述挑战者对象的车道驾驶行为的指示的字段。10.根据权利要求9所述的方法,包括:将车道标识符分配给所述道路布局的一个或更多个驾驶车道中的每一个驾驶车道,以及经由所述对象编辑节点接收在所述交互点处的所述挑战者对象和所标识的车道的关联。11.根据前述权利要求中的任一项所述的方法,包括:在所述显示器上呈现用于进一步参数化所述挑战者对象的第二对象编辑节点,以及接收到所述第二编辑节点的字段中的用户输入,以定义所述定义交互的另一阶段,每个交互被定义为阶段的相应序列,其中,所生成的场景包括由所述挑战者对象执行的所述交互阶段的序列。12.根据前述权利要求中的任一项所述的方法,包括:在所述显示器上呈现自主对象编辑节点,用于通过在所述交互点之前接收所述自主车辆的启动条件和所述自主车辆的行为约束来参数化所述场景中的所述自主车辆。13.根据前述权利要求中的任一项所述的方法,其中,所述挑战者对象包括动态行动
者,其中,所述交互定义了由所述动态行动者在所述场景中在相对于所述自主车辆的由所述至少一个时间约束或关系约束定义的时间和位置处要采取的动作。14.根据权利要求13所述的方法,其中,由所述挑战者对象要采取的动作包括操作或行为。15.根据前述权利要求中的任一项所述的方法,包括:将所述交互容器与标识所述定义交互和所述场景拓扑的交互容器标识符一起存储。16.根据权利要求14所述的方法,其中,所述操作包括以下中的一个:切入;切出;以及切换车道。17.根据权利要求14所述的方法,其中,所述行为包括以下中的一个:减速、加速、以固定速度行驶和跟随车道。18.一种用于生成要在用于测试自动驾驶车辆的行为的模拟环境中运行的场景的计算机系统,所述系统包括:计算机存储器;用户界面,被配置为显示静态场景拓扑的图像;处理器,所述处理器被配置为在所述用户界面上呈现对象编辑节点,所述对象编辑节点包括用于接收用户输入的输入字段集合,所述对象编辑节点用于参数化挑战者对象相对于自主对象的交互;所述用户界面被配置为将定义所述挑战者对象相对于所述自主对象的至少一个时间约束或关系约束的用户输入接收到所述对象编辑节点的输入字段中,所述至少一个时间约束或关系约束对在所述自主对象和所述挑战者对象之间所定义的交互阶段的交互点进行定义;所述处理器被配置为:将所述至少一个约束和所定义的交互阶段存储在所述计算机系统的计算机存储器中的交互容器中;以及生成要在模拟环境中运行的场景,所述场景包括在所述交互点处的所述静态场景拓扑上执行的所定义的交互阶段。19.计算机可读介质,所述计算机可读介质能够是暂时性的或非暂时性的,在所述计算机可读介质上存储有计算机可读指令,所述计算机可读指令在由一个或更多个处理器执行时执行权利要求1至17中的任一项的方法。

技术总结
一种生成要在用于测试自动驾驶车辆的行为的模拟环境中运行的场景的计算机实现的方法,包括在计算机设备的显示器上呈现静态场景拓扑的图像;以及在显示器上呈现包括用于接收用户输入的输入字段集合的对象编辑节点。对象编辑节点用于参数化挑战者对象相对于自主对象的交互;以及该方法包括将定义挑战者对象相对于自主对象的至少一个时间约束或关系约束的用户输入接收到对象编辑节点的输入字段中。至少一个时间约束或关系约束对自主对象和挑战者对象之间定义的交互阶段的交互点进行定义。该方法包括将约束的集合和所定义的交互阶段存储在计算机系统的计算机存储器中的交互容器中;以及生成要在模拟环境中运行的场景,该场景包括在交互点处的静态场景拓扑上执行的所定义的交互阶段。的所定义的交互阶段。的所定义的交互阶段。


技术研发人员:拉塞尔
受保护的技术使用者:法弗人工智能有限公司
技术研发日:2022.01.28
技术公布日:2023/10/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐