CN117413254A - 自主车辆规划器测试工具 - Google Patents
自主车辆规划器测试工具 Download PDFInfo
- Publication number
- CN117413254A CN117413254A CN202280038530.8A CN202280038530A CN117413254A CN 117413254 A CN117413254 A CN 117413254A CN 202280038530 A CN202280038530 A CN 202280038530A CN 117413254 A CN117413254 A CN 117413254A
- Authority
- CN
- China
- Prior art keywords
- stack
- run
- component
- evaluation data
- scene
- 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
- 238000012360 testing method Methods 0.000 title description 52
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000004048 modification Effects 0.000 claims abstract description 34
- 238000012986 modification Methods 0.000 claims abstract description 34
- 238000011156 evaluation Methods 0.000 claims abstract description 32
- 230000008447 perception Effects 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000002679 ablation Methods 0.000 description 40
- 238000004088 simulation Methods 0.000 description 39
- 230000006870 function Effects 0.000 description 18
- 230000006399 behavior Effects 0.000 description 14
- 230000006872 improvement Effects 0.000 description 14
- 230000003068 static effect Effects 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 5
- 230000036461 convulsion Effects 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种评估自主机器人规划栈中至少一个组件性能的计算机实现方法,该方法包括:生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;修改规划栈的至少一个组件的至少一个操作参数,其中通过对该操作参数应用变量修改;生成第二运行的第二评估数据,其中通过在场景中已修改至少一个操作参数的规划栈的控制下操作自主机器人;使用至少一个比较性能度量来比较第一评估数据与第二评估数据。
Description
技术领域
本公开涉及测试自主车辆规划器性能的工具和技术及其实现方法、系统和计算机程序。
背景技术
自主车辆领域取得了重大而迅速的发展。自主车辆是一种配备传感器和自主系统而能够在无人控制其行为的情况下运行的交通工具。本文中,术语“自主”涵盖半自主行为和全自主行为。传感器使车辆能够感知其物理环境,例如可包括摄像头、雷达和激光雷达。自主车辆配备适当编程的计算机,能够处理从传感器接收的数据,并根据传感器感知的环境做出安全且可预测的决策。测试特定自主车辆或某类自主车辆上传感器和自主系统的行为涉及不同方面。AV测试可以在现实世界中进行,也可以基于模拟驾驶场景进行。测试车辆(现实或模拟)可以称为自我车辆或被测车辆。
业界的一种测试方法依赖于“影子模式(Shadow Mode)”操作。这种测试旨在使用人类驾驶作为评定自主决策的基准。自主驾驶系统(ADS)在影子模式下根据从配备传感器但人类驾驶的车辆捕获的输入运行。ADS处理人类驾驶车辆的传感器输入,并做出驾驶决策,就好像理论上控制车辆一样。然而,这些自主决策并未实际实行,而只是简单记录下来,目的是将它们与人类实际驾驶行为进行比较。如此累积“影子里程”,通常目的是证明ADS可以比人类更安全高效地执行任务。
现有的影子模式测试存在许多缺点。影子模式测试可能会标记某些场景,其中可用的测试数据表明ADS的表现与人类驾驶员不同。目前这需要对测试数据进行手动分析。每种场景的“影子里程”需要与相同场景的人类驾驶员里程进行比较来完成评估。
发明内容
根据本发明一方面,提供了一种评估自主机器人规划栈中至少一个组件性能的计算机实现方法,该方法包括:生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;修改规划栈的至少一个组件的至少一个操作参数,其中通过对操作参数应用变量修改;生成第二运行的第二评估数据,其中通过在场景中已修改至少一个操作参数的规划栈的控制下操作自主机器人;使用至少一个比较性能度量来比较第一评估数据与第二评估数据。
一些实施例中,规划栈的至少一个组件是感知组件,并且变量修改应用于感知组件的感知准确度。
一些实施例中,至少一个组件是预测组件,并且变量修改是修改可用于操作规划栈中预测组件的计算资源。
一些实施例中,至少一个组件是控制组件。
一些实施例中,变量修改是基于正修改参数的修改值的统计分布来计算。这个实施例中,统计分布可以是高斯分布。
一些实施例中,响应于用户在图形用户界面处选择修改而对操作参数应用变量修改。这个实施例中,用户选择可以包括激活图形用户界面上的滑块,该滑块在第一端点与第二端点之间滑动百分比修改。
一些实施例中,用户选择是选择对多个操作参数进行百分比变量修改。
一些实施例中,场景是模拟场景。这个实施例中,模拟场景可以是基于从操作自主机器人的实际场景中提取的地面实况。
一些实施例中,性能度量使用交错点识别。交错点识别请参阅本申请人的英国专利申请GB2107645.0,其内容通过引用归并本文。
一些实施例中,比较结果显示为性能卡上的指示。性能卡请参阅本申请人的英国专利申请GB2107644.3,其内容通过引用归并本文。
根据第二方面,提供了一种包括计算机可读指令集的计算机程序,这些指令被处理器执行时促使处理器进行根据第一方面或其任何实施例的方法。
根据第三方面,提供了一种存储有根据第二方面的计算机程序的非暂态计算机可读介质。
根据第四方面,提供了一种包括处理器和代码存储器的装置,代码存储器存储有计算机可读指令集,这些指令被处理器执行时促使处理器:生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;修改规划栈的至少一个组件的至少一个操作参数,其中通过对该操作参数应用变量修改;生成第二运行的第二评估数据,其中通过在场景中已修改至少一个操作参数的规划栈的控制下操作自主机器人;使用至少一个比较性能度量来比较第一评估数据与第二评估数据。
一些实施例中,规划栈的至少一个组件是感知组件,并且变量修改应用于感知组件的感知准确度。
一些实施例中,至少一个组件是预测组件,并且变量修改是修改可用于操作规划栈中预测组件的计算资源。
一些实施例中,至少一个组件是控制组件。
一些实施例中,变量修改是基于正修改参数的修改值的统计分布来计算。
一些实施例中,统计分布是高斯分布。
一些实施例中,计算机可读指令集被处理器执行时促使处理器:响应于用户在图形用户界面处选择修改而对操作参数应用变量修改。
一些实施例中,用户选择包括激活图形用户界面上的滑块,该滑块在第一端点与第二端点之间滑动百分比修改。
一些实施例中,用户选择是选择对多个操作参数进行百分比变量修改。
一些实施例中,场景是模拟场景。
一些实施例中,模拟场景是基于从操作自主机器人的实际场景中提取的地面实况。
一些实施例中,比较第一评估数据与第二评估数据使用到交错点识别。
一些实施例中,计算机可读指令集配置为被处理器执行时促使处理器:将比较结果显示为性能卡上的指示。
附图说明
下面举例结合附图来更清楚地理解本发明并表明本发明实施方式,图中:
图1示出了自主车辆运行时栈的高度示意性框图。
图2示出了自主车辆模拟过程中性能测试流程的高度示意性框图。
图3示出了示例性场景提取管道的高度示意性框图。
图4示出了演示将改进潜力的视觉指示分配给运行的过程的流程图。
图5示出了演示迭代执行参考规划器的连续消融来比较两个机器人栈性能的过程的流程图。
图6示出了演示针对被测栈生成要求规范的过程的流程图。
图7示出了配置为测试自主车辆规划器的计算机系统的高度示意性框图。
具体实施方式
本文描述了一种性能评估工具,能够比较不同的规划栈或规划栈组件(或“切片”)。本文中,规划栈可以称为自主车辆(Autonomous Vehicle-AV)栈。本文引入了一种称为“连续消融(Continuous Ablation)”的技术。“连续消融”是指有意更改第一规划栈或规划栈组件中一个或多个操作参数的取值或误差的过程,以便能够在第一规划栈(或规划栈组件)的性能与第二规划栈(或规划栈组件)的性能之间进行比较。这种操作参数的实例可以是感知参数,诸如视场或测距。这种操作参数的另一实例可以是计算资源参数,诸如模拟延时。应当注意,消融的是感知参数误差。亦即,实际栈将使用感知组件来测量距离和其他类似参数,这些测量将包括一定误差量。消融的正是这种感知参数的误差量。然而,作为特定栈固有属性的参数(诸如计算预算和模拟延时)可以通过改变实际值而非其误差来消融。
可以通过分析“运行”的特征来完成性能分析。利用对操作参数的连续消融可以允许用户标识一个规划栈开始优于另一个规划栈的参数值边界。此类分析可以洞察规划栈可能出现的改进类型和程度。
详细描述上述特征之前,首先提供可以实施这些特征的系统概述。
AV栈实例
图1示出了自主车辆AV(本文又称自我车辆EV)的运行时栈100的高度示意性框图。运行时栈100表示为包括感知系统102、预测系统104、规划器106和控制器108。
在现实世界中,感知系统102将从AV的车载传感器系统110接收传感器输入,并使用这些传感器输入来检测外界主体并测量这些主体的物理状态,如主体的位置、速度、加速度等。机载传感器系统110可以采取不同的形式,但大体上包括各种传感器,如图像捕捉器(摄像头/光学传感器)、激光雷达和/或雷达单元、卫星定位传感器(GPS等)、运动传感器(加速度计、陀螺仪等)等,这些传感器共同提供丰富的传感器数据,可以从中提取有关周围环境以及该环境内AV和任何外界参与者(车辆、行人、骑行人等)状态的详细信息。传感器输入通常包括多种传感器形态的传感器数据,如来自一个或多个立体光学传感器、激光雷达、雷达等的立体图像。
感知系统102包括多个感知组件,这些感知组件相互协作来解释传感器输入并由此向预测系统104提供感知输出。检测并按概率表示外界主体的方式可以是反映在感知系统102内感知该外界主体的不确定性水平。
来自感知系统102的感知输出被预测系统104用来预测外界参与者(外界主体,如AV附近的其他车辆)的未来行为。其他主体是EV感知的动态障碍。预测系统104的输出可以例如采取一组预测的障碍物轨迹形式。
将预测系统104计算出的预测提供给规划器106,规划器106使用这些预测做出AV要在给定驾驶场景中执行的自主驾驶决策。场景表示为规划器106使用的一组场景描述参数集。典型的场景将定义可驾驶区域,还将捕获任何静态障碍物以及可驾驶区域内任何外界主体的预测移动。
规划器106的核心功能是考虑任何静态和/或动态障碍物(包括后者的任何预测运动)来规划AV的轨迹(自我轨迹),这可称为轨迹规划。轨迹规划的目的是在场景内实现预期目标。该目标例如可能是进入环岛并在预期的出口离开;超越前方车辆;或按目标速度留在当前车道上(车道随行)。该目标可以例如由自主路线规划器(未示出)确定。下例中,通过固定或移动目标位置来定义目标,规划器106规划从EV的当前状态(自我状态)到目标位置的轨迹。例如,该目标位置可以是与特定路口或环岛出口相关联的固定目标位置,也可以是在超车情况下保持在前方车辆之前的移动目标位置。本文中,轨迹具有空间分量和运动分量,不仅定义了为自我车辆规划的空间路径,而且定义了沿该路径规划的运动轮廓。
规划器106需要在存在任何静态或动态障碍物(如其他车辆、自行车、行人、动物等)情况下安全导航。
回顾图1,在运行时栈100内,控制器108实施规划器106做出的决策。为了实现这一点,控制器108向AV的机载参与者(Actor)系统112提供适当的控制信号。在任何给定规划步骤中,规划了瞬时自我轨迹之后,规划器106会向控制器108提供足够的规划轨迹数据以允许控制器108实施该规划轨迹的初始部分直到下一个规划步骤。例如,规划器106可以将瞬时自我轨迹规划为递增的未来时刻的一系列离散自我状态,但实际上仅将第一个规划的自我状态(或前几个规划的自我状态)提供给控制器108来进行实施。
在物理AV中,参与者系统112包括可控制为实现车辆移动和现实世界自我状态中的其他物理变化的电动机、致动器等。
来自控制器108的控制信号通常是对参与者系统112的可频繁更新的低级指令。例如,控制器108可以使用如速度、加速度和加加速度等输入来产生控制参与者系统112的组件的控制信号。控制信号可以例如指定特定的方向盘角度或特定的踏板力变化,从而引起速度、加速度、加加速度等变化和/或方向变化。
模拟测试–概述
本公开实施例可有益地应用在基于模拟的测试。例如就栈100而言,为了通过模拟来测试栈100的全部或部分性能,将栈暴露于模拟的驾驶场景。下例考虑了测试规划器106,单独进行,却也可与栈100的一个或多个其他子系统或组件组合。
在模拟驾驶场景中,自我主体基于随着模拟场景进度而从模拟场景导出的模拟输入来实施规划器106做出的决策。通常,自我主体要在存在一个或多个真实车辆需要安全交互的模拟障碍物的情况下在静态可驾驶区域内(例如特定的静态道路布局内)导航。如其他车辆、行人、骑行人、动物等动态障碍物可以在模拟中表示为动态主体。
模拟输入的处理方式与相应的物理输入完全相同,最终形成规划器在模拟场景过程中自主决策的基础。自我主体又会执行这些决策,从而模拟物理自主车辆在此类情况下的行为。在模拟中,这些决策最终会随着模拟自我状态变化而实现。规划器106与模拟器之间存在这种双向交互,其中规划器106做出的决策影响模拟,而模拟中的变化影响随后的规划决策。可以记录结果并根据安全和/或其他性能标准分析结果。
栈100的输出存在测试中可实施规划器106所做决策的各种方式。在“规划级”模拟中,可以假设自我主体完全遵循从当前规划步骤到下个规划步骤的最近规划轨迹部分。这是一种简单的模拟形式,在模拟期间无需控制器108完成任何实施。更复杂的模拟会认识到,现实中任意数目的物理条件都可能导致真实的自我车辆稍微偏离规划轨迹(例如因车轮打滑、参与者系统112延迟或响应瑕疵或者车辆自身状态测量失准)。这些因素可以通过对自我车辆动力进行适当建模来适应。在此情形下,控制器108像现实生活那样应用于模拟,使用合适的自我动力模型(代替参与者系统112)将控制信号转换成自我状态变化,以便更真实地模拟自我车辆对控制信号的响应。
在此情形下,就像现实生活一样,从当前规划步骤到下个规划步骤的规划轨迹部分可能仅近似地实现为自我状态变化。
测试管道实例
图2示出了测试管道200的示意性框图。测试管道高度灵活,可以适应多种形式的AV栈,在任何自主级别上操作。如上所述,本文中术语“自主(autonomous)”涵盖从1级(驾驶员辅助)到5级(完全自主)的任何级别的完全或部分自主。
测试管道200表示为包括模拟器202、测试预言机252和“内省”预言机253。模拟器202运行模拟的目的是测试全部或部分AV运行时栈。
仅举例而言,说明测试管道200是参照图1的运行时栈100来例举一些基本原理。如上所述,可以仅测试运行时栈的子栈,但为简单起见,下述内容皆涉及AV栈100;应当注意,实际测试可能只是图1中AV栈100的子集,这取决于测试时的切片方式。在图2中,根据上下文,附图标记100既可表示完整的AV栈,也可仅表示子栈。
图2示出了正测试的AV栈100内的预测系统104、规划系统106和控制系统108,其中模拟感知输入203从模拟器202馈送到栈100。
模拟感知输入203用作预测基础,最终由规划器108做出决策。但应当注意,模拟感知输入203相当于感知系统102将会输出的数据。为此,模拟感知输入203也可视作输出数据。控制器108又通过输出控制信号109来实施规划器的决策。在现实世界背景下,这些控制信号将驱动AV的物理参与者系统112。测试中生成的控制信号的格式和内容与现实世界背景下的相同。然而,在测试管道200内,这些控制信号109反而驱动自我动力模型204在模拟器202内模拟自我主体的运动。
驾驶场景的模拟是根据场景描述201来运行,场景描述201既有静态层201a又有动态层201b。
静态层201a定义场景的静态元素,通常包括静态道路布局。
动态层201b定义关于场景内外界主体的动态信息,如其他车辆、行人、自行车等。所提供的动态信息范围可能发生变化。例如,针对每个外界主体,动态层201b可以包括该主体所遵循的空间路径以及该路径相关联的运动数据和行为数据之一或两者。
在简单的开环模拟中,外界参与者仅遵循动态层中定义的空间路径和运动数据,该动态层为非反应式,即不会对模拟内的自我主体做出反应。这种开环模拟无需任何主体决策逻辑210即可实施。
但在“闭环”模拟中,动态层201b却定义沿着静态路径遵循的至少一种行为(如ACC行为)。在此情形,下主体决策逻辑210在模拟内反应式实施该行为,即对自我主体和/或其他外界主体做出反应。运动数据仍可以与静态路径相关联,但在此情形下规范性较弱,可以例如用作沿路径的目标。例如,对于ACC行为,可以沿着主体寻求匹配的路径设定目标速度,但可允许主体决策逻辑110在沿着路径的任何点将外界主体的速度降低到目标以下,以便与前方车辆保持目标车距。
模拟器202针对给定模拟的输出包括自我主体的自我踪迹212a以及一个或多个外界主体的一个或多个主体踪迹212b(踪迹212)。
踪迹是模拟内主体行为的完整历史记录,既有空间分量又有运动分量。例如,踪迹可以采取空间路径的形式,具有与沿路径各点相关联的运动数据,如速度、加速度、加加速度(jerk,加速度变化率)、加加加速度(snap,加加速度变化率)等。
还提供附加信息来补充踪迹212并为其提供上下文。这种附加信息称为“环境”数据214,可以既有静态分量(例如道路布局)又有动态分量(例如模拟过程中变化的天气条件)。
在某种程度上,环境数据214可以是“透传”数据,因为该数据直接由场景描述201定义而不受模拟结果影响。例如,环境数据214可以包括直接来自场景描述201的静态道路布局。然而,环境数据214通常包括模拟器202内导出的至少一些元素。这可以例如包括模拟的天气数据,其中模拟器202随着模拟进度而自由改变天气条件。在此情形下,天气数据可以具时间相关性,该时间相关性会反映在环境数据214中。
测试预言机252接收踪迹212和环境数据214,并对照一组预定义的数值度量254对这些输出进行评分。度量254可以对本文中称为“数字公路法规(Digital Highway Code,DHC)”或数字驾驶规则(Digital Driving Rule)的内容进行编码。下面给出一些其他合适性能度量的实例。
评分是基于时间:针对每个性能度量,测试预言机252跟踪该度量的值(分数)随着模拟进度如何随时间变化。测试预言机252提供输出256,包括每个性能度量的分数时间图。
度量254为专家提供信息,分数可用于识别并缓解被测栈100内的性能问题。
内省预言机253是配置为利用来自自我机器人真实运行或模拟运行的信息(如上述度量)的计算机系统。该信息可用于洞察被测栈的性能。
使用连续消融来进行分析特别有益于使用户能够了解其规划栈(或其规划栈某些部分)的性能。对于这种应用,需要用户运行的详情。图3示出了场景提取管道的高度示意性框图。现实世界运行的运行数据140传递到地面实况管道142以便生成场景地面实况。运行数据140可以例如包括在一辆或多辆车辆(可以是自主车辆、人类驾驶车辆或二者组合)上捕获/生成的传感器数据和/或感知输出以及/或者从外置传感器等其他来源(CCTV等)捕获的数据。如图3所示,从运行规划栈152(标记为栈A)的自主车辆150提供运行数据140。在地面实况管道142内处理运行数据,以便针对现实世界运行生成适当的地面实况144(踪迹和上下文数据)。地面实况处理可以基于对原始运行数据142的手动注释,或者该过程可以完全自动化(例如,使用离线感知方法),或者可以使用手动和自动地面实况的组合。例如,可以将3D边界框放置在运行数据140中捕获的车辆和/或其他主体周围,以便确定其行迹的空间状态和运动状态。场景提取组件146接收场景地面实况144并处理该场景地面实况以提取可用于模拟目的的抽象场景描述148。将该场景描述提供给模拟器202以便能够执行模拟运行。为此,模拟器202可以利用标记为栈B[config 1]的栈100。下面详述其相关性。栈B是规划器栈,用于比较目的,将其性能与真实运行中运行的栈A的性能进行比较。栈B可以例如是一个或多个组件受消融的参考规划器栈,如下所述。可以对规划器栈B进行消融,使其在高度现实操作约束下进行,在高度人为操作约束下进行,或者在这二者之间某种程度的现实约束下进行。
可以将实际运行数据与经消融参考规划器栈的模拟输出进行比较,参考规划器栈是在关于真实运行的用户定义现实水平(介于最优人为与最优现实之间)执行。故应注意,最优现实输出会精确模拟实际运行数据的输出,正如地面实况数据所表现那样。来自模拟的运行数据可以是经消融参考规划器栈的输出运行,提供给性能比较功能156。地面实况的真实运行数据也提供给性能比较功能156。性能比较功能156判定真实运行与模拟运行之间是否存在性能差异。这一点可以通过多种不同的方式来完成,如下所述。本文讨论的一项新技术是交错点识别,也可参阅英国专利申请GB 2107645.0。
如图3所示,为了获得性能改进参考,可以执行不止一次模拟运行。可能有多种不同的规划器方案可以在该特定场景的模拟中运行,其中性能最佳的方案可能是与栈A的性能进行比较以在卡上生成视觉指示的方案。例如,如图3所示,模拟运行可以使用标为栈B[config 2]700的模拟器202(即,与第一模拟中相同的栈,但某些参数配置不同)。应当注意,不同参数配置可能隐含消融栈的一个或多个操作参数,从而为规划器注入一定水平的真实感。替选地,可以使用不同的栈运行模拟,例如标记为栈C 702。
本发明实施例中,可以通过消融规划器和规划栈组件或切片的参数并且比较按不同消融水平执行的运行来分析不同操作参数的作用。下面详述对操作参数的消融,特别是连续消融。
各种可配置操作参数可能改变测试环境中自主机器人栈的操作条件。操作参数可能属于栈的不同“级别”(组件)。操作参数的实例可以包括诸如视场等感知参数、诸如模拟延时等计算资源以及机器人进行测量的误差。改变这种栈的操作参数可能会导致特定模拟场景下的输出运行发生变化。可以同时更改多个操作参数,例如感知、预测、规划组件等两个以上参数。
一种示例应用中,可以通过消融操作参数来测试规划栈的感知系统。测试时将栈“切片”的方式决定了需要提供给切片(栈/子栈)的模拟感知输入的形式。当测试感知系统时,可以对栈进行切片以便测试,从而至少一部分感知系统在测试中并不运行。代替运行整个感知系统,可以使用模拟器地面实况数据,模拟器地面实况数据提供了模拟环境或场景在概念上的完美表示,其中优化诸如计算预算等操作参数,误差(诸如感知误差)为零。然后,可以使用感知系统的统计模型或已切片的感知系统子集来消融模拟器的操作参数,从而将感知系统固有的感知误差引入地面实况数据。
二元消融是指通过更改操作参数使运行精度达到任一极端。亦即,可以对“完美”地面实况输出进行消融以产生完全代表真实感知误差的输出,而切片或统计建模的感知系统很容易受到这种误差的影响。二元消融请参阅本申请人的PCT专利申请PCT/EP2020/073563,其内容通过引用归并本文。相比之下,连续消融是指操作参数以连续方式变化,使得操作参数和测量误差可以取介于人为地面实况精度的极端值与特定栈或其切片固有的实际值之间的值。例如,操作参数可以取数值,以连续方式变化时可能导致输出演示被测栈或参考规划器行为的程度连续增减。例如,特定测量中的感知误差可能在高精度人为模拟器地面实况与建模或切片感知系统固有的现实误差之间变化。故应理解,对操作参数的连续消融允许控制输出的“真实度”;引入的误差越多,输出与消融操作参数相关的现实测试栈输出的性能就越匹配。
下述内容涉及本申请人开发的现有系统,该系统能够对被测栈(或其切片)易受影响的感知误差进行建模。这些系统称为“PSPM”,请参阅本申请人的英国申请GB1912145.8,其内容通过引用归并本文。感知统计性能模型(Perception Statistical PerformanceModel-PSPM)鉴于概率不确定性分布对感知误差进行建模,这是基于对正建模的一个或多个感知组件计算出的实际感知输出的鲁棒统计分析。PSPM的独特之处在于,给定感知地面实况(即,由完美但不切实际的感知组件计算的“完美”感知输出),PSPM提供了概率不确定性分布,代表了它所模拟的感知组件可能提供的真实感知组件。例如,给定地面实况3D边界框,以3D边界框检测器为模型的PSPM将提供代表现实3D对象检测输出的不确定性分布。即使感知系统具有确定性,也能有效地建模为随机,以考虑到它在实践中所依赖的许多隐藏变量的认知不确定性。
当然,现实世界AV在运行时无法获得感知地面实况(这正是需要复杂的感知组件来稳健解释不完美传感器输出的原因)。然而,感知地面实况可以直接从模拟器中运行的模拟场景中导出。例如,假设存在外界参与者的情况下对自我车辆(正测试的模拟AV)的驾驶场景进行3D模拟,则可基于外界参与者的大小直接从模拟场景中计算出地面实况3D边界框以及相对于自我车辆的姿势(位置和方向)。然后,可以使用PSPM从这些地面实况中导出真实3D边界对象检测输出,而这些输出又可由其余AV栈进行处理,就像运行时一样。
连续消融
一些实施例中,0~1连续范围可以映射到感知参数误差,其中该范围中的值0可以对操作参数施加最大程度的人为误差约束。相反,该范围内的值1可以对操作参数施加最大程度的现实误差约束。
这样实现了一种缩放误差的系统,对0<x<1范围内的连续值施加误差约束。一些实施例中,可以应用高斯分布(本文中称为高斯函数)来采样误差。例如,高斯函数可以是误差变量的概率函数,高斯函数以地面实况系统的误差为中心。该范围内值的增减可能导致高斯曲线相应地变宽或变窄。
这个实施例中,对于该范围内的值0,高斯函数可以精确地对栈切片或建模系统易受影响的误差进行建模。对于范围内的值0<x<1,与值0时的曲线相比,高斯函数的协方差可能会减小,故曲线会变窄,可限制误差偏离人为地面实况最小误差的程度。使用协方差变化来更改输出真实度代表了操作参数的连续消融。
对于范围内的值1,高斯曲线无限窄,使得输出不会偏离地面实况,从而再现地面实况输出。例如,范围内值1的高斯函数可以是:
其中,T0是代表人为地面真实最小误差的常数,T代表任意误差变量。如上式所示,假设范围内的值为1,则误差概率G(T)等于概念上最小地面实况误差的值为1,从而系统重新创建地面实况输出。应当注意,[0,1]以外的其他函数和范围可用于控制将真实度引入到被测栈或其切片中;举例给出上述高斯函数。
另一例中,0~1范围可以映射到诸如计算预算等计算资源参数。例如,该范围内的值0可以在模拟期间允许无限的计算资源。相反,该范围内的值1可以在模拟期间对被测栈施加真实度最高的计算预算约束。
上述连续消融的示例性实施涉及对感知参数的消融。就此重申,实际栈使用感知组件来测量距离和其他类似参数,这些测量包括一定误差量。在上例中,当高斯曲线变宽或变窄时,感知参数误差量发生变化。但应理解,作为特定栈固有属性的参数(诸如计算预算和模拟延时等)也可以映射到0~1范围内,该范围内的值0分指定参数的最大人为值,该范围内的值1指定参数的最大现实值。根据上述方法,可以通过对来自高斯分布的取值进行采样来完成对参数值的直接连续消融(对照测量值误差)。应当注意,一些实施例中,可以使用不同的函数将滑块中的值映射到参数值。
真实度滑块
一些实施例中,上述范围可以映射到不止一个操作参数。例如,0~1范围可以映射到一个或多个感知参数和/或一个或多个基于资源的参数,诸如计算预算。在该范围映射到多个参数的实施例中,对该范围内值的修改可能导致消融该范围所映射到的所有参数。这就允许用户同时引入所有相关操作参数的真实度。在本文中,用于设置一定范围内的值来确定针对一个或多个参数引入的真实感程度的工具可以称为真实度滑块。真实度滑块可以渲染为图形用户界面上用于控制参考规划器的交互特征,该滑块具有可选控点,该控点从左向右移动以指定该范围内的值。一些实施例中,真实度滑块可以映射到多个操作参数,例如一个或多个感知参数和/或基于资源的参数。当滑块在范围的极值之间移动时,参考规划器的输出真实度可针对滑块映射到的所有参数来修改,从而同时调整现实的多个方面。例如,如果真实度滑块将值设置为0,则参考规划器的输出将精确模拟被测栈(或其切片)的性能。当真实度滑块的控点移动并设置为大于0的值时,滑块映射到的参数将受到消融,参考规划器输出的真实感针对这些参数而增加。现实的各个方面均由一个或多个操作参数表示。
性能卡实施
本文描述的技术具有若干不同的应用。
一种应用是生成所谓的性能卡。性能卡是本申请人开发的新型性能评估工具,请参阅本申请人的英国专利申请GB2107644.3,其内容通过引用归并本文。
一种性能比较方式是生成所谓的“性能卡”。生成“性能卡”来提供特定规划栈(或规划栈特定部分)的性能的可访问指示。性能卡是一种包括多个性能指标区域的数据结构,每个性能指标区域指示与特定运行相关联的性能参数。在本文中,性能指标区域又称图块。性能卡能够在图形用户界面的显示器上直观渲染,以允许观看者快速辨别每个图块的性能参数。每个图块包括选自量化视觉表示集中的特定视觉表示。每个图块中显示的视觉表示是基于由被测栈执行的运行与由参考规划器执行的相同运行之间的性能比较而确定,参考规划器以零感知误差和实际上无限的计算资源进行操作。
运行的性能差异可用于生成性能卡中与该运行相关联的图块的视觉指示。若无差异,则会提供表明未发现任何改进的视觉指示(例如,深绿色)。这意味着即使针对参考规划器栈运行,比较系统也无法找到此场景的任何可能改进。这意味着原始规划器栈A的性能正如预期,或者无法找到改进其性能的有效方式。该信息本身有益于栈A的用户。
如果发现真实运行与模拟运行之间存在明显性能差异,则可估计性能可能改进的程度。可以针对量化估计标度中的每个估计级别提供视觉指示。
下面结合性能卡功能来描述提供被测栈与参考栈之间性能比较的背景下连续消融的示例性应用。
图4示出了生成性能卡的示例性工作流程,其中基于特定运行中被测栈性能与参考规划器性能的比较来确定分配给性能卡图块的视觉指示符。步骤S0,提供输出运行数据140。步骤S1,如参照图3所述,从输出运行数据中提取场景数据。步骤S2,使用规划器栈B(可能为特定配置[config 1])在模拟器中运行提取的场景数据。图4中模拟器的输出标记为Run A。图4中现实世界的运行数据标记为Run 0。步骤S3,将Run A的数据与Run 0的数据进行比较以判定运行之间的性能差异。步骤S4,基于性能差异来判定是否存在任何改进潜力。如果不存在改进潜力,则步骤S5,提供指示无改进潜力的视觉指示。如果存在改进潜力,则步骤S6,生成改进潜力估计并基于该估计来选择视觉指示。
性能卡可以作为图形用户界面上的交互特征呈现给用户。用户可以通过选择与特定运行相对应的图块而与性能卡进行交互。例如,用户可以选择包括视觉指示符的图块,该视觉指示符指示与选定图块相关联的运行与参考规划器相比有待重大改进或极大改进。
图5示出了选择特定性能卡图块时启动的示例性过程的流程图,该过程使用连续消融来进一步洞察被测栈(SUT)所执行的特定运行的改进潜力。图5的示例性过程中,连续消融参考规划器的一个或多个操作参数之后进行模拟并与SUT运行进行比较。该过程以迭代方式重复,使得参考规划器在每次迭代中逐步“注入”增强的真实度。一次或多次迭代之后,可以标识SUT输出优于消融参考规划器输出的分歧点。
图5开始于步骤S500,其中用户选择性能卡的特定图块,选定图块对应于场景运行,与参考规划器产生的相同场景的参考运行进行比较时,该场景运行视为至少有待一定改进。在本例中,被测栈产生的运行称为“Run X”。选择图块后,迭代地进行一系列模拟和随后的性能比较。步骤S502,访问由参考规划器生成的初始参考运行,对此Run X视为有待改进。步骤S504,对参考规划器的一个或多个操作参数执行消融。例如,消融可能导致一个或多个感知参数误差的增加和/或计算预算的减少,使得参考规划器的后续输出在某种程度上受到SUT性能限制影响。然后,参考规划器使用一个或多个消融的操作参数来进行模拟。
步骤S506,将Run X与参考规划器的输出进行比较,该参考规划器的输出受到消融其中操作参数的影响,该比较可基于一个或多个性能度量。步骤S508,判定参考运行是否优于Run X。如果认为参考运行优于Run X,则流程继续至步骤S510,其中进一步消融参考规划器的一个或多个操作参数。步骤S510的消融可能导致一个或多个感知参数的误差进一步增加,和/或可能导致参考规划器可用的计算资源减少。然后,步骤S512,生成更新的参考运行,该更新的参考运行是基于步骤S510确定的操作参数。然后,流程返回到步骤S506,其中再次将更新的参考运行与Run X进行比较。步骤S506、S508、S510和S512可以形成循环,在一次或多次迭代循环后,标识针对一个或多个性能度量参考运行不再优于Run X的分歧点。
当步骤S508判定一个或多个性能度量下参考运行Run X优于Run X时,流程继续到步骤S514,其中可以例如在显示设备的用户界面上向用户提供过程结果分析。例如,该分析可以表明,即使是现实操作参数值和误差,参考规划器也能生成优于Run X的运行,在此情况下,即使在现实操作条件下,被测栈也有待改进。替选地,该分析可以表明,参考规划器仅在高度人为操作条件下优于被测栈。
应当注意,上述示例性过程实现了每次迭代的真实度大幅提升。然而,可以实施消融一个或多个操作参数的不同方法。一些实施例中,循环S506~S512的每次迭代之后消融参数的方法实施了0~1范围的真实度滑块,其中该真实度滑块的范围映射到一个或多个操作参数。步骤S504可以通过将真实度滑块移动到值而引起操作参数的消融,这样生成的参考运行真实度介于被测栈的真实度与参考规划器的真实度之间。步骤S508判定参考运行优于Run X,指示反转成真的分歧点p在滑块上取值/>在循环S506~S512的下次迭代中,消融可以将滑块设置为值/>介于零值与已知最低滑块值之间的中间值,此处参考规划器的性能优于Run X。考虑到滑块值为/>导致生成确定为被Run X超越的运行。在此情形下,获知Run X开始优于参考运行的分歧点p在滑块上取值/>应当理解,循环的进一步迭代减小了已知存在分歧点的范围区间大小。例如,在上例中,下一次迭代可以设置滑块值/>介于/>与/>之间。确定本次迭代中参考运行表现得优于或劣于Run X,可推断出分歧点p位于滑块上值域/>内(如果Run X表现优于参考运行)或值域/>内(如果Run X性能劣于参考运行)。可能存在其他消融操作参数的方式,上文仅作示例。
被测栈消融
另一种连续消融应用是开发被测栈的要求规范。亦即,SUT可能在特定运行中“失败”(例如,基于一些驾驶规则/驾驶规则组合或者基于与参考规划器的性能比较)。在此情形下,可以使用迭代连续消融来分析SUT操作参数的不同组合,从而对每次迭代的输出执行性能分析。结果可以允许自动为规划器生成具体的“要求”规范。举例而言,结果可能表明SUT需要1.5秒的计算预算,再加上感知误差减少20%才能满足某种可接受的性能水平;这些要求可以报告给用户,用户可以根据消融分析来改进SUT。
图6示出了使用连续消融生成SUT要求规范的示例性工作流程。图6的示例性工作流程中,由SUT生成的运行针对一个或多个性能度量和/或一组道路规则失败。该流程演示了迭代消融一个或多个操作参数以寻找特定运行的特定SUT的要求规范的过程。本文描述的示例性工作流程实现了大幅增加人为性以确定运行不再失败的点,并生成要求规范。但应理解,可以根据不同的规则消融操作参数来实现相同的目的。
图6开始于步骤S601,其中选择SUT的一个或多个操作参数。一个或多个选定操作参数可以包括一个或多个感知参数和/或不同SUT组件的一个或多个参数。步骤S603,对选定操作参数执行连续消融,以便针对选定操作参数将一定量人为性注入到SUT中。步骤S605,针对未消融运行失败的一个或多个性能度量和/或一组道路规则来分析具有消融参数的SUT运行。
步骤S607,判定具有消融操作参数的运行此时是否通过一个或多个性能度量和/或一组道路规则。如果运行未通过,则流程移至步骤S609,其中进一步消融一个或多个操作参数。然后流程继续到步骤S611,其中使用步骤S609消融的操作参数来生成更新的SUT运行。然后流程返回到步骤S605,针对步骤S611生成的运行执行步骤S605。应当注意,步骤S605、S607、S609和S611可以形成循环,其中随着每次迭代,SUT的人为性增加。在一次或多次迭代循环之后,可以在步骤S607判定SUT运行通过一个或多个性能度量和/或一组道路规则。如果步骤S607返回运行通过,则流程可以继续到步骤S613,其中可以生成要求规范。要求规范可以告知用户在SUT可以生成通过一个或多个性能度量和/或一组道路规则的运行之前必须改进哪些操作参数值/误差以及改进程度如何。
上述步骤是在计算机系统中实施。参照图7,示出了配置为利用来自自我车辆真实运行或模拟运行的信息(如上述度量)的示例计算机系统(即内省预言机253)的示意性框图。处理器50接收数据来生成对被测系统的洞察。在输入52处接收数据。图中示出单个输入,但很容易理解,可以实施对内省预言机的任何形式的输入。具体地,可以将内省预言机实施为服务器提供的后端服务,该服务器经由网络连接到多个计算机设备,计算机设备配置为生成并提供数据给内省预言机。处理器50配置为将接收到的数据存储在存储器54中。提供运行数据形式的数据,包括“运行(run)”及其相关联的度量,如下所述。处理器还可访问代码存储器60,代码存储器60存储有计算机可执行指令,这些指令被处理器50执行时配置处理器50实行某些功能。存储器60中存储的代码可以与传入数据存储在同一存储器中。但更有可能用于存储传入数据的存储器将配置为与用于存储代码的存储器60不同。此外,用于存储代码的存储器60可以位于处理器50内部。
处理器50执行来自代码存储器60的计算机可读指令来执行本文所述的各项功能。具体地,处理器50执行指令来进行如下功能:生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;修改规划栈的至少一个组件的至少一个操作参数,其中通过对该操作参数应用变量修改;生成第二运行的第二评估数据,其中通过在场景中已修改至少一个操作参数的规划栈的控制下操作自主机器人;使用至少一个比较性能度量来比较第一评估数据与第二评估数据。
应当理解,存储器56和存储器54可以由公共的计算机存储器或由不同的计算机存储器提供。内省预言机253还包括连接到处理器50的图形用户界面(GUI)300。本文中,为了描述起见,处理器50可以访问存储器56中存储的审查卡以在图形用户界面300上渲染审查卡。视觉渲染功能66可用于控制图形用户界面300向用户呈现审查卡和相关信息。
本文描述的实例应理解为本发明实施例的说明性实例。本文可以设想更多的实施例及实例。关于任何实例或实施例描述的任何特征可以单独使用或者与其他特征组合使用。另外,关于任何实例或实施例描述的任何特征也可以与任何其他实例或实施例的一个或多个特征组合使用,或者与任何其他实例或实施例的任意组合结合使用。另外,在权利要求定义的本发明保护范围内,也可以采用本文未描述的等同和修改方案。
Claims (15)
1.一种评估自主机器人规划栈中至少一个组件性能的计算机实现方法,该方法包括:
生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;
修改所述规划栈的至少一个组件的至少一个操作参数,其中通过对所述操作参数应用变量修改;
生成第二运行的第二评估数据,其中通过在所述场景中已修改所述至少一个操作参数的规划栈的控制下操作所述自主机器人;
使用至少一个比较性能度量来比较所述第一评估数据与所述第二评估数据。
2.根据权利要求1所述的方法,其中,所述规划栈的至少一个组件是感知组件,并且所述变量修改应用于所述感知组件的感知准确度。
3.根据权利要求1所述的方法,其中,所述至少一个组件是预测组件,并且所述变量修改是修改可用于操作所述规划栈中所述预测组件的计算资源。
4.根据权利要求1所述的方法,其中,所述至少一个组件是控制组件。
5.根据权利要求1所述的方法,其中,所述变量修改是基于正修改参数的修改值的统计分布来计算。
6.根据权利要求5所述的方法,其中,所述统计分布是高斯分布。
7.根据权利要求1所述的方法,其中,响应于用户在图形用户界面处选择修改而对所述操作参数应用所述变量修改。
8.根据权利要求7所述的方法,其中,所述用户选择包括激活所述图形用户界面上的滑块,所述滑块在第一端点与第二端点之间滑动百分比修改。
9.根据权利要求7或8所述的方法,其中,所述用户选择是选择对多个操作参数进行百分比变量修改。
10.根据任一项前述权利要求所述的方法,其中,所述场景是模拟场景。
11.根据权利要求10所述的方法,其中,所述模拟场景是基于从操作所述自主机器人的实际场景中提取的地面实况。
12.根据任一项前述权利要求所述的方法,其中,比较所述第一评估数据与所述第二评估数据使用到交错点识别。
13.根据任一项前述权利要求所述的方法,包括:将比较结果显示为性能卡上的指示。
14.一种包括处理器和代码存储器的装置,所述代码存储器存储有计算机可读指令集,所述指令被所述处理器执行时促使所述处理器:
生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;
修改所述规划栈的至少一个组件的至少一个操作参数,其中通过对所述操作参数应用变量修改;
生成第二运行的第二评估数据,其中通过在所述场景中已修改所述至少一个操作参数的规划栈的控制下操作所述自主机器人;
使用至少一个比较性能度量来比较所述第一评估数据与所述第二评估数据。
15.一种包括计算机可读指令集的计算机程序,所述指令被处理器执行时促使所述处理器:
生成第一运行的第一评估数据,其中通过在场景中被测规划栈的控制下操作自主机器人;
修改所述规划栈的至少一个组件的至少一个操作参数,其中通过对所述操作参数应用变量修改;
生成第二运行的第二评估数据,其中通过在所述场景中已修改所述至少一个操作参数的规划栈的控制下操作所述自主机器人;
使用至少一个比较性能度量来比较所述第一评估数据与所述第二评估数据。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2107645.0 | 2021-05-28 | ||
GB2107642.7 | 2021-05-28 | ||
GB2107646.8 | 2021-05-28 | ||
GB2107644.3 | 2021-05-28 | ||
GBGB2110797.4A GB202110797D0 (en) | 2021-07-27 | 2021-07-27 | Tools for testing autonomous vehicle planners |
GB2110797.4 | 2021-07-27 | ||
PCT/EP2022/064435 WO2022248678A1 (en) | 2021-05-28 | 2022-05-27 | Tools for testing autonomous vehicle planners |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117413254A true CN117413254A (zh) | 2024-01-16 |
Family
ID=77541097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280038530.8A Pending CN117413254A (zh) | 2021-05-28 | 2022-05-27 | 自主车辆规划器测试工具 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117413254A (zh) |
GB (1) | GB202110797D0 (zh) |
-
2021
- 2021-07-27 GB GBGB2110797.4A patent/GB202110797D0/en not_active Ceased
-
2022
- 2022-05-27 CN CN202280038530.8A patent/CN117413254A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202110797D0 (en) | 2021-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3789920A1 (en) | Performance testing for robotic systems | |
KR101951595B1 (ko) | 모듈형 순환 신경망 구조 기반 차량 경로 예측 시스템 및 방법 | |
US11189171B2 (en) | Traffic prediction with reparameterized pushforward policy for autonomous vehicles | |
CN111666804A (zh) | 对于自主驾驶有用的行人移动预测 | |
JP7345639B2 (ja) | マルチエージェントシミュレーション | |
CN109782730B (zh) | 用于自主系统性能和评级的方法和装置 | |
WO2021096776A1 (en) | Simulating diverse long-term future trajectories in road scenes | |
EP3757895A1 (en) | Method for estimating a global uncertainty of a neural network | |
CN113665574B (zh) | 智能汽车换道时长预测及拟人化轨迹规划方法 | |
US20230150550A1 (en) | Pedestrian behavior prediction with 3d human keypoints | |
US20230281357A1 (en) | Generating simulation environments for testing av behaviour | |
CN116134292A (zh) | 用于性能测试和/或训练自动驾驶车辆规划器的工具 | |
US20230331247A1 (en) | Systems for testing and training autonomous vehicles | |
JP2023540613A (ja) | 運転者支援システムを試験するための方法およびシステム | |
WO2022023199A1 (en) | 3d multi-object simulation | |
Hartmann et al. | “Pedestrian in the Loop”: An approach using augmented reality | |
CN117413254A (zh) | 自主车辆规划器测试工具 | |
JP7446416B2 (ja) | 時空間ポーズ/オブジェクトデータベース | |
Arbabi et al. | Planning for autonomous driving via interaction-aware probabilistic action policies | |
EP4338052A1 (en) | Tools for testing autonomous vehicle planners | |
EP3920070A1 (en) | Testing and simulation in autonomous driving | |
CN117461025A (zh) | 自主车辆规划器性能测试工具 | |
CN117377947A (zh) | 自主车辆规划器性能测试工具 | |
Mohammed | Microscopic agent-based modeling and simulation of cyclists on off-street paths | |
US20240094090A1 (en) | Vehicle trajectory assessment |
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 |