CN114787894A - 感知误差模型 - Google Patents
感知误差模型 Download PDFInfo
- Publication number
- CN114787894A CN114787894A CN202080084729.5A CN202080084729A CN114787894A CN 114787894 A CN114787894 A CN 114787894A CN 202080084729 A CN202080084729 A CN 202080084729A CN 114787894 A CN114787894 A CN 114787894A
- Authority
- CN
- China
- Prior art keywords
- data
- vehicle
- error
- determining
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/04—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles
- G09B9/042—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of land vehicles providing simulation in a real vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
本文讨论了用于基于车辆数据和地面实况数据来确定误差模型的技术。为了确定复杂的系统(其可能无法被检查)是否能够安全操作,可以基于操作数据来识别各种操作制度(场景)。为了提供这种系统的安全操作,可以确定可以提供与感知数据相关联的概率的误差模型,并且车辆可以基于与感知数据相关联的误差的概率来确定轨迹。
Description
相关申请的交叉引用
本专利申请要求于2019年12月9日提交的序列号为16/708019的美国实用专利申请的优先权。序列号为16/708019的申请通过引用完全并入本文。
背景技术
自主车辆可以使用自主车辆控制器来引导自主车辆通过环境。例如,自主车辆控制器可以使用规划方法、设备和系统来确定驾驶路径并引导自主车辆通过包含动态对象(例如,车辆、行人、动物等)和静态对象(例如,建筑物、标牌、停转的车辆等)的环境。但是,为了确保乘员的安全,验证控制器的安全性很重要。
附图说明
参考附图来描述详细描述。在图中,附图标记的最左侧数字标识附图标记首次出现的图。在不同的图中使用相同的附图标记表示相似或相同的组件或特征。
图1示出了基于参数化场景来生成与车辆控制器相关联的车辆性能数据。
图2示出了至少部分地基于由车辆生成的日志数据来生成场景数据的计算装置,其中场景数据示出了场景的一个或多个变体。
图3示出了至少部分地基于车辆数据和地面实况数据来生成误差模型数据。
图4示出了使用误差模型数据通过提供与模拟环境相关联的误差或不确定性中的至少一个来扰动模拟。
图5示出了至少部分地基于由车辆生成的日志数据和地面实况数据来生成感知误差模型数据的计算装置。
图6示出了至少部分地基于参数化场景数据来生成模拟数据和至少部分地基于模拟数据来生成安全度量数据的计算装置。
图7示出了用于实现本文描述的技术的示例系统的框图。
图8示出了根据本公开的示例的用于确定与车辆控制器相关联的安全度量的示例过程的流程图。
图9示出了用于确定与自主车辆的子系统相关联的统计模型的示例过程的流程图。
图10示出了与误差概率相关联的环境的多个区域。
图11示出了车辆数据和由车辆数据表示的环境以及车辆数据和环境之间的差异。
图12示出了用于确定误差模型和确定扰动的模拟数据的示例过程的流程图。
具体实施方式
本文描述的技术针对确定系统的性能度量的各个方面。在本文描述的至少一些示例中,可以例如使用模拟结合其他性能度量确定来确定这样的性能度量。模拟可用于验证在车辆(例如,自主车辆)上执行的软件(例如,车辆控制器)并收集安全度量,以确保软件能够在各种场景中安全地控制此类车辆。在附加或替代示例中,模拟可用于了解使用自主控制器的自主车辆的约束。例如,模拟可用于根据表面条件、环境噪声、故障组件等来了解自主车辆的操作空间(例如,自主控制器有效控制自主车辆的包络线)。模拟也可以用于有助于生成反馈以改进自主车辆的操作和设计。例如,在一些示例中,模拟可用于确定自主控制器中所需的冗余量,或如何基于通过模拟学习的内容来修改自主控制器的行为。此外,在附加或替代示例中,模拟有助于为自主车辆的硬件设计提供信息,例如优化传感器在自主车辆上的放置。
在创建模拟环境进行测试和验证时,可以通过各种具体的示例具体列举环境。这种环境的每个实例化都可以是唯一的和定义的。手动列举所有可能的场景可能需要过多的时间,如果不是每个可能的场景都被构建,各种场景可能未经测试。场景参数可用于参数化场景内的对象的特征和/或属性并提供场景的变体。
例如,一辆或多辆车辆可以穿越环境并生成与该环境相关联的日志数据。日志数据可以包括由车辆的一个或多个传感器捕获的传感器数据、指示由车辆上的一个或多个车载系统识别(或在后处理阶段产生)的对象的感知数据、指示对象意图的预测数据(是否是在记录期间或之后制作的),和/或指示诊断信息、轨迹信息和由车辆生成的其他信息的状态数据。车辆可以经由网络将日志数据传输到存储日志数据的数据库和/或分析日志数据的计算装置。
计算装置可以基于日志数据来确定各种场景、各种场景的频率以及与各种场景相关联的环境的区域。在一些情况下,计算装置可以对日志数据中表示的类似场景进行分组。例如,可以使用例如k均值聚类和/或评估环境参数之间的加权距离(例如,欧几里得)将场景分组在一起(例如,白天、夜间、降水、车辆位置/速度、对象位置/速度、路段等)。如上所述,对相似或相似的场景进行聚类可以通过在独特场景中模拟自主控制器而不是在几乎相似的场景中模拟自主车辆(这会导致冗余模拟数据/结果)来减少在环境中模拟自主控制器所需的计算资源量。如可以理解的,自主控制器可以预期在相似场景中类似地执行(和/或可能已经证明执行)。
例如,计算装置可以基于日志数据中表示的行人数量来确定行人出现在人行横道上的比率。在一些情况下,计算装置可以基于操作自主车辆的速率和时间段来确定在人行横道处检测到行人的概率。基于日志数据,计算装置可以确定场景并基于可以在模拟中使用的场景来识别场景参数。
在一些情况下,该模拟可用于测试和验证自主车辆控制器对车辆的有缺陷的(和/或故障的)传感器和/或传感器数据的有缺陷的(和/或故障的)处理的响应。在这样的示例中,计算装置可以被配置为在对象的场景参数中引入不一致。例如,误差模型可以指示与场景参数相关联的误差和/或误差百分比。该场景可以将误差和/或误差百分比合并到模拟场景中,并模拟自主车辆控制器的响应。此类误差可以由但不限于基于使用地面实况数据、函数(例如,基于输入参数的误差)或将参数映射到特定误差的任何其他模型的统计聚合确定的查找表来表示。在至少一些示例中,这样的误差模型可以将特定误差与发生的概率/频率进行映射。
作为示例而非限制,误差模型可以指示场景参数,例如与模拟环境中的对象相关联的速度,与误差百分比相关联。例如,对象可以在模拟场景中以每秒10米的速度行进,误差百分比可以是20%,从而导致速度范围在每秒8米和每秒12米之间。在一些情况下,速度范围可以与概率分布相关联,该概率分布表明该范围的某些部分比该范围的其他部分具有更高的发生概率(例如,每秒8米和每秒12米的概率为15%,每秒9米和每秒11米的概率为30%,每秒10米的概率为10%)。
基于误差模型和/或场景,可以生成参数化场景。参数化场景可以提供场景的一组变体。因此,在参数化场景中实例化自主车辆控制器并模拟参数化场景可以有效地覆盖场景的广泛变体,而无需手动列举这些变体。此外,至少部分地基于执行参数化场景,模拟数据可以指示自主车辆控制器如何响应(或将响应)参数化场景并至少部分地基于模拟数据来确定成功的结果或不成功的结果。
聚合与参数化场景相关的模拟数据可以提供与参数化场景相关联的安全度量。例如,模拟数据可以指示自主车辆控制器的成功率和/或故障率以及参数化场景。在一些情况下,达到或超过成功率可以指示自主车辆控制器的成功验证,该控制器随后可以由车辆下载(或以其他方式传送到车辆)以用于进一步的车辆控制和操作。
例如,参数化场景可以与结果相关联。模拟数据可以表明自主车辆控制器的响应与结果一致或不一致。作为示例而非限制,参数化场景可以表示模拟环境,包括由自主车辆控制器控制的车辆,该车辆以一定速度行驶并且在车辆前方的对象之前执行停止动作。速度可以与指示车辆速度范围的场景参数相关联。可以至少部分地基于速度范围来模拟参数化场景,并且可以生成指示车辆完成停止动作时车辆与对象之间的距离的模拟数据。参数化场景可以与指示车辆和对象之间的距离达到或超过距离阈值的结果相关联。基于模拟数据和场景参数,成功率可以表示当车辆完成停止动作时车辆与对象之间的距离达到或超过距离阈值的次数与车辆完成停止动作的总次数的比较。
本文描述的技术提供了各种计算效率。例如,通过使用本文描述的技术,计算装置需要更少的计算资源,并且可以比经由常规技术获得的模拟场景更快地生成多个模拟场景。常规技术不可扩展。例如,生成一组独特的模拟环境——与自主车辆上的训练、测试和/或验证系统(例如,人工智能堆栈的一个或多个组件)所需的一样多(例如,在将此类自主车辆部署到对应的新真实环境之前)——可能会花费过多的时间,从而限制在进入真实场景和/或环境之前在自主车辆上训练、测试和/或验证此类系统(例如,人工智能堆栈的一个或多个组件)的能力。本文描述的技术是非传统的,因为它们利用从真实环境收集的传感器数据并用附加的数据补充该数据以比传统技术可用的更有效地生成基本准确的模拟环境(例如,相对于对应的真实环境)。此外,这里描述的技术——例如场景的不同方面——能够在比传统技术可用的更少的时间和更少的计算资源中生成许多可扩展的模拟场景。
此外,本文描述的技术针对安全性改进。也就是说,由本文描述的生成技术产生的模拟环境可用于测试、训练和验证自主车辆上的系统,以确保此类系统在部署在真实环境中时能够安全地操作自主车辆。即,由本文描述的生成技术产生的模拟环境可用于测试、训练和验证自主车辆控制器的规划系统和/或预测系统,自主车辆可以使用其来导航自主车辆沿真实环境中的轨迹。因此,通过本文描述的技术实现的这种训练、测试和验证可以提供确保自主车辆可以在真实世界环境中安全操作的机会。因此,本文描述的技术改进了安全性和冲击导航。
图1示出了基于参数化场景来生成与车辆控制器相关联的车辆性能数据的示例100。为了生成场景,可以使用输入数据102。输入数据102可以包括车辆数据104和/或附加的情境数据106。车辆数据104可以包括由行驶通过环境的车辆捕获的日志数据。如上所述,日志数据可用于识别模拟自主控制器的场景。为了说明的目的,车辆可以是配置为根据美国国家公路交通安全管理局发布的5级分类操作的自主车辆,该分类描述了能够在整个行程中执行所有安全关键功能的车辆,其中驾驶员(或乘员)不被期望在任何时候控制车辆。在这样的示例中,由于车辆可以被配置为控制从启动到停止的所有功能,包括所有停车功能,它可以是空的。这仅是一个示例,本文描述的系统和方法可以结合到任何陆上、空中或水上交通工具中,包括从需要始终由驾驶员手动控制的交通工具到那些部分或完全自主控制的交通工具。
车辆可以包括计算装置,该计算装置包括感知引擎和/或规划器,并执行诸如从收集自环境的传感器数据中检测、识别、分割、分类和/或跟踪对象的操作。例如,诸如行人、自行车/骑自行车的人、摩托车/摩托车手、公共汽车、有轨电车、卡车、动物和/或类似物的对象可以存在于环境中。
当车辆穿越环境时,传感器可以捕获与环境相关的传感器数据。例如,一些传感器数据可以与对象(例如,车辆、骑车人和/或行人)相关联。在一些情况下,传感器数据可以与其他对象相关联,包括但不限于建筑物、路面、标牌、障碍物等。因此,在一些情况下,传感器数据可以与动态对象和/或静态对象相关联。如上所述,动态对象可以是与运动相关联的对象(例如,车辆、摩托车、骑车人、行人、动物等)或能够在环境内运动(例如,停放的车辆、站立的行人等)的对象。如上所述,静态对象可以是与环境相关联的对象,例如建筑物/结构、路面、道路标记、标牌、障碍物、树木、人行道等。在一些情况下,车辆计算装置可以确定有关环境中对象的信息,例如边界框、分类、分割信息等。
车辆计算装置可以使用传感器数据来生成车辆的轨迹。在一些情况下,车辆计算装置还可以确定与车辆位置相关联的姿态数据。例如,车辆计算装置可以使用传感器数据来确定车辆在环境中的位置数据、坐标数据和/或朝向数据。在一些情况下,姿势数据可以包括x-y-z坐标和/或可以包括与车辆相关联的俯仰、滚动和偏航数据。
车辆计算装置可以生成可以包括上述数据的车辆数据104。例如,车辆数据104可以包括传感器数据、感知数据、规划数据、车辆状态数据、速度数据、意图数据和/或由车辆计算装置生成的其他数据。在一些情况下,传感器数据可以包括由传感器捕获的数据,该传感器例如,飞行时间传感器、地点传感器(例如,GPS、指南针等)、惯性传感器(例如,惯性测量单元(IMU)、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、相机(例如RGB、IR、强度、深度等)、麦克风传感器、环境传感器(例如温度传感器、湿度传感器、光传感器、压力传感器等)、超声波换能器、车轮编码器等。传感器数据可以是由这样的传感器捕获的数据,例如飞行时间数据、地点数据、激光雷达数据、雷达数据、声纳数据、图像数据、音频数据等。这样的日志数据还可以包括车辆的任何一个或多个系统或子系统的中间输出,包括但不限于,指示对象检测的消息、对象轨迹、未来对象地点的预测、响应于此类检测而生成的多个轨迹、传递给所使用的一个或多个系统或子系统的控制信号以执行命令等。在一些情况下,车辆数据104可以包括与车辆计算装置生成的其他数据相关联的时间数据。
在一些情况下,输入数据102可用于生成场景。输入数据102可以包括车辆数据104和/或附加的情境数据106。作为示例而非限制,附加的情境数据106可以包括诸如来自第三方来源的事故报告的数据。第三方来源可以包括执法机构、机动车辆部门和/或可以发布和/或存储活动和/或事故报告的安全管理机构。例如,报告可以包括活动的类型(例如,交通危险,例如道路上的碎片、局部洪水等)、地点和/或活动的描述。作为示例而非限制,该报告可以描述驾驶员在操作车辆时在以每秒15米的速度行驶时撞到了道路上倒下的树枝。该报告可用于生成可用于模拟的类似场景。
在一些情况下,附加的情境数据106可以包括捕获的传感器数据(例如,图像数据)。作为示例而非限制,车辆的驾驶员可以在驾驶员操作车辆时使用相机来捕获图像数据。在一些情况下,图像数据可以捕获诸如事件之类的活动。作为示例而非限制,驾驶员可以在驾驶员操作车辆时使用仪表板相机(例如,安装在车辆内部仪表板上的相机)来捕获图像数据。当驾驶员操作车辆时,动物可以跑过道路,驾驶员可以立即刹车以减慢车辆速度。仪表板相机可以捕获动物在马路上奔跑和车辆减速的图像数据。图像数据可用于生成动物在马路上奔跑的场景。如上所述,可以确定与场景相关联的概率,以基于满足或超过概率阈值的概率来识别用于模拟的场景。作为示例而非限制,当遇到场景的可能性小于0.001%时,可以使用0.001%的概率阈值,然后可以优先考虑具有较高概率的场景以进行模拟并确定与较高概率的场景相关联的安全度量。
输入数据102,例如车辆数据104和/或附加的情境数据106,可以被场景编辑器组件108用来生成初始场景110。例如,输入数据102可以被输入到场景编辑器组件108,其可以生成合成环境,表示合成环境中的输入数据102的至少一部分。可以在例如于2019年4月23日提交的标题为“Scenario Editor and Simulator”的美国专利申请编号16/392094中找到生成场景的示例,例如初始场景110和由车辆生成的可以包括在车辆数据104中的数据,其全文以引用方式并入本文。
场景编辑器组件108可以被配置为扫描输入数据102以识别在输入数据102中表示的一个或多个场景。作为示例而非限制,场景编辑器组件108可以确定输入数据102的一部分表示行人在没有通行权的情况下穿过街道(例如,没有人行横道、在没有步行指示的交叉路口等)。场景编辑器组件108可以将其识别为场景(例如,乱穿马路参数)并将场景标记(和/或分类)为例如乱穿马路场景。例如,场景编辑器组件108可以使用定义动作的规则来生成初始场景110。作为示例而非限制,规则可以定义行人在不与相关联的区域中穿过人行横道是乱穿马路的人。在一些情况下,场景编辑器组件108可以从场景编辑器组件108的用户接收标签数据以将输入数据102的部分与标签相关联以生成初始场景110。
在一些情况下,场景编辑器组件108可以扫描输入数据102的其他部分并且识别类似场景并且用相同的乱穿马路标签标记类似场景。在一些情况下,场景编辑器组件108可以识别不对应于(或被排除在)现有标签的场景并为这些场景生成新标签。在一些情况下,场景编辑器组件108可以生成场景库并将场景库存储在场景编辑器组件108内的数据库中。作为示例而非限制,场景库可以包括人行横道场景、合并场景、变道场景等。
在至少一些示例中,可以手动指定这样的初始场景110。例如,一个或多个用户可以指定要测试的某些场景,以确保车辆在执行此类场景时能够安全操作,尽管以前从未(或很少)遇到过该场景。
参数组件112可以确定与由场景编辑器组件108识别的初始场景110相关联的场景参数。作为示例而非限制,参数组件112可以分析乱穿马路场景并确定与乱穿马路场景相关联的场景参数,其包括行人的位置、行人的姿态、行人的尺寸、行人的速度、行人的轨迹、车辆与行人之间的距离、车辆的速度、道路宽度等。
在一些情况下,参数组件112可以确定与场景参数相关联的范围或一组值。例如,参数组件112可以确定与初始场景110中表示的对象(例如,行人)相关联的分类,并确定输入数据102中具有相同分类的其他对象。然后,参数组件112可以确定与由初始场景110表示的场景参数相关联的值的范围。作为示例而非限制,场景参数可以指示行人可以具有每秒0.5-1.5米范围的速度。
在一些情况下,参数组件112可以确定与场景参数相关联的概率。作为示例而非限制,参数组件112可以将诸如高斯分布(也称为正态分布)的概率分布与场景参数相关联。在一些情况下,参数组件112可以基于输入数据102来确定与场景参数相关联的概率。如上所述,参数组件112可以确定与输入数据102中表示的对象相关联的分类,并确定输入数据102和/或其他日志数据中相同分类的其他对象。然后,参数组件112可以确定与由输入数据102和/或其他日志数据表示的对象相关联的场景参数的概率分布。
作为示例而非限制,参数组件112可以确定30%的行人以低于0.3米/秒的速度行走,30%的行人以高于1.2米/秒的速度行走,以及40%的行人以每秒0.3到1.2米的速度行走。参数组件112可以将该分布用作乱穿马路场景的行人将以特定速度步行的概率。作为附加示例且非限制性的,参数组件112可确定1%的乱穿马路场景概率,其可表明穿越环境的车辆在穿越环境时有5%的时间会遇到乱穿马路的人。在一些情况下,在自主车辆控制器的模拟期间,场景概率可以用于以与场景概率相关联的速率包括场景。
在一些情况下,参数组件112可以接收并入分布中的补充数据114。作为示例而非限制,参数组件112可以确定场景参数,该场景参数指示行人可以与车辆具有30-60米范围内的距离,同时车辆以15米/秒的速度行进或替代地表示碰撞时间为2-4秒。补充数据114(例如,法规或指南)可以指示车辆必须处理具有1.5秒碰撞时间的场景,该时间可以是下限(也称为参数阈值)。参数组件112可以合并补充数据114并且将场景参数确定为具有1.5-4秒的碰撞时间(尽管可以指定任何时间范围)。在一些情况下,参数组件112可以使用上面讨论的概率分布来确定(使用内插和/或外推技术)与补充数据114相关联的概率。
误差模型组件116可以确定可以指示与场景参数相关联的误差的误差模型。例如,感知误差模型可以产生与模拟对象的感知参数相关联的感知误差,预测误差模型可以产生与模拟对象的预测参数相关联的预测误差等。在一些情况下,作为车辆在穿越环境时,传感器会产生误差的传感器数据和/或车辆的计算装置会错误地处理传感器数据,这会导致感知误差。测试和模拟感知误差可以帮助指示车辆的操作裕度,因为它与潜在的感知误差相关。例如,诸如感知参数之类的场景参数可以指示对象的尺寸或对象在环境中的位置范围。误差模型组件116可以使用感知误差模型指示与对象尺寸相关联的潜在的误差,这可能导致车辆的感知数据指示对象大于或小于环境中的实际对象。
例如,误差模型组件116可以通过将输入数据102与地面实况数据进行比较来确定感知误差模型。在一些情况下,可以手动标记和/或从其他经过验证的机器学习组件确定地面实况数据。例如,输入数据102可以包括传感器数据和/或车辆生成的感知数据。误差模型组件116可以将输入数据102与可以指示环境中对象的实际参数的地面实况数据进行比较。通过将输入数据102与地面实况数据进行比较,误差模型组件116可以确定感知误差。作为示例而非限制,输入数据102可以指示行人身高1.8米,而地面实况数据指示行人身高1.75米,因此,感知误差模型可以指示大约3%的感知误差(例如,[(1.8-1.75)/l.8]*100)。
在一些情况下,误差模型组件116可以确定与输入数据102中表示的对象相关联的分类,并确定输入数据102中相同分类的其他对象。然后误差模型组件116可以确定概率分布(也称为误差分布)与对象的误差范围相关联,并将概率分布与初始场景110内的对象相关联。作为示例而非限制,误差模型组件116可以确定具有行人分类的对象具有4%-6%的感知误差,并且具有车辆分类的对象的感知误差为3%-5%。在一些情况下,误差模型组件116可以确定指示例如大于阈值尺寸的对象或多或少可能具有误差(例如在分类中)的概率分布。
在一些情况下,参数组件112可以使用区域数据118来确定与场景和场景参数兼容的一组环境区域。作为示例而非限制,该场景可以指示车辆具有每秒15米的速度,行人具有每秒1.5米的速度,并且车辆与行人之间的距离为30米。参数组件112可以基于符合场景的环境的区域数据118来确定区域。作为示例而非限制,参数组件112可以排除学校区域,因为场景中的车辆速度可能会超过与学校区域相关联的速度限制,因此该场景在学校区域中无效。然而,这样的车辆速度(例如,15米/秒)在靠近农田的县道上可能是合理的,因此可以在区域集中考虑这样的区域。
在一些情况下,参数组件112可以存储包括环境的可驾驶区域的分段的区域数据118。用于识别可驾驶表面的分段和类似分段以及分段分类和/或定型的技术可以在例如于2019年3月19日提交的标题为“Extension of Autonomous Driving Functionality toNew Regions”的美国专利申请编号16/370696中,以及于2019年4月5日提交的标题为“Simulating Autonomous Driving Using Map Data and Driving Data”的美国专利申请编号16/376842中找到,其全部内容通过引用并入本文。
例如,环境的区域数据118可以被解析成分段并且可以识别相似的分段。在一些情况下,分段可以包括交汇路段,例如交叉口、汇合口等,或连接道路路段,例如交汇点之间的道路的长度和/或宽度。作为示例而非限制,所有具有10英里/小时范围内的速度限制的双车道路段可以与相同的定型相关联。在一些情况下,数据可以与每个单独的分段相关联。例如,交汇路段可以包括交汇类型,例如,合并、“T”、迂回等;多条道路在交叉口汇合;这些道路的相对位置,例如,在交叉口相遇的道路之间的角度;有关交叉口交通控制信号的信息;和/或其他特征。与连接路段相关联的数据可以包括车道数量、这些车道的宽度、每条车道中的行驶方向、停车道的标识、路段上的速度限制和/或其他特征。
在一些示例中,可驾驶表面的分段可以根据分段分类或分段定型进行分组。作为示例而非限制,可以将符合某个度量或属性范围的一些或所有交汇路段分组在一起(例如,使用k-均值,评估分段参数之间的加权距离(例如,欧几里得),或基于分段参数以其他方式来对此类分段进行聚类)。
包含相同或相似定型的场景可用于验证自主车辆控制器的功能。例如,可以期望自主车辆在相同或相似的定型中执行(和/或可能已经证明执行)相同的任务。在一些示例中,定型的使用可以减少要进行的比较次数。例如,通过识别相似区域,可以提供有用信息的模拟场景的数量减少。本文描述的技术可以通过优化为验证和测试提供有用信息的特定场景来降低计算复杂性、内存需求和处理时间。
参数化场景组件120可以使用由参数组件112确定的数据(例如,初始场景110、场景参数、区域集合和/或误差模型数据)来生成参数化场景122。例如,初始场景110可以指示诸如变道场景、右转场景、左转场景、紧急停车场景等的场景。场景参数可以指示与由自主车辆控制器控制的车辆相关联的速度、车辆的姿态、车辆与对象之间的距离等。在一些情况下,场景参数可以指示对象、与对象相关联的位置、与对象相关联的速度等。此外,误差模型(例如,感知误差模型、预测误差模型等)可以指示与场景参数相关联的误差并提供与场景参数相关联的值和/或概率的范围。作为示例而非限制,诸如车辆速度的场景参数可以与诸如每秒8-12米的速度范围相关联)。如上所述,速度范围可以与概率分布相关联,该概率分布指示速度在出现的速度范围内的概率。
该组区域可以指示可以用于将对象放置在模拟环境中的环境的一部分。例如,初始场景110可以指示包括与每小时35英里的速度限制相关联的双向多车道驾驶表面的场景。基于初始场景110,该组区域可以排除不包括与每小时35英里的速度限制相关联的双向、多车道驾驶表面的区域,例如停车场。参数化场景122可用于覆盖由场景参数、误差模型、区域数据118等提供的改变。
作为示例而非限制,场景参数可以包括车辆在接近路口时以每秒10、11或12米(或任何速度)的速度穿越环境。该组区域可以包括不受控制的交叉路口、带有四向停车的交叉路口和带有交通信号灯的交叉路口。此外,感知误差模型可以指示1.34%的感知误差,这可以由为正在测试的感知系统确定的感知度量提供。因此,参数化场景122可以通过改变场景参数和区域(例如,3个速度*3个区域=9个场景/排列)来允许总共9种不同的场景。此外,当模拟组件124模拟参数化场景时,模拟组件124可以使用感知误差模型来引入与车辆确定的感知数据相关联的感知误差。如可以理解的,这仅仅是一个示例,并且参数化场景122可以包括更多或更少的排列以及不同类型的场景参数、区域和/或感知误差。
模拟组件124可以将参数化场景122作为一组模拟指令执行并生成模拟数据126。例如,模拟组件124可以在模拟场景中实例化车辆控制器。在一些情况下,模拟组件124可以同时和/或并行地执行多个模拟场景。此外,模拟组件124可以确定参数化场景122的结果。例如,模拟组件124可以执行参数化场景122的变体以用于模拟以进行测试和验证。模拟组件124可以生成指示自主车辆控制器如何执行(例如,响应)的模拟数据126,并且可以将模拟数据126与预定结果进行比较和/或确定是否有任何预定规则/断言被破坏/触发。
在一些情况下,可以基于场景参数的广义间距来选择模拟的变体。作为示例而非限制,场景参数可以与车辆的速度相关联。此外,场景参数可以与车辆的一系列值相关联。可以基于广义间距来选择用于模拟的变体,以增加值范围的覆盖范围(例如,选择第25个百分位、第50个百分位、第75%个百分位等)。在一些情况下,可以随机选择变体和/或可以在数值范围的标准偏差内随机选择变体。
在一些情况下,预定规则/断言可以基于参数化场景122(例如,可以基于人行横道场景来启用关于人行横道的交通规则,或者可以针对停转的车辆的场景禁用关于穿越车道标记的交通规则)。在一些情况下,模拟组件124可以随着模拟的进行而动态地启用和禁用规则/断言。例如,当模拟对象接近学校区域时,与学校区域相关的规则/断言可以在模拟对象离开学校区域时被启用和禁用。在一些情况下,规则/断言可以包括舒适度度量,这些度量例如与给定模拟场景的对象可以加速到多快有关。在至少一些示例中,规则可以包括例如遵守道路规则、在对象之间留出安全缓冲区等。
至少部分地基于确定自主车辆控制器执行与预定结果一致(即,自主车辆控制器做了它应该做的一切)和/或确定规则没有被破坏或断言没有被触发,模拟组件124可以确定自主车辆控制器成功。至少部分地基于确定自主车辆控制器的性能与预定结果不一致(即,自主车辆控制器做了不应该做的事情)和/或确定规则被违反或断言被触发时,模拟组件124可以确定自主车辆控制器发生故障。因此,至少部分地基于执行参数化场景122,模拟数据126可以指示自主车辆控制器如何响应参数化场景122的每个变体,如上所述,并且至少部分地基于模拟数据126来确定成功的结果或不成功的结果。
分析组件128可以被配置为确定成功或故障的程度。作为示例而非限制,规则可以指示由自主车辆控制器控制的车辆必须在对象的阈值距离内停止。模拟数据126可以指示在参数化场景122的第一变体中,模拟车辆在距阈值距离超过5米处停止。在参数化场景122的第二变体中,模拟数据126可以指示模拟车辆在距阈值距离超过10米处停止。分析组件128可以指示模拟车辆在第二变体中与第一变体中的模拟车辆相比被更成功地执行。例如,分析组件128可以确定包括模拟车辆和参数化场景122的相关联的变体的有序列表(例如,根据相对成功等级排序)。这些变体也可以用于确定系统的各种组件的限制被模拟。
分析组件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中以生成附加的模拟数据。例如,可以基于对在模拟中操作的场景的场景参数的扰动来确定这样的附加的变体。
在一些情况下,分析组件128可以通过禁用场景参数来确定场景的附加的变体。例如,参数化场景可以包括与对象的速度相关联的第一场景参数和与对象的位置相关联的第二场景参数。参数化场景122可以包括与速度相关联的第一范围的值和与位置相关联的第二范围的值。在一些情况下,在模拟参数化场景122之后,模拟数据126可以指示参数化场景122的一些变体导致成功的结果,一些变体导致故障的结果。然后,分析组件128可以确定禁用第一场景参数(例如,设置与第一场景参数相关联的固定值)并基于第二场景参数来改变参数化场景122。通过禁用场景参数之一,分析组件128可以确定场景参数和/或场景参数的值是否与成功结果或故障结果相关联。可以基于故障的可能性、随机地或其他方式来禁用此类参数。作为示例而非限制,作为禁用所有场景参数的结果的模拟数据126可以指示自主车辆的规划组件存在问题。
在一些情况下,分析组件128可用于执行灵敏度分析。例如,分析组件128可以禁用场景参数,并且基于由模拟组件124生成的模拟数据126,确定禁用场景参数如何影响模拟数据126(例如,增加成功率、降低成功率,对成功率的影响很小)。在一些情况下,分析组件128可以单独禁用场景参数以确定禁用每个场景参数如何影响模拟数据126。分析组件128可以收集统计数据,该统计数据指示各个场景参数在模拟的许多过程中如何影响模拟数据126。在一些情况下,分析组件128可以被配置为禁用一组场景参数(例如,禁用夜间环境参数和禁用潮湿条件环境参数)。如上所述,分析组件可以收集指示场景参数集如何影响模拟数据126的统计数据。统计数据可以用于确定增加或减少结果可能性的场景参数是成功的模拟,并且可以用于将与场景参数相关联的自主车辆的子系统识别为增加或减少模拟数据126的成功率。
在一些情况下,分析组件128可以调整场景参数被调整的程度。作为示例而非限制,场景参数可以指示潮湿环境条件(例如,下雨条件)。场景参数可以在一个范围内进行调整(例如,四分之一英寸的降雨量、一英寸的降雨量等)。分析组件128可以调整场景参数的大小并基于场景参数的大小来执行灵敏度分析以确定与场景参数相关联的阈值,该阈值可以导致模拟的成功或不成功的结果。在一些情况下,可以使用二分搜索算法、粒子过滤算法和/或蒙特卡洛方法来确定阈值,但也可以考虑其他合适的算法。
车辆性能组件130可以基于模拟数据126(和/或基于来自分析组件128的附加的变体的附加模拟数据)和故障类型来确定车辆性能数据132。在一些情况下,车辆性能数据132可以指示车辆在环境中的性能。作为示例而非限制,车辆性能数据132可以指示以每秒15米的速度行驶的车辆具有15米的停车距离。在一些情况下,车辆性能数据可以指示安全度量。作为示例而非限制,车辆性能数据132可以指示事件(例如,故障)和事件的原因。在至少一些示例中,这样的指示可以是二元的(故障与否)、粗略的(故障级别,例如“关键”、“非关键”和“通过”)或连续的(例如,表示故障的概率),但考虑任何其他指示。例如,对于事件类型1和原因类型1,数据134(1)可以指示安全等级,并且对于数据134(2)-134(4)类似。在一些情况下,原因类型1和原因类型2可以指示故障,例如车辆故障或对象(例如,骑自行车的人)故障。车辆性能数据132然后可以指示与参数化场景122相关联的安全度量。在一些情况下,车辆性能组件130可以使用目标度量并将车辆性能数据132与目标度量进行比较以确定安全度量是否满足或超过目标度量。在一些情况下,目标度量可以基于与自主车辆相关联的标准和/或法规。
在一些情况下,可以将车辆性能数据132输入到过滤器组件136中,以基于车辆性能数据132来确定过滤后的数据138。例如,过滤器组件136可以用于确定过滤后的数据138,该过滤后的数据138标识了未达到覆盖阈值的区域。作为示例而非限制,初始场景110可以指示与每小时35英里的速度限制和区域数据118相关联的双向多车道驾驶表面。基于初始场景110和区域数据118,参数组件112可以识别可以用于模拟初始场景110的环境的五个区域。在模拟参数化场景122之后,车辆性能数据132可以指示模拟数据126与五个区域中的三个相关联。例如,模拟组件124可以模拟场景并且基于在由参数组件112识别的五个区域中的三个中执行场景来生成模拟数据126。过滤器组件136可以基于一个或多个过滤器来确定过滤后的数据138,其表示5个区域中的剩余2个不满足覆盖阈值(例如,与区域相关联的最小模拟次数)。
在一些情况下,过滤器组件136可以基于车辆性能数据132来确定指示事件发生的过滤后的数据138。作为示例而非限制,模拟数据126可以包括事件的发生,例如紧急停止、轮胎漏气、动物穿过驾驶表面等。过滤器组件136可以基于一个或多个过滤器来确定指示紧急停止的发生的过滤后的数据138。此外,过滤后的数据138可以包括与紧急停止的发生相关联的模拟数据126的部分,例如与紧急停止相关联的停止距离。
图2示出了车辆202的示例200,其可以类似于参考图1描述的车辆生成车辆数据104,生成车辆数据104并将车辆数据104传输到计算装置204。如上所述,场景编辑器组件108可以被配置为扫描输入数据102(例如,车辆数据104和/或附加的情境数据106)并识别在输入数据102中表示的一个或多个场景。作为非限制性示例,可以基于例如日志数据的聚类(例如,使用k-均值等)参数化来确定这样的场景。在一些情况下,场景编辑器组件108可以使用场景定义数据206来识别在输入数据102中表示的一个或多个场景。例如,场景定义数据206可以识别与一种场景类型相关联的特征。作为示例而非限制,场景定义数据206可以识别乱穿马路场景,该场景包括诸如行人穿过与人行横道无关的驾驶表面的一部分的特征。场景编辑器组件108可以扫描输入数据102以识别包括行人穿过与人行横道无关的驾驶表面的一部分的特征的输入数据的部分以确定乱穿马路场景。在至少一些示例中,这样的场景可以进一步手动输入和/或从第三方数据(例如,警察报告、通常可用的视频剪辑等)导出。
此外,如上所述,参数组件112可以确定可以指示与场景中的对象的参数相关联的值或值的范围的场景参数。参数组件112可以生成如图2所示的场景数据208。
场景数据208可以指示基本场景,其包括车辆210沿着驾驶表面穿越和对象212(可以是不同的车辆)在车辆210附近以与车辆210相同的方向穿越。车辆210和对象212可能正在接近与人行横道的交叉口。参数组件112可以将指示车辆210和对象212之间的距离的场景参数确定为具有距离范围。因此,场景S1可以表示在车辆210和对象212之间具有第一距离的一组场景中的第一场景,场景S2可以表示在车辆210和对象212之间具有第二距离的一组场景中的第二场景,以及场景SN可以表示在车辆210和对象212之间具有第N距离的一组场景中的第N场景。可以找到附加类型的参数(也称为属性)的示例,例如,在于2019年3月25日提交的题为“Pedestrian Prediction Based on Attributes”的美国专利申请编号16/363541中找到,其内容通过引用全部并入本文。
例如,场景参数可以包括但不限于对象212的速度、对象212的加速度、对象212的x位置(例如,全局位置、局部位置和/或相对于任何其他参考系的位置)、对象212的y位置(例如,尺寸、姿态、局部位置、全局位置和/或相对于任何其他参考系的位置)、与对象212相关联的边界框(例如,范围(长度、宽度和/或高度)、偏航、俯仰、滚动等)、照明状态(例如,刹车灯、闪光灯、危险灯、前灯、倒车灯等)、对象212的车轮朝向、地图元素(例如,对象212与停车灯、停车标志、减速带、交叉路口、让行标志等之间的距离)、对象212的分类(例如,车辆、汽车、卡车、自行车、摩托车、行人、动物等)、对象特征(例如,对象是否正在改变车道、对象212是否是双停的车辆等)、与一个或多个对象的接近度(在任何坐标系中)、车道类型(例如,车道方向、停车道)、道路标记(例如,指示是否允许超车或变道等)、对象密度等。
如上所述,参数组件112可以确定与由车辆数据104和/或其他输入数据表示的场景参数相关联的值的范围。因此,上面识别的每个示例场景参数以及其他场景参数可以与一组值或一组值的范围相关联,这些值可以用于生成一组场景,其中一组场景中的场景相差一个或多个场景参数值。
图3示出了至少部分地基于车辆数据和地面实况数据来生成误差模型数据的示例300。如图3中所示出的,车辆202可以生成车辆数据104并将车辆数据104传输到误差模型组件116。如上所述,误差模型组件116以确定可以指示与场景参数相关联的误差的误差模型。例如,车辆数据104可以是与车辆202的子系统相关联的数据,例如感知系统、规划系统、跟踪系统(也称为跟踪系统)、预测系统等。作为示例而非限制,车辆数据104可以与感知系统相关联,并且车辆数据104可以包括与由车辆202在环境中检测到的对象相关联的边界框。
误差模型组件116可以接收可以手动标记和/或从其他经过验证的机器学习组件确定的地面实况数据302。作为示例而非限制,地面实况数据302可以包括与环境中的对象相关联的验证的边界框。通过比较车辆数据104的边界框与地面实况数据302的边界框,误差模型组件116可以确定与车辆202的子系统相关联的误差。在一些情况下,车辆数据104可以包括与检测到的实体和/或该实体所处的环境相关联的一个或多个特征(也称为参数)。在一些示例中,与实体相关联的特征可以包括但不限于x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、实体类型(例如,分类)、实体的速度、实体的范围(尺寸)等。与环境相关联的特征可以包括但不限于环境中另一个实体的存在、环境中的另一个实体的状态、一天中的某个时间、一周中的某一天、一个季节、天气状况、黑暗/光明的指示等。因此,误差可以与其他特征(例如,环境参数)相关联。
误差模型组件116可以处理多个车辆数据104和多个地面实况数据302以确定误差模型数据304。误差模型数据304可以包括由误差模型组件116计算的误差,其可以表示为误差306(1)-(3)。另外,误差模型组件116可以确定与表示为概率308(1)-(3)的误差306(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)更有可能被选择。
图4示出了使用误差模型数据通过提供与模拟环境相关联的误差或不确定性中的至少一个来扰动模拟的示例400。如上所述,误差模型数据可以包括将误差306与概率308相关联的误差模型,并且误差模型可以与环境参数相关联。模拟组件124可以使用误差模型数据304来注入误差,其可以导致扰动的参数化场景以扰动模拟。基于注入的误差,模拟数据可以指示自主控制器如何响应注入的误差。
例如,模拟组件124可以通过将误差连续注入模拟来扰动模拟。作为示例而非限制,示例402示出了在时间t0与对象相关联的边界框404。边界框404可以表示车辆对对象的检测,其包括诸如边界框的尺寸和/或边界框的位置的误差之类的误差。在时间t1,模拟组件124可以使用表示对象并且包括不同误差的边界框406。例如,在每个模拟时间(例如,t0、t1或t2),模拟组件124可以基于与误差306相关联的概率308来使用不同的误差306。在时间t2,模拟组件124可以使用表示对象并且包括不同误差的边界框408。
在一些情况下,模拟组件124可以通过注入不确定性来扰动模拟,该不确定性与表示环境中的对象的边界框相关联。作为示例而非限制,示例410示出了在时间t0与对象相关联的边界框412。边界框可以包括5%的不确定性,这可以以5%的量指示对象的尺寸和/或位置的不确定性。此外,不确定性可以在时间t1和t2中持续存在于对象中,而不是如示例402中所示在不同的模拟时间注入不同的误差。
图5示出了车辆202生成车辆数据104并将车辆数据104传输到计算装置204的示例500。如上所述,误差模型组件116可以确定感知误差模型,该模型可以指示与场景参数相关联的误差。如上所述,车辆数据104可以包括由车辆202的传感器生成的传感器数据和/或由车辆202的感知系统生成的感知数据。可以通过将车辆数据104与地面实况数据302进行比较来确定感知误差模型。地面实况数据302可以手动地标记并且可以与环境相关联并且可以表示已知结果。因此,车辆数据104中与地面实况数据302的偏差可被识别为传感器系统和/或车辆202的感知系统中的误差。作为示例而非限制,感知系统可以将对象识别为骑自行车的人,其中地面实况数据302指示该对象是行人。作为另一示例且非限制性地,传感器系统可以生成将对象表示为具有2米的宽度的传感器数据,其中地面实况数据302指示该对象具有1.75米的宽度。
如上所述,误差模型组件116可以确定与车辆数据104中表示的对象相关联的分类,并确定车辆数据104和/或其他日志数据中具有相同分类的其他对象。然后误差模型组件116可以确定与和对象相关联的一系列误差相关联的概率分布。基于误差的比较和范围,误差模型组件116可以确定感知误差模型数据502。
如图5所示,环境504可以包括表示为由感知系统生成的边界框的对象506(1)-(3)。感知误差模型数据502可以将场景参数指示为508(1)-(3)并且将与场景参数相关联的误差指示为510(1)-(3)。如图5中所示,与对象508(1)相关联的误差可以在环境504中可视化为指示关于对象508(1)的尺寸的不确定性的较大边界框512。
图6示出了计算装置204生成模拟数据126和确定车辆性能数据132的示例600。参数化场景组件120可以基于场景参数、区域集合和感知误差模型来确定参数化场景。例如,场景参数可以指示参数化场景中的对象、与对象相关联的位置、与对象相关联的速度等。此外,场景参数可以指示范围,该范围指示与场景参数相关联的值和/或概率的范围。该组区域可以指示可以用于将对象放置在模拟环境中的环境的部分。此外,感知误差模型可以指示与场景参数相关联的误差。如本文所详述的,这些可以组合以创建可以覆盖由场景参数、区域集和/或感知误差模型提供的变体的参数化场景。
模拟组件124可以使用参数化场景来模拟参数化场景的变体。例如,模拟组件124可以执行参数化场景的变体以在模拟中使用以进行测试和验证。模拟组件124可以生成指示自主车辆控制器如何执行(例如,响应)的模拟数据126,并且可以将模拟数据126与预定结果进行比较和/或确定是否有任何预定规则/断言被破坏/触发。
如图6所示,模拟数据126可以指示模拟的数量(例如,模拟1、模拟2等)和模拟的结果(例如,结果1、结果2)。例如,如上所述,结果可以基于被破坏/触发的规则/断言来指示通过或故障。此外,模拟数据126可以指示遇到场景的概率。作为示例而非限制,模拟组件124可以模拟包括乱穿马路的行人的场景。输入数据可以指示车辆以行驶每1小时有1分钟的速度遇到乱穿马路的行人。这可用于确定遇到与参数化场景的变体相关联的特定模拟的概率。在一些情况下,模拟组件124可以识别具有低概率的参数化场景的变体并且执行对应于那些变体的模拟。这可以允许在更独特的情况下测试和验证自主车辆控制器。
此外,模拟组件124可以基于结果来识别参数化场景的变体以用于附加的模拟。作为示例而非限制,模拟的结果可以是场景参数与每秒15米的车辆速度相关联的故障。模拟组件124可以识别接近每秒15米的速度以确定模拟将通过的阈值,这可以进一步帮助开发更安全的车辆控制器。
基于模拟数据126,车辆性能组件130可以生成车辆性能数据132。如上所述,例如,对于事件类型1和原因类型1,数据134(1)可以指示安全等级,并且对于数据134(2)-134(4)也类似。在一些情况下,事件类型可以指示成本已经达到或超过成本阈值,尽管其他事件类型也是可以考虑的。例如,成本可以包括但不限于参考成本、障碍物成本、横向成本、纵向成本等。
参考成本可以包括与参考轨迹上的点(也称为参考点)和目标轨迹上的对应的点(也称为点或目标点)之间的差异相关联的成本,由此该差异表示偏航、横向偏移、速度、加速度、曲率、曲率速率等等方面的一个或多个差异。在一些示例中,减小与参考成本相关联的权重可以减少与位于远离参考轨迹一定距离的目标轨道相关联的惩罚,这可以提供导致更安全和/或更舒适的车辆操作的更平滑的过渡。
在一些示例中,障碍物成本可以包括与参考轨迹或目标轨迹上的点与和环境中的障碍物相关联的点之间的距离相关联的成本。例如,与障碍物相关联的点可以对应于可驾驶区域的边界上的点,或者可以对应于与环境中的障碍物相关联的点。在一些示例中,环境中的障碍物可以包括但不限于静态对象(例如,建筑物、路边、人行道、车道标记、路标、红绿灯、树木等)或动态对象(例如,车辆、骑自行车的人、行人、动物等)。在一些示例中,动态对象也可以称为代理。在一些示例中,静态对象或动态对象通常可以被称为对象或障碍物。
在一些示例中,横向成本可以指与车辆的转向输入相关联的成本,例如相对于车辆速度的最大转向输入。在一些示例中,纵向成本可以指与车辆的速度和/或加速度(例如,最大制动和/或加速度)相关联的成本。这样的成本可用于确保车辆在被运送乘客的可行限制和/或舒适限制内操作。
在一些情况下,原因类型1和原因类型2可以指示故障,例如车辆故障或对象(例如,骑自行车的人)故障。车辆性能组件130可以使用预定规则/断言来确定故障。作为示例而非限制,规则可以指示当车辆被车辆后部的对象撞击时,故障可以与该对象相关联。在一些情况下,可以使用附加的规则,例如指示车辆在受到后方对象撞击时必须向前穿越环境。在一些情况下,原因类型(例如,原因类型1和/或原因类型2)可以与自主车辆控制器的组件相关联。作为非限制性示例,此类原因可包括感知系统、预测系统、规划系统、网络延迟、扭矩/加速度故障和/或车辆的任何其他组件或子组件的故障。
如上所述,分析组件可以基于模拟数据126来确定禁用场景参数(例如,设置与场景参数相关联的固定值)并改变其他场景参数。通过隔离场景参数,分析组件可以确定与成功或故障结果相关联的场景参数。车辆性能数据132然后可以指示与参数化场景相关联的安全度量。此外,分析组件可以执行灵敏度分析以确定故障原因。例如,分析组件可以单独禁用场景参数以隔离一个或多个场景参数并确定禁用场景参数如何影响自动驾驶车辆的响应,捕获与禁用一个或多个场景参数相关联的统计数据,并捕获结果作为成功或故障的结果。统计数据可以指示场景参数集如何影响结果,并且可以用于确定增加或减少结果可能性的场景参数是成功的模拟,并且可以用于识别自主车辆的子系统,这些子系统与场景参数作为增加或减少模拟数据的成功率。
图7示出了用于实现本文所讨论的技术的示例系统700的框图。在至少一个示例中,系统700可以包括车辆202。在所示示例700中,车辆202是自主车辆;然而,车辆202可以是任何其他类型的车辆(例如,驾驶员控制的车辆,其可以指示执行各种操纵是否安全)。
车辆202可以包括计算装置702、一个或多个传感器系统704、一个或多个发射器706、一个或多个通信连接708(也称为通信装置和/或调制解调器),至少一个直接连接710(例如,用于与车辆202物理耦合以交换数据和/或提供电力),以及一个或多个驱动系统712。一个或多个传感器系统704可以被配置为捕获与环境相关联的传感器数据。
传感器系统704可以包括飞行时间传感器、地点传感器(例如,GPS、指南针等)、惯性传感器(例如,惯性测量单元(IMU)、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、相机(例如RGB、IR、强度、深度等)、麦克风传感器、环境传感器(如温度传感器、湿度传感器、光传感器、压力传感器等)、超声波换能器、车轮编码器等。传感器系统704可以包括这些或其他类型传感器中的每一个的多个实例。例如,飞行时间传感器可以包括位于车辆202的拐角、前部、后部、侧面和/或顶部的单独的飞行时间传感器。作为另一个示例,相机传感器可以包括设置在车辆202外部和/或内部周围不同地点的多个相机。传感器系统704可以向计算装置702提供输入。
车辆202还可以包括一个或多个发射器706,用于发射光和/或声音。该示例中的一个或多个发射器706包括与车辆202的乘客通信的内部听觉和视觉发射器。作为示例而非限制,内部发射器可以包括扬声器、灯、标志、显示屏、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的一个或多个发射器706进一步包括外部发射器。作为示例而非限制,该示例中的外部发射器包括用于发出行驶方向信号的灯或车辆动作的其他指示器(例如,指示灯、标志、光阵列等),以及一个或多个听觉发射器(例如,扬声器、扬声器阵列、喇叭等)以与行人或其他附近车辆进行听觉通信,其中的一个或多个可以包括声束转向技术。
车辆202还可以包括一个或多个通信连接708,其能够在车辆202和一个或多个其他本地或远程计算装置之间进行通信(例如,远程操作计算装置)或远程服务。例如,通信连接708可以促进与车辆202和/或驱动系统712上的其他本地计算装置的通信。而且,通信连接708可以允许车辆202与其他附近的计算装置(例如,其他附近的车辆、交通信号等)通信。
通信连接708可以包括用于将计算装置702连接到另一计算装置或一个或多个外部网络714(例如,互连网)的物理和/或逻辑接口。例如,通信连接708可以实现基于Wi-Fi的通信,例如经由IEEE 802.11标准定义的频率、例如蓝牙的短程无线频率、蜂窝通信(例如,2G、3G、4G、4GLTE、5G等)、卫星通信、专用短程通信(DSRC)或任何合适的有线或无线通信协议,其使相应的计算装置能够与其他计算装置进行交互。在至少一些示例中,通信连接708可以包括如上详细描述的一个或多个调制解调器。
在至少一个示例中,车辆202可以包括一个或多个驱动系统712。在一些示例中,车辆202可以具有单个驱动系统712。在至少一个示例中,如果车辆202具有多个驱动系统712,单独的驱动系统712可以定位在车辆202的相对端(例如,前部和后部等)。在至少一个示例中,驱动系统712可以包括一个或多个传感器系统704以检测驱动系统712和/或车辆202周围环境的状况。作为示例而非限制,传感器系统704可以包括一个或多个车轮编码器(例如,旋转编码器)以感测驱动系统的车轮的旋转、惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)以测量驱动系统的朝向和加速度,相机或其他图像传感器、超声波传感器以用于声学地检测驱动系统周围的对象、激光雷达传感器,雷达传感器等。一些传感器,如车轮编码器对于驱动系统712可以是唯一的。在一些情况下,驱动系统712上的传感器系统704可以覆盖或补充车辆202的对应的系统(例如传感器系统704)。
驱动系统712可以包括许多车辆系统,包括高压电池、驱动车辆的电动机、将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器、转向系统,其包括转向电动机和转向齿条(可以是电动的)、包括液压或电动执行器的制动系统、包括液压和/或气动组件的悬架系统、用于分配制动力以减轻牵引力损失并保持控制的稳定性控制系统、HVAC系统、照明(例如,用于照亮车辆外部环境的头灯/尾灯等的照明),以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、其他电气组件,例如DC/DC转换器、高压接头、高压电缆、充电系统、充电端口等)。另外,驱动系统712可以包括驱动系统控制器,该驱动系统控制器可以接收和预处理来自传感器系统704的数据并且控制各种车辆系统的操作。在一些示例中,驱动系统控制器可以包括一个或多个处理器和与一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个模块以执行驱动系统712的各种功能。此外,驱动系统712进一步包括一个或多个通信连接,其使得相应的驱动系统能够与一个或多个其他本地或远程计算装置进行通信。
计算装置702可以包括一个或多个处理器516和与一个或多个处理器716通信耦合的存储器518。在所示示例中,计算装置702的存储器718存储定位组件720、感知组件722、预测组件724、规划组件726和一个或多个系统控制器728。尽管出于说明性目的被示出为驻留在存储器718中,但预期定位组件720、感知组件722、预测组件724、计划组件726和一个或多个系统控制器728可以附加地或替代地可由计算装置702访问(例如,存储在车辆202的不同组件)和/或可由车辆202访问(例如,远程存储)。
在计算装置702的存储器718中,定位组件720可以包括从传感器系统704接收数据以确定车辆202的位置的功能。例如,定位组件720可以包括和/或请求/接收环境的三维地图,并且可以连续确定自主车辆在地图内的地点。在一些情况下,定位组件720可以使用SLAM(同时定位和映射)或CLAMS(同时校准、定位和映射)来接收飞行时间数据、图像数据、激光雷达数据、雷达数据、声纳数据、IMU数据、GPS数据、车轮编码器数据或其任意组合等,以准确确定自主车辆的地点。在一些情况下,定位组件720可以向车辆202的各种组件提供数据以确定自主车辆的初始位置以生成轨迹,如本文所讨论的。
感知组件722可以包括执行对象检测、分割和/或分类的功能。在一些示例中,感知组件722可以提供经处理的传感器数据,该数据指示靠近车辆202的实体的存在和/或指示实体的分类为实体类型(例如,汽车、行人、骑自行车的人、建筑物、树木、路面、路边、人行道、未知等)。在附加和/或替代示例中,感知组件722可以提供经处理的传感器数据,其指示与检测到的实体和/或该实体所在的环境相关联的一个或多个特征(也称为参数)。在一些示例中,与实体相关联的特征可以包括但不限于x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、实体类型(例如,分类)、实体的速度、实体的范围(尺寸)等。与环境相关联的特征可以包括但不限于环境中另一个实体的存在、环境中的另一个实体的状态、一天中的某个时间、一周中的某一天、一个季节、天气状况、地理位置、黑暗/光明的指示等。
感知组件722可以包括存储由感知组件722生成的感知数据的功能。在一些情况下,感知组件722可以确定对应于已经被分类为对象类型的对象的轨迹。仅出于说明目的,使用传感器系统704的感知组件722可以捕获环境的一个或多个图像。传感器系统704可以捕获包括诸如行人的对象的环境的图像。行人可以在时间T处于第一位置并且在时间T+t处于第二位置(例如,在时间T之后的时间跨度期间的移动)。换言之,行人可以在这段时间跨度内从第一位置移动到第二位置。例如,这种运动可以被记录为与对象相关联的存储的感知数据。
在一些示例中,存储的感知数据可以包括由车辆捕获的融合感知数据。融合感知数据可以包括来自传感器系统704的传感器数据的融合或其他组合,例如图像传感器、激光雷达传感器、雷达传感器、飞行时间传感器、声纳传感器、全球定位系统传感器、内部传感器、和/或这些的任何组合。存储的感知数据可以附加地或替代地包括分类数据,该分类数据包括传感器数据中表示的对象(例如,行人、车辆、建筑物、路面等)的语义分类。存储的感知数据可以附加地或替代地包括与分类为动态对象的对象在环境中的运动相对应的轨迹数据(随时间与对象相关联的历史位置、朝向、传感器特征等的集合)。轨迹数据可以包括多个不同对象随时间的多个轨迹。当对象静止(例如,静止不动)或移动(例如,步行、跑步等)时,可以挖掘该轨迹数据以识别某些类型对象(例如,行人、动物等)的图像。在该示例中,计算装置确定对应于行人的轨迹。
预测组件724可以生成表示环境中一个或多个对象的可能地点的预测概率的一个或多个概率图。例如,预测组件724可以为距车辆202的阈值距离内的车辆、行人、动物等生成一个或多个概率图。在一些情况下,预测组件724可以测量对象的轨迹并且基于观察到的和预测的行为来生成对象的离散化预测概率图、热图、概率分布、离散化概率分布和/或轨迹。在一些情况下,一个或多个概率图可以表示环境中一个或多个对象的意图。
规划组件726可以确定供车辆202遵循以穿越环境的路径。例如,规划组件726可以确定各种路线和路径以及各种详细程度。在一些情况下,规划组件726可以确定从第一位置(例如,当前位置)到第二位置(例如,目标位置)行进的路线。出于本讨论的目的,路线可以是用于在两个地点之间行驶的航路点序列。作为非限制性示例,航路点包括街道、十字路口、全球定位系统(GPS)坐标等。此外,规划组件726可以生成用于引导自主车辆沿着从第一地点到第二地点的路线的至少一部分的指令。在至少一个示例中,规划组件726可以确定如何将自主车辆从航路点序列中的第一航路点引导到航路点序列中的第二航路点。在一些示例中,指令可以是路径或路径的一部分。在一些示例中,可以根据后退水平技术基本上同时生成多条路径(即,在技术容差内)。可选择具有最高置信水平的后退数据范围内的多条路径中的一条路径来操作车辆。
在其他示例中,规划组件726可替代地或附加地使用来自感知组件722的数据来确定车辆202要遵循的路径以穿越环境。例如,规划组件726可以从感知组件722接收关于与环境相关联的对象的数据。使用该数据,规划组件726可以确定从第一地点(例如,当前地点)行进到第二地点(例如,目标地点)的路线,以避免环境中的对象。在至少一些示例中,这样的规划组件726可以确定不存在这样的无碰撞路径,并且进而提供使车辆202安全停止的路径,从而避免所有碰撞和/或以其他方式减轻损坏。
在至少一个示例中,计算装置702可以包括一个或多个系统控制器728,其可以被配置为控制车辆202的转向、推进、制动、安全、发射器、通信和其他系统。这些系统控制器728可以与驱动系统712的对应的系统和/或车辆202的其他组件通信和/或被控制,其可以被配置为根据从规划组件726提供的路径进行操作。
车辆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。
计算装置702的处理器716和计算装置204的处理器730可以是能够执行指令以处理数据和执行如本文所述的操作的任何合适的处理器。作为示例而非限制,处理器716和730可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)或处理电子数据以将该电子数据转换为可存储在寄存器和/或存储器中的其他电子数据的任何其他装置或装置的一部分。在一些示例中,集成电路(例如,ASIC等)、门阵列(例如,FPGA等)和其他硬件装置也可以被认为是处理器,只要它们被配置为实现编码指令。
存储器718计算装置702和计算装置204的存储器732是非暂时性计算机可读介质的示例。存储器718和732可以存储操作系统和一个或多个软件应用程序、指令、程序和/或数据以实现本文描述的方法和归属于各种系统的功能。在各种实施方式中,存储器718和732可以使用任何合适的存储器技术来实施,例如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。这里描述的架构、系统和单独的元素可以包括许多其他逻辑、程序和物理组件,其中附图中所示的那些仅仅是与这里的讨论相关联的示例。
在一些情况下,本文讨论的一些或所有组件的方面可以包括任何模型、算法和/或机器学习算法。例如,在某些情况下,存储器718和732中的组件可以实现为神经网络。
图8示出了用于确定与车辆控制器相关联的安全度量的示例过程800。如本文所述,过程800的一些或全部可由图1-7中的一个或多个组件执行。例如,过程800的一些或全部可以由计算装置204和/或计算装置702执行。
在示例过程800的操作802中,过程800可以包括接收与在环境中的自主车辆中操作相关联的日志数据。在一些情况下,日志数据可以由至少捕获环境的传感器数据的车辆生成。
在示例过程800的操作804中,过程800可以包括基于日志数据(或其他数据)来确定一组场景,该组场景中的一个场景包括与环境的一个方面相关联的场景参数。在一些情况下,计算装置可以对日志数据中表示的类似场景进行分组。例如,可以使用例如k均值聚类和/或评估环境的参数之间的加权距离(例如,欧几里得)以将场景分组在一起。此外,场景参数可以表示环境参数,例如夜间环境参数或潮湿条件环境参数。在一些情况下,场景参数可以与车辆或对象(例如,姿势、速度等)相关联。
在示例过程800的操作806,过程800可以包括确定与自主车辆的子系统相关联的误差模型。误差模型组件可以将车辆数据(例如,日志数据)与地面实况数据进行比较,以确定车辆数据与地面实况数据之间的差异。在一些情况下,车辆数据可以表示与环境中的对象相关联的估计值,例如估计位置、估计朝向、估计范围等,并且地面实况数据可以表示实际位置、实际朝向,或对象的实际范围。基于该差异,误差模型组件可以确定与车辆的子系统(例如,感知系统、跟踪系统、预测系统等)相关联的误差。
在示例过程800的操作808,过程800可以包括基于场景参数和误差模型来确定参数化场景。这些可以结合起来以创建一个参数化场景,该场景可以覆盖场景参数和/或误差模型提供的变体。在一些情况下,可以随机选择和组合场景参数以创建参数化场景。在一些情况下,可以基于同时发生的概率来组合场景参数。作为示例而非限制,日志数据可以指示5%的驾驶体验包括遭遇行人并且参数化场景组件可以包括行人作为由参数化场景组件生成的5%的参数化场景中的场景参数。在一些情况下,参数化场景组件可以验证参数化场景以减少场景参数的不太可能或不可能的组合。作为示例而非限制,车辆不会被放置在湖中并且行人不会以每秒30米的速度行走。作为非限制性示例,这种参数化场景可以包括车辆和乱穿马路的人在特定定义的道路上的距离范围、速度、照明条件、天气状况等,该道路至少部分地基于场景参数,在感知模型、预测模型等上具有各种误差的高斯分布(或其他分布)。
在示例过程800的操作810中,过程800可以包括通过至少部分地基于误差来修改参数化场景、场景参数或模拟车辆的组件中的至少一个来扰动参数化场景。在一些情况下,不确定性可能与场景参数相关联。作为示例而非限制,对象的位置可以与5%的不确定性相关联,从而导致自主控制器在考虑5%的不确定性的同时穿越环境。在一些情况下,当模拟器执行模拟时,模拟器可以从误差模型中确定要合并到模拟中的误差。
在示例过程800的操作812中,过程800可以包括在扰动的参数化场景中实例化模拟车辆。模拟器可以使用可与自主控制器相关联的模拟车辆,并使自主控制器穿越模拟环境。在参数化场景中实例化自主车辆控制器并模拟参数化场景可以有效地覆盖场景的广泛变体,而无需手动列举变体。另外,至少部分地基于执行参数化场景,模拟数据可以指示自主车辆控制器如何响应参数化场景并且至少部分地基于模拟数据来确定成功的结果或不成功的结果。
在示例过程800的操作814中,该过程可以包括接收模拟数据,该模拟数据指示模拟车辆如何响应扰动的参数化场景。在模拟之后,结果可以指示与车辆控制器相关联的通过(例如,成功的结果)、故障和/或成功或故障的程度。
在示例过程800的操作816,该过程可以包括基于模拟数据来确定与车辆控制器相关联的安全度量。例如,每次模拟都可能导致成功或不成功的结果。此外,如上所述,车辆性能组件可以基于模拟数据来确定车辆性能数据,该数据可以指示车辆在环境中的性能。基于灵敏度分析,车辆性能数据可以指示模拟的结果不成功的场景、模拟不成功的原因和/或指示模拟结果成功的场景参数的值的场景参数的边界。因此,安全度量可以指示车辆控制器在各种模拟场景中的通过/失败率。
图9示出了用于确定与自主车辆的子系统相关联的统计模型的示例过程的流程图。如本文所述,过程900的一些或全部可由图1-7中的一个或多个组件执行。例如,过程900的一些或全部可由计算装置204和/或计算装置702执行。
在示例过程900的操作902,过程900可以包括接收与自主车辆的子系统相关联的车辆数据(或其他数据)。车辆数据可以包括由在环境中行驶的车辆捕获的日志数据。在一些情况下,车辆数据可以包括控制数据(例如,用于控制诸如转向、制动等系统的数据)和/或传感器数据(例如,激光雷达数据、雷达数据等)。
在示例过程900的操作904,过程900可以包括基于车辆数据来确定与子系统相关联的输出数据。作为示例而非限制,子系统可以是感知系统并且输出数据可以是与环境中的对象相关联的边界框。
在示例过程900的操作906中,过程900可以包括接收与子系统相关联的地面实况数据。在一些情况下,可以手动标记和/或从其他经过验证的机器学习组件确定地面实况数据。作为示例而非限制,地面实况数据可以包括与环境中的对象相关联的经过验证的边界框。
在示例过程900的操作908中,过程900可以包括确定输出数据的第一部分和地面实况数据的第二部分之间的差异,该差异表示与子系统相关联的误差。如上所述,输出数据可以包括与环境中的对象相关联的边界框,如车辆的感知系统所检测的,并且地面实况数据可以包括与对象相关联的验证的边界框。两个边界框之间的差异可以指示与车辆的感知系统相关的误差。作为示例而非限制,输出数据的边界框可以大于验证的边界框,这表明感知系统检测到对象大于环境中的对象。
在示例过程900的操作910中,过程900可以包括基于差异来确定与子系统相关联的统计模型。
图10示出了与误差概率相关联的环境的多个区域的示例1000。如上所述,误差模型可以指示与环境相关联的一个或多个参数,并且误差模型可以指示与一个或多个参数相关联的概率和/或误差分布。误差可以表示与车辆生成的环境相关联的数据与实际环境(或表示环境的地面实况数据)之间的差异。例如,误差可以指示环境中对象的尺寸、位置和/或速度的差异,或者是否在环境中检测到对象。在一些情况下,误差可以指示由车辆生成的对象(例如,行人、骑自行车的人、车辆、标牌、静态对象、动态对象等)的分类与对象的实际分类之间的差异。在一些情况下,误差可以指示对象的预测轨迹与对象的实际轨迹之间的差异。
示例1000示出了与误差相关联的概率以及诸如传感器与环境中的区域之间的距离或环境中的对象的类型等因素如何影响这样的概率。
作为示例而非限制,区域1002可以与车辆210的视线内的环境的一部分相关联。至少部分地基于例如区域1002和车辆210之间的距离,误差模型可以指示与误差1006(1)相关联的概率1004(1)。例如,与距离车辆210相对较远的环境区域的传感器数据相比,区域1002和车辆210之间的相对较近的距离可以降低由于传感器数据准确度、精度和/或密度的增加而导致的误差的概率。
此外,环境条件会影响误差的概率。作为示例而非限制,与在黑暗、雨、雪等环境条件下与假阳性误差相关联的概率1004(1)相比,与车辆210感知到但环境中不存在的对象相关联的误差1006(1)的概率1004(1)(例如,假阳性误差)可以在理想条件下(例如,良好的照明、晴朗的天气等)更低。
作为另一示例且非限制性地,区域1008可以与在车辆210的视线内的环境的一部分相关联,并且与对象212相关联。至少部分地基于,例如,区域1008和车辆210之间的距离和/或与对象212相关联的分类,误差模型可以指示与误差1006(2)相关联的概率1004(2)。作为示例而非限制,车辆210可以基于感知数据来确定与对象212相关联的尺寸。误差模型可以指示误差1006(2)的概率1004(2)(对象212的实际尺寸是感知数据所指示的尺寸两倍大)低于差1006(2)的概率1004(2)(对象212的实际尺寸略大于感知数据所指示的尺寸)。
作为另一示例且非限制性地,区域1010可以与被对象212遮挡或部分遮挡的环境的一部分相关联。至少部分地基于例如被遮挡的区域1010的量,误差模型可以指示与误差1006(3)相关联的概率1004(3)。作为示例而非限制,误差1006(3)的概率1004(3)(与车辆210未感知到但确实存在于环境中的对象相关联(例如,假阴性误差))可能比误差1006(1)的概率1004(1)(由于区域1010的遮挡或部分遮挡,与区域1002处的假阴性误差相关联)更高。
作为另一示例但不限于,区域1012可以与在车辆210的视线内的环境的一部分相关联并且与对象1014相关联。至少部分地基于,例如,区域1012和车辆210之间的距离和/或与对象1014相关联的分类,误差模型可以指示与误差1006(4)相关联的概率1004(4)。作为示例而非限制,车辆210可以基于感知数据来确定与对象1014相关联的姿态。误差模型可以指示对象1014的实际姿态不同于由感知数据指示的姿态的误差1006(4)的概率1004(4)。在一些情况下,由于与区域1008和车辆210之间的距离相比,区域1012和车辆210之间的距离增加,与区域1012相关联的误差1006(4)的概率1004(4)可以高于误差1006(2)的概率1004(2)。此外,误差1006(4)和1006(2)可以基于与对象212和1014相关联的分类来改变。也就是说,误差模型可以基于分类、距离、环境因素等来调节。
指示概率1004(1)、1004(2)、1004(3)和1004(4)以及误差1006(1)、1006(2)、1006(3)和1006(4)的误差模型可以至少部分地基于由车辆202生成的车辆数据104来生成。例如,车辆202可以生成与环境和时间相关联的车辆数据104。车辆数据104可以包括传感器数据、感知数据、预测数据等。如上所述,误差模型组件116可以接收车辆数据104和地面实况数据302以确定车辆数据104和地面实况数据302之间的差异。差异可以指示车辆数据104的误差。如上所述,误差可以与对象的分类、对象的尺寸、对象的位置、对象的速度和/或对象在环境中的轨迹的差异相关联。在一些情况下,该差异可以与指示对象存在于环境中的车辆数据104相关联,而该对象实际上并不存在(例如,假阳性误差),并且在一些情况下,该差异可以与指示对象在环境中不存在(例如,被省略)的车辆数据104相关联,而该对象实际上确实存在(例如,假阴性误差)。
在一些情况下,车辆数据104可以包括与多个环境相关联的数据,并且误差模型组件116可以确定与一个或多个误差相关联的频率(也称为发生频率)。作为示例而非限制,基于车辆数据104和地面实况数据302之间的差异以及差异的频率,误差模型可以指示车辆数据104表示路缘高度比环境中的实际路缘高2厘米的概率高于车辆数据104表示路缘高度比实际路缘高1米的概率,并且差异和概率可以表示为误差模型中的分布。
在至少一些示例中,可以结合误差使用各种环境参数,例如但不限于车辆速度、位置、对象位置、速度、对象分类、天气、一天中的时间等,以便将测量值聚类到各种类别中(例如,使用k-均值、决策树、其他合适的聚类算法等)。然后可以聚合各个聚类中的测量值以确定与聚类相关联的误差分布。反过来,当驾驶时,车辆可以选择具有与当前观察到的最接近的环境参数的聚类,进而使用相关联的误差模型。
在一些情况下,机器学习模型可用于确定分布拟合。作为示例而非限制,车辆数据104和地面实况数据302之间的差异可以表示离散点。机器学习模型可以基于离散点通过将一个或多个分布拟合到离散点来确定分布。在一些情况下,分布可以是离散分布(例如,对数分布、泊松分布等)、伯努利分布、连续分布(例如,广义正态分布、高斯分布等)、混合离散/连续分布、联合分布等。当然,在一些示例中,除了确定分布的最佳拟合之外/替代地,可以存储与特定聚类相关联的测量数据的直方图(等)。
在一些情况下,可以使用聚类算法对车辆数据104进行聚类。作为示例而非限制,车辆数据104可以基于与对象相关联的分类、一天中的时间、由车辆202检测到的可见光的量、天气状况(例如,阳光、阴天、降水、雾等)、车辆202的速度、车辆202的姿态和/或环境区域来进行聚类。聚类算法可以包括例如类别特定聚类、k-均值算法、期望最大化算法、多元正态分布等。
聚类的车辆数据104可用于确定与聚类的车辆数据104的车辆数据聚类相关联的分布。作为示例而非限制,类别特定聚类可包括通过分类在车辆数据104中表示的聚类对象(例如,行人、车辆等),并且与行人聚类相关联的分布可以用作行人误差模型,并且与车辆聚类相关联的分布可以用作车辆误差模型。
图11示出了车辆数据和由车辆数据表示的环境以及车辆数据和环境之间的差异的示例1100。一般而言,示例1100图示了情况矩阵:真阳性误差、假阴性误差、假阳性误差和真阴性情况(无误差),下文和整个本公开都讨论了每种情况。
示例1102示出了与环境1106(1)相关联的车辆数据1104(1)。如示例1102所示,车辆数据1104(1)可以包括感知数据1108,感知数据1108可以与车辆在环境1106(1)中感知的对象(例如,对象1110)相关联。然而,如环境1106(1)中所示出的,感知数据1108可能会歪曲与对象1110相关联的属性值,例如相关联的对象1110的位置、分类、尺寸等。因此,虽然这可以被视为真阳性场景,但车辆数据1104(1)和环境1106(1)之间可能会出现其他差异。
示例1112示出了与环境1106(2)相关联的车辆数据1104(2)。如示例1112中所示,车辆数据1104(2)可以指示车辆没有感知到环境中的任何对象但是对象1114确实存在于环境1106(2)中。这可以被视为假阴性场景。
示例1116示出了与环境1106(3)相关联的车辆数据1104(3)。如示例1116所示,车辆数据1104(3)可以包括感知数据1118,感知数据1118可以与车辆感知到但不存在的对象相关联,如环境1106(3)所示。这可以被视为假阳性场景。
示例1120示出了与环境1106(4)相关联的车辆数据1104(4)。在示例1120中,车辆数据1104(4)不代表任何对象,同样,环境1106(4)不包括任何对象。因此,这可以被视为真阴性场景。
对于假阳性误差,误差模型可以由距离、环境因素等决定。例如,假阳性误差可以指示当对象不存在于环境区域中时感知系统确定对象存在于环境区域中的概率。
对于假阴性误差,误差模型可以由距离、环境因素、对象的属性等来调节。假阴性误差可以指示,例如,假阴性误差可以指示当对象确实存在于环境的该区域中时感知系统确定对象不存在于环境的该区域中的概率。如上所述,假阴性误差可以至少部分地基于真实对象的分类、真实对象的尺寸、传感器捕获数据与和对象相关联的环境区域之间的距离、真实对象的遮挡量等。
如上所述,误差模型可以包括对应于示例1102、1112、1116和/或1120(例如,真阳性、假阴性、假阳性和/或真阴性场景)的分布。自主车辆控制器可以穿越模拟环境,并且模拟组件124可以至少部分地基于误差模型来确定与模拟环境的区域相关联的真阴性、假阳性、假阴性和/或真阳性的概率。然后,模拟组件124可以通过创建假阳性场景、假阴性场景和/或真阳性场景来确定扰动的模拟数据以扰动模拟环境,并确定模拟车辆控制器(也称为模拟自主车辆控制器)对假阳性场景、假阴性场景和/或真阳性场景的响应。
作为示例而非限制,模拟组件124可以至少部分地基于模拟车辆控制器和模拟对象之间的距离和/或本文讨论的任何附加的环境参数来选择误差模型。例如,当模拟对象在第一时间被表示为距离模拟车辆控制器5米时,模拟组件124可以确定代表在该距离处遇到的误差的误差模型。该模拟可以在第一时间之后的第二时间表示距离模拟车辆控制器第二距离(例如,10米)的模拟对象。模拟组件124可以基于这样的距离来选择误差模型并且可以在第二时间确定代表模拟环境中的模拟对象的附加扰动的场景数据。因此,模拟组件124可以使用误差模型在模拟执行时连续(或间歇地)扰动模拟环境。
在一些情况下,误差模型的误差分布可以至少部分地基于经过的模拟时间。作为示例而非限制,模拟车辆控制器可以在第一时间感知模拟对象并且在第二时间感知模拟对象。误差模型可以指示与模拟对象在第一时间的感知相关联的误差概率可以高于与模拟对象在第二时间的感知相关联的误差概率。在一些示例中,第一时间可以表示模拟车辆控制器首先检测到模拟对象的时间。也就是说,误差模型可以至少部分地基于与被模拟车辆控制器跟踪的模拟对象相关联的持续时间来改变。
在一些情况下,误差模型可以在自主车辆在非模拟环境中的操作期间使用。作为示例而非限制,自主车辆可以穿越环境并捕获环境的传感器数据。自主车辆的感知系统可以生成感知数据,这些数据指示例如环境中的对象。车辆可以包括误差模型组件并且可以使用误差模型组件来确定与感知数据相关联的误差概率。例如,自主车辆可以感知环境中的对象,例如停车场的停车路缘。自主车辆可以接收与停车路缘的地点相关联的误差概率。作为示例而非限制,误差模型可以指示停车路缘在距自主车辆感知到的停车路缘的地点的横向方向的0.1米内的概率为5%。如上所述,概率可以基于诸如x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、对象类型(例如,分类)、对象的速度、对象的范围(尺寸)、环境中另一个对象的存在、环境中另一个对象的状态、一天中的某个时间、一周中的某一天、一个季节、一个天气状况、黑暗/光明的指示等的特征。
基于感知误差的概率,自主车辆的规划系统可以通过考虑感知误差的概率来更安全地穿越环境。在一些情况下,规划系统可以使用概率阈值并确定避开满足或超过概率阈值的对象的地点的轨迹。作为示例而非限制,规划系统可以使用1%的概率阈值并穿越具有1%或更大概率的对象的地点。在一些情况下,规划系统可以使用与对象的分类相关联的概率阈值。作为示例而非限制,与和驾驶表面上的碎片相关联的概率阈值相比,规划系统可以具有与行人分类相关联的较低的概率阈值。
图12示出了用于确定误差模型和确定扰动的模拟数据的示例过程的流程图。
在示例过程1200的操作1202中,过程1200可以包括接收指示对象的感知状态的车辆数据。在一些情况下,车辆数据可以包括由在环境中行驶的车辆捕获的日志数据。在一些情况下,车辆数据可以包括控制数据(例如,用于控制系统诸如转向、制动等的数据)、传感器数据(例如,激光雷达数据、雷达数据等)和/或车辆子系统的输出(例如,感知数据(例如,分类数据、边界框、x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、实体类型(例如,分类)、实体的速度、实体的范围、预测数据等)。
在示例过程1200的操作1204,过程1200可以包括至少部分地基于车辆数据接收与对象相关联的地面实况数据。在一些情况下,可以手动标记和/或从其他经过验证的机器学习组件确定地面实况数据。作为示例而非限制,地面实况数据可以包括与环境中的对象相关联的经验证的边界框。
在示例过程1200的操作1206中,过程1200可以包括确定车辆数据和地面实况数据之间的差异。如果不存在差异,则过程1200可以返回到操作1202。如果确实存在差异,则过程可以进行到操作1208。
在示例过程1200的操作1208中,过程1200可以包括至少部分地基于车辆数据和地面实况数据来确定误差。如上所述,车辆数据和地面实况数据之间的差异可以表示车辆数据中的误差。误差可以与概率相关联,并且误差和概率的分布可以包括在误差模型中。
在示例过程1200的操作1210中,过程1200可以包括至少部分地基于车辆数据来确定多个参数。如上所述,车辆数据可以包括诸如控制数据(例如,用于控制系统诸如转向、制动等的数据)、传感器数据(例如,激光雷达数据、雷达数据等),和/或来自车辆子系统的输出(例如,感知数据(例如,分类数据、边界框、x位置(全局位置)、y位置(全局位置)、z位置(全局位置),朝向、实体类型(例如,分类)、实体的速度、实体的范围、预测数据等)的数据。在一些情况下,车辆数据可以包括与环境相关的特征,例如,但不限于,环境中另一个实体的存在、环境中另一个实体的状态、一天中的某个时间、一周中的某一天、一个季节、天气状况、黑暗/光明的指示等。
在示例过程1200的操作1212中,过程1200可以包括至少部分地基于多个参数和误差对车辆数据的至少一部分来进行聚类。例如,可以基于车辆数据中表示的对象的分类、日期的类型、车辆检测到的可见光的量、天气状况、车辆的速度、车辆的姿态和/或环境区域来进行聚类。误差和概率的分布可以与聚类的车辆数据的聚类相关联。
在示例过程1200的操作1214中,过程1200可以包括至少部分地基于车辆数据的一部分来确定误差模型。如上所述,机器学习模型可用于确定分布拟合,以将分布拟合到车辆数据中表示的误差和概率分布。在一些情况下,拟合度量可用于确定分布与误差和概率分布的拟合。作为示例而非限制,可以使用负对数似然函数或对数似然函数来确定拟合度量。作为示例而非限制,针对非聚类的车辆数据的分布可以产生负对数似然值,该负对数似然值高于针对使用多元期望最大化聚类的车辆数据的分布,其中较高的负对数似然值表示分布的拟合较差。
在一些示例中,操作1214可以包括针对环境的“空”区域确定与该地点处的假阳性相关联的误差模型。在一些示例中,操作1214可以包括针对环境的“占用”区域确定与该地点处的假阴性相关联的误差模型。例如,操作1214可以包括基于距离、环境因素等来确定误差模型。
示例条款
A:一种系统,包括:一个或多个处理器;以及一种或多种存储计算机可执行指令的计算机可读介质,当执行这些指令时,使系统执行以下操作,包括:接收与在环境中操作自主车辆相关联的日志数据;至少部分地基于日志数据来确定一组场景,该组场景中的一个场景包括与环境的一个方面相关联的场景参数;确定与自主车辆的子系统相关联的误差模型;至少部分地基于场景参数和误差模型来确定参数化场景;通过将误差添加到场景参数或要在扰动的参数化场景中实例化的模拟车辆的组件中的至少一个来扰动参数化场景,模拟车辆由车辆控制器控制;在扰动的参数化场景中实例化模拟车辆;接收指示模拟车辆如何响应扰动的参数化场景的模拟数据;以及至少部分地基于模拟数据来确定与车辆控制器相关联的安全度量。
B:段落A的系统,其中,确定场景集合包括:对日志数据进行聚类以确定第一聚类集合,其中第一聚类集合中的单个聚类与单个场景相关联;至少部分地基于第一聚类集合来确定与单个聚类相关联的概率;以及至少部分地基于概率阈值和第一聚类集合来确定第二聚类集合。
C:段落A的系统,其中,确定误差模型包括:接收与环境相关联的地面实况数据;至少部分地基于将地面实况数据与日志数据进行比较来确定误差;至少部分地基于误差来确定误差分布;其中误差模型包括误差分布。
D:段落A的系统,其中,参数化场景为第一参数化场景,扰动的参数化场景为第一扰动的参数化场景,以及模拟数据为第一模拟数据,该操作进一步包括:基于第一模拟数据来确定第二参数化场景,其包括场景参数的第一子集或误差模型的第二子集中的至少一个;扰动第二参数化场景作为第二扰动的参数化场景;在第二扰动的参数化场景中实例化模拟车辆;接收第二模拟数据;以及至少部分地基于第二模拟数据来更新安全度量。
E:一种方法,包括:确定包括描述环境的一部分的场景参数的场景;接收与车辆的子系统相关联的误差模型;至少部分地基于场景、场景参数和误差模型来确定参数化场景;扰动参数化场景作为扰动的参数化场景;接收指示车辆的子系统如何响应扰动的参数化场景的模拟数据;以及至少部分地基于模拟数据来确定与车辆的子系统相关联的安全度量。
F:段落E的方法,其中,场景参数与对象尺寸、对象速度、对象姿态、对象密度、车辆速度、车辆轨迹中的至少一项相关联。
G:段落E的方法,其中,确定场景包括:接收与自主车辆相关联的日志数据;对日志数据进行聚类以确定第一聚类集合,其中第一聚类集合中的单个聚类与场景相关联;至少部分地基于第一聚类集合来确定与单个聚类相关联的概率;以及确定概率达到或超过概率阈值。
H:段落E的方法,其中,至少部分地基于以下因素来确定误差模型:接收与环境相关联的地面实况数据;至少部分地基于将地面实况数据与和车辆相关联的日志数据进行比较来确定误差;以及至少部分地基于误差来确定误差分布;其中误差模型包括误差分布。
I:段落E的方法,其中,参数化场景为第一参数化场景,扰动的参数化场景为第一扰动的参数化场景,以及模拟数据为第一模拟数据,该方法进一步包括:基于第一模拟数据来确定第二参数化场景,其包括场景参数的第一子集或误差模型的第二子集中的至少一个;扰动第二参数化场景;接收第二模拟数据;以及至少部分地基于第二模拟数据来更新安全度量。
J:段落I的方法,进一步包括:禁用场景参数或误差模型之一的至少第一部分;以及将第二模拟数据与未禁用的场景参数或误差模型之一的至少第二部分相关联。
K:段落E的方法,其中,安全度量指示达到或超过成本阈值的概率。
L:段落E的方法,其中,该部分是第一部分,该方法进一步包括:接收地图数据,其中,地图数据的第二部分与环境的第一部分相关联;以及确定地图数据的第二部分与场景相关联,该场景与满足或超过与场景参数相关联的阈值概率的概率相关联。
M:一种存储可由处理器执行的指令的非暂时性计算机可读介质,其中,该指令在被执行时使处理器执行以下操作,包括:确定包括描述环境的一部分的场景参数的场景;接收与车辆子系统相关联的误差模型或确定与车辆子系统相关联的误差模型的一项或多项;至少部分地基于场景、场景参数和误差模型来确定参数化场景;扰动参数化场景作为扰动的参数化场景;接收指示车辆子系统如何响应扰动的参数化场景的模拟数据;以及至少部分地基于模拟数据来确定与车辆的子系统相关联的安全度量。
N:段落M的非暂时性计算机可读介质,其中,场景参数与对象尺寸、对象速度、对象姿势、对象密度、车辆速度、车辆轨迹中的至少一个相关联。
O:段落M的非暂时性计算机可读介质,其中,确定场景包括:接收与自主车辆相关联的日志数据;对日志数据进行聚类以确定第一聚类集合,其中,第一聚类集合中的单个聚类与场景相关联;至少部分地基于第一聚类集合来确定与单个聚类相关联的概率;以及确定概率达到或超过概率阈值。
P:段落M的非暂时性计算机可读介质,其中,至少部分地基于以下因素来确定误差:接收与环境相关联的地面实况数据;至少部分地基于将地面实况数据与和车辆相关联的日志数据进行比较来确定误差;以及至少部分地基于误差来确定误差分布;其中误差模型包括误差分布。
Q:段落M的非暂时性计算机可读介质,其中,参数化场景为第一参数化场景,扰动的参数化场景为第一扰动的参数化场景,以及模拟数据为第一模拟数据,该操作进一步包括:基于第一模拟数据来确定第二参数化场景,其包括场景参数的第一子集或误差模型的第二子集中的至少一个;扰动第二参数化场景;接收第二模拟数据;以及至少部分地基于第二模拟数据来更新安全度量。
R:段落Q的非暂时性计算机可读介质,该操作进一步包括:禁用场景参数或误差模型之一的至少第一部分;以及将第二模拟数据与未禁用的场景参数或误差模型之一的至少第二部分相关联。
S:段落M的非暂时性计算机可读介质,其中,安全度量指示达到或超过成本阈值的概率。
T:段落M的非暂时性计算机可读介质,其中,误差模型与车辆的感知系统、车辆的预测系统或车辆的规划系统中的一个或多个相关联。
U:一种系统,包括:一个或多个处理器;一种或多种计算机可读介质,存储计算机可执行指令,当执行这些指令时,使系统执行以下操作,包括:接收车辆数据;将车辆数据的至少第一部分输入到自主车辆的子系统中,该子系统与感知系统、规划系统、跟踪系统或预测系统中的至少一个相关联;至少部分地基于车辆数据的第二部分来确定环境参数;从子系统接收估计值;接收与子系统相关联的地面实况数据;确定估计值和地面实况数据之间的差异,该差异表示与子系统相关联的误差;以及至少部分地基于该差异来确定与指示误差概率的子系统相关联的统计模型,该概率与环境参数相关联。
V:段落U的系统,其中,车辆数据包括来自自主车辆上的传感器的传感器数据,其中环境参数包括自主车辆的速度或天气状况中的一项或多项,并且其中子系统是感知子系统,估计值是车辆数据中表示的对象的估计位置、估计朝向或估计范围中的一项或多项,以及地面实况数据表示对象的实际位置、实际朝向或实际范围。
W:段落U的系统,其中,确定统计模型包括:至少部分地基于车辆数据来确定与环境参数相关联的第一频率和与差异相关联的第二频率;以及至少部分地基于第一频率和第二频率来确定概率。
X:段落U的系统,该操作进一步包括:至少部分地基于模拟车辆数据来确定模拟环境参数;确定模拟环境参数与环境参数相对应;至少部分地基于模拟车辆数据和子系统来确定模拟估计值;以及至少部分地基于概率,通过至少部分地基于误差改变对应的模拟场景的一部分来扰动模拟估计值。
Y:一种方法,包括:接收与车辆相关的数据;至少部分地基于数据的第一部分来确定环境参数;至少部分地基于数据的第二部分来确定与车辆系统相关联的输出数据;接收与系统和数据相关联的地面实况数据;确定输出数据和地面实况数据之间的差异,该差异表示与系统相关联的误差;以及至少部分地基于该差异来确定与指示误差概率的系统相关联的统计模型,该概率与环境参数相关联。
Z:段落Y的方法,其中,确定统计模型包括:至少部分地基于数据来确定与误差相关联的频率。
AA:段落Y的方法,其中,环境参数包括车辆的速度、天气状况、车辆的地理位置或一天中的时间中的一项或多项。
AB:段落Y的方法,进一步包括:生成模拟;确定模拟的模拟环境参数对应于环境参数;将模拟数据输入系统;从系统接收模拟输出;以及至少部分地基于概率和误差来扰乱模拟。
AC:段落Y的方法,其中,该系统是感知系统,输出数据包括与对象相关联的第一边界框,地面实况数据包括与对象相关联的第二边界框,并且其中确定差异包括确定以下至少之一之间的差异:第一边界框的第一范围和第二边界框的第二范围;或者第一边界框的第一姿态和第二边界框的第二姿态。
AD:段落Y的方法,其中,该系统是跟踪器系统,输出数据包括车辆的规划轨迹数据,地面实况数据包括车辆的测量轨迹,并且其中确定差异包括确定规划轨迹数据和测量轨迹之间的差异。
AE:段落Y的方法,其中,该系统与预测系统相关联,数据包括环境中对象的预测轨迹,地面实况数据包括对象的观察轨迹,并且其中确定差异包括确定预测轨迹和观察轨迹之间的差异。
AF:段落Y的方法,其中,数据为第一数据,环境参数为第一环境参数,差异为第一差异,误差为第一误差,以及概率为第一概率,该方法进一步包括:接收与车辆系统相关联的第二数据;至少部分地基于第二数据来确定第二环境参数;确定输出数据的第三部分和地面实况数据的第四部分之间的第二差异,该第二差异表示与系统相关联的第二误差;以及更新与系统相关联的统计模型,该统计模型指示第二误差的第二概率,该第二概率与第二环境参数相关联。
AG:一种存储可由处理器执行的指令的非暂时性计算机可读介质,其中,当指令被执行时使处理器执行以下操作,包括:接收数据;至少部分地基于数据来确定环境参数;至少部分地基于数据和车辆系统来确定输出数据;接收与系统和数据相关联的地面实况数据;确定输出数据的第一部分和地面实况数据的第二部分之间的差异,该差异表示与系统相关联的误差;至少部分地基于该差异来确定与指示误差概率的系统相关联的统计模型;以及将概率与环境参数相关联。
AH:段落AG的非暂时性计算机可读介质,其中,确定统计模型包括:至少部分地基于数据来确定与差异相关联的频率。
AI:段落AG的非暂时性计算机可读介质,其中,环境参数包括车辆速度、天气状况或一天中的时间中的一项或多项。
AJ:段落AG的非暂时性计算机可读介质,该操作进一步包括:生成包括模拟车辆的模拟;接收模拟数据;确定模拟环境参数对应于环境参数;将至少一部分模拟数据输入到系统中;从系统接收模拟输出数据;以及至少部分地基于请求以及概率和误差来改变模拟输出数据。
AK:段落AG的非暂时性计算机可读介质,其中,系统是感知系统,数据包括与对象相关联的第一边界框,地面实况数据包括与对象相关联的第二边界框,并且其中,确定差异包括确定以下至少之一之间的差异:第一边界框的第一范围和第二边界框的第二范围;或者第一边界框的第一姿态和第二边界框的第二姿态。
AL:段落AG的非暂时性计算机可读介质,其中,该系统是跟踪器系统,数据包括车辆的规划轨迹数据,地面实况数据包括车辆的测量轨迹,并且其中确定差异包括确定规划轨迹数据和测量轨迹之间的差异。
AM:段落AG的非暂时性计算机可读介质,其中,该系统与预测系统相关联,数据包括环境中对象的预测轨迹,地面实况数据包括对象的观察轨迹,并且其中确定差异包括确定预测轨迹和观察轨迹之间的差异。
AN:段落AG的非暂时性计算机可读介质,其中,数据是第一数据,环境参数是第一环境参数,差异是第一差异,误差是第一误差,概率是第一概率,该操作进一步包括:接收与车辆的系统相关联的第二数据;至少部分地基于第二数据来确定第二环境参数;确定输出数据的第三部分和地面实况数据的第四部分之间的第二差异,该第二差异表示与系统相关联的第二误差;以及更新与系统相关联的统计模型,该统计模型指示第二误差的第二概率,第二概率与第二环境参数相关联。
AO:一种系统,包括:一个或多个处理器;一个或多个存储计算机可执行指令的非暂时性计算机可读介质,当执行这些指令时,使系统执行以下操作,包括:从车辆接收车辆数据,该车辆数据与对象的状态相关联;接收与对象相关联的地面实况数据;至少部分地基于车辆数据和地面实况数据来确定误差;至少部分地基于车辆数据来确定多个参数;至少部分地基于多个参数和误差来将车辆数据的至少一部分聚类为多个聚类;以及至少部分地基于车辆数据的与多个聚类中的聚类相关联的一部分来确定误差模型。
AP:段落AO的系统,其中,车辆数据至少部分地基于来自与车辆相关联的传感器的传感器数据。
AQ:段落AO的系统,其中,多个参数与天气状况、一天中的第一时间、一年中的第二时间、到对象的距离、对象的分类、对象的尺寸、对象的速度、对象的位置或对象的朝向中的至少两个或多个相关联。
AR:段落AO的系统,其中,误差为第一误差,该操作进一步包括:接收感知数据;至少部分地基于感知数据和误差模型来确定与感知数据相关联的第二误差;以及至少部分地基于感知数据和第二误差来控制车辆。
AS:一种方法,包括:从车辆接收车辆数据,该车辆数据与对象的状态相关联;至少部分地基于车辆数据来接收与对象相关联的地面实况数据;至少部分地基于车辆数据和地面实况数据来确定误差;至少部分地基于车辆数据来确定参数;少部分地基于参数和误差来将车辆数据的一部分聚类为多个聚类;以及至少部分地基于车辆数据的与多个聚类中的聚类相关联的一部分来确定误差模型。
AT:段落AS的方法,其中,对象的状态包括对象的尺寸、对象的地点、对象的朝向、对象的速度或对象的位置中的至少一种。
AU:段落AS的方法,其中,误差模型包括误差分布,该方法进一步包括:至少部分地基于车辆数据和地面实况数据来确定与误差相关联的发生频率;以及至少部分地基于发生频率来确定误差分布。
AV:段落AS的方法,进一步包括:确定识别对象的分类的分类数据;确定识别对象的对象参数的对象数据;以及确定与多个聚类中的第一聚类或多个聚类中的第二聚类中的至少一个相关联的误差分布,该第一聚类与对象的分类相关联,该第二聚类与对象的对象参数相关联;其中误差模型包括与真阳性误差或假阳性误差中的至少一个相关联的误差分布。
AW:段落AS的方法,进一步包括:在模拟环境中接收与模拟车辆控制器相关联的模拟数据;至少部分地基于误差模型和模拟数据来确定扰动的模拟数据;在模拟环境中将扰动的模拟数据发送到模拟车辆控制器;以及至少部分地基于扰动的模拟数据来确定指示模拟车辆控制器如何响应扰动的模拟数据的响应。
AX:段落AW的方法,其中:误差为第一误差;模拟数据包括与模拟环境中表示的模拟对象相关联的分类;以及扰动的模拟数据指示与对象的位置、对象的朝向、对象的范围或对象的速度中的至少一个相关联的第二误差。
AY:段落AS的方法进一步包括:在第一时间确定与假阴性误差相关联的第一误差分布;在第一时间之后的第二时间确定与假阳性误差相关联的第二误差分布;以及在第二时间之后的第三时间确定与假阳性误差相关联的第三误差分布;其中,误差模型包括第一误差分布、第二误差分布和第三误差分布。
AZ:段落AS的方法,进一步包括:确定与将车辆数据拟合到误差模型相关联的成本;以及至少部分地基于该成本来确定误差模型。
BA:存储可由一个或多个处理器执行的指令的一种或多种非暂时性计算机可读介质,其中,该指令在被执行时使该一个或多个处理器执行以下操作,包括:从车辆接收车辆数据,该车辆数据与对象的状态相关联;接收与对象相关联的地面实况数据;至少部分地基于车辆数据和地面实况数据来确定误差;至少部分地基于车辆数据来确定参数;至少部分地基于参数来将车辆数据的一部分聚类为多个聚类;以及至少部分地基于车辆数据的与多个聚类中的聚类相关联的一部分来确定误差模型。
BB:段落BA的一种或多种非暂时性计算机可读介质,其中,对象的状态包括对象的尺寸、对象的地点、对象的朝向、对象的速度或对象的位置中的至少一种。
BC:段落BA的一种或多种非暂时性计算机可读介质,其中,误差模型包括误差分布,该操作进一步包括:至少部分地基于车辆数据和地面实况数据来确定与误差相关联的发生频率;以及至少部分地基于发生频率来确定误差分布。
BD:段落BA的一种或多种非暂时性计算机可读介质,其中,误差模型包括误差分布,该操作进一步包括:确定识别对象的分类的分类数据;确定识别对象的对象参数的对象数据;以及确定与多个聚类中的第一聚类或多个聚类中的第二聚类中的至少一个相关联的误差分布,该第一聚类与对象的分类相关联,该第二聚类与对象的对象参数相关联;其中误差模型包括与真阳性误差或假阳性误差中的至少一个相关联的误差分布。
BE:段落BA的一种或多种非暂时性计算机可读介质,其中,误差模型是多个误差模型之一,该操作进一步包括:接收与模拟环境中的模拟车辆控制器相关联的模拟数据;至少部分地基于误差模型和模拟数据来确定扰动的模拟数据;在模拟环境中将扰动的模拟数据发送到模拟车辆控制器;以及至少部分地基于扰动的模拟数据来确定指示模拟车辆控制器如何响应扰动的模拟数据的响应。
BF:段落BE的一种或多种非暂时性计算机可读介质,其中:误差为第一误差;模拟数据包括与模拟环境中表示的模拟对象相关联的分类;扰动的模拟数据指示与对象的位置、对象的朝向、对象的范围或对象的速度中的至少一个相关联的第二误差。
BG:段落BA的一种或多种非暂时性计算机可读介质,该操作进一步包括:在第一时间确定与假阴性误差相关联的第一误差分布;在第一时间之后的第二时间确定与真阳性误差相关联的第二误差分布;以及在第二时间之后的第三时间确定与假阳性误差相关联的第三误差分布;其中,误差模型包括第一误差分布、第二误差分布和第三误差分布。
BH:段落BA的一种或多种非暂时性计算机可读介质,该操作进一步包括:确定与将车辆数据拟合到误差模型相关联的成本;以及至少部分地基于该成本来确定误差模型。
虽然上述示例条款是针对一种特定实现方式进行描述的,但应理解,在本文的上下文中,示例条款的内容还可以通过方法、装置、系统、计算机可读介质和/或另一实现方式来实现。此外,示例A-BH中的任何一个可以单独实施或与示例A-BH中的任何其他一个或多个组合实施。
结论
尽管已经描述了本文描述的技术的一个或多个示例,但其各种改变、添加、排列和等价物都包括在本文描述的技术的范围内。
在示例的描述中,参考了构成其一部分的附图,这些附图通过图解的方式示出了要求保护的主题的具体示例。应当理解,可以使用其他示例并且可以进行改变或变化,例如结构改变。这样的示例、改变或变化不一定脱离关于预期要求保护的主题的范围。虽然本文中的步骤可以以特定顺序呈现,但在某些情况下,可以改变顺序以便在不同时间或以不同顺序提供某些输入,而不改变所描述的系统和方法的功能。公开的程序也可以以不同的顺序执行。另外,本文中的各种计算不需要按照所公开的顺序执行,并且可以容易地实现使用替代计算顺序的其他示例。除了重新排序之外,计算还可以分解为具有相同结果的子计算。
Claims (15)
1.一种方法,包括:
从车辆接收车辆数据,所述车辆数据与对象的状态相关联;
至少部分地基于所述车辆数据来接收与所述对象相关联的地面实况数据;
至少部分地基于所述车辆数据和所述地面实况数据来确定误差;
至少部分地基于所述车辆数据来确定参数;
将所述车辆数据的一部分作为多个聚类并至少部分地基于所述参数和所述误差来进行聚类;以及
至少部分地基于所述车辆数据的与所述多个聚类中的一个聚类相关联的一部分来确定误差模型。
2.根据权利要求1所述的方法,其中,所述车辆数据至少部分地基于来自与所述车辆相关联的传感器的传感器数据。
3.根据权利要求1或2所述的方法,其中,所述参数与天气状况、一天中的第一时间、一年中的第二时间、到所述对象的距离、所述对象的分类、所述对象的尺寸、所述对象的速度、所述对象的位置,或所述对象的朝向中的至少一个相关联。
4.根据权利要求1至3中任一项所述的方法,其中,所述误差是第一误差,所述方法进一步包括:
接收感知数据;
至少部分地基于所述感知数据和所述误差模型来确定与所述感知数据相关联的第二误差;以及
至少部分地基于所述感知数据和所述第二误差来控制所述车辆。
5.根据权利要求1至4中任一项所述的方法,其中,所述对象的状态包括所述对象的尺寸、所述对象的地点、所述对象的朝向、所述对象的速度或所述对象的位置中的至少一项。
6.根据权利要求1至5中任一项所述的方法,其中,所述误差模型包括误差分布,所述方法进一步包括:
至少部分地基于所述车辆数据和所述地面实况数据来确定与所述误差相关联的发生频率;以及
至少部分地基于所述发生频率来确定所述误差分布。
7.根据权利要求1至6中任一项所述的方法,进一步包括:
确定识别所述对象的分类的分类数据;
确定识别所述对象的对象参数的对象数据;以及
确定与所述多个聚类中的第一聚类或所述多个聚类中的第二聚类中的至少一个相关联的误差分布,所述第一聚类与所述对象的分类相关联,所述第二聚类与所述对象的对象参数相关联;其中
所述误差模型包括与真阳性误差或假阳性误差中的至少一个相关联的误差分布。
8.根据权利要求1至7中任一项所述的方法,进一步包括:
在模拟环境中接收与模拟车辆控制器相关联的模拟数据;
至少部分地基于所述误差模型和所述模拟数据来确定扰动的模拟数据;
在所述模拟环境中将所述扰动的模拟数据发送到模拟车辆控制器;以及
至少部分地基于所述扰动的模拟数据来确定响应,所述响应指示所述模拟车辆控制器如何响应所述扰动的模拟数据。
9.根据权利要求1至8中任一项所述的方法,其中:
所述误差是第一误差;
所述模拟数据包括与所述模拟环境中表示的模拟对象相关联的分类;以及
所述扰动的模拟数据指示与所述对象的位置、所述对象的朝向、所述对象的范围或所述对象的速度中的至少一个相关联的第二误差。
10.根据权利要求1至9中任一项所述的方法,进一步包括:
在第一时间确定与假阴性误差相关联的第一误差分布;
在所述第一时间之后的第二时间确定与真阳性误差相关联的第二误差分布;以及
在所述第二时间之后的第三时间确定与假阳性误差相关联的第三误差分布;
其中,所述误差模型包括所述第一误差分布、所述第二误差分布以及所述第三误差分布。
11.根据权利要求1至10中任一项所述的方法,进一步包括:
确定与将所述车辆数据拟合到所述误差模型相关联的成本;以及
至少部分地基于所述成本来确定所述误差模型。
12.一种计算机程序制品,包括编码指令,所述编码指令当在计算机上操作时,实施根据权利要求1至11中任一项所述的方法。
13.一种系统,包括:
一个或多个处理器;以及
一种或多种非暂时性计算机可读介质,其存储可由一个或多个处理器执行的指令,其中所述指令当被执行时使所述系统执行以下操作,包括:
从车辆接收车辆数据,所述车辆数据与对象的状态相关联;
接收与所述对象相关联的地面实况数据;
至少部分地基于所述车辆数据和所述地面实况数据来确定误差;
至少部分地基于所述车辆数据来确定参数;
将所述车辆数据的一部分作为多个聚类并至少部分地基于所述参数来进行聚类;以及
至少部分地基于所述车辆数据的与所述多个聚类中的一个聚类相关联的一部分来确定误差模型。
14.根据权利要求13所述的系统,其中,所述误差模型包括误差分布,所述操作进一步包括:
至少部分地基于所述车辆数据和所述地面实况数据来确定与所述误差相关联的发生频率;以及
至少部分地基于所述发生频率来确定所述误差分布。
15.根据权利要求13或14所述的系统,其中,所述操作进一步包括:
确定识别所述对象的分类的分类数据;
确定识别所述对象的对象参数的对象数据;以及
确定与所述多个聚类中的第一聚类或所述多个聚类中的第二聚类中的至少一个相关联的误差分布,所述第一聚类与所述对象的分类相关联,所述第二聚类与所述对象的对象参数相关联;
其中,所述误差模型包括与真阳性误差或假阳性误差中的至少一个相关联的误差分布。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/708,019 US11734473B2 (en) | 2019-09-27 | 2019-12-09 | Perception error models |
US16/708,019 | 2019-12-09 | ||
PCT/US2020/062602 WO2021118822A1 (en) | 2019-12-09 | 2020-11-30 | Perception error models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114787894A true CN114787894A (zh) | 2022-07-22 |
Family
ID=76330731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080084729.5A Pending CN114787894A (zh) | 2019-12-09 | 2020-11-30 | 感知误差模型 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4073782A4 (zh) |
JP (1) | JP2023504506A (zh) |
CN (1) | CN114787894A (zh) |
WO (1) | WO2021118822A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020230323A1 (ja) * | 2019-05-16 | 2020-11-19 | 日本電信電話株式会社 | 異常検出装置、方法、システム及びプログラム |
DE102022120754A1 (de) * | 2022-08-17 | 2024-02-22 | Dspace Gmbh | Verfahren und System zum Ausführen eines virtuellen Tests |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10346564B2 (en) * | 2016-03-30 | 2019-07-09 | Toyota Jidosha Kabushiki Kaisha | Dynamic virtual object generation for testing autonomous vehicles in simulated driving scenarios |
US10481044B2 (en) * | 2017-05-18 | 2019-11-19 | TuSimple | Perception simulation for improved autonomous vehicle control |
US10877476B2 (en) * | 2017-11-30 | 2020-12-29 | Tusimple, Inc. | Autonomous vehicle simulation system for analyzing motion planners |
US20190179979A1 (en) * | 2017-12-13 | 2019-06-13 | Uber Technologies, Inc. | Simulated Sensor Testing |
US10175697B1 (en) * | 2017-12-21 | 2019-01-08 | Luminar Technologies, Inc. | Object identification and labeling tool for training autonomous vehicle controllers |
-
2020
- 2020-11-30 CN CN202080084729.5A patent/CN114787894A/zh active Pending
- 2020-11-30 WO PCT/US2020/062602 patent/WO2021118822A1/en unknown
- 2020-11-30 JP JP2022533057A patent/JP2023504506A/ja active Pending
- 2020-11-30 EP EP20900042.1A patent/EP4073782A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023504506A (ja) | 2023-02-03 |
EP4073782A1 (en) | 2022-10-19 |
EP4073782A4 (en) | 2024-01-17 |
WO2021118822A1 (en) | 2021-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734473B2 (en) | Perception error models | |
US11625513B2 (en) | Safety analysis framework | |
US11351995B2 (en) | Error modeling framework | |
US11574089B2 (en) | Synthetic scenario generator based on attributes | |
US11568100B2 (en) | Synthetic scenario simulator based on events | |
US11150660B1 (en) | Scenario editor and simulator | |
US12097844B2 (en) | Constraining vehicle operation based on uncertainty in perception and/or prediction | |
US11577741B1 (en) | Systems and methods for testing collision avoidance systems | |
US11628850B2 (en) | System for generating generalized simulation scenarios | |
US11415997B1 (en) | Autonomous driving simulations based on virtual simulation log data | |
US11526721B1 (en) | Synthetic scenario generator using distance-biased confidences for sensor data | |
US11648939B2 (en) | Collision monitoring using system data | |
CN114077541A (zh) | 验证用于自动驾驶车辆的自动控制软件的方法和系统 | |
CN114430722A (zh) | 安全分析框架 | |
US11697412B2 (en) | Collision monitoring using statistic models | |
US11648962B1 (en) | Safety metric prediction | |
US12061847B2 (en) | Agent conversions in driving simulations | |
US20230150549A1 (en) | Hybrid log simulated driving | |
US20220266859A1 (en) | Simulated agents based on driving log data | |
US11952001B1 (en) | Autonomous vehicle safety system validation | |
WO2020264276A1 (en) | Synthetic scenario generator based on attributes | |
US11814059B1 (en) | Simulating autonomous driving using map data and driving data | |
CN114787894A (zh) | 感知误差模型 | |
US11814070B1 (en) | Simulated driving error models | |
WO2024137822A1 (en) | Predictive models for autonomous vehicles based on object interactions |
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 |