自主运载工具的基于场论的感知
1.交叉引用
2.本申请要求2019年1月8日提交的美国临时申请62/789,808、2019年4月24日提交的美国临时申请62/837,902和2019年5月10日提交的丹麦申请pa
‑
2019
‑
70302的优先权。
技术领域
3.本说明书涉及诸如自动驾驶汽车、飞机、船只和其它运载工具等的自主运载工具。
背景技术:
4.自主运载工具包括集成来自一个或多个传感器的输入以确定自主运载工具的周围环境中对象的地点的专用处理电路(有时称为感知电路)。所确定的与环境有关的信息可用于导航运载工具。
技术实现要素:
5.在一个方面,本文件的特征在于一种方法,包括:使用在环境中运行的运载工具的一个或多个处理装置来生成环境的离散化表示,所述离散化表示包括多个单元,其中所述多个单元中的各个单元由表示环境中的对象和自由空间中的至少一者的粒子所占用;从所述运载工具的一个或多个传感器接收指示所述环境中多个粒子中的至少一个粒子的状态的传感器数据;使用所述一个或多个处理装置,根据所述传感器数据和与所述一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中至少一个粒子的地点相关联的时变粒子密度函数的更新;使用所述一个或多个处理装置,基于更新的粒子密度函数来生成对所述离散化表示中的至少一个单元的占用的预测;以及使用所述运载工具的控制器电路,至少部分地基于所述预测来操作所述运载工具。
6.在另一方面,本文件的特征在于存储指令的一个或多个非暂时性存储介质,所述指令在由所述一个或多个计算机处理器执行的情况下使得进行上述方法。
7.在另一方面,本文件的特征在于一种方法,该方法包括使用一个或多个传感器上的处理电路实例化表示环境的离散化表示的单元的内容的交互软件组件集合。该方法还包括从一个或多个传感器接收与该交互软件组件集合的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。该方法还包括:使用处理电路,基于与传感器相关联的一个或多个模型,根据传感器观测向量确定与离散化表示的单元中的同给定地点相对应的单元相关联的时变粒子密度函数的更新;使用处理电路,基于更新的粒子密度函数来生成单元的占用的预测;以及使用处理电路,基于该预测来扩增运载工具的操作。
8.在另一方面,本文件的特征在于一种运载工具,其包括一个或多个计算机处理器;以及一个或多个用于存储指令的非暂时性存储介质。指令在由一个或多个处理器执行时使得进行各种操作。操作包括生成环境的离散化表示,该离散化表示包括多个单元。多个单元中的各单元被表示环境中的对象和自由空间中至少一者的多个粒子所占用。操作还包括从
运载工具的一个或多个传感器接收指示环境中的多个粒子中的至少一个粒子的状态的传感器数据,以及根据传感器数据和与一个或多个传感器相关联的一个或多个模型确定对与动态占用栅格中的至少一个粒子的地点相关联的时变粒子密度函数的更新。操作还包括基于更新的粒子密度函数来生成对离散化表示中的至少一个单元的占用的预测,以及至少部分地基于该预测来操作运载工具。
9.在另一方面,本文件的特征在于一种方法,该方法包括使用一个或多个传感器上的处理电路来实例化表示环境的离散化表示的单元的内容的交互软件组件集合,以及从所述一个或多个传感器接收与所述交互软件组件集合的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。该方法还包括使用处理电路并根据传感器观测向量来确定对与离散化表示的单元中的同给定地点相对应的单元相关联的时变粒子密度函数的更新。该方法还包括:使用处理电路,基于更新的粒子密度函数来生成对单元的占用的预测;以及使用处理电路,基于该预测来扩增运载工具的操作。
10.在另一方面,本文件的特征在于用于存储指令的一个或多个非暂时性存储介质,当由一个或多个计算装置执行所述指令时,使得进行上述的方法。
11.在另一方面,本文件的特征在于一种运载工具,包括一个或多个计算机处理器;以及一个或多个用于存储指令的非暂时性存储介质。指令在由一个或多个处理器执行时使得进行各种操作。所述操作包括实例化表示环境的离散化表示的单元的内容的交互软件组件集合,以及从所述一个或多个传感器接收与所述交互软件组件集合的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。操作还包括根据传感器观测向量确定对与离散化表示的单元中的同给定地点相对应的单元相关联的时变粒子密度函数的更新。操作还包括基于更新的粒子密度函数来生成对单元的占用的预测,以及基于该预测增加运载工具的操作。
12.上述方面的实现可以包括一个或多个以下特征。
13.离散化表示可以包括使用笛卡尔坐标系或极坐标系所定义的栅格。对于多个单元中的各个单元,可以首先分配占用的初始值,然后根据粒子密度函数的演变进行更新。还可以将标签分配给多个粒子,各标签指示相应粒子是表示对象还是自由空间。标签可以根据传感器数据来进行更新。确定时变粒子密度函数的更新可以包括使用欧拉求解器或拉格朗日求解器来确定在与至少一个粒子的状态相关联的一个或多个参数上定义的一个或多个微分方程的解。至少一个粒子的状态可以包括与至少一个粒子相关联的至少一个速度。至少一个粒子的状态可以包括(1)沿相应方向的多个速度,以及(2)与所述多个速度相关联的协方差。至少一个粒子的状态可以包括施加在至少一个粒子上的力。一个或多个模型各自表示被训练成提供与离散化表示的各种单元的占用概率有关的信息的传感器模型,所述概率以相应的传感器数据为条件。生成所述至少一个单元的占用的预测可以包括将至少一个单元的占用概率确定为(1)基于传感器数据和一个或多个传感器模型而生成的条件概率的比率与(2)至少一个单元的更新的时变粒子密度函数的乘积。条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率和(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率,其中所述第一概率和所述第二概率是使用所述一个或多个传感器模型来确定的。如果确定为与特定传感器相对应的传感器数据
在使用与该特定传感器相关联的相应模型所确定的期望值的阈值范围外,则可以作为响应识别该特定传感器的故障状况。如果确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数,则可以在确定时变粒子密度函数的更新时使用至少一个参数的先验值。一个或多个处理装置的至少一部分可以配置在运载工具的感知电路中。
14.在一些实现中,本文描述的技术可以提供以下优点的一个或多个。
15.通过将环境中的对象和自由空间表示为一组粒子(例如,类似于流体力学中场论的应用),并且使用欧拉方法来跟踪时变的粒子密度函数,与例如跟踪单个栅格单元相比,本文描述的技术允许改进的动态范围以及在更可管理的计算复杂度下潜在更高的分辨率。例如,为了在没有本文所描述的技术的情况下获得28位精度,可能需要跟踪每栅格的228个粒子,这需要巨大的计算负担。相反,至少由于不需要考虑离散空间的给定栅格单元内的单个粒子,所以使用本文描述的技术在等效的离散空间中以28位精度跟踪时变粒子密度函数能够以显著较低的计算负担完成。此外,所提出的方法独立于任何特定的栅格,因此不需要针对不同的栅格进行实质修改。此外,由于粒子可以针对自由空间被定义和跟踪,因此所提出的技术允许跟踪自由空间,这转而可能改进自主运载工具的导航能力。通过选择适当的参数(速度、力等)以对粒子动力学进行建模,可以通过跟踪相应的粒子密度函数来精确跟踪被遮挡或部分可见的对象。
16.这些和其它方面、特征和实现可被表示为方法、设备、系统、组件、程序产品、用于进行功能的方法或步骤以及其它方式。
17.根据以下的包括权利要求书的说明,这些和其它方面、特征和实现将变得明显。
附图说明
18.图1示出具有自主能力的自主运载工具的示例。
19.图2例示示例“云”计算环境。
20.图3例示计算机系统。
21.图4示出自主运载工具的示例架构。
22.图5示出感知模块可以使用的输入和输出的示例。
23.图6a示出lidar系统的示例。
24.图6b示出操作中的lidar系统。
25.图6c示出lidar系统的操作的附加细节。
26.图7示出规划模块的输入和输出之间的关系的框图。
27.图8示出路径规划中所使用的无向图。
28.图9示出控制模块的输入和输出的框图。
29.图10示出控制器的输入、输出和组件的框图。
30.图11示出自主运载工具的环境的离散化表示,其中粒子表示特定单元中的对象或自由空间。
31.图12是可用于实现本文所描述的技术的感知模块的示例。
32.图13a至13c示出根据本文所描述的技术基于感知模块的输出来生成的用户界面的示例。
33.图14是用于生成自主运载工具的环境中的地点占用的预测的示例过程的流程图。
34.图15是用于生成自主运载工具的环境中的地点占用的预测的另一示例过程的流程图。
具体实施方式
35.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要模糊本发明。
36.在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
37.此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。
38.现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
39.下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
40.1.总体概述
41.2.硬件概述
42.3.自主运载工具架构
43.4.自主运载工具输入
44.5.路径规划
45.6.自主运载工具控制
46.7.基于场论的感知
47.总体概述
48.本文件提出用于改进对自主运载工具的环境中的对象和自由空间的感知的技术。具体地,该技术允许将对象和自由空间作为一组粒子来建模,与在基于场论的流体动力学中如何对流体建模类似。可以通过跨环境的离散化表示更新时变粒子密度函数来跟踪作为
对象和自由空间的表示被实例化的粒子,并且这种更新的粒子密度函数可以用于计算(例如,预测)离散化表示的各种单元的占用概率。
49.在实施例中,可以通过自主运载工具的感知模块使用实时传感器观测以及与传感器相对应的预先计算出的模型来计算对粒子密度函数的更新。在一些实现中,传感器模型可以是前向传感器模型。预先计算出的模型考虑相应粒子动力学的多个参数,包括例如粒子沿不同方向的速度、速度协方差以及可能施加在粒子上的任何力。欧拉求解器或拉格朗日求解器用于计算关于多个参数的微分方程的解,这进而使得感知模块能够生成与跟踪栅格单元占用的其它处理相比具有更高动态范围和更高分辨率的图像。此外,由于跟踪粒子密度函数(而不是单个粒子)的统计数据,该技术允许生成这种高动态范围和高分辨率的感知图像,而不会将计算负担增加到不可接受的水平。本文描述的技术还避免了诸如刚体和恒速假设等的性能限制假设,并且允许来自各种传感器(例如,雷达和lidar)的信息的早期融合,以改进自主运载工具的后续规划和控制操作。
50.硬件概述
51.图1示出具有自主能力的自主运载工具100的示例。
52.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。
53.如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
54.如本文所使用的,“轨迹”是指将av从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
55.如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器等)、数据存储装置(诸如,ram和/或非易失性存储器等)、软件或固件组件和数据处理组件(诸如,专用集成电路(asic)等)、微处理器和/或微控制器。
56.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。
57.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(suv)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为
一条通道的物理区域。
58.如本文所使用的,“车道”是道路的可被运载工具穿过的部分,并且可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的一些空间(例如,小于50%)。例如,具有相距远的车道标记的道路可能在标记之间容纳两个或更多个运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,并且因此可被解释为具有比车道标记之间的空间窄的车道,或具有车道之间的两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如乡村区域沿着通道的岩石和树木)来定义车道。
[0059]“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。
[0060]
还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。
[0061]
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
[0062]
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0063]
如本文所使用的,av系统是指av以及支持av操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,av系统并入在av内。在实施例中,av系统跨若干地点分布。例如,av系统的一些软件是在类似于下面关于图3描述的云计算环境300的云计算环境中实现的。
[0064]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操作的运
载工具范围内的任何级别的运载工具受益。
[0065]
参考图1,av系统120使av 100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0066]
在实施例中,av系统120包括被装备以从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304类似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、风挡雨刮器、侧门锁、窗控器和转向指示器。
[0067]
在实施例中,av系统120包括用于测量或推断av 100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,av 100的前端的方向)。传感器121的示例是gps、测量运载工具线加速度和角速率两者的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
[0068]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
[0069]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到av 100。
[0070]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到av 100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。
[0071]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wifi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信接口140将从传感器121收集的数据或与av 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av 100传输与遥操作有关的信息。在一些实施例中,av 100与其它远程(例如,“云”)服务器136通信。
[0072]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在av 100上的存储器144中,或者通过通信信道从远程数据库
134传输到av 100。
[0073]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在av 100上的存储器144中,或者通过通信信道从远程数据库134传输到av 100。
[0074]
位于av 100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许av系统120执行其自主驾驶能力。
[0075]
在实施例中,av系统120包括耦接到计算装置146的计算机外围设备132,用于向av 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。
[0076]
图2例示示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池。在典型的云计算系统中,一个或多个大型云数据中心容纳用于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。
[0077]
云计算环境200包括一个或多个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,并且每行包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)被排列成若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0078]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a
‑
206f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通过网络交换的数据使用多种网络层协议(诸如,因特网协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(frame relay)等)进行传输。此外,在网络表示多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示一个或多个互连网际网络(诸如公共因特网等)。
[0079]
计算系统206a
‑
206f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a
‑
206f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(iot)装置、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a
‑
206f在其它系统中实现或作为其它系统的一部分实现。
[0080]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计
算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。
[0081]
在实施例中,计算机系统300包括总线302或用于传达信息的其它通信机制、以及与总线302耦接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,诸如随机存取存储器(ram)或其它动态存储装置,该主存储器306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0082]
在实施例中,计算机系统300还包括只读存储器(rom)308或耦接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
[0083]
在实施例中,计算机系统300通过总线302耦接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器、有源矩阵有机发光二极管(amoled)显示器、量子点发光二极管(qled)显示器、真空荧光显示器、电子墨水显示器、冷阴极(数码管)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器的显示器312。包括字母数字键和其它键的输入装置314耦接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
[0084]
根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列而执行。这些指令从诸如存储装置310的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304执行本文所描述的处理步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0085]
如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310等的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306等。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd
‑
rom、任何其它光数据存储介质、任何具有孔图案的物理介质、ram、prom和eprom、flash
‑
eprom、nv
‑
ram、或任何其它存储芯片或存储盒。
[0086]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电
线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波等。
[0087]
在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器304以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
[0088]
计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口318是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
[0089]
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”328的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0090]
计算机系统300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0091]
自主运载工具架构
[0092]
图4示出用于自主运载工具(例如,图1所示的av 100)的示例架构400。架构400包括感知模块402(有时称为感知电路)、规划模块404(有时称为规划电路)、控制模块406(有时称为控制电路)、定位模块408(有时称为定位电路)和数据库模块410(有时称为数据库电路)。各模块在av 100的操作中发挥作用。共同地,模块402、404、406、408和410可以是图1所示的av系统120的一部分。在一些实施例中,模块402、404、406、408和410中的任何模块是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[asic]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。
[0093]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示av 100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0094]
感知模块402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块404。
[0095]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。
[0096]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得av 100行驶轨迹414到达目的地412的方式来操作av的控制功能420a~420c(例如,转向、油门、制动和点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得av 100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0097]
自主运载工具输入
[0098]
图5示出感知模块402(图4)所使用的输入502a
‑
502d(例如,图1中所示的传感器121)和输出504a
‑
504d(例如,传感器数据)的示例。一个输入502a是lidar(光检测和测距)系统(例如,图1所示的lidar 123)。lidar是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是用于构造环境190的表示的3d或2d点(也称为点云)的集合。
[0099]
另一输入502b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统502b产生radar数据作为输出504b。例如,radar数据是用于构造环境190的表示的一个或多个射频电磁信号。
[0100]
另一输入502c是照相机系统。照相机系统使用一个或多个照相机(例如,使用诸如电荷耦合器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在使用中,照相机系统可被配置为“看见”远处的(例如,av前方的远至1公里或更远的)对象。因此,照相机系统可以具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
[0101]
另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出504d。tld数据经常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对
象有关的信息,使得av 100能够访问这些对象所提供的所有相关导航信息。例如,tld系统的视野可以为约120度或更大。
[0102]
在一些实施例中,使用传感器融合技术来组合输出504a
‑
504d。因而,将个体输出504a
‑
504d提供至av 100的其它系统(例如,提供至如图4所示的规划模块404),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
[0103]
图6a示出lidar系统602的示例(例如,图5所示的输入502a)。lidar系统602从发光器606(例如,激光发射器)发射光604a
‑
604c。lidar系统所发射的光通常不在可见光谱中;例如,经常使用红外光。所发射的光604b中的一些光遇到物理对象608(例如,运载工具)并且反射回到lidar系统602。(从lidar系统发射的光通常不会穿透物理对象,例如,实心形式的物理对象。)lidar系统602还具有用于检测反射光的一个或多个光检测器610。在实施例中,与lidar系统相关联的一个或多个数据处理系统生成表示lidar系统的视场614的图像612。图像612包括表示物理对象608的边界616的信息。这样,图像612用于确定av附近的一个或多个物理对象的边界616。
[0104]
图6b示出操作中的lidar系统602。在该图所示的情境中,av 100接收采用图像632的形式的照相机系统输出504c和采用lidar数据点634的形式的lidar系统输出504a两者。在使用中,av 100的数据处理系统将图像632与数据点634进行比较。特别地,在数据点634中也识别在图像632中识别出的物理对象636。这样,av 100基于数据点634的轮廓和密度来感知物理对象的边界。
[0105]
图6c示出lidar系统602的操作的附加细节。如上所述,av 100基于lidar系统602所检测到的数据点的特性来检测物理对象的边界。如图6c所示,诸如地面652等的平坦对象将以一致的方式反射从lidar系统602发射的光654a
‑
654d。换句话说,由于lidar系统602使用一致的间隔发射光,因此地面652将以相同的一致间隔将光反射回到lidar系统602。在av 100在地面652上行驶时,在没有东西阻挡道路的情况下,lidar系统602将继续检测到由下一个有效地面点656反射的光。然而,如果对象658阻挡道路,则lidar系统602所发射的光654e
‑
654f将以与预期一致方式不一致的方式从点660a
‑
660b反射。根据该信息,av 100可以确定存在对象658。
[0106]
路径规划
[0107]
图7示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图700。一般而言,规划模块404的输出是从起点704(例如,源地点或初始地点)到终点706(例如,目的地或最终地点)的路线702。路线702通常由一个或多个路段定义。例如,路段是指要在街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果av 100是诸如四轮驱动(4wd)或全轮驱动(awd)小汽车、suv或小卡车等的能够越野的运载工具,则路线702包括诸如未铺面路径或开阔田野等的“越野”路段。
[0108]
除路线702之外,规划模块还输出车道级路线规划数据708。车道级路线规划数据
708用于在特定时间基于路线702的路段的条件来驶过这些路段。例如,如果路线702包括多车道公路,则车道级路线规划数据708包括轨迹规划数据710,其中av 100可以使用该轨迹规划数据710以例如基于出口是否临近、多个车道中的一个或多个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据708包括路线702的某路段特有的速率约束712。例如,如果该路段包括行人或非预期交通,则速率约束712可以将av 100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。
[0109]
在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据714、当前地点数据716(例如,图4所示的av位置418)、(例如,用于图4所示的目的地412的)目的地数据718和对象数据720(例如,如图4所示的感知模块402所感知的经分类的对象416)。在一些实施例中,数据库数据714包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在av 100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于av 100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
[0110]
图8示出在路径规划中(例如,由规划模块404(图4))使用的有向图800。一般而言,如图8所示的有向图那样的有向图800用于确定任何起点802和终点804之间的路径。在现实世界中,分隔起点802和终点804的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。
[0111]
在实施例中,有向图800具有表示起点802和终点804之间的av 100可能占用的不同地点的节点806a
‑
806d。在一些示例中,例如,在起点802和终点804表示不同的都市区域时,节点806a
‑
806d表示道路的路段。在一些示例中,例如,在起点802和终点804表示相同道路上的不同地点时,节点806a
‑
806d表示该道路上的不同位置。这样,有向图800包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点802和终点804相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示av 100的视场中的物理地点的一部分的一些高粒度信息。
[0112]
节点806a
‑
806d不同于无法与节点重叠的对象808a
‑
808b。在实施例中,在粒度低时,对象808a
‑
808b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象808a
‑
808b表示av 100的视场中的物理对象,例如其它汽车、行人、或av 100不能与之共用物理空间的其它实体。在实施例中,对象808a
‑
808b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
[0113]
节点806a
‑
806d通过边缘810a
‑
810c连接。如果两个节点806a
‑
806b通过边缘810a连接,则av 100可以在一个节点806a和另一节点806b之间行驶,例如,而不必在到达另一节点806b之前行驶到中间节点。(当提到av 100在节点之间行驶时,意味着av 100在由相应节点表示的两个物理位置之间行驶。)边缘810a
‑
810c通常是双向的,从某种意义上,av 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边缘810a
‑
810c
是单向的,从某种意义上,av 100可以从第一节点行驶到第二节点,然而av 100不能从第二节点行驶到第一节点。在边缘810a
‑
810c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其它特征的情况下,边缘810a
‑
810c是单向的。
[0114]
在实施例中,规划模块404使用有向图800来识别由起点802和终点804之间的节点和边缘组成的路径812。
[0115]
边缘810a
‑
810c具有关联成本814a
‑
814b。成本814a
‑
814b是表示在av 100选择该边缘的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边缘810a所表示的物理距离是另一边缘810b所表示的物理距离的两倍,则第一边缘810a的关联成本814a可以是第二边缘810b的关联成本814b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边缘810a
‑
810b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边缘810a与另一边缘810b相比需要更多的燃料。
[0116]
在规划模块404识别起点802和终点804之间的路径812时,规划模块404通常选择针对成本优化的路径,例如,在将边缘的个体成本相加到一起时具有最小总成本的路径。
[0117]
自主运载工具控制
[0118]
图9示出(例如,如图4所示的)控制模块406的输入和输出的框图900。控制模块根据控制器902而操作,该控制器902例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、rom 1308和存储装置210类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器902的操作。
[0119]
在实施例中,控制器902接收表示期望输出904的数据。期望输出904通常包括速度,例如速率和航向。期望输出904例如可以基于从(例如,如图4所示的)规划模块404接收到的数据。根据期望输出904,控制器902产生可用作油门输入906和转向输入908的数据。油门输入906表示例如通过接合转向踏板或接合另一油门控件来接合av 100的油门(例如,加速控制)以实现期望输出904的大小。在一些示例中,油门输入906还包括可用于接合av 100的制动器(例如,减速控制)的数据。转向输入908表示转向角度,例如av的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出904的角度。
[0120]
在实施例中,控制器902接收在调整提供至油门和转向的输入时使用的反馈。例如,如果av 100遇到诸如山丘等的干扰910,则av 100的测量速率912降至低于期望输出速率。在实施例中,任何测量输出914均被提供至控制器902,使得例如基于测量速率和期望输出之间的差分913来进行所需的调整。测量输出914包括测量位置916、测量速度918(包括速率和航向)、测量加速度920和av 100的传感器可测量的其它输出。
[0121]
在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰910有关的信息,并且该信息被提供至预测性反馈模块922。然后,预测性反馈模块922将控制器902可用于相应地调整的信息提供至控制器902。例如,如果av 100的传感器检测到(“看见”)山丘,则控制器902可以使用该信息来准备在适当时间接合油门,以避免显著减速。
[0122]
图10示出控制器902的输入、输出和组件的框图1000。控制器902具有影响油门/制动器控制器1004的操作的速率分析器1002。例如,速率分析器1002根据例如由控制器902接收到并由速率分析器1002处理后的反馈,来指示油门/制动器控制器1004使用油门/制动器1006进行加速或进行减速。
[0123]
控制器902还具有影响方向盘控制器1010的操作的横向跟踪控制器1008。例如,横向跟踪控制器1008根据例如由控制器902接收到并由横向跟踪控制器1008处理后的反馈,来指示方向盘控制器1004调整转向角致动器1012的位置。
[0124]
控制器902接收用于确定如何控制油门/制动器1006和转向角致动器1012的若干输入。规划模块404提供控制器902例如选择av 100开始操作时的航向并确定在av 100到达十字交叉路口时穿过哪个道路路段所使用的信息。定位模块408例如将描述av 100的当前地点的信息提供至控制器902,使得控制器902可以确定av 100是否处于基于正控制油门/制动器1006和转向角致动器1012的方式而预期的地点。在实施例中,控制器902接收来自其它输入1014的信息,例如从数据库、计算机网络等接收到的信息。
[0125]
基于场论的感知
[0126]
在实施例中,由感知模块402(图4)感知的经分类的对象416被定位在av的环境的离散化表示上。图11示出这种离散化表示1100的示例。在该示例中,离散化表示1100包括具有多个单个单元1105(也称为栅格单元)的栅格地图,各个单元表示环境的单位面积(或体积)。在一些实现中,感知模块402被配置为更新这样的单个栅格单元的占用概率,该占用概率表示单个单元中存在一个或多个经分类的对象的可能性。例如,例如可以使用贝叶斯滤波器以递归地将新的传感器测量值与相应栅格单元的后验概率的当前估计相结合,计算运载工具的环境的离散化表示中的各个栅格单元的占用状态。这种动态更新的栅格地图通常被称为动态占用栅格。该方法假设环境是动态变化的,使用牛顿运动模型来描述环境的动力学。因此,该方法不仅估计了占用,而且还估计了动力学模型的参数,例如速度、力等。
[0127]
占用栅格地图将自主运载工具的环境分割成单个栅格单元的组,并计算单个栅格单元的占用概率。在一些实现中,通过基于笛卡尔栅格、极坐标系、结构化网格、块结构化网格或非结构化网格分割地图(或驾驶环境)来生成该单元。在一些实现中,该单元通过对地图(或驾驶环境)规则或不规则地采样来生成该单元,例如,通过非结构化网格来生成单元,其中该单元可以是三角形、四边形、五边形、六边形或用于二维网格的任何其它多边形或各种多边形的组合。类似地,该单元可以是不规则四面体、六面体或用于三维网格的任何其它多面体或多面体的组合。在非结构化网格中,单元之间的关系由单元可能共享的公共顶点确定。例如,被定义为两组顶点[a,b,c]和[b,c,e]的两个三角形共享被定义为顶点b和c之间的线段的公共边。在一些实现中,单元可以由图来描述,其中各单元与节点相对应,并且两个相邻单元由图上的边来表征。可以为边分配表示连接的两个节点/单元之间的动态交互(如下所述)的值。各个栅格单元可以被认为处于如下两种状态之一:占用或空闲。参考图11,给定单元是空闲的概率表示为p(
□
)。基于传感器观测来更新栅格单元的状态。例如,这可以使用逆传感器模型来完成,该逆传感器模型基于时间t 1处的测量z
t 1
为各个栅格单元分配离散二进制占用概率pz
t 1
(o
t 1
|z
t 1
)。然而,使用这样的逆传感器模型可能需要静态环境的假设,该假设对av来说可能不是现实的假设。例如,可以通过将诸如运载工具或行人等的对象建模为一组粒子来解决栅格单元的动态状态,这与在基于场论的流体动力学中如何
对流体建模类似。本文所使用的术语粒子不是指物质的物理单位。相反,粒子表示交互的软件组件的集合,使得软件组件一起形成av环境中的对象(例如,运载工具、行人等)和自由空间的虚拟表示。在一些实现中,各个软件组件是表示概念对象的单元的实例化的数据。再次参考图11,栅格单元1110的放大插图示出表示栅格单元1110的内容的多个粒子1115。粒子1115中的各个可以与表示相应粒子的状态的一个或多个参数相关联。例如,粒子的状态可以由如下的一个或多个来表示:速度(沿x方向、y方向、z方向中的一个或多个的速度)、与多个速度相关联的协方差、以及施加在粒子上的力。这样的参数可以解释粒子的各种动态特性。例如,力参数允许解释弯曲道路上的动态或正在加速的运载工具的动态等。
[0128]
在这种基于场论的建模中,特定栅格单元中的粒子数量或特定栅格单元中的粒子权重之和可以表示对相应栅格单元的占用概率的测量。然而,这种栅格单元特定的方法需要跟踪给定栅格单元中的各个单个的粒子,在一些情况下,这可能带来很大的计算负担。例如,为了在没有本文所描述的技术的情况下获得28位精度,可能需要跟踪每栅格2
28
个粒子,这带来了在许多av应用中可能无法实现的计算负担。本文所描述的技术可以通过避免大的计算负担来改进基于场论的感知模型。具体地,本文所描述的技术通过跟踪粒子密度函数的统计来计算单元的占用概率,而不是跟踪单个粒子来确定单元的占用。换句话说,本方法中栅格单元的状态取决于粒子穿过栅格单元时的联合分布的一个或多个参数。欧拉求解器或拉格朗日求解器用于通过计算定义在使用一个或多个传感器而获得的一个或多个粒子动力学参数上的微分方程的解来确定时变联合分布。将得到的更新的粒子密度函数与同相应的传感器相关联的前向传感器模型相结合使用,以生成对各种栅格单元的占用概率的预测。
[0129]
如上所述,给定单元是空闲的概率表示为p(
□
)。此外,本文所描述的技术假设两个不相交的体积
□1和
□2,他们各自的占用(或空闲)概率是不相关的。这可以表示为:
[0130]
p(
□1∪
□2)=p(
□1)p(
□2)
[0131]
根据这些假设,
‑
log(p(
□
)被定义为状态空间上的累积测量,并且密度函数f(x)可以被定义为与该测量相关联,如下所示:
[0132]
p(
□
)=exp(
‑
∫
□
f(x)dx)
ꢀꢀ
(1)
[0133]
这可以解释为状态空间的体积v内相同分布且独立的粒子的∫
v f(x)dx数量的概率密度函数。值得注意的是,由于粒子被认为是相同的,所以本文所描述的技术的另一个固有假设是传感器测量不能用于区分粒子。相反,传感器测量被定义为在粒子位于x处的情况下的观测概率γ。该测量可以被称为前向传感器模型,并表示为p(γ|x)。此外,由于传感器数据不能区分粒子,并且只能从一个粒子进行测量,因此在离散化表示中的栅格单元的整个体积v被占用(出于视觉辅助目的,该情形被表示为
■
)的情况下,观测概率γ可以表示为:
[0134]
p(γ|
■
)=∫
v p(γ|x)dx
ꢀꢀ
(2)
[0135]
对于自主运载工具应用,粒子表示对象、自由空间等,并且被认为是跨离散化表示的栅格单元的动态。这是由于运载工具的环境连续变化,粒子相对于运载工具的地点随着时间的变化而变化。为了解释粒子动力学,可以在多维相空间上定义粒子密度函数。例如,在一些实现中,粒子密度函数可以被定义为时间
‑
空间
‑
速度坐标系中的函数f(t,x,v)。该函数可以表示在时间t、地点x处发现粒子以速度v移动的概率密度。在一些实现中,根据传
感器数据经验地推断概率密度。在一些实现中,概率密度被建模为已知概率分布(例如指数族)或两个或更多个已知概率分布的混合。在一些实现中,概率密度可以不被建模为已知分布,而是纯粹由传感器数据来表征。在一些实现中,诸如施加在粒子上的力、沿一个或多个附加方向的速度、多个速度的协方差等的其它粒子动力学参数可以用在时变粒子密度函数中。由于粒子不是静止的,所以粒子密度函数随时间变化,并且可以通过确定在组成粒子密度函数的参数上定义的一组微分方程的解来计算粒子密度函数的时间变化。在一些实现中,可以使用诸如概率密度函数的波尔兹曼方程等的运动学方程来对粒子密度函数随时间的演变进行建模。例如,根据粒子数守恒的基本原理,可以定义以下微分方程:
[0136][0137]
通过评估位置和速度的时间导数,波尔兹曼偏微分方程如下:
[0138][0139]
上述方程中的动力学是基于笛卡尔坐标系的,但也可以基于任何坐标系来生成。在一些实现中,在通过图描述单元及其交互时,图上的梯度算子可以用于捕获波尔兹曼方程。
[0140]
求解诸如公式(4)中所提供的多变量偏微分方程可能是计算密集的,这可能使得该处理对于诸如用于定位av环境中的对象和自由空间的实时应用等的实时应用而言是不期望的。为了使该处理的计算密集减轻,并且对于实时av应用可行,本文所描述的技术使用欧拉求解器,该求解器使用数值近似来计算微分方程的解。欧拉求解器通过将微分方程近似为具有已知初始值的一组参数的常微分方程(ode)来操作,并使用前向欧拉方法来预测未来时间点的参数值。
[0141]
图12是可以用于实现本文所描述的技术的感知模块的示例。在该示例中,感知模块402包括在特定时间点t
n
计算粒子密度函数的先验分布计算器1205。例如,这可以使用从一个或多个传感器121接收到的传感器数据来完成。在一些实现中,传感器数据可以包括具有与粒子相关的一个或多个参数的信息的雷达或lidar信息。例如,该参数可以包括根据管理环境的离散化表示的坐标系所定义的粒子沿特定方向的速度、施加在粒子上的力、粒子的地点等中的一个或多个。在一些实现中,先验分布计算器1205可以被配置为基于从传感器121接收到的信息来计算一个或多个附加参数。例如,如果从传感器121接收到与沿多个方向(例如,根据笛卡尔坐标系定义的x方向和y方向,并且可能还包括z方向)的速度有关的信息,则先验分布计算器1205可以被配置为计算这些速度的协方差。在一些实现中,当接收到的传感器信息包括沿x和y方向的速度信息时,先验分布计算器1205可以生成观测向量γ,该观测向量γ包括与粒子动力学相关联的以下参数:单元ρ中的粒子密度、分别沿x和y方向的速度分量v
x
和v
y
以及相应的协方差σ
xx
、σ
xy
和σ
yy
。协方差项用于解释速度项中的不确定性。在场论对流体力学的应用中,各向异性假设指定粒子速度在所有方向上是同样不确定的。这种假设对于av环境中的对象来说是不现实的,因此需要特别说明。出于表示的目的,本文件中将粒子密度函数表示为f(t,x,v),f(t,x(t),v(t)),如上所述,或者将f(t,x,y,v)表示为二维离散化表示。在一些实施例中,可以使用极坐标系,并且密度分布的表示变
为f(t,r,v),其中r是地点(x,y)的半径。
[0142]
然后可以将观测提供至欧拉求解器或拉格朗日求解器1210以计算定义在一个或多个参数上的微分方程的解。欧拉求解器可以包括一个或多个处理装置,该处理装置被编程成使用前向欧拉方法计算微分方程的数值解。这可以包括预测针对未来时间点t
n 1
的不同参数的变化。如上所述,跟踪单元内的单个粒子以计算占用概率p(γ|
■
)的基于粒子动力学的处理是计算密集的,因为除了概率p(γ)之外,这种处理还需要各个单元的单个p(
■
i
)的计算,如:其中,p(x,y)表示特定单元的粒子密度函数。与这种处理相比,使用欧拉求解器可以显著降低计算复杂度,并生成更好质量(例如,分辨率)的图像和对计算资源无显著负担的动态范围。
[0143]
欧拉求解器预测粒子的各种参数的演变,并将这种预测出的值提供至时间点tn 1的分布计算器1215。分布计算器1215以与先验分布计算器1205中基本相似的方式计算粒子密度函数的预测分布,并生成粒子密度函数f(t,x,y,v)的更新的版本。为了便于表示,粒子密度函数在本文件中也可以表示为f(t,x,v)。可以经由反馈回路将由分布计算器215所计算的粒子密度函数提供至先验分布计算器1205,以更新先验分布。
[0144]
感知模块402还包括后验概率计算器1220,该后验概率计算器1220计算在未来时间点t
n 1
在给定当前观测向量γ的情况下粒子地点被占用的可能性。这可以由后验概率计算器1220计算为:
[0145][0146]
其中术语表示前向传感器模型并表示在点(x,y)被速度v的对象占用的情况下观测向量γ的概率。可以根据带注释的地面实况数据来计算用于各种传感器形式(例如,lidar、radar、视觉和其它传感器形式)的前向传感器模型。例如,可以通过将观测和占用信息作为独立的随机样本收集的统计数据来收集地面实况数据。后验概率计算器1220使用这种前向传感器模型来适应参数相对于占用的联合分布。在一些实现中,测量和占用信息从基本连续的分布中提取。可以通过将观测样本放入适当间隔的小区间(bin)中来记录直方图,并将解析密度函数拟合到离散直方图以近似这种连续分布。
[0147]
在一些实现中,前向传感器模型还可以被配置为检测传感器中的故障状况。例如,从这种模型获得的地面实况数据可用于确定接收到的传感器数据是否在特定传感器的预期值的阈值量的范围之外,和/或接收到的数据是否与其它传感器接收到的数据不一致。如果来自特定传感器的传感器数据被确定为在阈值量的范围之外,则可以确定/标记该传感器的故障状况,并且可以忽略相应的传感器输入,直到故障状况解决为止。
[0148]
因此,后验概率计算器1220所生成的输出是对粒子密度函数f(t,x,y,v)的贝叶斯估计。在该函数中,表示时间,(x,y)表示二维空间w中的地点,并且是(x,y)处的速度向量。可以跨越诸如动态占用栅格等的离散化表示以各种方式查询该输出。例如,一种形式的查询是计算相空间加时间的区域中粒子的预期数量在一些实现中,这可以计算为:
[0149][0150]
在粒子相同且独立分布、粒子数量很大的假设下,这得出相空间加时间的区域是空闲的概率为:
[0151][0152]
因此,本文所描述的技术可以用于不仅跟踪对象,还跟踪自由空间。这对于av的规划模块可能是重要的,例如,作为av可以转向到的信息。在一些实现中,该信息可能与同av必须避开的对象有关的信息联动地、例如通过提供多种可能性来改进av的控制。
[0153]
在一些实现中,可以定义一个或多个附加量来从粒子密度函数获得更多信息。例如,对于点集可以定义闭合多边形作为世界w中的点集,使得始于这些点中的任一个点的射线与奇数条线段相交。该多边形可以表示为p。在一些实现中,多边形可以表示av环境的离散化表示的栅格单元。然而,注意,由于多边形的定义不取决于任何特定栅格,因此本文所描述的技术可以以与栅格无关的方式实现。此外,在某些情况下,定义表示在特定时间点的粒子密度函数的条件分布f(t0,x,v)、表示粒子密度函数的与速度无关的、在空间和时间中的无条件分布以及这两者的组合可能是有用的。这些量可用于确定对av操作关注的各种量。例如,多边形p在特定时间t0被占用的概率可以计算为:
[0154]1‑
exp(
‑
∫
p
ρ(t0,x)dx).
[0155]
当考虑到多个速度(例如,沿不同方向的速度),这可以通过在速度的向量空间定义另一多边形p
v
来拓展。在该拓展下,对象占用多边形px并以来自pv的速度行驶的概率为:
[0156][0157]
在另一示例中,可以使用上述粒子密度函数来计算诸如在时间间隔期间空间被占用的概率等的各种其它概率。这种概率连同粒子上的标签可用于识别各种经分类的对象416,包括无生命对象、人和自由空间,以及它们如何随时间移动通过av环境的离散化表示。
[0158]
在跟踪离散化表示的粒子密度函数之前,感知模块402可以定义并标记粒子(行人、小汽车、自由空间等),并将初始概率分配给单个栅格单元。在一些实现中,最初假设各个单元被占用(例如,通过高占用概率的分配),然后基于传感器数据进行更新。在一些实现中,可以基于粒子是否表示对象或自由空间来为其分配不同的颜色(使用附加的颜色编码来区分汽车、行人等)。在一些实现中,可以定义、标记并更新粒子作为交互软件组件,诸如如下文献中所描述的:nuss et.al,“a random finite set approach for dynamic occupancy grid maps with real
‑
time application,”international journal of robotics research,volume:37 issue:8,page(s):841
‑
866,其内容通过引用并入本文中。
[0159]
图13a示出使用感知模块根据本文所描述的技术操作的输出来生成的用户界面1300的示例。界面1300示出多个照相机视野1305a至1305d以及av 100相对于环境中各种对
象的相对地点。具体地,1305表示前部照相机视野,1305b和1305c表示侧部照相机视野,并且1305d表示后部照相机视野。在该示例中,仅认为道路是环境的离散化表示的一部分,并且在相应栅格单元上初始化粒子。在该示例中,对象和自由空间的颜色编码不同。例如,在前部照相机视野1305a中可见的小汽车被表示为一组粒子1310,在侧部照相机视野1305b中可见的行人被表示为一组粒子1315。使用上述基于场论的感知来跟踪在一组粒子穿过栅格单元时它们的演变。
[0160]
图13b和图13c示出根据本文所描述的技术来分别生成的附加用户界面1320和1330的示例。特别地,界面1330示出比用户界面1330中所表示的时间点晚不到一秒的时间点,并示出本文所描述的技术的主要优点。如前部照相机视野1305a所示,小汽车1325(与一组粒子1330相对应)遮挡了对象/与一组粒子1325相对应的对象的视野。然而,由于感知模块能够预测穿过栅格单元的粒子的演变,因此在与表示其它对象的相连接粒子分离的边缘示出一组粒子1335。确实,如图13c所示,不到一秒后,可以看到另一小汽车1340从被小汽车1325所遮挡的部分中出现,并且随着一组粒子1335的演变而继续被跟踪。因此,即使在一些(以及在一些情况下,所有)粒子在视野中被遮挡的情况下,本文所描述的技术也可用于准确地跟踪一组粒子的演变。具体地,在不存在缺少与粒子相关的一个或多个参数的传感器数据的情况下,可以使用针对粒子(或一组粒子)的所获得的先验值来确定对相应的时变粒子密度函数的更新。这可以通过甚至在对象进入照相机的视野之前先发制人地考虑对象来提供对于规划模块的显著优点。
[0161]
图14是用于生成对自主运载工具的环境中的地点的占用的预测的示例处理1400的流程图。在一些实现中,可以使用例如一个或多个处理装置在av的感知模块(例如,图4所示的感知模块402)处执行处理1400的至少一部分。处理1400的操作包括生成av操作的环境的离散化表示(1402)。离散化表示可以包括多个单元(本文也称为栅格单元)。各个单元可以定义为被多个粒子所占用,该粒子表示环境中的对象或自由空间中的至少一个。该粒子不是物质的物理单元,而是根据流体动力学中的场论原则来表示物理对象的虚拟单元的交互软件组件集合。离散化表示可以包括使用笛卡尔坐标系或极坐标系所定义的栅格。在一些实现中,离散化表示可以表示动态占用栅格。
[0162]
在一些实现中,为离散化表示中的各单元分配占用的初始值,然后根据粒子密度函数的演变来更新该初始值。例如,可以将初始值或占用概率分配为100%(或一些其它的高值),以表示av周围的所有环境都被占用的安全假设。然后根据粒子密度函数的演变和/或传感器数据来更新单元的占用概率。在一些实现中,标签被分配给多个粒子,各个标签指示例如相应粒子表示对象还是自由空间。可以根据接收到的传感器数据来更新这些标签。例如,如果av前面的小汽车左转或右转,则传感器数据(和/或与运载工具相对应的粒子密度函数的演变)可以将av前面的单元中的一个或多个粒子更新为自由空间。
[0163]
处理1400的操作还包括从av的一个或多个传感器接收指示环境中多个粒子中的至少一个粒子的状态的传感器数据(1404)。该一个或多个传感器可以包括上述传感器121的组合。粒子的状态可以包括例如与该粒子相关联的一个或多个速度(例如,沿不同方向的速度)、与多个速度相关联的协方差和/或施加在至少一个粒子上的力。考虑到力使得能够解释相应对象或自由空间的各种动态,例如,运载工具沿弯曲路径的运动、加速中的运载工具等。
[0164]
处理1400的操作还包括根据传感器数据和与一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中至少一个粒子的地点相关联的时变粒子密度函数的更新(1406)。确定对时变粒子密度函数的更新可以包括使用欧拉求解器或拉格朗日求解器来确定定义在与至少一个粒子的状态相关联的一个或多个参数上的一个或多个微分方程的解。欧拉求解器可以与参考图12的上述欧拉求解器1210基本相似。一个或多个模型可以表示被训练以提供与离散化表示的各种单元的占用概率有关的信息的传感器模型。如上所述,概率可以以相应的传感器数据为条件,例如参考前向传感器模型。在一些实现中,确定对粒子密度函数的更新可以包括确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数,并且作为响应,在确定对时变粒子密度函数的更新时使用至少一个参数的先验值。在一些情况下,这允许用于更新与被传感器遮挡的地点相对应的粒子密度函数。
[0165]
处理1400的操作还包括基于更新的粒子密度函数来生成对离散化表示中至少一个单元的占用的预测(1408)。例如,这可以包括将至少一个单元的占用概率确定为如下的乘积:(1)基于传感器数据和一个或多个传感器模型生成的条件概率的比率,(2)至少一个单元的更新的时变粒子密度函数。条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率与(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率。可以使用一个或多个传感器模型来确定第一概率和第二概率。在一些实现中,例如,可以根据等式(5)来生成预测。处理1400的操作还包括使用控制器电路至少部分地基于预测来操作av(1410)。
[0166]
图15是用于生成对自主运载工具的环境中地点的占用的预测的示例处理1500的流程图。在一些实现中,可以使用例如一个或多个处理装置在av的感知模块(例如,图4所示的感知模块402)处执行处理1500的至少一部分。在一些实现中,可以通过一个或多个传感器上的处理电路来执行处理1500的至少一部分。处理1400的操作包括实例化表示环境的离散化表示的单元的内容的交互软件组件集合(1502)。离散化表示可以包括多个单元,诸如动态占用栅格等。该离散化表示可以与上述参考图14的离散化表示基本类似。
[0167]
处理1500的操作还包括从av的一个或多个传感器接收与交互软件组件集合的交互软件组件相关联的传感器观测向量(1504)。传感器观测向量可以包括与给定地点处的交互软件组件相关联的一个或多个参数。一个或多个传感器包括上述传感器121的任意组合。粒子的状态包括例如与该粒子相关联的一个或多个速度(例如,沿不同方向的速度)、与多个速度相关联的协方差和/或施加在至少一个粒子上的力。
[0168]
处理1400的操作还包括根据传感器观测向量来确定对与同给定地点相对应的离散化表示的单元中的单元相关联的时变粒子密度函数的更新(1506)。确定对时变粒子密度函数的更新可以包括使用欧拉求解器或拉格朗日求解器来确定定义在与至少一个粒子的状态相关联的一个或多个参数上的一个或多个微分方程的解。欧拉求解器可以与参考图12的上述欧拉求解器1210基本相似。一个或多个模型可以表示被训练以提供与离散化表示的各种单元的占用概率有关的信息的传感器模型。如上所述,概率可以以相应的传感器数据为条件,例如参考前向传感器模型。在一些实现中,确定对粒子密度函数的更新可以包括确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数,并且作为响应,在确定对时变粒子密度函数的更新时使用至少一个参数的先验值。在一些情况下,这允许更新与被传感器遮挡的地点相对应的粒子密度函数。
[0169]
处理1500的操作还包括基于更新的粒子密度函数来生成对单元的占用的预测(1508)。例如,这可以包括将至少一个单元的占用概率确定为如下的乘积:(1)基于传感器数据和一个或多个传感器模型生成的条件概率的比率,(2)至少一个单元的更新的时变粒子密度函数。条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率与(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率。可以使用一个或多个传感器模型来确定第一概率和第二概率。在一些实现中,例如,可以根据等式(5)来生成预测。处理1500的操作还包括基于预测来扩增(augment)运载工具的操作(1510)。这可以包括例如使得运载工具转向避开被预测为要被对象所占用的单元、使得运载工具转向进入被预测为要具有自由空间的区域、或者加速/制动以避开被预测为要被一个或多个对象所占用的区域。
[0170]
在一些实施例中,用于求解方程的解算器包括:有限差分格式(例如,迎风差分法、lax
‑
friedrichs法、lax
‑
wendroff法、warming
‑
beam法、人工粘性法等)或有限体积格式(例如,godunov方法、通量限制、通量分裂、随机选择等)或有限元格式(例如,galerkin法、petrov
‑
galerkin法、间断galerkin、一阶系统最小二乘法等)或粒子栅格单元法或格子波尔兹曼(boltzmann)法或边界元方法。
[0171]
可选实施例
[0172]
在实施例中,一个或多个处理装置的至少一部分配置在运载工具的感知电路中。
[0173]
在实施例中,运载工具包括一个或多个计算机处理器和一个或多个存储指令的非暂时性存储介质。指令在由一个或多个计算机处理器执行时使得进行包括生成环境的离散化表示的操作。离散化表示包括多个单元。各个单元由表示环境中的对象或自由空间中的至少一个的多个粒子所占用。从运载工具的一个或多个传感器接收指示环境中多个粒子中的至少一个粒子的状态的传感器数据。根据传感器数据和与一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中的至少一个粒子的地点相关联的时变粒子密度函数的更新。基于更新的粒子密度函数来生成对离散化表示中的至少一个单元的占用的预测。至少部分基于预测来操作运载工具。
[0174]
在实施例中,使用一个或多个传感器上的处理电路来实例化表示环境的离散化表示的单元的内容的交互软件组件集合。从一个或多个传感器接收与交互软件组件集合中的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。使用处理电路根据传感器观测向量来确定对与同给定地点相对应的离散化表示的单元中的单元相关联的时变粒子密度函数的更新。使用处理电路基于更新的粒子密度函数来确定对单元的占用的预测。使用处理电路使得基于该预测来操作运载工具。
[0175]
在实施例中,离散化表示包括使用结构化网格定义的栅格、块结构化网格或非结构化网格。
[0176]
在实施例中,使用笛卡尔坐标系或极坐标系或图模型来定义栅格。
[0177]
在实施例中,对多个单元中的各单元分配占用的初始值,然后根据粒子密度函数的演变来更新该初始值。
[0178]
在实施例中,为多个粒子分配标签,各标签指示相应的粒子表示对象还是自由空间。
[0179]
在实施例中,根据传感器数据来更新标签。
[0180]
在实施例中,为多个粒子分配连续权重,各权重指示单个粒子对累积密度函数的贡献。
[0181]
在实施例中,确定对时变粒子密度函数的更新包括使用欧拉求解器或拉格朗日求解器来计算定义在与至少一个粒子的状态相关联的一个或多个参数上的一个或多个微分方程的解。
[0182]
在实施例中,至少一个粒子的状态包括与至少一个粒子相关联的至少一个速度。
[0183]
在实施例中,至少一个粒子的状态包括(1)沿相应方向的多个速度和(2)与多个速度相关联的协方差。
[0184]
在实施例中,至少一个粒子的状态包括施加在至少一个粒子上的力。
[0185]
在实施例中,一个或多个模型各自表示被训练以提供与离散化表示的各种单元的占用概率有关的信息以及以相应传感器数据为条件的概率的传感器模型。
[0186]
在实施例中,生成对至少一个单元的占用的预测包括将至少一个单元的占用概率确定为如下的乘积:(1)基于传感器数据和一个或多个传感器模型生成的条件概率的比率,和(2)至少一个单元的更新的时变粒子密度函数。
[0187]
在实施例中,条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率与(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率,其中,使用一个或多个传感器模型来确定第一概率和第二概率。
[0188]
在实施例中,确定为与特定传感器相对应的传感器数据在使用与特定传感器相关联的对应模型计算出的期望值的阈值范围外。响应于确定为与特定传感器相对应的传感器数据在阈值范围外,识别特定传感器的故障状况。
[0189]
在实施例中,确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数。响应于确定为传感器数据缺少至少一个参数,在确定对时变粒子密度函数的更新时使用至少一个参数的先验值。
[0190]
在实施例中,处理电路的至少一部分配置在运载工具的感知电路中。
[0191]
在实施例中,运载工具包括一个或多个计算机处理器和一个或多个存储指令的非暂时性存储介质,指令在由一个或多个计算机处理器执行时使得进行包括实例化表示环境的离散化表示的单元的内容的交互软件组件集合的的操作。从一个或多个传感器接收与交互软件组件集合中的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。基于与传感器相关联的一个或多个,根据与传感器相关联的传感器观测向量来确定对与同给定地点相对应的离散化表示的单元中的单元相关联的时变粒子密度函数的更新。基于更新的粒子密度函数来生成对单元的占用的预测。基于预测来增加运载工具的操作。
[0192]
在实施例中,在环境中运行的运载工具的一个或多个处理装置用于生成环境的离散化表示。离散化表示包括多个单元。各个单元由表示环境中的对象或自由空间中的至少一个的多个粒子所占用。从运载工具的一个或多个传感器接收指示环境中多个粒子中的至少一个粒子的状态的传感器数据。根据传感器数据和与一个或多个传感器相关联的一个或多个模型,使用一个或多个处理装置来确定对与动态占用栅格中的至少一个粒子的地点相关联的时变粒子密度函数的更新。基于更新的粒子密度函数使用一个或多个处理装置来生
成对离散化表示中的至少一个单元的占用的预测。至少部分地基于该预测使用运载工具的控制器电路来操作运载工具。
[0193]
在实施例中,离散化表示包括使用笛卡尔坐标系或极坐标系或图模型所定义的栅格。
[0194]
在实施例中,离散化表示包括各单元与节点相对应的图,并且两个相邻单元以图上的边为表征。
[0195]
在实施例中,对多个单元中的各单元分配占用的初始值,然后根据粒子密度函数的演变来更新该初始值。
[0196]
在实施例中,标签被分配给多个粒子。各标签指示相应的粒子表示对象还是自由空间。
[0197]
在实施例中,根据传感器数据来更新标签。
[0198]
在实施例中,确定对时变粒子密度函数的更新包括使用欧拉求解器来确定定义在与至少一个粒子的状态相关联的一个或多个参数上的一个或多个微分方程或一个或多个梯度算子的解。
[0199]
在实施例中,至少一个粒子的状态包括与至少一个粒子相关联的至少一个速度。
[0200]
在实施例中,至少一个粒子的状态包括(1)沿相应方向的多个速度和(2)与多个速度相关联的协方差。
[0201]
在实施例中,至少一个粒子的状态包括施加在至少一个粒子上的力。
[0202]
在实施例中,一个或多个模型各自表示被训练以提供与离散化表示的各种单元的占用概率有关的信息的传感器模型,该概率以相应传感器数据为条件。
[0203]
在实施例中,一个或模型各自表示如下中的一个:已知概率分布、两个或更多个概率分布的混合、或者经验分布。
[0204]
在实施例中,生成对至少一个单元的占用的预测包括将至少一个单元的占用概率确定为如下的乘积:(1)基于传感器数据和一个或多个传感器模型生成的条件概率的比率,和(2)至少一个单元的更新的时变粒子密度函数。
[0205]
在实施例中,条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率与(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率,其中,使用一个或多个传感器模型来确定第一概率和第二概率。
[0206]
在实施例中,确定为与特定传感器相对应的传感器数据在使用与特定传感器相关联的对应模型计算出的期望值的阈值范围外。响应于确定为与特定传感器相对应的传感器数据在阈值范围外,识别特定传感器的故障状况。
[0207]
在实施例中,确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数。响应于确定为传感器数据缺少至少一个参数,在确定对时变粒子密度函数的更新时使用至少一个参数的先验值。
[0208]
在实施例中,处理装置的至少一部分配置在运载工具的感知电路中。
[0209]
在实施例中,运载工具包括一个或多个计算机处理器和一个或多个存储指令的非暂时性存储介质,指令在由一个或多个计算机处理器执行时使得进行包括生成环境的离散化表示的操作。离散化表示包括多个单元。各个单元由表示环境中的对象或自由空间中的至少一个的多个粒子所占用。从运载工具的一个或多个传感器接收指示环境中多个粒子中
的至少一个粒子的状态的传感器数据。根据传感器数据和与一个或多个传感器相关联的一个或多个模型来确定对与动态占用栅格中的至少一个粒子的地点相关联的时变粒子密度函数的更新。基于更新的粒子密度函数来生成对离散化表示中的至少一个单元的占用的预测。至少部分地基于该预测来操作运载工具。
[0210]
在实施例中,使用一个或多个传感器上的处理电路来实例化表示环境的离散化表示的单元的内容的交互软件组件集合。从一个或多个传感器接收与交互软件组件集合中的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。使用处理电路根据传感器观测向量来确定对与同给定地点相对应的离散化表示的单元中的单元相关联的时变粒子密度函数的更新。使用处理电路基于更新的粒子密度函数来确定对单元的占用的预测。使用处理电路基于该预测来进行运载工具的操作。
[0211]
在实施例中,离散化表示包括使用笛卡尔坐标系或极坐标系定义的栅格。
[0212]
在实施例中,对多个单元中的各单元分配占用的初始值,然后根据粒子密度函数的演变来更新该初始值。
[0213]
在实施例中,标签被分配给多个粒子。各标签指示相应的粒子表示对象还是自由空间。
[0214]
在实施例中,根据传感器数据来更新标签。
[0215]
在实施例中,确定对时变粒子密度函数的更新包括使用欧拉求解器来确定定义在与至少一个粒子的状态相关联的一个或多个参数上的一个或多个微分方程的解。
[0216]
在实施例中,至少一个粒子的状态包括与至少一个粒子相关联的至少一个速度。
[0217]
在实施例中,至少一个粒子的状态包括(1)沿相应方向的多个速度和(2)与多个速度相关联的协方差。
[0218]
在实施例中,至少一个粒子的状态包括施加在至少一个粒子上的力。
[0219]
在实施例中,一个或多个模型各自表示被训练以提供与离散化表示的各种单元的占用概率有关的信息的传感器模型。概率以相应的传感器数据为条件。
[0220]
在实施例中,生成对至少一个单元的占用的预测包括将至少一个单元的占用概率确定为如下的乘积:(1)基于传感器数据和一个或多个传感器模型生成的条件概率的比率,和(2)至少一个单元的更新的时变粒子密度函数。
[0221]
在实施例中,条件概率的比率可以是(1)以至少一个单元被占用为条件的接收到传感器数据的第一概率与(2)以至少一个单元没有被占用为条件的接收到传感器数据的第二概率的比率。使用一个或多个传感器模型来确定第一概率和第二概率。
[0222]
在实施例中,确定为与特定传感器相对应的传感器数据在使用与特定传感器相关联的对应模型确定的期望值的阈值范围外。响应于确定为与特定传感器相对应的传感器数据在阈值范围外,识别特定传感器的故障状况。
[0223]
在实施例中,确定为传感器数据缺少指示至少一个粒子的状态的至少一个参数。响应于确定为传感器数据缺少至少一个参数,在确定对时变粒子密度函数的更新时使用至少一个参数的先验值。
[0224]
在实施例中,处理电路的至少一部分被配置在运载工具的感知电路中。
[0225]
在实施例中,运载工具包括一个或多个计算机处理器和一个或多个存储指令的非
暂时性存储介质,指令在由一个或多个计算机处理器执行时使得进行包括实例化表示环境的离散化表示的单元的内容的交互软件组件集合的的操作。从一个或多个传感器接收与交互软件组件集合中的交互软件组件相关联的传感器观测向量。传感器观测向量包括与给定地点处的交互软件组件相关联的一个或多个参数。基于与传感器相关联的一个或多个,根据传感器观测向量来确定对与同给定地点相对应的离散化表示的单元中的单元相关联的时变粒子密度函数的更新。基于更新的粒子密度函数来确定对单元的占用的预测。基于预测来增加运载工具的操作。
[0226]
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是根据本申请所授权的权利要求书的以授权权利要求书的具体形式的字面和等同范围,包括对授权权利要求书的任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当支配在权利要求书中所使用的此类术语的意义。另外,当在之前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或者先前所述的步骤或实体的子步骤/子实体。
技术特征:
1.一种方法,包括:使用在环境中运行的运载工具的一个或多个处理装置来生成环境的离散化表示,所述离散化表示包括多个单元,其中所述多个单元中的各个单元由表示环境中的对象和自由空间中的至少一者的粒子所占用;从所述运载工具的一个或多个传感器接收指示所述环境中多个粒子中的至少一个粒子的状态的传感器数据;使用所述一个或多个处理装置,根据所述传感器数据和与所述一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中至少一个粒子的地点相关联的时变粒子密度函数的更新;使用所述一个或多个处理装置,基于更新的粒子密度函数来生成对所述离散化表示中的至少一个单元的占用的预测;以及使用所述运载工具的控制器电路,至少部分地基于所述预测来操作所述运载工具。2.根据权利要求1所述的方法,其中,所述离散化表示包括使用结构化网格、块结构化网格或非结构化网格来定义的栅格。3.根据权利要求2所述的方法,其中使用笛卡尔坐标系或极坐标系或图模型来定义所述栅格。4.根据权利要求1所述的方法,其中所述离散化表示包括图,该图中,各个单元与节点相对应,并且两个相邻单元由所述图上的边来表征。5.根据权利要求1
‑
4中任一项所述的方法,还包括为所述多个单元中的各个单元分配占用的初始值,然后根据所述粒子密度函数的演变来更新所述初始值。6.根据权利要求1
‑
5中任一项所述的方法,还包括为所述多个粒子分配标签,各个标签指示相对应的粒子是表示对象还是自由空间。7.根据权利要求6所述的方法,还包括根据所述传感器数据来更新所述标签。8.根据权利要求1
‑
7中任一项所述的方法,还包括为所述多个粒子分配连续权重,各个权重指示单个粒子对累积密度函数的贡献。9.根据权利要求1
‑
8中的任一项所述的方法,其中,确定对所述时变粒子密度函数的更新包括使用欧拉求解器或拉格朗日求解器来确定在与所述至少一个粒子的状态相关联的一个或多个参数上定义的一个或多个微分方程或者一个或多个梯度算子的解。10.根据权利要求9所述的方法,所述至少一个粒子的状态包括与所述至少一个粒子相关联的至少一个速度。11.根据权利要求10所述的方法,其中所述至少一个粒子的状态包括沿相应方向的多个速度,以及与所述多个速度相关联的协方差。12.根据权利要求1
‑
11中任一项所述的方法,其中所述至少一个粒子的状态包括施加在所述至少一个粒子上的力。13.根据权利要求1
‑
12中任一项所述的方法,其中,所述一个或多个模型各自表示被训练成提供与所述离散化表示的各种单元的占用概率有关的信息的传感器模型,所述概率以相应的传感器数据为条件。14.根据权利要求1
‑
13中任一项所述的方法,其中,所述一个或多个模型各自表示两个或更多个概率分布的混合、已知概率分布和经验分布中的一者。
15.根据权利要求1
‑
14中任一项所述的方法,其中,生成对所述至少一个单元的占用的预测包括将所述至少一个单元的占用概率确定为如下条件概率的比率与所述至少一个单元的更新的时变粒子密度函数的乘积,该条件概率是基于所述传感器数据和所述一个或多个传感器模型所生成的。16.根据权利要求15所述的方法,所述条件概率的比率是以所述至少一个单元被占用为条件的接收到所述传感器数据的第一概率与以所述至少一个单元没有被占用为条件的接收到所述传感器数据的第二概率的比率,其中所述第一概率和所述第二概率是使用所述一个或多个传感器模型来确定的。17.根据权利要求1
‑
16中任一项所述的方法,还包括:确定为与特定传感器相对应的所述传感器数据在使用与所述特定传感器相关联的相应模型所确定的期望值的阈值范围外;以及响应于确定为与所述特定传感器相对应的传感器数据在阈值范围外,识别所述特定传感器的故障状况。18.根据权利要求1
‑
17中任一项所述的方法,还包括:确定为所述传感器数据缺少指示所述至少一个粒子的状态的至少一个参数;以及响应于确定为所述传感器数据缺少所述至少一个参数,在确定对所述时变粒子密度函数的更新时使用所述至少一个参数的先验值。19.一种运载工具,包括:一个或多个计算机处理器;以及存储有指令的一个或多个非暂时性存储介质,所述指令在由所述一个或多个计算机处理器执行的情况下使得进行操作,所述操作包括:生成环境的离散化表示,所述离散化表示包括多个单元,其中所述多个单元中的各个单元由表示所述环境中的对象和自由空间中的至少一者的粒子所占用;从所述运载工具的一个或多个传感器接收指示所述环境中多个粒子中的至少一个粒子的状态的传感器数据;根据所述传感器数据和与所述一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中至少一个粒子的地点相关联的时变粒子密度函数的更新;基于更新的粒子密度函数来生成对所述离散化表示中的至少一个单元的占用的预测;以及使用所述运载工具的控制器电路,至少部分地基于所述预测来操作所述运载工具。20.存储有指令的一个或多个非暂时性存储介质,所述指令在由一个或多个计算装置执行的情况下使得进行操作,所述操作包括:生成环境的离散化表示,所述离散化表示包括多个单元,其中所述多个单元中的各个单元由表示所述环境中的对象和自由空间中的至少一者的粒子所占用;从所述运载工具的一个或多个传感器接收指示所述环境中多个粒子中的至少一个粒子的状态的传感器数据;根据所述传感器数据和与所述一个或多个传感器相关联的一个或多个模型,确定对与动态占用栅格中至少一个粒子的地点相关联的时变粒子密度函数的更新;基于更新的粒子密度函数来生成对所述离散化表示中的至少一个单元的占用的预测;
以及使用所述运载工具的控制器电路,至少部分地基于所述预测来操作所述运载工具。
技术总结
本文件中所描述的技术可以呈现在一种方法中,该方法包括使用在环境中运行的运载工具的一个或多个处理装置来生成包括多个单元的环境的离散化表示。该单元由表示以下至少之一的粒子占用:环境中的对象或自由空间。接收指示至少一个粒子的状态的传感器数据,并且根据传感器数据和一个或多个模型来计算与粒子在动态占用栅格中的地点相关联的时变粒子密度函数的更新。该方法还包括基于更新的粒子密度函数生成对离散化表示中的至少一个单元的占用的预测,并且至少部分地基于该预测来使用运载工具的控制器电路操作运载工具。载工具的控制器电路操作运载工具。载工具的控制器电路操作运载工具。
技术研发人员:D
受保护的技术使用者:动态AD有限责任公司
技术研发日:2020.01.08
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-126.html