一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

安全分析框架的制作方法

2022-05-06 11:24:59 来源:中国专利 TAG:

安全分析框架
1.相关申请
2.本专利申请要求享有题目为“安全分析框架”,序列号为16/586,838,申请日为2019年9月27日的美国实用专利申请的优先权,并且要求享有题目为“误差建模框架”,序列号为16/586,853,申请日为2019年9月27日的美国实用专利申请的优先权。序列号为16/586,838和16/586,853的申请的全文通过引用方式被并入本文。


背景技术:

3.自动驾驶车辆可以使用自动驾驶车辆控制器来引导自动驾驶车辆通过环境。例如,自动驾驶车辆控制器可以使用规划的方法、装置和系统来确定驾驶路径,并且引导自动驾驶车辆通过包含动态对象(例如车辆、行人、动物等)和静态对象(例如建筑物、标志、停止的车辆等)的环境。然而,为了确保乘员的安全,验证控制器的安全性是重要的。
附图说明
4.参照附图描述了详细描述。在附图中,附图标记最左边的数字标识第一次出现附图标记的图。在不同的图中使用相同的附图标记指示类似或等同的组件或特征。
5.图1示出了基于参数化场景来生成与车辆控制器相关联的车辆性能数据。
6.图2示出了至少部分地基于由车辆生成的日志数据来生成场景数据的计算设备,其中,场景数据描绘了场景的一个或多个变化。
7.图3示出了至少部分地基于车辆数据和真实(ground truth)数据来生成误差模型数据。
8.图4示出了通过提供与模拟环境相关联的误差或不确定性中至少之一,使用误差模型数据来扰动模拟。
9.图5示出了至少部分基于由车辆生成的日志数据和真实数据来生成感知误差模型数据的计算设备。
10.图6示出了至少部分地基于参数化场景数据来生成模拟数据以及至少部分地基于模拟数据来生成安全度量数据的计算设备。
11.图7描绘了用于实现本文描述的技术的示例系统的框图。
12.图8描绘了根据本公开的示例的用于确定与车辆控制器相关联的安全度量的示例过程的流程图。
13.图9描绘了用于确定与自动驾驶车辆的子系统相关联的统计模型的示例过程的流程图。
具体实施方式
14.本文描述的技术涉及确定系统的性能度量的各个方面。在本文描述的至少一些示例中,例如,可以使用模拟并结合其他性能度量确定来确定这样的性能度量。模拟可以用于验证在车辆(例如自动驾驶车辆)上执行的软件(例如车辆控制器),并且收集安全度量以确
保软件能够在各种场景中安全地控制这些车辆。在另外的或替换的示例中,可以使用模拟来学习使用自动驾驶控制器的自动驾驶车辆的约束条件。例如,考虑到表面条件、环境噪声、故障组件等,模拟可以用于理解自动驾驶车辆的操作空间(例如自动驾驶控制器在其中有效控制自动驾驶车辆的包络线)。模拟还可以用于生成反馈以改进自动驾驶车辆的操作和设计。例如,在一些示例中,模拟可以用于确定自动驾驶控制器中所需的冗余的量,或者如何基于通过模拟所学习的内容来修改自动驾驶控制器的行为。此外,在另外的或替换的示例中,模拟可以用于告知自动驾驶车辆的硬件设计,例如优化自动驾驶车辆上的传感器的布置。
15.当创建模拟环境以执行测试和验证时,利用各种特定的示例具体列举该环境是可能的。这种环境的每次实例化可以是唯一的并被定义。手动枚举所有可能的场景可能需要过多的时间量,并且如果不是每个可能的场景都被构造,则各种场景可能不被测试。场景参数可以用于参数化场景内的对象的特性和/或属性,并且提供场景的变化。
16.例如,一台车辆或多台车辆可以穿过环境,并且生成与该环境相关联的日志数据。日志数据可以包括:由车辆的一个或多个传感器捕获的传感器数据,指示由车辆上的一个或多个系统识别(或在后处理阶段期间产生)的对象的感知数据,指示对象意图的预测数据(无论在记录期间产生还是随后产生),和/或指示诊断信息、轨迹信息和由车辆产生的其他信息的状态数据。车辆可以经由网络将日志数据发送到存储日志数据的数据库和/或分析日志数据的计算设备。
17.计算设备可以基于日志数据来确定各种场景、各种场景的频率、以及环境中的与各种场景相关联的区域。在一些实例中,计算设备可以对日志数据中表示的类似场景进行分组。例如,可以使用例如k均值聚类和/或评估环境参数(例如日间、夜间、降水、车辆位置/速度、对象位置/速度、道路区段等)之间的加权距离(例如欧几里得)来将场景分组在一起。如上所述,通过在唯一的场景中模拟自动驾驶控制器,而不是在产生冗余模拟数据/结果的几乎类似的场景中模拟自动驾驶车辆,对类似或相似的场景进行聚类可以减少在环境中模拟自动驾驶控制器所需的计算资源量。如可以理解的,可以期望自动驾驶控制器在相似的场景中类似地执行(和/或已经可以证明地执行)。
18.例如,计算设备可以基于日志数据中表示的行人数量来确定人行横道处行人出现的速率。在一些实例中,计算设备可以基于该速率以及操作自动驾驶车辆的时间段来确定在人行横道处检测到行人的概率。基于日志数据,计算设备可以确定场景,并且基于所述场景来识别可以用于模拟的场景参数。
19.在一些实例中,该模拟可以用于测试和验证自动驾驶车辆控制器对车辆的缺陷(和/或故障)传感器和/或传感器数据的缺陷(和/或故障)处理的响应。在这样的示例中,计算设备可以被配置为在对象的场景参数中引入不一致性。例如,误差模型可以指示与场景参数相关联的误差和/或误差百分比。该场景可以将误差和/或误差百分比并入到模拟场景中,并且模拟自动驾驶车辆控制器的响应。这样的误差可以由,但不限于,基于使用真实数据的统计聚合、函数(例如基于输入参数的误差)、或将参数映射到特定误差的任何其他模型确定的查找表来表示。在至少一些示例中,这样的误差模型可以映射具有发生概率/频率的特定误差。
20.例如但不限于,误差模型可以指示诸如与模拟环境中的对象相关联的速度之类的
场景参数与误差百分比相关联。例如,对象可以在模拟场景中以每秒10米的速度行驶,并且误差百分比可以是20%,这产生在每秒8米和每秒12米之间的速度范围。在一些实例中,速度范围可以与概率分布相关联,该概率分布指示该范围的一些部分比该范围的其他部分具有更高的发生概率(例如每秒8米和每秒12米与15%概率相关联,每秒9米和每秒11米与30%概率相关联,并且每秒10米与10%概率相关联)。
21.基于误差模型和/或场景,可以生成参数化场景。参数化场景可以提供场景的一组变化。因此,在参数化场景中实例化自动驾驶车辆控制器并且模拟参数化场景可以有效地覆盖场景的宽范围变化,而不需要人工枚举变化。另外,至少部分地基于执行参数化场景,模拟数据可以指示自动驾驶车辆控制器如何对参数化场景作出响应(或者将如何对参数化场景作出响应),并且至少部分地基于模拟数据来确定成功结果或不成功结果。
22.聚合与参数化场景相关的模拟数据可以提供与参数化场景相关联的安全度量。例如,模拟数据可以指示自动驾驶车辆控制器和参数化场景的成功率和/或失败率。在一些实例中,满足或超过成功率可以指示对自动驾驶车辆控制器的成功验证,该自动驾驶车辆控制器随后可以由车辆下载(或以其他方式传递到车辆)以用于进一步的车辆控制和操作。
23.例如,参数化场景可以与结果相关联。模拟数据可以指示自动驾驶车辆控制器与结果一致或不一致地进行响应。例如但不限于,参数化场景可以表示包括由以一定速度行驶的自动驾驶车辆控制器控制的车辆并且在车辆前面的对象之前执行停止动作的模拟环境。该速度可以与指示车辆的速度范围的场景参数相关联。参数化场景可以至少部分地基于速度范围来模拟,并且可以在车辆完成停止动作时生成指示车辆与对象之间的距离的模拟数据。参数化场景可以与指示车辆和对象之间的距离满足或超过距离阈值的结果相关联。基于模拟数据和场景参数,成功率可以指示与车辆完成停止动作的总次数相比的、当车辆完成停止动作时车辆与对象之间的距离满足或超过距离阈值的次数。
24.本文描述的技术提供了各种计算效率。例如,通过使用本文描述的技术,计算设备需要更少的计算资源,并且与经由常规技术所获得的相比,可以更快地生成多个模拟场景。常规技术是不可扩展的。例如,生成一组唯一的模拟环境——用于训练、测试和/或验证自动驾驶车辆上的系统(例如ai栈的一个或多个组件)所需的数量(例如在将此类自动驾驶车辆部署在相应的新的实际环境中之前)——可能花费过多的时间,从而限制了在进入实际场景和/或环境之前在自动驾驶车辆上训练、测试和/或验证这样的系统(例如ai栈的一个或多个组件)的能力。本文描述的技术是非常规的,这是因为它们利用从实际环境收集的传感器数据,并且利用附加数据补充该数据,以与利用常规技术所获得的相比更有效地生成基本准确的模拟环境(例如相对于相应的实际环境)。此外,本文描述的技术——例如场景的变化方面——能够与利用常规技术所获得的相比以更少的时间并且利用更少的计算资源来生成许多可扩展的模拟场景。
25.此外,本文描述的技术涉及安全性的改进。也就是说,由本文描述的生成技术产生的模拟环境可以用于测试、训练和验证自动驾驶车辆上的系统,以确保当这些系统被部署在实际环境中时能够安全地操作自动驾驶车辆。也就是说,由本文描述的生成技术产生的模拟环境可以用于测试、训练和验证自动驾驶车辆控制器的规划器系统和/或预测系统,这些系统可以被自动驾驶车辆使用以在实际环境中沿轨迹导航自动驾驶车辆。因此,由本文描述的技术实现的这种训练、测试和验证可以提供确保自动驾驶车辆能够在实际世界环境
中安全运行的机会。因此,本文描述的技术提高了安全性和冲击导航。
26.图1示出了基于参数化场景来生成与车辆控制器相关联的车辆性能数据的示例100。为了生成场景,可以使用输入数据102。输入数据102可以包括车辆数据104和/或附加情境数据106。车辆数据104可以包括由在环境中行驶通过的车辆捕获的日志数据。如上所述,日志数据可以用于识别用于模拟自动驾驶控制器的场景。出于说明的目的,车辆可以是被配置为根据美国国家公路交通安全管理委员会发布的5级分类而运行的自动驾驶车辆,所述5级分类描述了在不希望驾驶员(或乘员)在任何时候控制车辆的情况下能够执行整个行程的所有安全关键功能的车辆。在这样的示例中,由于车辆可以被配置为控制从启动到停止的所有功能,包括所有停车功能,因此它可以是不被占用的。这仅仅是一个示例,本文描述的系统和方法可以并入任何地面、空中或水上车辆中,包括范围从需要驾驶员随时手动控制的车辆到部分或完全自动驾驶控制的车辆的车辆。
27.车辆可以包括含有感知引擎和/或规划器的计算设备,并且执行诸如对从环境收集的传感器数据进行检测、识别、分割、分类和/或跟踪对象的操作。例如,诸如行人、自行车/自行车骑行者、摩托车/摩托车骑行者、公交车、有轨电车、卡车、动物和/或类似物之类的对象可以存在于环境中。
28.当车辆行驶通过环境时,传感器可以捕获与环境相关联的传感器数据。例如,一些传感器数据可以与对象(例如车辆、骑行者和/或行人)相关联。在一些实例中,传感器数据可以与其他对象相关联,其他对象包括但不限于建筑物、路面、标志、障碍物等。因此,在一些实例中,传感器数据可以与动态对象和/或静态对象相关联。如上所述,动态对象可以是环境内的与运动相关联的对象(例如车辆、摩托车、骑行者、行人、动物等)或能够运动的对象(例如停放的车辆、站立的行人等)。如上所述,静态对象可以是与环境相关联的对象,例如建筑物/构筑物、路面、道路标记、标志、障碍物、树木、人行道等。在一些实例中,车辆计算设备可以确定关于环境中的对象的信息,例如边界框、分类、分段信息等。
29.车辆计算设备可以使用传感器数据来生成车辆的轨迹。在一些实例中,车辆计算设备还可以确定与车辆的位置相关联的姿态数据。例如,车辆计算设备可以使用传感器数据来确定车辆在环境中的位置数据、坐标数据和/或方向数据。在一些实例中,姿态数据可以包括x-y-z坐标和/或可以包括与车辆相关联的俯仰、翻滚和偏航数据。
30.车辆计算设备可以生成可以包括上述数据的车辆数据104。例如,车辆数据104可以包括传感器数据、感知数据、规划数据、车辆状态数据、速度数据、意图数据和/或由车辆计算设备生成的其他数据。在一些实例中,传感器数据可以包括由传感器捕获的数据,传感器例如飞行时间传感器、位置传感器(例如gps、指南针等)、惯性传感器(例如惯性测量单元(imu)、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、相机(例如rgb、ir、强度、深度等)、麦克风传感器、环境传感器(例如温度传感器、湿度传感器、光传感器、压力传感器等)、超声波换能器、车轮编码器等。传感器数据可以是由这样的传感器捕获的数据,例如飞行时间数据、位置数据、激光雷达数据、雷达数据、声纳数据、图像数据、音频数据等。这样的日志数据还可以包括车辆的任何一个或多个系统或子系统的中间输出,包括但不限于,指示对象检测、对象踪迹、未来对象位置的预测、响应于这样的检测而生成的多个轨迹、传送到用于实行命令的一个或多个系统或子系统的控制信号等的消息。在一些实例中,车辆数据104可以包括与由车辆计算设备生成的其他数据相关联的时
间数据。
31.在一些实例中,输入数据102可以用于生成场景。输入数据102可以包括车辆数据104和/或附加情境数据106。例如但不限于,附加情境数据106可以包括诸如来自第三方来源的事故报告之类的数据。第三方来源可以包括执法机构、机动车部门和/或能够发布和/或存储活动报告和/或事故报告的安全管理机构。例如,报告可以包括活动的类型(例如交通事故,例如道路上的碎屑、局部水灾等)、位置和/或活动的描述。例如但不限于,报告可以描述驾驶员在操作车辆时,在以每秒15米的速度行驶时,撞击道路中落下的树枝。报告可以用于生成可以用于模拟的类似场景。
32.在一些实例中,附加情境数据106可以包括捕获的传感器数据(例如图像数据)。例如但不限于,在车辆的驾驶员操作车辆的同时,该驾驶员可以使用相机来捕获图像数据。在一些实例中,图像数据可以捕获诸如事故之类的活动。例如但不限于,在驾驶员操作车辆的同时,驾驶员可以使用仪表盘相机(例如安装在车辆的内部仪表盘上的相机)来捕获图像数据。当驾驶员操作车辆时,动物可能奔跑穿越道路,并且驾驶员可能立即刹车,以使车辆减速。仪表盘相机可以捕获动物奔跑穿越道路和车辆减速的图像数据。图像数据可以用于生成动物奔跑穿越道路的场景。如上所述,可以基于满足或超过概率阈值的概率来确定与场景相关联的概率以识别用于模拟的场景。例如但不限于,在遇到场景的可能性小于0.001%的情况下,可以使用0.001%的概率阈值,然后可以优先考虑具有较高概率的场景,以用于模拟和确定与具有较高概率的场景相关联的安全度量。
33.场景编辑器组件108可以使用输入数据102,例如车辆数据104和/或附加情境数据106,来生成初始场景110。例如,输入数据102可以被输入到场景编辑器组件108中,场景编辑器组件108可以生成表示合成环境中的输入数据102的至少一部分的合成环境。生成诸如初始场景110之类的场景和由车辆生成的可以被包括在车辆数据104中的数据的示例可以在例如题目为“场景编辑器和模拟器”且于2019年4月23日提交的美国专利申请no.16/392,094中找到,该专利申请的全文通过引用方式被并入本文。
34.场景编辑器组件108可以被配置为扫描输入数据102,以识别在输入数据102中表示的一个或多个场景。例如但不限于,场景编辑器组件108可以确定输入数据102的一部分表示没有通行权(例如没有人行横道,在没有步行指示的交叉口等)的行人穿越街道。场景编辑器组件108可以将其识别为场景(例如违规穿越道路参数),并且将该场景标注(和/或分类)为例如违规穿越道路场景。例如,场景编辑器组件108可以使用定义动作的规则来生成初始场景110。例如但不限于,规则可以定义在不与人行横道相关联的区域中穿越道路的行人是违规穿越道路者。在一些实例中,场景编辑器组件108可以从场景编辑器组件108的用户接收标注数据,以将输入数据102的部分与标注相关联,从而生成初始场景110。
35.在一些实例中,场景编辑器组件108可以扫描输入数据102的其他部分,并且识别类似的场景,并利用相同的违规穿越道路标注来标记类似的场景。在一些实例中,场景编辑器组件108可以识别不对应于(或被排除于)现有标注的场景,并且生成针对这些场景的新标注。在一些实例中,场景编辑器组件108可以生成场景库,并且将场景库存储在场景编辑器组件108内的数据库中。例如但不限于,场景库可以包括人行横道场景、汇合(merging)场景、车道变换场景等。
36.在至少一些示例中,可以手动指定这种初始场景110。例如,一个或多个用户可以
指定要被测试的某些场景,以确保在执行这些场景时车辆能够安全地运行,尽管先前从未(或很少)遇到该场景。
37.参数组件112可以确定与由场景编辑器组件108识别的初始场景110相关联的场景参数。例如但不限于,参数组件112可以分析违规穿越道路场景,并且确定与违规穿越道路场景相关联的场景参数,该场景参数包括行人的位置、行人的姿态、行人的身材、行人的速度、行人的踪迹、车辆与行人之间的距离、车辆的速度、道路的宽度等。
38.在一些实例中,参数组件112可以确定与场景参数相关联的值范围或值集合。例如,参数组件112可以确定与在初始场景110中表示的对象(例如行人)相关联的分类,并且确定输入数据102中具有相同分类的其他对象。然后,参数组件112可以确定与由初始场景110表示的场景参数相关联的值的范围。例如但不限于,场景参数可以指示行人可以具有每秒0.5-5米范围的速度。
39.在一些实例中,参数组件112可以确定与场景参数相关联的概率。例如但不限于,参数组件112可以将诸如高斯分布(也被称为正态分布)之类的概率分布与场景参数相关联。在一些实例中,参数组件112可以基于输入数据102来确定与场景参数相关联的概率。如上所述,参数组件112可以确定与在输入数据102中表示的对象相关联的分类,并且确定在输入数据102和/或其他日志数据中具有相同分类的其他对象。然后,参数组件112可以确定与由输入数据102和/或其他日志数据表示的对象相关联的场景参数的概率分布。
40.例如但不限于,参数组件112可以确定30%的行人以低于每秒0.3米的速度行走,30%的行人以高于每秒1.2米的速度行走,以及40%的行人以每秒0.3至1.2米的速度行走。参数组件112可以使用该分布作为违规穿越道路场景的行人将以特定速度步行的概率。作为另一示例但不限于,参数组件112可以确定1%的违规穿越道路场景概率,其可以指示在穿过环境的同时,穿过环境的车辆将在5%时间遇到违规穿越道路者。在一些实例中,在自动驾驶车辆控制器的模拟期间,场景概率可以用于以与场景概率相关联的速率包括场景。
41.在一些实例中,参数组件112可以接收并入分布中的补充数据114。例如但不限于,参数组件112可以确定场景参数,该场景参数指示在车辆以每秒15米的速度行驶的同时,行人可以与车辆具有范围为30-60米的距离,或者替代地表示为碰撞时间为2-4秒。补充数据114(例如规章或指南)可以指示车辆必须处理具有1.5秒碰撞时间的场景,1.5秒碰撞时间可以是下限(也被称为参数阈值)。参数组件112可以并入补充数据114,并且将场景参数确定为具有1.5-4秒的碰撞时间(但可以指定任何时间范围)。在一些实例中,参数组件112可以使用上述概率分布来确定(使用内插和/或外插技术)与补充数据114相关联的概率。
42.误差模型组件116可以确定可以指示与场景参数相关联的误差的误差模型。例如,感知误差模型可以产生与模拟对象的感知参数相关联的感知误差,预测误差模型可以产生与模拟对象的预测参数相关联的预测误差。在一些实例中,当车辆穿过环境时,传感器可能产生误差的传感器数据,和/或车辆的计算设备可能不正确地处理传感器数据,这可能导致感知误差。测试和模拟感知误差可以帮助指示车辆的操作余量,因为它涉及潜在的感知误差。例如,诸如感知参数之类的场景参数可以指示对象的大小或对象在环境中的位置范围。误差模型组件116可以使用感知误差模型来指示与对象的大小相关联的潜在误差,该潜在误差可以产生车辆的感知数据,该感知数据指示对象大于或小于环境中的实际对象。
43.误差模型组件116可以通过将输入数据102与真实数据进行比较来确定例如感知
误差模型。在一些实例中,真实数据可以被手动地标注和/或从其他经验证的机器学习组件确定。例如,输入数据102可以包括传感器数据和/或由车辆产生的感知数据。误差模型组件116可以将输入数据102与真实数据进行比较,真实数据可以指示环境中的对象的实际参数。通过将输入数据102与真实数据进行比较,误差模型组件116可以确定感知误差。例如但不限于,输入数据102可以表示行人身高为1.8米,而真实数据指示行人身高为1.75米,并且因此,感知误差模型可以指示大约3%(例如[(1.8-175)/1.8]
×
100)的感知误差。
[0044]
在一些实例中,误差模型组件116可以确定与在输入数据102中表示的对象相关联的分类,并且确定在输入数据102中具有相同分类的其他对象。然后,误差模型组件116可以确定与对象的误差范围相关联的概率分布(也被称为误差分布),并且将该概率分布与初始场景110内的对象相关联。例如但不限于,误差模型组件116可以确定具有行人分类的对象具有4%-6%的感知误差,以及具有车辆分类的对象具有3%-5%的感知误差。在一些实例中,误差模型组件116可以确定概率分布,该概率分布指示例如大于阈值大小的对象更可能或更不可能具有误差(例如在分类中)。
[0045]
在一些实例中,参数组件112可以使用区域数据118来确定环境中的可与场景和场景参数兼容的一组区域。例如但不限于,场景可以指示车辆的速度为每秒15米,行人的速度为每秒1.5米,并且车辆和行人之间的距离为30米。参数组件112可以基于环境中的符合该场景的区域数据118来确定区域。例如但不限于,参数组件112可以排除学校地带,这是因为在该场景中车辆的速度可能超过与学校地带相关联的速度限制,因此该场景在学校地带中将是无效的。然而,这样的车辆速度(例如15m/s)在与农田相邻的县公路上可能是合理的,因此这样的区域可以被认为是在一组区域内。
[0046]
在一些实例中,参数组件112可以存储包括环境的可驾驶区域区段的区域数据118。用于识别可驾驶表面区段和类似区段以及区段分类和/或版型(stereotype)的技术可以在例如2019年3月29日提交的、标题为“扩展自动驾驶功能到新区域”的美国专利申请no.16/370,696以及在2019年4月5日提交的、标题为“使用地图数据和驾驶数据来模拟自动驾驶”的美国专利申请no.16/376,842中找到,这些专利申请的全文通过引用方式被并入本文。
[0047]
例如,环境的区域数据118可以被解析成区段,并且类似区段可以被识别。在一些实例中,区段可以包括:交叉口区段,例如十字路口、汇合等,或者连接道路区段,例如交叉口之间的道路的长度和/或宽度。例如但不限于,速度限制在10mph范围内的所有双车道道路区段可以与相同的版型相关联。在一些实例中,数据可以与个体区段中的每一个个体区段相关联。例如,交叉口区段可以包括:交叉口类型,例如汇合、“t”、环形等;在交叉口处会合的多条道路;那些道路的相对位置,例如在交叉口会合的道路之间的角度;与交叉口处的交通控制信号相关的信息;和/或其他特征。与连接道路区段相关联的数据可以包括:车道的数量、那些车道的宽度、每个车道中的行驶方向、停车车道的标识、道路区段上的速度限制和/或其他特征。
[0048]
在一些示例中,可以根据区段分类或区段版型来对可驾驶表面区段进行分组。例如但不限于,可以将符合一些度量或属性范围的一些或所有交叉口区段组合在一起(例如使用k均值,评估区段参数之间的加权距离(例如欧几里得),或者基于区段参数对这些区段进行聚类)。
[0049]
可以使用包括相同或类似版型的场景来查证自动驾驶车辆控制器的功能。例如,可以期望自动驾驶车辆在相同或类似的版型中相同地执行(和/或已经可证明地执行)。在一些示例中,使用版型可以减少要进行的比较的数量。例如,通过识别类似区域,减少了可以提供有用信息的模拟场景的数量。本文描述的技术可以通过优化为验证和测试提供有用信息的特定场景来降低计算复杂度、存储器需求和处理时间。
[0050]
参数化场景组件120可以使用由参数组件112确定的数据(例如初始场景110、场景参数、一组区域和/或误差模型数据)来生成参数化场景122。例如,初始场景110可以指示诸如车道变换场景、右转弯场景、左转弯场景、紧急停止场景等的场景。场景参数可以指示与由自动驾驶车辆控制器控制的车辆相关联的速度、车辆的姿态、车辆与对象之间的距离等。在一些实例中,场景参数可以指示对象、与对象相关联的位置、与对象相关联的速度等。此外,误差模型(例如感知误差模型、预测误差模型等)可以指示与场景参数相关联的误差,并且提供与场景参数相关联的值和/或概率的范围。例如但不限于,诸如车辆速度之类的场景参数可以与诸如每秒8-12米之类的速度范围相关联。如上所述,速度范围可以与概率分布相关联,该概率分布指示速度在发生速度范围内的概率。
[0051]
该组区域可以指示环境中的可以用于将对象放置在模拟环境中的部分。例如,初始场景110可以指示包括与每小时35英里的速度限制相关联的双向、多车道驾驶表面的场景。基于初始场景110,该组区域可以排除不包括与每小时35英里的速度限制相关联的双向、多车道驾驶表面的区域,例如停车场。参数化场景122可以用于覆盖由场景参数、误差模型、区域数据118等提供的变化。
[0052]
例如但不限于,场景参数可以包括车辆在接近交叉口时以每秒10、11或12米(或任何速度)的速度穿过环境。该组区域可以包括不受控制的交叉口、具有四向停车的交叉口以及具有交通信号灯的交叉口。另外,感知误差模型可以指示1.34%的感知误差,这可以由为被测试的感知系统确定的感知度量来提供。因此,参数化场景122可以通过改变场景参数和区域(例如3个速度
×
3个区域=9个场景/排列)来允许总共9个不同的场景。另外,当模拟组件124模拟参数化场景时,模拟组件124可以使用感知误差模型来引入与由车辆确定的感知数据相关联的感知误差。如可以理解的,这仅仅是一个示例,参数化场景122可以包括更多或更少的排列以及不同类型的场景参数、区域和/或感知误差。
[0053]
模拟组件124可以将参数化场景122作为一组模拟指令执行,并且生成模拟数据126。例如,模拟组件124可以在模拟场景中实例化车辆控制器。在一些实例中,模拟组件124可以同时和/或并行地执行多个模拟场景。另外,模拟组件124可以确定参数化场景122的结果。例如,模拟组件124可以执行参数化场景122的变化,以用于测试和验证的模拟。模拟组件124可以生成指示自动驾驶车辆控制器如何执行(例如响应)的模拟数据126,并且可以将模拟数据126与预定结果进行比较和/或确定是否任何预定规则/断言被破坏/触发。
[0054]
在一些实例中,可以基于场景参数的广义间隔来选择用于模拟的变化。例如但不限于,场景参数可以与车辆的速度相关联。另外,场景参数可以与车辆的值范围相关联。可以基于广义间隔来选择用于模拟的变化,以增加值范围的覆盖(例如选择第25个百分位、第50个百分位、75%的百分位等)。在一些实例中,可以在值范围的标准偏差内随机选择变化和/或随机选择变化。
[0055]
在一些实例中,预定规则/断言可以基于参数化场景122(例如可以基于人行横道
场景启用关于人行横道的交通规则,或者可以针对停止的车辆场景禁用关于穿越车道标记的交通规则)。在一些实例中,模拟组件124可以在模拟进行时动态地启用和禁用规则/断言。例如,当模拟对象接近学校地带时,可以启用与学校地带相关的规则/断言,并且当模拟对象离开学校地带时,可以禁用与学校地带相关的规则/断言。在一些实例中,规则/断言可以包括舒适度度量,这些度量与例如在给定模拟场景的情况下对象可以多快地加速有关。在至少一些示例中,规则可以包括例如遵守道路规则、在对象之间留出安全缓冲区等。
[0056]
至少部分地基于确定自动驾驶车辆控制器与预定结果一致地执行了(即,自动驾驶车辆控制器做了它应该做的所有事情)和/或确定规则没有被破坏或断言没有被触发,模拟组件124可以确定自动驾驶车辆控制器成功了。至少部分地基于确定自动驾驶车辆控制器执行与预定结果不一致(即,自动驾驶车辆控制器做了它不应该做的某件事情)和/或确定规则被破坏了或断言被触发了,模拟组件124可以确定自动驾驶车辆控制器失败了。因此,至少部分地基于执行参数化场景122,模拟数据126可以指示自动驾驶车辆控制器如何对如上所述的参数化场景122的每个变化作出响应,并且至少部分地基于模拟数据126来确定成功结果或不成功结果。
[0057]
分析组件128可以被配置为确定成功或失败的程度。例如但不限于,规则可以指示由自动驾驶车辆控制器控制的车辆必须停止在对象的阈值距离内。模拟数据126可以指示在参数化场景122的第一变化中,模拟车辆停止在距离阈值距离超过5米的位置。在参数化场景122的第二变化中,模拟数据126可以指示模拟车辆停止在距离阈值距离超过10米的位置。分析组件128可以指示:与第一变化中的模拟车辆相比,模拟车辆在第二变化中更成功地执行。例如,分析组件128可以确定包括模拟车辆和参数化场景122的相关联变化的排序列表(例如根据相对成功比例排序)。这种变化也可以用于确定正被模拟的系统的各种组件的限制。
[0058]
分析组件128可以基于模拟数据126来确定参数化场景122的附加变化。例如,由模拟组件124输出的模拟数据126可以指示与成功或失败(其可以被表示为连续可能性)相关联的参数化场景122的变化。分析组件128可以基于与失败相关联的变化来确定附加变化。例如但不限于,与失败相关联的参数化场景122的变化可以表示在驾驶表面上以每秒15米的速度行驶的车辆和在车辆前方20米距离处穿越驾驶表面的动物。分析组件128可以确定场景的附加变化,以确定用于分析的附加模拟数据126。例如但不限于,分析组件128可以确定包括以每秒10米、每秒12.5米、每秒17.5米、每秒20米等的速度行驶的车辆的附加变化。另外,分析组件128可以确定包括动物以15米、17.5米、22.5米和25米等距离穿越驾驶表面的附加变化。附加变化可以被输入到模拟组件124中,以生成附加模拟数据。这些附加变化可以基于例如对模拟中运行的场景的场景参数的扰动来确定。
[0059]
在一些实例中,分析组件128可以通过禁用场景参数来确定场景的附加变化。例如,参数化场景可以包括与对象的速度相关联的第一场景参数和与对象的位置相关联的第二场景参数。参数化场景122可以包括与速度相关联的第一值范围和与位置相关联的第二值范围。在一些实例中,在模拟了参数化场景122之后,模拟数据126可以指示参数化场景122的一些变化产生成功的结果,而一些变化产生失败的结果。然后,分析组件128可以确定禁用第一场景参数(例如设置与第一场景参数相关联的固定值),并且基于第二场景参数来改变参数化场景122。通过禁用场景参数之一,分析组件128可以确定场景参数和/或场景参
数的值是否与成功结果或失败结果相关联。这些参数可以基于失败的可能性,随机地或以其他方式被禁用。例如但不限于,模拟数据126作为禁用所有场景参数的结果,可以指示自动驾驶车辆的规划组件的问题。
[0060]
在一些实例中,分析组件128可以用于执行灵敏度分析。例如,分析组件128可以禁用场景参数,并且基于由模拟组件124生成的模拟数据126来确定禁用场景参数如何影响模拟数据126(例如提高成功率,降低成功率,对成功率的影响最小)。在一些实例中,分析组件128可以个别地禁用场景参数,以确定禁用每个场景参数如何影响模拟数据126。分析组件128可以收集统计数据,该统计数据指示在许多模拟过程中个体场景参数如何影响模拟数据126。在一些实例中,分析组件128可以被配置为禁用一组场景参数(例如禁用夜间环境参数和禁用潮湿条件环境参数)。如上所述,分析组件可以收集统计数据,该统计数据指示多组场景参数如何影响模拟数据126。统计数据可以用于确定提高或降低结果的可能性的场景参数是成功的模拟,并且可以用于在提高或降低模拟数据126的成功率时,识别自动驾驶车辆中的与场景参数相关联的子系统。
[0061]
在一些实例中,分析组件128可以调整场景参数被调整的程度。例如但不限于,场景参数可以指示潮湿环境条件(例如下雨条件)。场景参数可以在一个范围(例如四分之一英寸的降雨量、一英寸的降雨量等)上调整。分析组件128可以调整场景参数的大小,并且基于场景参数的大小来执行灵敏度分析,以确定与场景参数相关联的阈值,该阈值可能导致模拟的成功或不成功结果。在一些实例中,可以使用二进制搜索算法、粒子滤波算法和/或蒙特卡洛方法来确定阈值,但是也可以考虑其他合适的算法。
[0062]
车辆性能组件130可以基于模拟数据126(和/或基于来自分析组件128的附加变化的附加模拟数据)和失败类型来确定车辆性能数据132。在一些实例中,车辆性能数据132可以指示车辆在环境中如何执行。例如但不限于,车辆性能数据132可以指示以每秒15米的速度行驶的车辆具有15米的停止距离。在一些实例中,车辆性能数据可以指示安全度量。例如但不限于,车辆性能数据132可以指示事件(例如失败)和事件的原因。在至少一些示例中,这样的指示可以是二元的(失效或不失效)、粗略的(失败级别,例如“严重的”、“不严重的”、和“通过”)、或连续的(例如表示失败概率),但是可以考虑任何其他指示。例如,对于事件类型1和原因类型1,数据134(1)可以指示安全等级,并且类似地用于数据134(2)-134(4)。在一些实例中,原因类型1和原因类型2可以指示故障,例如车辆的故障或对象(例如骑行者)的故障。然后,车辆性能数据132可以指示与参数化场景122相关联的安全度量。在一些实例中,车辆性能组件130可以使用目标度量,并且将车辆性能数据132与目标度量进行比较,以确定安全度量是否满足或超过目标度量。在一些实例中,目标度量可以基于与自动驾驶车辆相关联的标准和/或规章。
[0063]
在一些实例中,可以将车辆性能数据132输入到过滤器组件134中,以基于车辆性能数据132来确定过滤数据136。例如,过滤器组件134可以用于确定识别不满足覆盖阈值的区域的过滤数据136。例如但不限于,初始场景110可以指示与每小时35英里的速度限制和区域数据118相关联的双向、多车道驾驶表面。基于初始场景110和区域数据118,参数组件112可以识别环境中的可以用于模拟初始场景110的五个区域。在模拟了参数化场景122之后,车辆性能数据132可以指示模拟数据126与五个区域中的三个区域相关联。例如,模拟组件124可以模拟场景,并且基于在由参数组件112识别的五个区域中的三个区域中执行场景
来生成模拟数据126。过滤器组件134可以基于一个或多个过滤器来确定过滤数据136,该过滤数据136指示5个区域中的剩余2个区域不满足覆盖阈值(例如与一个区域相关联的最小模拟次数)。
[0064]
在一些实例中,过滤器组件134可以基于车辆性能数据132来确定指示事件发生的过滤数据136。例如但不限于,模拟数据126可以包括诸如紧急停止、车胎漏气、动物穿越驾驶表面等事件的发生。过滤器组件134可以基于一个或多个过滤器来确定指示紧急停止的发生的过滤数据136。另外,过滤数据136可以包括模拟数据126中的与紧急停止的发生相关联的部分,例如与紧急停止相关联的停止距离。
[0065]
图2示出了车辆202的示例200,车辆202可以类似于生成参照图1描述的车辆数据104,生成车辆数据104并且将车辆数据104发送到计算设备204的车辆。如上所述,场景编辑器组件108可以被配置为扫描输入数据102(例如车辆数据104和/或附加情境数据106),并且识别在输入数据102中表示的一个或多个场景。作为非限制性示例,可以基于例如日志数据的聚类(例如使用k均值等)参数化来确定这样的场景。在一些实例中,场景编辑器组件108可以使用场景定义数据206来识别在输入数据102中表示的一个或多个场景。例如,场景定义数据206可以识别与场景类型相关联的特征。例如但不限于,场景定义数据206可以识别包括诸如行人穿越不与人行横道相关联的驾驶表面的一部分之类的特征的违规穿越道路场景。场景编辑器组件108可以扫描输入数据102,以识别输入数据中的包括行人的特征的部分以确定违规穿越道路场景,所述行人穿越不与人行横道相关联的驾驶表面的一部分。在至少一些示例中,这样的场景还可以被手动输入和/或从第三方数据(例如警察报告、通常可用的视频剪辑等)导出。
[0066]
另外,如上所述,参数组件112可以确定场景参数,所述场景参数可以指示与场景中的对象的参数相关联的值或值的范围。如图2所示,参数组件112可以生成场景数据208。
[0067]
场景数据208可以指示基本场景,该基本场景包括车辆210沿驾驶表面行驶以及对象212(其可以是不同的车辆)沿与车辆210相同的方向在车辆210附近行驶。车辆210和对象212可以接近具有人行横道的交叉口。参数组件112可以将指示车辆210和对象212之间的距离的场景参数确定为具有一距离范围。因此,场景s1可以表示一组场景中的在车辆210和对象212之间具有第一距离的第一场景,场景s2可以表示该组场景中的在车辆210和对象212之间具有第二距离的第二场景,并且场景sn可以表示该组场景中的在车辆210和对象212之间具有第n距离的第n个场景。附加类型的参数(也被称为属性)的示例可以在例如2019年3月25日提交的、标题为“基于属性的行人预测”的美国专利申请no.16/363,541中找到,该申请的全文通过引用方式被并入本文。
[0068]
例如,场景参数可以包括但不限于:对象212的速度、对象212的加速度、对象212的x位置(例如全局位置、局部位置和/或相对于任何其他参考系的位置)、对象212的y位置(例如大小、姿态、局部位置、全局位置和/或相对于任何其他参考系的位置)、与对象212相关联的边界框(例如范围(长度、宽度和/或高度)、偏航、俯仰、翻滚等)、照明状态(例如刹车灯、闪烁灯、警示灯、前照灯、倒车灯等)、对象212的车轮方向、地图元素(例如对象212与停止灯之间的距离、停止标志、减速带、十字路口、让路标志等)、对象212的分类(例如车辆、汽车、卡车、自行车、摩托车、行人、动物等)、对象特性(例如对象是否在变换车道、对象212是否是并排停放的车辆等)、与一个或多个对象的接近度(在任何坐标系中)、车道类型(例如车道
的方向、停车车道)、道路标记(例如指示是否允许通行或车道变换等)、对象密度等。
[0069]
如上所述,参数组件112可以确定与由车辆数据104和/或其他输入数据表示的场景参数相关联的值范围。因此,以上识别的示例场景参数中的每一个场景参数以及其他场景参数可以与值集合或值范围相关联,所述值集合或值范围可以用于生成一组场景,其中,该组场景中的场景相差场景参数的一个或多个值。
[0070]
图3示出了至少部分基于车辆数据和真实数据来生成误差模型数据的示例300。如图3所示,车辆202可以生成车辆数据104,并且将车辆数据104发送到误差模型组件116。如上所述,误差模型组件116可以确定误差模型,该误差模型可以指示与场景参数相关联的误差。例如,车辆数据104可以是与车辆202的子系统相关联的数据,子系统例如感知系统、规划系统、跟踪系统(也被称为跟踪器系统)、预测系统等。例如但不限于,车辆数据104可以与感知系统相关联,并且车辆数据104可以包括与环境中的由车辆202检测到的对象相关联的边界框。
[0071]
误差模型组件116可以接收真实数据302,该真实数据302可以被手动地标注和/或从其他经验证的机器学习组件确定。例如但不限于,真实数据302可以包括与环境中的对象相关联的经验证的边界框。通过将车辆数据104的边界框与真实数据302的边界框进行比较,误差模型组件116可以确定与车辆202的子系统相关联的误差。在一些实例中,车辆数据104可以包括与被检测的实体和/或该实体所处的环境相关联的一个或多个特性(也被称为参数)。在一些示例中,与实体相关联的特性可以包括但不限于:x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、方向、实体类型(例如分类)、实体的速度、实体的范围(大小)等。与环境相关联的特性可以包括但不限于:环境中另一实体的存在、环境中另一实体的状态、一天中的时间、一周中的一天、季节、天气状况、暗/亮指示等。因此,该误差可以与其他特性(例如环境参数)相关联。
[0072]
误差模型组件116可以处理多个车辆数据104和多个真实数据302,以确定误差模型数据304。误差模型数据304可以包括由误差模型组件116计算的误差,该误差可以被表示为误差306(1)-(3)。另外,误差模型组件116可以确定与被表示为概率308(1)-(3)的误差306(1)-(3)相关联的概率,概率308(1)-(3)可以与环境参数相关联以呈现误差模型310(1)-(3)。例如但不限于,车辆数据104可以包括与在包括降雨的环境中距车辆202 50米处的对象相关联的边界框。真实数据302可以提供与对象相关联的经验证的边界框。误差模型组件116可以确定误差模型数据304,该误差模型数据304确定与车辆202的感知系统相关联的误差。50米的距离和降雨可以用作环境参数,以确定要使用误差模型310(1)-(3)中的哪一个误差模型。一旦识别出误差模型,误差模型310(1)-(3)就可以基于概率308(1)-(3)来提供误差306(1)-(3),其中,和与较低概率308(1)-(3)相关联的误差306(1)-(3)相比,与较高概率308(1)-(3)相关联的误差306(1)-(3)更可能被选择。
[0073]
图4示出了通过提供与模拟环境相关联的误差或不确定性中至少之一来使用误差模型数据来扰动模拟的示例400。如上所述,误差模型数据可以包括将误差306与概率308相关联的误差模型,并且误差模型可以与环境参数相关联。模拟组件124可以使用误差模型数据304来注入误差,该误差可以产生用于扰动模拟的扰动的参数化场景。基于注入的误差,模拟数据可以指示自动驾驶控制器如何对注入的误差作出响应。
[0074]
例如,模拟组件124可以通过连续地将误差注入到模拟中来扰动模拟。例如但不限
于,示例402描绘了时间t0处的与对象相关联的边界框404。边界框404可以表示车辆对对象的检测,该检测包括误差,例如边界框的大小中的误差和/或边界框的位置中的误差。在时间t1,模拟组件124可以使用表示对象并包括不同误差的边界框406。例如,在每个模拟时间(例如t0、t1或t2),模拟组件124可以基于与误差306相关联的概率308来使用不同的误差306。在时间t2,模拟组件124可以使用表示对象并包括不同误差的边界框408。
[0075]
在一些实例中,模拟组件124可以通过注入与表示环境中的对象的边界框相关联的不确定性来扰动模拟。例如但不限于,示例410描绘了时间t0处的与对象相关联的边界框412。边界框可以包括5%的不确定性,该不确定性可以指示对象的大小和/或位置的不确定性为5%的量。另外,不确定性可以贯穿时间t1和t2持续存在于对象中,而不是在不同的模拟时间注入不同的误差,如示例402所示。
[0076]
图5示出了生成车辆数据104并且将车辆数据104发送到计算设备204的车辆202的示例500。如上所述,误差模型组件116可以确定感知误差模型,该感知误差模型可以指示与场景参数相关联的误差。如上所述,车辆数据104可以包括由车辆202的传感器生成的传感器数据和/或由车辆202的感知系统生成的感知数据。可以通过将车辆数据104与真实数据302进行比较来确定感知误差模型。真实数据302可以被手动地标注,并且可以与环境相关联,并且可以表示已知的结果。因此,车辆数据104中的与真实数据302的偏差可以被识别为车辆202的传感器系统和/或感知系统中的误差。例如但不限于,感知系统可以将对象识别为骑行者,其中,真实数据302指示对象是行人。作为另一示例但不限于,传感器系统可以生成表示对象的宽度为2米的传感器数据,其中,真实数据302指示该对象的宽度为1.75米。
[0077]
如上所述,误差模型组件116可以确定与在车辆数据104中表示的对象相关联的分类,并且确定车辆数据104和/或其他日志数据中的具有相同分类的其他对象。然后,误差模型组件116可以确定与和对象相关联的误差范围相关联的概率分布。基于该比较和误差范围,误差模型组件116可以确定感知误差模型数据502。
[0078]
如图5所示,环境504可以包括对象506(1)-(3),所述对象506(1)-(3)被表示为由感知系统生成的边界框。感知误差模型数据502可以指示场景参数为508(1)-(3)以及与场景参数相关联的误差为510(1)-(3)。如图5所示,与对象508(1)相关联的误差可以在环境504中被可视化为较大边界框512,该较大边界框512指示关于对象508(1)的尺寸的不确定性。
[0079]
图6示出了生成模拟数据126以及确定车辆性能数据132的计算设备204的示例600。参数化场景组件120可以基于场景参数、一组区域和感知误差模型来确定参数化场景。例如,场景参数可以指示参数化场景中的对象、与对象相关联的位置、与对象相关联的速度等。另外,场景参数可以指示范围,该范围指示与场景参数相关联的值范围和/或概率范围。一组区域可以指示环境中的可以用于将对象放置在模拟环境中的部分。此外,感知误差模型可以指示与场景参数相关联的误差。如本文详细描述的,这些可以被组合以创建参数化场景,该参数化场景可以覆盖由场景参数、一组区域和/或感知误差模型提供的变化。
[0080]
参数化场景可以由模拟组件124用来模拟参数化场景的变化。例如,模拟组件124可以执行参数化场景的变化,以用于测试和验证的模拟。模拟组件124可以生成指示自动驾驶车辆控制器如何执行(例如作出响应)的模拟数据126,并且可以将模拟数据126与预定结果进行比较和/或确定是否任何预定规则/断言被破坏/触发。
[0081]
如图6所示,模拟数据126可以指示多个模拟(例如模拟1、模拟2等)和模拟结果(例如结果1、结果2)。例如,如上所述,结果可以基于被破坏/触发的规则/断言来指示通过或失败。另外,模拟数据126可以指示遇到该场景的概率。例如但不限于,模拟组件124可以模拟包括违规穿越道路的行人的场景。输入数据可以指示车辆每行驶1小时遇到以1分钟的速率违规穿越道路的行人。这可以用于确定遇到与参数化场景的变化相关联的特定模拟的概率。在一些实例中,模拟组件124可以识别具有低概率的、参数化场景的变化,并且执行与那些变化相对应的模拟。这可以允许在更独特的情况下对自动驾驶车辆控制器进行测试和查证。
[0082]
另外,模拟组件124可以基于该结果来识别参数化场景的变化以进行附加模拟。例如但不限于,模拟的结果可以是其中场景参数与每秒15米的车辆速度相关联的失败。模拟组件124可以识别接近每秒15米速度的速度,以确定模拟将通过的阈值,该阈值可以进一步帮助开发更安全的车辆控制器。
[0083]
基于模拟数据126,车辆性能组件130可以生成车辆性能数据132。如上所述,例如,对于事件类型1和原因类型1,数据134(1)可以指示安全等级,并且对于数据134(2)-134(1)是类似的。在一些实例中,事件类型可以指示成本已经满足或超过成本阈值,尽管也考虑了其他事件类型。例如,成本可以包括但不限于参考成本、障碍物成本、横向成本、纵向成本等。
[0084]
参考成本可以包括与参考轨迹上的点(也被称为参考点)和目标轨迹上的对应点(也被称为点或目标点)之间的差异相关联的成本,其中,该差异表示偏航、横向偏移、速度、加速度、曲率、曲率速率等中的一个或多个差异。在一些实例中,降低与参考成本相关联的权重可以减少与和参考轨迹相距一段距离的目标轨迹相关联的惩罚,这可以提供更平滑的转变,从而获得更安全和/或更舒适的车辆操作。
[0085]
在一些示例中,障碍物成本可以包括与参考轨迹或目标轨迹上的点和与环境中的障碍物相关联的点之间的距离相关联的成本。例如,与障碍物相关联的点可以对应于可驾驶区域的边界上的点,或者可以对应于与环境中的障碍物相关联的点。在一些示例中,环境中的障碍物可以包括但不限于:静态对象(例如建筑物、路缘石、人行道、车道标记、标杆、交通信号灯、树木等),或者动态对象(例如车辆、骑行者、行人、动物等)。在一些示例中,动态对象也可以被称为代理。在一些示例中,静态对象或动态对象通常可以被称为对象或障碍物。
[0086]
在一些示例中,横向成本可以指与对车辆的转向输入相关联的成本,例如相对于车辆的速度的最大转向输入。在一些示例中,纵向成本可以指与车辆的速度和/或加速度(例如最大制动和/或加速度)相关联的成本。这样的成本可以用于确保车辆在针对被运送的乘客的可行限制和/或舒适限制内运行。
[0087]
在一些实例中,原因类型1和原因类型2可以指示故障,例如车辆的故障或对象(例如骑行者)的故障。车辆性能组件130可以使用预定规则/断言来确定故障。例如但不限于,规则可以指示当车辆被车辆后部的对象撞击时,故障可以与该对象相关联。在一些实例中,可以使用附加规则,例如当车辆受到后部对象的撞击时,指示车辆必须沿向前的方向穿过环境。在一些实例中,原因类型(例如原因类型1和/或原因类型2)可以与自动驾驶车辆控制器的组件相关联。作为非限制性示例,这样的原因可以包括:感知系统、预测系统、规划器系
统、网络延时、转矩/加速度故障和/或车辆的任何其他组件或子组件的故障。
[0088]
如上所述,分析组件可以基于模拟数据126来确定禁用场景参数(例如设置与场景参数相关联的固定值),并且改变其他场景参数。通过隔离场景参数,分析组件可以确定与成功或失败结果相关联的场景参数。车辆性能数据132然后可以指示与参数化场景相关联的安全度量。另外,分析组件可以执行灵敏度分析,以确定失败的原因。例如,分析组件可以个别地禁用场景参数,以隔离一个或多个场景参数并且确定禁用场景参数如何影响自动驾驶车辆的响应,捕获与禁用一个或多个场景参数相关联的统计数据,并且将所述结果捕获为成功或失败的结果。统计数据可以指示多组场景参数如何影响结果,并且可以用于确定提高或降低结果的可能性的场景参数是成功的模拟,并且可以用于在提高或降低模拟数据的成功率时,识别自动驾驶车辆中的与场景参数相关联的子系统。
[0089]
图7描绘了用于实现本文讨论的技术的示例系统700的框图。在至少一个示例中,系统700可以包括车辆202。在所示示例700中,车辆202是自动驾驶车辆;然而,车辆202可以是任何其他类型的车辆(例如驾驶员控制的车辆,其可以提供关于执行各种操作是否安全的指示)。
[0090]
车辆202可以包括:计算设备702、一个或多个传感器系统704、一个或多个发射器706、一个或多个通信连接件708(也被称为通信设备和/或调制解调器)、至少一个直接连接件710(例如用于与车辆202物理耦合以交换数据和/或供电)以及一个或多个驱动系统712。一个或多个传感器系统704可以被配置为捕获与环境相关联的传感器数据。
[0091]
传感器系统704可以包括:飞行时间传感器、位置传感器(例如gps、指南针等)、惯性传感器(例如惯性测量单元(imu)、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、相机(例如rgb、ir、强度、深度等)、麦克风传感器、环境传感器(例如温度传感器、湿度传感器、光传感器、压力传感器等)、超声波换能器、车轮编码器等。传感器系统704可以包括这些或其他类型传感器中的每一类传感器的多个实例。例如,飞行时间传感器可以包括位于车辆202的角部、前部、后部、侧部和/或顶部的个体飞行时间传感器。作为另一实例,相机传感器可以包括布置在车辆202的外部和/或内部周围的各个位置处的多个相机。传感器系统704可以向计算设备702提供输入。
[0092]
车辆202还可以包括用于发射光和/或声音的一个或多个发射器706。在这个示例中,一个或多个发射器706包括与车辆202的乘客通信的内部音频和视觉发射器。例如但不限于,内部发射器可以包括:扬声器、灯、标志、显示屏、触摸屏、触觉发射器(例如振动和/或力反馈)、机械致动器(例如安全带张紧器、座椅定位器、头枕定位器等)等。在这个示例中,一个或多个发射器706还包括外部发射器。例如但不限于,在这个示例中,外部发射器包括用于示意行驶方向的灯或车辆动作的其他指示器(例如指示灯、标志、灯阵列等),以及用于以可听方式与行人或其他附近的车辆通信的一个或多个音频发射器(例如扬声器、扬声器阵列、喇叭等),这些中的一个或多个可以包括声束转向技术。
[0093]
车辆202还可以包括一个或多个通信连接件708,其使得能够在车辆202和一个或多个其他本地或远程计算设备(例如远程操作计算设备)或远程服务之间进行通信。例如,通信连接件708可以促进与车辆202和/或驱动系统712上的其他本地计算设备的通信。而且,通信连接件708可以允许车辆202与其他附近的计算设备(例如其他附近的车辆、交通信号等)通信。
[0094]
通信连接件708可以包括物理和/或逻辑接口,以用于将计算设备702连接到另一计算设备或一个或多个外部网络714(例如互联网)。例如,通信连接件708可以能够实现基于wi-fi的通信,例如经由由ieee 802.11标准定义的频率、短距离无线频率,例如蓝牙、蜂窝通信(例如2g、3g、4g、4g lte、5g等)、卫星通信、专用短距离通信(dsrc),或使得相应计算设备能够与其他计算设备对接的任何适当的有线或无线通信协议。在至少一些示例中,通信连接件708可以包括如上详细描述的一个或多个调制解调器。
[0095]
在至少一个示例中,车辆202可以包括一个或多个驱动系统712。在一些示例中,车辆202可以具有单个驱动系统712。在至少一个示例中,如果车辆202具有多个驱动系统712,则个体驱动系统712可以定位在车辆202的相对端部(例如前部和后部等)上。在至少一个示例中,驱动系统712可以包括一个或多个传感器系统704,以检测驱动系统712和/或车辆202的周围环境的状况。例如但不限于,传感器系统704可以包括:用于感测驱动系统的车轮的旋转的一个或多个车轮编码器(例如旋转编码器),用于测量驱动系统的方向和加速度的惯性传感器(例如惯性测量单元、加速度计、陀螺仪、磁力计等),相机或其他图像传感器,用于声学地检测驱动系统周围环境中的对象的超声波传感器,激光雷达传感器,雷达传感器等。一些传感器,例如车轮编码器,对于驱动系统712可以是唯一的。在一些情况下,驱动系统712上的传感器系统704可以与车辆202的相应系统(例如传感器系统704)交叠或者补充车辆202的相应系统。
[0096]
驱动系统712可以包括许多车辆系统,包括高压电池,用于推进车辆的发动机,用于将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器,包括转向马达和转向齿条(其可以是电动的)的转向系统,包括液压或电动致动器的制动系统,包括液压和/或气动组件的悬架系统,用于分配制动力以减轻牵引力损失和维持控制的稳定性控制系统,hvac系统,照明装置(例如诸如照亮车辆的外部周围环境的头灯/尾灯之类的照明装置),以及一个或多个其他系统(例如制冷系统,安全系统,车载充电系统,诸如dc/dc转换器、高压接头、高压电缆、充电系统、充电端口等的其他电气组件)。另外,驱动系统712可以包括驱动系统控制器,该驱动系统控制器可以从传感器系统704接收和预处理数据,并且控制各种车辆系统的操作。在一些示例中,驱动系统控制器可以包括一个或多个处理器和与一个或多个处理器通信耦合的存储器。存储器可以存储用于执行驱动系统712的各种功能的一个或多个模块。此外,驱动系统712还包括一个或多个通信连接件,所述一个或多个通信连接件使得相应驱动系统能够与一个或多个其他本地或远程计算设备进行通信。
[0097]
计算设备702可以包括一个或多个处理器516和与一个或多个处理器716通信耦合的存储器518。在所示的示例中,计算设备702的存储器718存储定位组件720、感知组件722、预测组件724、规划组件726和一个或多个系统控制器728。尽管出于说明的目的被描绘为驻留在存储器718中,但设想的是,定位组件720、感知组件722、预测组件724、规划组件726和一个或多个系统控制器728可以另外地或替代地可由计算设备702访问(例如存储在车辆202的不同组件中和/或可由车辆202访问(例如远程地存储))。
[0098]
在计算设备702的存储器718中,定位组件720可以包括用于从传感器系统704接收数据以确定车辆202的位置的功能。例如,定位组件720可以包括和/或请求/接收环境的三维地图,并且可以连续地确定自动驾驶车辆在地图内的位置。在一些实例中,定位组件720可以使用slam(同时定位和映射)或clam(校准、定位和映射,同时地)接收飞行时间数据、图
像数据、激光雷达数据、雷达数据、声纳数据、imu数据、gps数据、车轮编码器数据或其任意组合等,以精确地确定自动驾驶车辆的位置。在一些实例中,定位组件720可以向车辆202的各种组件提供数据,以确定自动驾驶车辆的初始位置,从而生成轨迹,如本文所讨论的。
[0099]
感知组件722可以包括用于执行对象检测、分割和/或分类的功能。在一些示例中,感知组件722可以提供经处理的传感器数据,该传感器数据指示接近车辆202的实体的存在和/或该实体的分类作为实体类型(例如汽车、行人、骑行者、建筑物、树木、路面、路缘石、人行道、未知等)。在另外的和/或替换的实例中,感知组件722可以提供经处理的传感器数据,该传感器数据指示与被检测的实体和/或该实体所处的环境相关联的一个或多个特性(也被称为参数)。在一些示例中,与实体相关联的特性可以包括但不限于:x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、方向、实体类型(例如分类)、实体的速度、实体的范围(大小)等。与环境相关联的特性可以包括但不限于:环境中另一实体的存在、环境中另一实体的状态、一天中的时间、一周中的一天、季节、天气状况、地理位置、暗/亮指示等。
[0100]
感知组件722可以包括用于存储由感知组件722生成的感知数据的功能。在一些实例中,感知组件722可以确定与已经被分类为对象类型的对象相对应的踪迹。仅出于说明的目的,使用传感器系统704的感知组件722可以捕获环境的一个或多个图像。传感器系统704可以捕获包括对象,例如行人,的环境的图像。行人可以在时间t处于第一位置,并且在时间t t处于第二位置(例如在时间t之后的时间t内移动)。换言之,行人可以在该时间跨度期间从第一位置移动到第二位置。这种移动可以例如作为与对象相关联的所存储的感知数据来记录。
[0101]
在一些示例中,所存储的感知数据可以包括由车辆捕获的融合感知数据。融合感知数据可以包括来自传感器系统704的传感器数据的融合或其他组合,传感器系统704例如图像传感器、激光雷达传感器、雷达传感器、飞行时间传感器、声纳传感器、全球定位系统传感器、内部传感器,和/或这些的任何组合。所存储的感知数据可以另外地或替代地包括分类数据,该分类数据包括在传感器数据中表示的对象(例如行人、车辆、建筑物、路面等)的语义分类。所存储的感知数据可以另外地或替代地包括与被分类为动态对象的对象运动通过环境相对应的踪迹数据(与对象随时间相关联的历史位置、方向、传感器特征等的集合)。踪迹数据可以包括随着时间的多个不同对象的多个踪迹。当对象静止(例如静止不动)或移动(例如行走、跑步等)时,可以挖掘该踪迹数据以识别特定类型对象(例如行人、动物等)的图像。在这个示例中,计算设备确定与行人相对应的踪迹。
[0102]
预测组件724可以生成表示环境中一个或多个对象的可能位置的预测概率的一个或多个概率图。例如,预测组件724可以在距车辆202的阈值距离内为车辆、行人、动物等生成一个或多个概率图。在一些实例中,预测组件724可以测量对象的踪迹,并且基于观察到的和预测到的行为来生成对象的离散化预测概率图、热图、概率分布、离散化概率分布和/或轨迹。在一些实例中,一个或多个概率图可以表示环境中的一个或多个对象的意图。
[0103]
规划组件726可以确定车辆202跟随穿过环境的路径。例如,规划组件726可以确定各种路线和路径以及各种级别的细节。在一些实例中,规划组件726可以确定从第一位置(例如当前位置)行驶到第二位置(例如目标位置)的路线。为了这个讨论的目的,路线可以是在两个位置之间行驶的航路点序列。作为非限制性示例,航路点包括街道、十字路口、全球定位系统(gps)坐标等,此外,规划组件726可以生成用于沿着从第一位置到第二位置的
路线的至少一部分引导自动驾驶车辆的指令。在至少一个示例中,规划组件726可以确定如何将自动驾驶车辆从航路点序列中的第一航路点引导到航路点序列中的第二航路点。在一些示例中,指令可以是路径或路径的一部分。在一些示例中,根据滚动时域技术,可以基本同时生成多条路径(即,在技术容差内)。可以选择具有最高置信度水平的滚动时域数据中的多条路径中的单条路径来操作车辆。
[0104]
在其他示例中,规划组件726可以替代地或另外地使用来自感知组件722的数据来确定车辆202跟随穿过环境的路径。例如,规划组件726可以从感知组件722接收关于与环境相关联的对象的数据。使用该数据,规划组件726可以确定从第一位置(例如当前位置)行驶到第二位置(例如目标位置)的路线,以避开环境中的对象。在至少一些示例中,这样的规划组件726可以确定没有这样的无碰撞路径,并且进而提供使车辆202安全停止的路径,以避免所有碰撞和/或减轻损害。
[0105]
在至少一个示例中,计算设备702可以包括一个或多个系统控制器728,其可以被配置为控制车辆202的转向、推进、制动、安全、发射器、通信和其他系统。这些系统控制器728可以与驱动系统712的相应系统和/或车辆202的其他组件通信和/或控制驱动系统712的相应系统和/或车辆202的其他组件,这些系统可以被配置为根据从规划组件726提供的路径进行操作。
[0106]
车辆202可以经由网络514连接到计算设备204,并且可以包括一个或多个处理器730和与一个或多个处理器730通信耦合的存储器732。在至少一个实例中,一个或多个处理器730可以类似于处理器716,并且存储器732可以类似于存储器718。在所示的示例中,计算设备204的存储器732存储场景编辑器组件108、参数组件112、误差模型组件116、参数化场景组件120、模拟组件124、分析组件128和车辆性能组件130。尽管出于说明的目的被描绘为驻留在存储器732中,但设想的是,场景编辑器组件108、参数组件112、误差模型组件116、参数化场景组件120、模拟组件124、分析组件128和车辆性能组件130可以另外地或替代地可以由计算设备204访问(例如存储在计算设备204的不同组件中和/或可以由计算设备204访问(例如远程地存储))。场景编辑器组件108、参数组件112、误差模型组件116、参数化场景组件120、模拟组件124、分析组件128和车辆性能组件130可以基本上类似于图1的场景编辑器组件108、参数组件112、误差模型组件116、参数化场景组件120、模拟组件124、分析组件128和车辆性能组件130。
[0107]
计算设备702的处理器716和计算设备204的处理器730可以是能够执行指令以处理数据和执行本文描述的操作的任何合适的处理器。例如但不限于,处理器716和730可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)、或处理电子数据以将该电子数据转换为可以存储在寄存器和/或存储器中的其他电子数据的任何其他设备或设备的一部分。在一些示例中,集成电路(例如asic等),门阵列(例如fpga等)和其他硬件设备也可以被认为是处理器,只要它们被配置为实现编码指令即可。
[0108]
计算设备702的存储器718和计算设备702的存储器732是非暂时性计算机可读介质的示例。存储器718和732可以存储操作系统和一个或多个软件应用、指令、程序和/或数据,以实现本文描述的方法和属于各个系统的功能。在各种实施方式中,存储器718和732可以使用任何合适的存储器技术来实现,例如静态随机存取存储器(sram)、同步动态ram(sdram)、非易失性/闪存型存储器、或能够存储信息的任何其他类型的存储器。本文描述的
架构、系统和个体元素可以包括许多其他的逻辑、程序和物理组件,其中在附图中示出的那些仅仅是与本文的讨论相关的示例。
[0109]
在一些实例中,本文讨论的一些或所有组件的方面可以包括任何模型、算法和/或机器学习算法。例如,在一些实例中,存储器718和732中的组件可以被实现为神经网络。
[0110]
图8描绘了用于确定与车辆控制器相关联的安全度量的示例过程800。过程800的一些或全部可以由图1至图7中的一个或多个组件执行,如本文所描述的。例如,过程800的一些或全部可以由计算设备204和/或计算设备702执行。
[0111]
在示例过程800的操作802处,过程800可以包括接收与在环境中操作自动驾驶车辆相关联的日志数据。在一些实例中,日志数据可以由至少捕获环境的传感器数据的车辆生成。
[0112]
在示例过程800的操作804处,过程800可以包括基于日志数据(或其他数据)来确定一组场景,该组场景中的场景包括与环境的一个方面相关联的场景参数。在一些实例中,计算设备可以对日志数据中表示的类似场景进行分组。例如,可以使用例如k均值聚类和/或评估环境的参数之间的加权距离(例如欧几里得)来将场景分组在一起。另外,场景参数可以表示环境参数,例如夜间环境参数或潮湿条件环境参数。在一些实例中,场景参数可以与车辆或对象(例如姿态、速度等)相关联。
[0113]
在示例过程800的操作806处,过程800可以包括确定与自动驾驶车辆的子系统相关联的误差模型。误差模型组件可以将车辆数据(例如日志数据)与真实数据进行比较,以确定车辆数据与真实数据之间的差异。在一些实例中,车辆数据可以表示与环境中的对象相关联的估计值,例如估计位置、估计方向、估计范围等,而真实数据可以表示对象的实际位置、实际方向或实际范围。基于该差异,误差模型组件可以确定与车辆的子系统(例如感知系统、跟踪系统、预测系统等)相关联的误差。
[0114]
在示例过程800的操作808处,过程800可以包括基于场景参数和误差模型来确定参数化场景。这些可以被组合以创建参数化场景,该参数化场景可以覆盖由场景参数和/或误差模型提供的变化。在一些实例中,场景参数可以被随机选择和组合以创建参数化的场景。在一些实例中,场景参数可以基于并发发生的概率来组合。例如但不限于,日志数据可以指示5%的驾驶经历包括行人相遇,并且参数化场景组件可以包括行人作为由参数化场景组件生成的5%的参数化场景中的场景参数。在一些实例中,参数化场景组件可以查证参数化场景,以减少场景参数的不可能或不合适的组合。例如但不限于,车辆不会被放置在湖泊中,并且行人不会以每秒30米的速度行走。作为非限制性示例,这样的参数化场景可以包括车辆和违规穿越道路者在特别定义的道路上的距离、速度、照明条件、天气条件等的范围,该道路具有感知模型、预测模型等上的至少部分基于场景参数的误差的各种高斯分布(或其他分布)。
[0115]
在示例过程800的操作810处,过程800可以包括通过至少部分地基于误差来修改参数化场景、场景参数或模拟车辆的组件中至少之一来扰动参数化场景。在一些实例中,不确定性可以与场景参数相关联。例如但不限于,对象的位置可以与5%的不确定性相关联,使得在考虑5%不确定性的同时自动驾驶控制器穿过环境。在一些实例中,当模拟器执行模拟时,模拟器可以从误差模型中确定要并入模拟的误差。
[0116]
在示例过程800的操作812处,过程800可以包括在扰动参数化场景中实例化模拟
车辆。模拟器可以使用模拟车辆,该模拟车辆可以与自动驾驶控制器相关联并且使自动驾驶控制器穿过该模拟环境。在参数化场景中实例化自动驾驶车辆控制器和模拟参数化场景可以有效地覆盖场景的大范围变化,而不需要人工枚举变化。另外,至少部分地基于执行参数化场景,模拟数据可以指示自动驾驶车辆控制器如何对参数化场景作出响应,以及至少部分地基于所述模拟数据来确定成功结果或不成功结果。
[0117]
在示例过程800的操作814处,该过程可以包括接收指示模拟车辆如何对扰动的参数化场景作出响应的模拟数据。在模拟之后,结果可以指示通过(例如成功结果)、失败和/或与车辆控制器相关联的成功或失败的程度。
[0118]
在示例过程800的操作816,该过程可以包括基于模拟数据来确定与车辆控制器相关联的安全度量。例如,每个模拟可以产生成功或不成功的结果。另外,如上所述,车辆性能组件可以基于模拟数据来确定可以指示车辆在环境中如何执行的车辆性能数据。基于灵敏度分析,车辆性能数据可以指示模拟结果为不成功的场景、不成功的原因和/或场景参数的边界,该边界指示模拟结果为成功的场景参数的值。因此,安全度量可以指示在各种模拟场景中的车辆控制器的通过/失败率。
[0119]
图9描绘了用于确定与自动驾驶车辆的子系统相关联的统计模型的示例过程的流程图。过程900的一些或全部可以由图1至图7中的一个或多个组件执行,如本文所描述的。例如,过程900的一些或全部可以由计算设备204和/或计算设备702执行。
[0120]
在示例过程900的操作902处,过程900可以包括接收与自动驾驶车辆的子系统相关联的车辆数据(或其他数据)。车辆数据可以包括由在环境中行驶通过的车辆捕获的日志数据。在一些实例中,车辆数据可以包括控制数据(例如用于控制系统的数据,控制系统例如转向、制动等)和/或传感器数据(例如激光雷达数据、雷达数据等)。
[0121]
在示例过程900的操作904处,过程900可以包括基于车辆数据来确定与子系统相关联的输出数据。例如但不限于,子系统可以是感知系统,并且输出数据可以是与环境中的对象相关联的边界框。
[0122]
在示例过程900的操作906处,过程900可以包括接收与子系统相关联的真实数据。在一些实例中,真实数据可以被手动地标注和/或从其他经验证的机器学习组件确定。例如但不限于,真实数据可以包括与环境中的对象相关联的经验证的边界框。
[0123]
在示例过程900的操作908处,过程900可以包括确定输出数据的第一部分与真实数据的第二部分之间的差异,该差异表示与子系统相关联的误差。如上所述,输出数据可以包括与由车辆的感知系统检测到的、环境中的对象相关联的边界框,并且真实数据可以包括与对象相关联的经验证的边界框。两个边界框之间的差异可以指示与车辆的感知系统相关联的误差。例如但不限于,输出数据的边界框可以大于经验证的边界框,这指示感知系统检测到对象大于环境中的对象。
[0124]
在示例过程900的操作910处,过程900可以包括基于该差异确定与子系统相关联的统计模型。例如,
[0125]
示例性条款
[0126]
a:一种系统,包括:一个或多个处理器;以及一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时使所述系统执行包括以下项的操作:接收与在环境中操作自动驾驶车辆相关联的日志数据;至少部分地基于所述日志数据来确
定一组场景,所述一组场景中的场景包括与所述环境的一个方面相关联的场景参数;确定与所述自动驾驶车辆的子系统相关联的误差模型;至少部分地基于所述场景参数和所述误差模型来确定参数化场景;通过将误差添加到所述场景参数或将在扰动的参数化场景中实例化的模拟车辆的组件中至少之一来扰动所述参数化场景,所述模拟车辆由车辆控制器控制;在所述扰动的参数化场景中实例化所述模拟车辆;接收指示所述模拟车辆如何对所述扰动的参数化场景作出响应的模拟数据;以及至少部分地基于所述模拟数据来确定与所述车辆控制器相关联的安全度量。
[0127]
b:段落a的系统,其中,确定所述一组场景包括:对所述日志数据进行聚类,以确定第一组群集,其中,所述第一组群集中的个体集群与个体场景相关联;至少部分地基于所述第一组群集来确定与所述个体群集相关联的概率;以及至少部分地基于概率阈值和所述第一组群集来确定第二组群集。
[0128]
c:段落a的系统,其中,确定所述误差模型包括:接收与所述环境相关联的真实数据;至少部分地基于将所述真实数据与所述日志数据进行比较来确定误差;以及至少部分地基于所述误差来确定误差分布;其中,所述误差模型包括所述误差分布。
[0129]
d:段落a的系统,其中,所述参数化场景是第一参数化场景,所述扰动的参数化场景是第一扰动的参数化场景,并且所述模拟数据是第一模拟数据,所述操作还包括:基于所述第一模拟数据来确定第二参数化场景,所述第二参数化场景包括所述场景参数的第一子集或所述误差模型的第二子集中至少之一;扰动所述第二参数化场景作为第二扰动的参数化场景;在所述第二的扰动参数化场景中实例化所述模拟车辆;接收第二模拟数据;以及至少部分地基于所述第二模拟数据来更新所述安全度量。
[0130]
e:一种方法,包括:确定场景,所述场景包括描述环境的一部分的场景参数;接收与车辆的子系统相关联的误差模型;至少部分地基于所述场景、所述场景参数和所述误差模型来确定参数化场景;将述参数化场景扰动为扰动的参数化场景;接收指示所述车辆的所述子系统如何对所述扰动的参数化场景作出响应的模拟数据;以及至少部分地基于所述模拟数据来确定与所述车辆的所述子系统相关联的安全度量。
[0131]
f:段落e的方法,其中,所述场景参数与对象大小、对象速度、对象姿态、对象密度、车辆速度、车辆轨迹中至少之一相关联。
[0132]
g:段落e的方法,其中,确定所述场景包括:接收与自动驾驶车辆相关联的日志数据;对所述日志数据进行聚类,以确定第一组群集,其中,所述第一组群集中的个体群集与所述场景相关联;至少部分地基于所述第一组群集来确定与所述个体群集相关联的概率;以及确定所述概率满足或超过概率阈值。
[0133]
h:段落e的方法,其中,所述误差模型是至少部分地基于以下操作来确定的:接收与所述环境相关联的真实数据;至少部分地基于将所述真实数据与和车辆相关联的日志数据进行比较来确定误差;以及至少部分地基于所述误差来确定误差分布;其中,所述误差模型包括所述误差分布。
[0134]
i:段落e的方法,其中,所述参数化场景是第一参数化场景,所述扰动的参数化场景是第一扰动的参数化场景,并且所述模拟数据是第一模拟数据,所述方法还包括:基于所述第一模拟数据来确定第二参数化场景,所述第二参数化场景包括所述场景参数的第一子集或所述误差模型的第二子集中至少之一;扰动所述第二参数化场景;接收第二模拟数据;
以及至少部分地基于所述第二模拟数据来更新所述安全度量。
[0135]
j:段落i的方法,还包括:禁用所述场景参数或所述误差模型中的一个的至少第一部分;以及将所述第二模拟数据与所述场景参数或所述误差模型中的未禁用的一个的至少第二部分进行关联。
[0136]
k:段落e的方法,其中,所述安全度量指示满足或超过成本阈值的概率。
[0137]
l:段落e的方法,其中,所述部分是第一部分,所述方法还包括:接收地图数据,其中,所述地图数据的第二部分与所述环境的所述第一部分相关联;以及确定所述地图数据的所述第二部分与和概率关联的场景相关联,所述概率满足或超过与所述场景参数相关联的阈值概率。
[0138]
m:一种存储可由处理器执行的指令的非暂时性计算机可读介质,其中,所述指令在被执行时使所述处理器执行包括以下项的操作:确定场景,所述场景包括描述环境的一部分的场景参数;对与车辆的子系统相关联的误差模型进行接收或确定中的一项或多项;至少部分地基于所述场景、所述场景参数和所述误差模型来确定参数化场景;将所述参数化场景扰动为扰动的参数化场景;接收指示所述车辆的所述子系统如何对所述扰动的参数化场景作出响应的模拟数据;以及至少部分地基于所述模拟数据来确定与所述车辆的所述子系统相关联的安全度量。
[0139]
n:段落m的非暂时性计算机可读介质,其中,所述场景参数与对象大小、对象速度、对象姿态、对象密度、车辆速度、车辆轨迹中至少之一相关联。
[0140]
o:段落m的非暂时性计算机可读介质,其中,确定所述场景包括:接收与自动驾驶车辆相关联的日志数据;对所述日志数据进行聚类,以确定第一组群集,其中,所述第一组群集中的个体群集与所述场景相关联;至少部分地基于所述第一组群集来确定与所述个体群集相关联的概率;以及确定所述概率满足或超过概率阈值。
[0141]
p:段落m的非暂时性计算机可读介质,其中,所述误差是至少部分地基于以下操作来确定的:接收与所述环境相关联的真实数据;至少部分地基于将所述真实数据与和车辆相关联的日志数据进行比较来确定误差;以及至少部分地基于所述误差来确定误差分布;其中,所述误差模型包括所述误差分布。
[0142]
q:段落m的非暂时性计算机可读介质,其中,所述参数化场景是第一参数化场景,所述扰动的参数化场景是第一扰动的参数化场景,并且所述模拟数据是第一模拟数据,所述操作还包括:基于所述第一模拟数据来确定包括所述场景参数的第一子集或所述误差模型的第二子集中至少之一的第二参数化场景;扰动所述第二参数化场景;接收第二模拟数据;以及至少部分地基于所述第二模拟数据来更新所述安全度量。
[0143]
r:段落q的非暂时性计算机可读介质,所述操作还包括:禁用所述场景参数或所述误差模型中的一个的至少第一部分;以及将所述第二模拟数据与所述场景参数或所述误差模型中的未禁用的一个的至少第二部分进行关联。
[0144]
s:段落m的非暂时性计算机可读介质,其中,所述安全度量指示满足或超过成本阈值的概率。
[0145]
t:段落m的非暂时性计算机可读介质,其中,所述误差模型与所述车辆的感知系统、所述车辆的预测系统或所述车辆的规划器系统中的一个或多个相关联。
[0146]
u:一种系统,包括:一个或多个处理器;以及一个或多个存储计算机可执行指令的
计算机可读介质,所述计算机可执行指令在被执行时使系统执行包括以下项的操作:接收车辆数据;将所述车辆数据的至少第一部分输入到自动驾驶车辆的子系统中,所述子系统与感知系统、规划系统、跟踪系统或预测系统中至少之一相关联;至少部分地基于所述车辆数据的第二部分来确定环境参数;从所述子系统接收估计值;接收与所述子系统相关联的真实数据;确定所述估计值与所述真实数据之间的差异,所述差异表示与所述子系统相关联的误差;以及至少部分地基于所述差异来确定与所述子系统相关联的统计模型,所述统计模型指示所述误差的概率,所述概率与所述环境参数相关联。
[0147]
v:段落u的系统,其中,所述车辆数据包括来自所述自动驾驶车辆上的传感器的传感器数据,其中,所述环境参数包括所述自动驾驶车辆的速度或天气状况中的一个或多个,并且其中,所述子系统是感知子系统,所述估计值是在所述车辆数据中表示的对象的估计位置、估计方向或估计范围中的一个或多个,并且所述真实数据表示所述对象的实际位置、实际方向或实际范围。
[0148]
w:段落u的系统,其中,确定所述统计模型包括:至少部分地基于所述车辆数据来确定与所述环境参数相关联的第一频率和与所述差异相关联的第二频率;以及至少部分地基于所述第一频率和所述第二频率来确定所述概率。
[0149]
x:段落u的系统,所述操作还包括:至少部分地基于模拟车辆数据来确定模拟环境参数;确定所述模拟环境参数与所述环境参数对应;至少部分地基于所述模拟车辆数据和所述子系统来确定模拟估计值;以及至少部分地基于所述概率,通过至少部分地基于所述误差改变相应模拟场景的一部分来扰动所述模拟估计值。
[0150]
y:一种方法,包括:接收与车辆相关联的数据;至少部分地基于所述数据的第一部分来确定环境参数;至少部分地基于所述数据的第二部分来确定与所述车辆的系统相关联的输出数据;接收与所述系统和所述数据相关联的真实数据;确定所述输出数据与所述真实数据之间的差异,所述差异表示与所述系统相关联的误差;以及至少部分地基于所述差异来确定与所述系统相关联的统计模型,所述统计模型指示所述误差的概率,所述概率与所述环境参数相关联。
[0151]
z:段落y的方法,其中,确定所述统计模型包括:至少部分地基于所述数据来确定与所述误差相关联的频率。
[0152]
aa:段落y的方法,其中,所述环境参数包括所述车辆的速度、天气状况、所述车辆的地理位置或一天中的时间中的一个或多个。
[0153]
ab:段落y的方法,还包括:生成模拟;确定所述模拟的模拟环境参数与所述环境参数相对应;将模拟数据输入所述系统;从所述系统接收模拟输出;以及至少部分地基于所述概率和所述误差来扰动所述模拟。
[0154]
ac:段落y的方法,其中,所述系统是感知系统,所述输出数据包括与对象相关联的第一边界框,所述真实数据包括与所述对象相关联的第二边界框,并且其中,确定所述差异包括确定以下中的至少一个之间的差异:所述第一边界框的第一范围与所述第二边界框的第二范围;或者所述第一边界框的第一姿态与所述第二边界框的第二姿态。
[0155]
ad:段落y的方法,其中,所述系统是跟踪器系统,所述输出数据包括所述车辆的规划的轨迹数据,所述真实数据包括所述车辆的测量的轨迹,并且其中,确定所述差异包括确定所述规划的轨迹数据与所述测量的轨迹之间的差异。
[0156]
ae:段落y的方法,其中,所述系统与预测系统相关联,所述数据包括环境中的对象的预测的轨迹,所述真实数据包括所述对象的观察的轨迹,并且其中,确定所述差异包括确定所述预测的轨迹与所述观察的轨迹之间的差异。
[0157]
af:段落y的方法,其中,所述数据是第一数据,所述环境参数是第一环境参数,所述差异是第一差异,所述误差是第一误差,并且所述概率是第一概率,所述方法还包括:接收与所述车辆的所述系统相关联的第二数据;至少部分地基于所述第二数据来确定第二环境参数;确定所述输出数据的第三部分与所述真实数据的第四部分之间的第二差异,所述第二差异表示与所述系统相关联的第二误差;以及更新与所述系统相关联的统计模型,所述统计模型指示所述第二误差的第二概率,所述第二概率与所述第二环境参数相关联。
[0158]
ag:一种存储可由处理器执行的指令的非暂时性计算机可读介质,其中,所述指令在被执行时使所述处理器执行包括以下项的操作:接收数据;至少部分地基于所述数据来确定环境参数;至少部分地基于所述数据和车辆的系统来确定输出数据;接收与所述系统和所述数据相关联的真实数据;确定所述输出数据的第一部分与所述真实数据的第二部分之间的差异,所述差异表示与所述系统相关联的误差;至少部分地基于所述差异来确定与所述系统相关联的统计模型,所述统计模型指示所述误差的概率;以及将所述概率与所述环境参数相关联。
[0159]
ah:段落ag的非暂时性计算机可读介质,其中,确定所述统计模型包括:至少部分地基于所述数据来确定与所述差异相关联的频率。
[0160]
ai:段落ag的非暂时性计算机可读介质,其中,所述环境参数包括所述车辆的速度、天气状况或一天中的时间中的一个或多个。
[0161]
aj:段落ag的非暂时性计算机可读介质,所述操作还包括:生成包括模拟车辆的模拟;接收模拟数据;确定模拟环境参数与所述环境参数相对应;将所述模拟数据的至少一部分输入所述系统;从所述系统接收模拟输出数据;以及至少部分地基于请求以及所述概率和所述误差来改变所述模拟输出数据。
[0162]
ak:段落ag的非暂时性计算机可读介质,其中,所述系统是感知系统,所述数据包括与对象相关联的第一边界框,所述真实数据包括与所述对象相关联的第二边界框,并且其中,确定所述差异包括确定以下中的至少一个之间的差异:所述第一边界框的第一范围与所述第二边界框的第二范围;或者所述第一边界框的第一姿态与所述第二边界框的第二姿态。
[0163]
al:段落ag的非暂时性计算机可读介质,其中,所述系统是跟踪器系统,所述数据包括所述车辆的规划的轨迹数据,所述真实数据包括所述车辆的测量的轨迹,并且其中,确定所述差异包括确定所述规划的轨迹数据与所述测量的轨迹之间的差异。
[0164]
am:段落ag的非暂时性计算机可读介质,其中,所述系统与预测系统相关联,所述数据包括环境中对象的预测的轨迹,所述真实数据包括所述对象的观察的轨迹,并且其中,确定所述差异包括确定所述预测的轨迹与所述观察的轨迹之间的差异。
[0165]
an:段落ag的非暂时性计算机可读介质,其中,所述数据是第一数据,所述环境参数是第一环境参数,所述差异是第一差异,所述误差是第一误差,并且所述概率是第一概率,所述操作还包括:接收与所述车辆的所述系统相关联的第二数据;至少部分地基于所述第二数据来确定第二环境参数;确定所述输出数据的第三部分与所述真实数据的第四部分
之间的第二差异,所述第二差异表示与所述系统相关联的第二误差;以及更新与所述系统相关联的所述统计模型,所述统计模型指示所述第二误差的第二概率,所述第二概率与所述第二环境参数相关联。
[0166]
虽然上面描述的示例性条款是针对一个特定的实施方式来描述的,但是应当理解,在本文档的上下文中,示例性条款的内容也可以经由一种方法、设备、系统、计算机可读介质和/或另一种实施方式来实现。另外,示例a至示例an中的任何一个示例都可以被单独实施,或者与示例a至示例an中的任何其他一个或多个示例相结合地实施。
[0167]
结论
[0168]
虽然已经描述了本文描述的技术的一个或多个示例,但是其各种改变、添加、置换和等同物也被包括在本文描述的技术的范围内。
[0169]
在示例的描述中,对附图进行了参考,并且附图构成本发明一部分,这些附图以图解的方式示出了所要求保护的主题的具体示例。应当理解,可以使用其他示例,并且可以进行更改或改变,例如结构更改。这样的示例、更改或改变不一定偏离关于所意图要求保护的主题的范围。虽然本文的步骤可能以一定的顺序呈现,但是在一些情况下,可以更改该顺序,使得某些输入在不更改所描述的系统和方法的功能的情况下,以不同的时间或不同的顺序提供。所公开的程序也可以以不同的顺序执行。另外,本文的各种计算不需要按照所公开的顺序来执行,并且可以容易地实现使用计算的替代顺序的其他示例。除了被重新排序之外,还可以将计算分解为具有相同结果的子计算。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献