用于自主运载工具的系统和方法以及存储介质与流程

文档序号:32157712发布日期:2022-11-12 00:32阅读:52来源:国知局
用于自主运载工具的系统和方法以及存储介质与流程

1.本说明书涉及如下的计算机系统,该计算机系统用于检测自主运载工具周围的环境中的一个或多于一个对象,并且使用机器学习技术来预测该一个或多于一个对象的行为。


背景技术:

2.自主运载工具可用于将人和/或货物(例如,包裹、对象或其它物品)从一个地点运输到另一地点。例如,自主运载工具可以导航到某人的地点,等待该人登上该自主运载工具,并导航到指定的目的地(例如,由该人选择的地点)。为了在环境中导航,这些自主运载工具配备有各种传感器以检测周围的对象。


技术实现要素:

3.预期传感器正在跟踪的对象的行为可能是困难的。本说明书中描述的主题涉及用于检测并预测自主运载工具周围的环境中的对象的行为的计算机系统和技术。通常,计算机系统被配置为从运载工具的一个或多于一个传感器接收输入,基于所接收到的输入来检测运载工具周围的环境中的一个或多于一个对象,并且基于对象的所预测的行为来操作运载工具。
4.特别地,公开了一种系统,包括:至少一个处理器;以及至少一个存储器,其上存储有指令,所述指令在由所述至少一个处理器执行时使得所述至少一个处理器进行操作,所述操作包括:获得所述自主运载工具的传感器所生成的传感器数据,所述传感器数据与接近所述自主运载工具的预计路线的多个对象相关联;基于与所述多个对象的第一子集相关联的非临时风险来确定对沿着所述预计路线的所述自主运载工具的轨迹进行限制的静态约束;基于所述静态约束来预测沿着所述预计路线的作为时间的函数的所述自主运载工具的位置和速率;基于所述自主运载工具的所预测的位置和速率来识别与所述多个对象的第二子集相关联的临时风险;确定动态约束,所述动态约束进一步对沿着所述预计路线的所述自主运载工具的轨迹进行限制以帮助所述自主运载工具避免与所述多个对象的所述第二子集相关联的临时风险;根据所述静态约束和所述动态约束来调整所述自主运载工具的轨迹;以及根据调整后的所述轨迹来导航所述自主运载工具。
5.公开了一种非暂时性计算机可读存储介质,包括:存储在其上的指令,所述指令在由至少一个处理器执行时使得所述至少一个处理器执行操作,所述操作包括:获得所述自主运载工具的传感器所生成的传感器数据,所述传感器数据与接近所述自主运载工具的预计路线的多个对象相关联;基于与所述多个对象的第一子集相关联的非临时风险来确定对沿着所述预计路线的所述自主运载工具的轨迹进行限制的静态约束;基于所述静态约束来预测沿着所述预计路线的作为时间的函数的所述自主运载工具的位置和速率;基于所述自主运载工具的所预测的位置和速率来识别与所述多个对象的第二子集相关联的临时风险;确定动态约束,所述动态约束进一步对沿着所述预计路线的所述自主运载工具的轨迹进行
限制以帮助所述自主运载工具避免与所述多个对象的所述第二子集相关联的临时风险;根据所述静态约束和所述动态约束来调整所述自主运载工具的轨迹;以及根据调整后的所述轨迹来导航所述自主运载工具。
6.公开了一种自主运载工具进行的方法,所述自主运载工具跟随预计路线,所述方法包括:获得所述自主运载工具的传感器所生成的传感器数据,所述传感器数据与接近所述自主运载工具的预计路线的多个对象相关联;基于与所述多个对象的第一子集相关联的非临时风险来确定对沿着所述预计路线的所述自主运载工具的轨迹进行限制的静态约束;基于所述静态约束来预测沿着所述预计路线的作为时间的函数的所述自主运载工具的位置和速率;基于所述自主运载工具的所预测的位置和速率来识别与所述多个对象的第二子集相关联的临时风险;确定动态约束,所述动态约束进一步对沿着所述预计路线的所述自主运载工具的轨迹进行限制以帮助所述自主运载工具避免与所述多个对象的所述第二子集相关联的临时风险;根据所述静态约束和所述动态约束来调整所述自主运载工具的轨迹;以及根据调整后的所述轨迹来导航所述自主运载工具。
7.这些和其它方面、特征和实现可被表示为方法、设备、系统、组件、程序产品、用于进行功能的手段或步骤、以及其它方式。
8.从以下的包括权利要求书的说明书,这些和其它方面、特征和实现将变得明显。
附图说明
9.图1示出具有自主能力的自主运载工具的示例。
10.图2例示示例“云”计算环境。
11.图3例示计算机系统。
12.图4示出自主运载工具的示例架构。
13.图5示出感知模块可以使用的输入和输出的示例。
14.图6示出lidar系统的示例。
15.图7示出操作中的lidar系统。
16.图8示出lidar系统的操作的附加细节。
17.图9示出规划模块的输入和输出之间的关系的框图。
18.图10示出路径规划中所使用的有向图。
19.图11示出控制模块的输入和输出的框图。
20.图12示出控制器的输入、输出和组件的框图。
21.图13a-13b示出根据一些实施例的速度平方vs位置的曲线图,其例示软约束和硬约束如何影响与自主运载工具相关联的预计路线和最大加速度/减速度分布。
22.图14a示出自主运载工具在交通灯路口处的交通灯变成黄色时穿过街道的俯视图。
23.图14b示出根据一些实施例的速度平方vs位置的曲线图,其例示接近图 14a所描绘的交通灯路口的施工区域如何影响自主运载工具在交通灯变成红色之前通过交通灯路口的能力。
24.图15a-15c示出自主运载工具利用所述的实施例来对横穿街道的行人做出响应的情景;
25.图16a示出如下的情景:自主运载工具正在接近交叉口,并且基于另一运载工具的行为而确定为该另一运载工具有可能在与自主运载工具相同的时间处进入交叉口。
26.图16b示出根据一些实施例的速度平方vs位置的曲线图,其例示可以如何应用最小速率分布以使图16a所描绘的自主运载工具安全地通过交叉口。
27.图17是用于检测环境中的对象并基于对象的检测来操作运载工具的示例处理1700的流程图。
具体实施方式
28.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,本公开可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
29.在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
30.此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或多于两个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多于一个信号路径(例如,总线)。
31.现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
32.下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
33.1.总体概述
34.2.硬件概述
35.3.自主运载工具架构
36.4.自主运载工具输入
37.5.自主运载工具规划
38.6.自主运载工具控制
39.7.使用柱(pillar)的对象检测所用的计算系统
40.8.示例点云和柱
41.9.用于检测对象并基于对象的检测来操作运载工具的示例处理
42.总体概述
43.在复杂环境(例如,城市环境)中驾驶的自主运载工具带来巨大的技术挑战。为了使自主运载工具在这些环境中导航,运载工具使用诸如lidar、光学成像和/或radar等的传感器来实时地检测诸如运载工具、行人和自行车等的各种对象。尽管这些传感器能够识别并跟踪对象,但预测对象的行为可能是具有挑战性的,并且过于保守地对待所跟踪的对象可能导致自主运载工具不能运转。所公开的实施例包括用于预测所检测到的对象的行为并高效地避开这些对象的系统和技术。
44.特别地,本文所述的系统和技术实现了可以将来自所检测到的对象的传感器数据与来自先前跟踪的对象的传感器数据相关的机器学习(例如,神经网络)。然后,自主运载工具能够使用先前跟踪的对象的行为来预测接近自主运载工具的预计行驶路线的所检测到的对象的移动。然后,可以使用所预测的移动来识别有可能包含所检测到的对象的临时区域。在所预测的移动具有足够质量的情况下,自主运载工具可以调整速率和/或位置以高效地避免与一个或多于一个动态对象的任何非预期碰撞。
45.硬件概述
46.图1示出具有自主能力的自主运载工具100的示例。
47.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。
48.如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。
49.如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
50.如本文所使用的,“轨迹”是指将av从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多于一个路段(例如,道路的数段)组成,并且各路段由一个或多于一个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
51.如本文所使用的,“(一个或多于一个)传感器”包括一个或多于一个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,ram和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。
52.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多于一个传感器检测到的一个或多于一个分类或标记的对象,或由av外部的源提供的一个或多于一个分类或标记的对象。
53.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应
于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的车行道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(suv)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或行政机构没有正式定义为一条通道的物理区域。
54.如本文所使用的,“车道”是道路的可被运载工具穿过的部分,并且可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木)来定义车道。
[0055]“一个或多于一个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。
[0056]
还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。除非另外说明,第一触点和第二触点两者都是触点,但它们不是相同触点。
[0057]
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多于一个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多于一个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
[0058]
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0059]
如本文所使用的,av系统是指av以及支持av操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,av系统并入在av内。在实施例中,av系统跨若干地点分布。例如,av系统的一些软件是在类似于下面关于图2描述的云计算环境200的云计算环境上实现的。
[0060]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更
多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸如所谓的第 2级和第1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多于一个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操作的运载工具范围内的任何级别的运载工具受益。
[0061]
参考图1,av系统120使av 100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具 193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0062]
在实施例中,av系统120包括用于从计算处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
[0063]
在实施例中,av系统120包括用于测量或推断av 100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,av 100的前端的方向)。传感器121的示例是gps、测量运载工具线加速度和角速率两者的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
[0064]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122, lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
[0065]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到av 100。
[0066]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到av 100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140 跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多于一个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。
[0067]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、 wifi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信接口140
将从传感器121收集的数据或与av 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av 100传输与遥操作有关的信息。在一些实施例中,av 100与其它远程(例如,“云”)服务器136通信。
[0068]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在av 100上的存储器144中,或者通过通信信道从远程数据库134传输到av 100。
[0069]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在av 100上的存储器144中,或者通过通信信道从远程数据库134传输到av 100。
[0070]
位于av 100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许av系统120执行其自主驾驶能力。
[0071]
在实施例中,av系统120包括耦接到计算装置146的计算机外围设备132,用于向av 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或多于两个的接口装置可以集成到单个装置中。
[0072]
图2例示示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池。在典型的云计算系统中,一个或多于一个大型云数据中心容纳用于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、 204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、 206b、206c、206d、206e和206f提供云计算服务。
[0073]
云计算环境200包括一个或多于一个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多于一个区域,其中包括一个或多于一个服务器房间。每个房间有一行或多行服务器,并且每行包括一个或多于一个机架。每个机架包括一个或多于一个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)被排列成若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0074]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、 204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多于一个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通过网络交换的数据使用多种网络层协议(诸如,因特网协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(frame relay)等)进行传输。此外,在网络表示多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示一个或多于一个互连网际网络(诸如公共因特网等)。
[0075]
计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。
在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(iot)装置、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。
[0076]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多于一个专用集成电路(asic)或现场可编程门阵列(fpga)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多于一个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。
[0077]
在实施例中,计算机系统300包括总线302或用于传达信息的其它通信机制、以及与总线302耦接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,诸如随机存取存储器 (ram)或其它动态存储装置,该主存储器306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0078]
在实施例中,计算机系统300还包括只读存储器(rom)308或耦接到总线 302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
[0079]
在实施例中,计算机系统300通过总线302耦接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器的显示器312。包括字母数字键和其它键的输入装置314耦接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
[0080]
根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一个或多于一个指令的一个或多于一个序列而执行。这些指令从诸如存储装置310的另一存储介质读入主存储器306。执行主存储器 306中包含的指令序列使处理器304执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0081]
如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、
软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、 nv-ram、或任何其它存储芯片或存储盒。
[0082]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。
[0083]
在实施例中,各种形式的介质涉及将一个或多于一个指令的一个或多于一个序列承载到处理器304以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线302 上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
[0084]
计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口 318是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
[0085]
网络链路320通常通过一个或多于一个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”328的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0086]
计算机系统300通过(一个或多于一个)网络、网络链路320和通信接口318 发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0087]
自主运载工具架构
[0088]
图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]、硬件存储器装置、其它类型的集成电路、
其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。
[0089]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示av100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线) 的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0090]
感知模块402使用例如也如图1所示的一个或多于一个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块 404。
[0091]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块 408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如人行横道、交通标志或各种类型的其它行驶信号等)的空间地点的地图。
[0092]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得av 100行驶轨迹414到达目的地412的方式来操作av的控制功能 420a~420c(例如,转向、油门、制动、点火)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得av 100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0093]
自主运载工具输入
[0094]
图5示出感知模块402(图4)所使用的输入502a-502d(例如,图1中所示的传感器121)和输出504a-504d(例如,传感器数据)的示例。一个输入502a是 lidar(光检测和测距)系统(例如,图1所示的lidar 123)。lidar是使用光 (例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是用于构造环境190的表示的3d或2d点(也称为点云)的集合。
[0095]
另一输入502b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统502b产生radar数据作为输出504b。例如,radar数据是用于构造环境190的表示的一个或多于一个射频电磁信号。
[0096]
另一输入502c是照相机系统。照相机系统使用一个或多于一个照相机 (例如,使用诸如电荷耦接器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在使用中,照相机系统可被配置为“看见”远处的(例如,av前方的远至1公里或更远的)对象。因此,照相机系统可以具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
[0097]
另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多于一个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出504d。tld数据经常采用图像数据 (例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得av 100能够访问这些对象所提供的所有相关导航信息。例如,tld系统的视角可以为约120度或更大。
[0098]
在一些实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至av 100的其它系统(例如,提供至如图4所示的规划模块404),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多于一个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多于一个数据处理步骤应用到个体输出之后,将输出组合。
[0099]
图6示出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。
[0100]
图7示出操作中的lidar系统602。在该图所示的情景中,av 100接收采用图像702的形式的照相机系统输出504c和采用lidar数据点704的形式的 lidar系统输出504a两者。在使用中,av 100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704中也识别在图像702中识别出的物理对象706。这样,av 100基于数据点704的分布和密度来感知物理对象的边界。
[0101]
图8示出lidar系统602的操作的附加细节。如上所述,av 100基于 lidar系统602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将以一致的方式反射从lidar系统602发射的光 804a-804d。换句话说,由于lidar系统602使用一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到lidar系统602。在av 100在地面802上行驶时,在没有东西阻挡道路的情况下,lidar系统602将继续检测到由下一个有效地面点806反射的光。然而,如果对象808阻挡道路,则lidar 系统602所发射的光804e-804f将以与预期一致方式不一致的方式从点 810a-810b反射。根据该信息,av 100可以确定存在对象808。
[0102]
路径规划
[0103]
图9示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。一般而言,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目
的地或最终地点)的路线902。路线902通常由一个或多于一个路段定义。例如,路段是指要在街道、道路、公路、车行道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果av 100是诸如四轮驱动(4wd)或全轮驱动(awd)小汽车、suv或小卡车等的能够越野的运载工具,则路线902包括诸如未铺面路径或开阔田野等的“越野”路段。
[0104]
除路线902之外,规划模块还输出车道级路线规划数据908。车道级路线规划数据908用于在特定时间基于路线902的路段的条件来驶过这些路段。例如,如果路线902包括多车道公路,则车道级路线规划数据908包括轨迹规划数据910,其中av 100可以使用该轨迹规划数据910以例如基于出口是否临近、多个车道中的一个或多于一个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据908包括路线902的某路段特有的速率约束912。例如,如果该路段包括行人或非预期交通,则速率约束912可以将av100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。
[0105]
在实施例中,向规划模块404的输入包括(例如,来自图4所示的数据库模块410的)数据库数据914、当前地点数据916(例如,图4所示的av位置418)、 (例如,用于图4所示的目的地412的)目的地数据918和对象数据920(例如,如图4所示的感知模块402所感知的经分类的对象416)。在一些实施例中,数据库数据914包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在av 100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于av 100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
[0106]
图10示出在路径规划中(例如,由规划模块404(图4))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个交叉口或多车道道路的两条车道)。
[0107]
在实施例中,有向图1000具有表示起点1002和终点1004之间的av 100 可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002 和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示av 100的视场中的物理地点的一部分的一些高粒度信息。
[0108]
节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示av 100的视场中的物理对象,例如其它汽车、行人、或av 100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象
(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
[0109]
节点1006a-1006d通过边1010a-1010c连接。如果两个节点1006a-1006b通过边1010a连接,则av 100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(当提到av 100在节点之间行驶时,意味着av 100在由相应节点表示的两个物理位置之间行驶。)边1010a-1010c通常是双向的,从某种意义上,av 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边1010a-1010c 是单向的,从某种意义上,av 100可以从第一节点行驶到第二节点,然而av100不能从第二节点行驶到第一节点。在边1010a-1010c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其它特征的情况下,边1010a-1010c是单向的。
[0110]
在实施例中,规划模块404使用有向图1000来识别由起点1002和终点 1004之间的节点和边组成的路径1012。
[0111]
边1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在av100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是第二边1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、交叉口的数量、限速等。另一典型的资源是燃料经济性。两个边1010a-1010b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。
[0112]
在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块 404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。
[0113]
自主运载工具控制
[0114]
图11示出(例如,如图4所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多于一个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多于一个计算处理器);与主存储器306、rom 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多于一个处理器)执行时执行控制器1102的操作。
[0115]
在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104 通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图 4所示的)规划模块404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合av 100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合av100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如av 的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能) 应被定位成实现期望输出1104的角度。
[0116]
在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果av 100遇到诸如山丘等的干扰1110,则av 100的测量速率 1112降至低于期望输出速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期
望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和av 100的传感器可测量的其它输出。
[0117]
在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将控制器1102可用于相应地调整的信息提供至控制器 1102。例如,如果av 100的传感器检测到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著减速。
[0118]
图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器 1202根据例如由控制器1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/制动器1206进行加速或进行减速。
[0119]
控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器 1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反馈,来指示方向盘控制器1210调整转向角致动器 1212的位置。
[0120]
控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器 1212的若干输入。规划模块404提供控制器1102例如选择av 100开始操作时的航向并确定在av 100到达交叉口时穿过哪个道路路段所使用的信息。定位模块408例如将描述av 100的当前地点的信息提供至控制器1102,使得控制器1102可以确定av 100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来自其它输入 1214的信息,例如从数据库、计算机网络等接收到的信息。
[0121]
利用动态状态的规划
[0122]
图13a-13b示出根据一些实施例的速度平方vs位置的曲线图,其例示软约束和硬约束如何影响与av 100相关联的预计路线和最大加速度/减速度分布。特别地,图13a示出与预计路线1302的特定路段相关联的最大速度如何被软约束1304限制。软约束1304可以是从许多不同的道路条件产生的。例如,约束1304-1可以对应于特定弯道的最大推荐速率,约束1304-2可以对应于与施工区域相关联的降低的限速,并且约束1304-3可以对应于运载工具减速以适应更粗糙或更滑的路面。在各情况下,由于多个不同的原因,av 100所实现的速度在特定段道路的进程中减小。
[0123]
图13b示出在一些实施例中av 100可实现的最大加速度分布1352和最大减速度分布1354。最大加速度分布1352受硬约束1356影响。硬约束1356-1可以对应于设计成防止对av 100的动力总成造成损坏的加速度极限。硬约束 1356-2可以对应于考虑到av 100正在穿过的道路的曲率来防止倾翻的最大加速度极限,并且硬约束1356-3可以对应于av 100接近其最大速率。应当注意,手动控制av 100的用户可能能够超过最大减速度分布或者越过硬约束 1356其中之一而驾驶,但硬约束1356表示自主驾驶系统能够在没有用户干预或诸如碰撞避免系统等的系统参与的情况下进行的操作的硬限制。
[0124]
约束也可被表征为静态的和动态的。静态约束是被认为不太可能在av100通过期间改变的约束,并且动态约束是被认为有可能在av 100通过期间重新定位或状态改变的约束。如以下将更详细地所述,与自主驾驶系统相关联的处理器通常可被配置为在动态约束之前确定静态约束,使得系统知晓在确定用于改善与不太可预测的对象相关联的风险的动
态约束时,哪些选项可用于处理有可能改变位置或状态的对象。
[0125]
图14a示出av 100在交通灯路口1404处的交通灯变成黄色时穿过街道 1402的俯视图。遵循图14b所描绘的最大运动学分布,av 100可以在不超过 (图14b所描绘的)硬约束1的情况下,(例如,基于典型的黄灯定时)在交通灯变成红色之前通过交叉口1404。硬约束1可以表示街道1402的最大限速。在该情景中,在道路的(相对于av 100的行驶方向的)左侧存在施工区域1406。 (图14b所描绘的)硬约束2表示av 100在经过施工区域1406时必须遵循的约束,该约束防止av 100超过已被确定为紧靠施工区域1406的最大安全速率的速率。av 100可被配置为以多个不同的方式确定最大安全速率。在一些实施例中,使用针对城市街道上的施工区域的默认最大限速。在一些实施例中,在可用时,使用张贴的施工区域限速来代替默认最大限速。在一些实施例中, av 100可被配置为基于诸如以下等的一个或多于一个因素来动态地确定最大安全限速:在最接近点处与施工区域1406的接近度、施工区域1406处的其它运载工具交通和活动。
[0126]
在图14a所示的情景中,在遵循图14b所示的最大加速度分布时,av 100 由于硬约束2而不能加速到由硬约束1表示的最大限速,直到av 100进入了交叉口1404之后为止。由于与施工区域1406相关联的锥体不太可能在av 100通过交叉口1404之前消失,因此硬约束2被认为是静态约束。由于该原因,av100能够确定为av 100不能在不违反硬约束2的情况下在交通灯变成红色之前安全地通过交叉口1404。在该情景中,av 100可以应用由图14b所示的更新后的分布所表示的动态约束,该动态约束使得av 100能够在不违反任何系统约束的情况下在进入交叉口1404之前停止。由于av 100不完全确定黄灯的持续时间将为多长,因此更新后的约束被表征为动态约束。图14b还描绘被描绘为软约束线的针对施工区域1406的具有较不急剧的加速度和较保守的限速的典型分布。显然,av 100也不能在交通灯变成红色之前进入交叉口 1404。应当理解,在一些情景中,选择最大加速度分布或甚至遵循典型分布将使得av 100能够在不会闯红灯或者不会发生碰撞的情况下穿过交叉口。 av 100通常将选择用于优化安全性和舒适性的分布。
[0127]
图15a-15c示出行人1504(例如,乱穿马路的人)横穿街道1502的情景。在图15a中,av 100检测到行人1504开始横穿街道1502。在检测到行人1504 进入街道1502时,av 100确定为:以av 100的当前速率(其出于本示例的目的是该街道的张贴的最大限速),并且基于行人1504的所预测的行为,行人 1504可能位于街道1502的两个车道中的任意车道中。在av 100最接近行人 1504的预测时间处的行人1504的潜在地点在图15a中被描绘为临时区域1506,并且潜在地点基于行人1504的所预测的将来移动。在一些实施例中,对象在所识别的临时区域内的可能性处于高于99%的水平。在该情景中,由于av100可访问的历史数据库指示行人(例如,代替如在人行横道情景中将预期的那样直接穿过街道行进)当不在人行横道中时经常不可预测地行进,因此av100可以将临时区域1506的大小和形状确定为相对较大(例如,行人1504的大小的数倍;与以下所述的图15b和图15c中的临时区域1506相比)。在一些实施例中,历史数据库存储在av 100上,而在其它实施例中,数据库的至少一部分存储在av 100的外部。在当前情景中,由于临时区域1506与av 100非常接近,因此av 100确定为av 100不能在与临时区域1506相交之前完全停止。在该情形中,由于av 100因临时区域1506占用右车道(例如,图15a中的下车道)和左车道(例如,图15a中的上车道)的相对区域而能够从临时区域1506确定为,行人1504占用左车道的可能性小于行人1504占用右车道的
可能性,因此av 100将移动到左车道。
[0128]
图15b示出在av 100改变车道之后、临时区域1506仍占用左车道的一部分。图15b还描绘了:由于在av 100最接近行人1504时av 100对行人1504将占用的位置1506的置信度更高,因此在av 100接近行人1504时,临时区域 1506收缩(例如,大小减小和/或形状改变)。由于多个原因,置信水平可以增加,这些原因至少包括以下:(1)在av 100接近行人1504时,行人1504移动所用的时间较少,由此减小了行人1504可以覆盖的可能距离;以及(2)av 100 有时间测量行人1504正在行进的速率和方向,由此使得av 100能够更准确地预测行人1504的行为(即,行进方向)。
[0129]
在张贴的最大限速由av 100认为是软约束的情况下,av 100可以继续加速超过张贴的最大限速以减少行人1504必须到达左车道的时间量。在一些实施例中,在作为碰撞避免机动动作的一部分而如此做的情况下,av 100被授权加速到比张贴的最大限速高出阈值量的速率。图15c示出如何通过加速超过张贴的最大限速来使得临时区域1506的大小进一步减小并且使得临时区域1506被充分推回到右车道以使av 100高度确定地避开行人1504。该示例示出av 100如何能够在张贴的限速被视为软约束的情况下不顾张贴的限速以避免撞到行人的可能性(例如,避免撞到行人的优先级比遵守张贴的限速的优先级高)。尽管av 100通常将尝试遵循所有的约束,但这示出在某些情形下av 100将如何使遵循硬动态约束(行人)优先于软静态约束(张贴的限速)。应当注意,在行人1504是在人行横道处横穿街道1502的行人的情况下,临时区域1506的初始形状可以更多地由该类型的路面标线来限定,由此使得av100能够做出行人的大小和形状的更细化的初始预计(例如,不会随时间的经过而显著改变(例如,小于50%,小于25%,小于10%)的初始预计)。使用横穿街道1502的授权手段确定为行人的对象也可被指派不同的分类。例如,人行横道中的行人与不在人行横道中的行人相比可被确定为具有更可预测的速率,这使得行人的临时区域更小且av 100更容易适应。
[0130]
尽管图15a-15c仅示出正在跟踪和避开单个动态对象,但在一些实施例中,av 100可以(例如,同时地)跟踪多个动态和/或静态对象,使得这些对象中的一个或多于一个(例如,各自均是所检测到的和/或所跟踪的对象)充当对av 100在没有碰撞风险的情况下可采取的可能动作进行限制的约束。由于可以考虑到历史数据相关性来更准确地预测所检测到的对象的行为,因此av100能够采取帮助av 100在困难情形中避免碰撞的动作的可能性更高。
[0131]
图16a示出如下的情景:av 100正在接近道路1604上的交叉口1602,并且基于图16b所示的运载工具1606的行为及其当前预计路线确定为运载工具 1606有可能在与av 100相同的时间进入交叉口1602。如由图16b所描绘的最大减速度分布线所示,av 100还确定为av 100离交叉口1602太近而使得不能为了避免进入交叉口1602而及时停止。在一些实施例中,最大减速度分布线的斜率可以取决于尾随自主运载工具的运载工具的跟随距离。这种情况下的斜率可以对应于自主运载工具确定为其可以在不会引起尾随的运载工具撞击该自主运载工具的情况下做出的最大减速度。响应于没有足够的空间来停止自主运载工具,av 100确定为避免与运载工具1606碰撞的最有效方式是在 av 100接近交叉口1602时加速并维持以比预计速率高的速率通过交叉口 1602。为了使av 100进行该动作,可以向av 100引入附加约束,该附加约束要求av 100满足被设计成使得av 100能够以所确定的确定
量在运载工具 1606之前通过交叉口1602的最小速率约束。图16b描绘该最小速率约束,其规定了比预计路线高的速度但比最大加速度分布低的速度。这使得av 100能够遵循可以保持av 100免于与运载工具1606发生碰撞的相对较窄的窗口。在一些实施例中,av 100可被配置为替代地采用图16b所描绘的最大加速度分布以最大化av 100和运载工具1606之间的空间量。
[0132]
用于检测对象并基于对象的检测来操作运载工具的示例处理
[0133]
图17是用于检测环境中的对象并基于对象(例如,1406、1504)的检测来操作自主运载工具(例如,av 100)的示例处理1700的流程图。为方便起见,处理1700将被描述为由位于一个或多于一个地点的一个或多于一个计算机的系统来进行。例如,根据本说明书适当编程的图3的计算系统300可以进行处理1700。特别地,在1702处,自主运载工具的一个或多于一个传感器检测接近自主运载工具的预计路线的多个对象。在一些实施例中,附近小汽车上的或附近交叉口中所安装的传感器也可用于检测接近预计路线的非预期对象的存在。传感器所生成的并且与多个对象相关联的传感器数据由自主运载工具的至少一个处理器获得。在1704处,至少一个处理器确定对自主运载工具的轨迹进行限制的静态约束。静态约束防止自主运载工具受到与多个对象的第一子集相关联的任何非临时风险的影响。非临时风险通常是处理器确定为不太可能在自主运载工具穿过预计路线时改变的风险。
[0134]
在1706处,至少一个处理器预测沿着预计路线的作为时间的函数的自主运载工具的位置和速率。在一些实施例中,所预测的位置和速率可以基于静态约束所允许的最大速率。例如,在这种情况下,唯一的静态约束是张贴的限速。该预测可以基于自主运载工具以张贴的限速行驶。在一些实施例中,张贴的限速可以是软静态约束,因为在可以如此做以避免碰撞或其它不期望的事件的情况下,可以允许处理器设置超过张贴的限速的自主运载工具的轨迹。
[0135]
在1708处,至少一个处理器被配置为识别并表征由多个对象的第二子集造成的临时风险。临时风险的表征可以基于历史数据,该历史数据帮助至少一个处理器预测对象的第二子集的将来移动和/或状态变化。例如,历史数据可以包括示出交通信号从黄色改变成红色需要多长时间的记录。预测的置信度可以使得至少一个处理器在做出与对轨迹的改变有关的决定方面或多或少地保守。例如,与在黄灯的持续时间中相比,处理器对行人的步行速率的置信度较低。因此,针对避开行人的任何动态约束将适应行人的更大范围的步行速率。
[0136]
在1710处,至少一个处理器基于自主运载工具的所预测的位置和速率来确定动态约束。在确定静态约束之后进行动态约束计算有助于缩小自主运载工具所具有的用于避开较不可预测的检测到的对象的选项,该较不可预测的检测到的对象对自主运载工具造成临时风险。例如,静态约束可能是这样的:自主运载工具不能充分加速以避免临时风险,而是必须减速以避免该临时风险所造成的损坏或危险。
[0137]
在1712处,至少一个处理器根据静态约束和动态约束来调整自主运载工具的轨迹。应当注意,至少一个处理器可以对动态约束做出导致对轨迹进行附加调整的改变。例如,行人可能突然决定跑着穿过人行横道或者在人行横道中间突然停止。在这种情况下,动态约束将被更新,这导致轨迹改变以适应更新后的动态约束。在1714处,至少一个处理器根据对轨迹的最新更新来导航自主运载工具。
[0138]
在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式从本技术发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/ 子实体。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1