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

用于运载工具的方法、自主运载工具和存储介质与流程

2022-07-30 12:15:58 来源:中国专利 TAG:


1.本说明书涉及自主运载工具的路线规划。


背景技术:

2.自主运载工具(av)的软件堆栈可以实现生成多个候选轨迹的规划模块,av可以沿着这些候选轨迹穿过环境(例如,穿过4路交叉口)。轨迹可以基于地图、av的当前物理状态(例如,当前位置、速度、航向等)以及由av检测到的一个或多个对象来生成。


技术实现要素:

3.本发明的一方面涉及一种用于运载工具的方法,包括:使用至少一个处理器获得针对运载工具要穿过的路段的候选约束的集合;使用所述至少一个处理器确定多个同伦,其中,所述同伦中的各个同伦包括用于穿过所述路段的所述候选约束的不同的相应组合;针对各个同伦:使用所述至少一个处理器,根据第一精度生成所述运载工具在所述路段上的运动的第一预测;使用所述至少一个处理器并且基于所述第一预测,确定所述运载工具能够根据所述同伦的子集穿过所述路段;使用所述至少一个处理器,根据所述同伦的所述子集确定针对所述路段的多个轨迹,其中,确定所述多个轨迹包括:根据第二精度生成所述运载工具在所述路段上的运动的至少一个第二预测,所述第二精度大于所述第一精度;使用所述至少一个处理器选择所述轨迹之一;以及使用所述至少一个处理器向所述运载工具的控制电路发送指令,以根据所选择的轨迹穿过所述路段。
4.本发明的另一方面涉及一种自主运载工具,包括:一个或多于一个计算机处理器;一个或多于一个非暂时性存储介质,其存储有指令,所述指令在由所述一个或多于一个计算机处理器执行时使得进行上述方法。
5.本发明的又一方面涉及一个或多于一个非暂时性存储介质,其存储有指令,所述指令在由一个或多个计算装置执行时使得进行上述方法。
附图说明
6.图1示出具有自主能力的av的示例。
7.图2示出示例“云”计算环境。
8.图3示出计算机系统。
9.图4a示出av的示例架构。
10.图4b示出示例规划模块。
11.图5示出感知模块可以使用的输入和输出的示例。
12.图6示出lidar系统的示例。
13.图7示出操作中的lidar系统。
14.图8示出lidar系统的操作的附加细节。
15.图9示出规划模块的输入和输出之间的关系的框图。
16.图10示出路径规划中所使用的有向图。
17.图11示出控制模块的输入和输出的框图。
18.图12示出控制器的输入、输出和组件的框图。
19.图13例示用于使用基于同伦的方法生成轨迹的示例处理。
20.图14示出示例决策图。
21.图15a~15f示出使用决策图评定同伦的可行性的实际示例。
22.图16示出用于控制av的操作的示例处理的流程图。
具体实施方式
23.在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。
24.在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。
25.此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号路径(例如,总线)。
26.现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。
27.下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:
28.1.总体概述
29.2.系统概述
30.3.av架构
31.4.av输入
32.5.av规划
33.6.av控制
34.7.基于同伦的规划器
35.总体概述
36.av计划模块的所公开的实施例使用基于“同伦”的规划方法来确定av的一个或多个轨迹。作为示例,规划模块(例如,图4a和4b中所示的规划模块404)可以确定av的路线,并且确定用于穿过路线的一个或多个路段的若干候选约束。此外,规划模块可以确定这些约束的可行同伦(例如,av在穿过一个或多个路段时可行地遵守的约束的组合),生成针对可行同伦各自的轨迹,并且选择轨迹之一以供av执行。在一些实现中,可相对于组成路线的路段的子集执行本文中所描述的技术。在一些实现中,可相对于组成路线的所有路段执行本文中所描述的技术。
37.这些技术的一些优点包括减少确定av的轨迹所需的计算资源。例如,在一些实现中,规划模块可以通过以下过程以暴力方式确定轨迹:(i)生成大量候选轨迹(例如,考虑av沿路线可能采取的每个可能轨迹),(ii)评估候选轨迹中的每,以及(iii)选择特定候选轨迹以供执行。然而,跨这样的大搜索空间(例如,包括每种可能轨迹的搜索空间)生成和评估轨迹可能在计算上是昂贵的。为了减少搜索空间,规划模块可以识别搜索空间的对应于可行同伦的子集(例如,av能够在穿过路线的同时安全遵守的约束的组合),并且仅针对该子集生成候选轨迹。因而,可以显著地减少搜索空间。
38.系统概述
39.图1示出具有自主能力的av 100的示例。
40.如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全av、高度av和有条件av。
41.如本文所使用的,av是一种具有自主能力的运载工具。
42.如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。
43.如本文所使用的,“轨迹”是指将av从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。
44.如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,ram和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。
45.如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。
46.如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(suv)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为一条通道的物理区域。
47.如本文所使用的,“车道”是道路的可被运载工具穿过的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的部分空间(例如,小于50%)。例如,具有相距很远的车道标记的道路可能容纳两个或两个以上的运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,因此可被解释为车道比车道标记之间的空间窄,或车道之间有两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如,农村地区的岩石和沿着大道的树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,av可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,av可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,av可以将与车道有关的信息通信至其它av,使得其它av可以使用相同的车道信息来协调av之间的路径规划。
48.如本文所使用的,“同伦”是指av在穿过特定路线时可以遵守的av轨迹的约束集合的子集。
49.如本文所使用的,“可行”是指av在行进到目的地时是否可以遵守同伦中的约束。
[0050]“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。
[0051]
还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。
[0052]
在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。
[0053]
如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0054]
如本文所使用的,av系统是指av以及支持av操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,av系统并入在av内。在实施例中,av系统跨若干地点分布。例如,av系统的一些软件是在类似于下面关于图3描述的云计算环境300的云计算环境上实现的。
[0055]
一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全av、高度av和有条件av,诸如分别为所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分av和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全av到人类操作的运载工具范围内的任何级别的运载工具受益。
[0056]
av与需要人类驾驶员的运载工具相比存在优势。一个优势是安全性。例如,在2016年,美国经历了600万起汽车事故、240万人受伤、40000人死亡和1300万辆运载工具碰撞事故,估计社会成本为9100亿美元多。从1965年到2015年,每行驶1亿英里的美国交通事故死亡人数已从约6人减少到约1人,部分是由于运载工具中所部署的附加安全措施。例如,认为与将发生碰撞有关的额外半秒的警告减轻了60%的前后碰撞。然而,被动安全特征(例如,安全带、安全气囊)在改进该数字方面有可能已达到它们的极限。因而,诸如运载工具的自动控制等的主动安全措施是改进这些统计数据的可能的下一步。由于在95%的碰撞中认为人类驾驶员是造成严重碰撞前事件的原因,因此自动驾驶系统例如通过以下操作,有可能实现更好的安全结果:比人类更好地可靠地识别和避免紧急情况;做出比人类更好的决策,比人类更好地遵守交通法规,并且比人类更好地预测将来事件;并且比人类更好地可靠地控制运载工具。
[0057]
参考图1,av系统120使av 100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。
[0058]
在实施例中,av系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。使用术语“操作命令”来表示使得运载工具进行动作(例如,驾驶机动动作)的可执行指令(或指令集)。操作命令可以非限制性地包括用于使运载工具开始向前移动、停止向前移动、开始向后移动、停止向后移动、加速、减速、进行左转和进行右转的指令。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。
[0059]
在实施例中,av系统120包括用于测量或推断av 100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,av 100的前端的方向)。传感器121的示例是gps、测量运载工具线加速度和角速率两者的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。
[0060]
在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar 123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。
[0061]
在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图3描述的rom 308或存储装置310类似。在实施例中,存储器144与下面描述的主存储器306类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到av100。
[0062]
在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到av 100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(ad hoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与av进行的和在av之间的通信。
[0063]
在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。在实施例中,远程数据库134嵌入在如图2中所描述的云计算环境200中。通信接口140将从传感器121收集的数据或与av 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av 100传输与遥操作有关的信息。在一些实施例中,av 100与其它远程(例如,“云”)服务器136通信。
[0064]
在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在av 100上的存储器144中,或者通过通信信道从远程数据库134传输到av 100。
[0065]
在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在av 100上的存储器144中,或者通过通信信道从远程数据库134传输到av 100。
[0066]
位于av 100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许av系统120执行其自主驾驶能力。
[0067]
在实施例中,av系统120包括耦接到计算装置146的计算机外围设备132,用于向av 100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图3讨论的显示器312、输入装置314和光标控制器316。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。
[0068]
在实施例中,av系统120接收并强制执行例如由乘员指定的或者存储在与乘员相关联的简档中的乘员的隐私级别。乘员的隐私级别确定了如何许可使用存储在乘员简档中的以及/或者存储在云服务器136上且与乘员简档相关联的、与乘员相关联的特定信息(例
如,乘员舒适度数据、生物测量数据等)。在实施例中,隐私级别指定了一旦搭乘完成则被删除的与乘员相关联的特定信息。在实施例中,隐私级别指定了与乘员相关联的特定信息,并且标识被授权访问该信息的一个或多个实体。被授权访问信息的所指定的实体的示例可以包括其它av、第三方av系统、或者可以潜在地访问该信息的任何实体。
[0069]
可以在一个或多个粒度级别指定乘员的隐私级别。在实施例中,隐私级别标识要存储或共享的特定信息。在实施例中,隐私级别适用于与乘员相关联的所有信息,使得乘员可以指定不存储或共享她的个人信息。被许可访问特定信息的实体的指定也可以在各种粒度级别指定。被许可访问特定信息的各种实体集例如可以包括其它av、云服务器136、特定第三方av系统等。
[0070]
在实施例中,av系统120或云服务器136确定av 100或另一实体是否可访问与乘员相关联的某些信息。例如,试图访问与特定时空地点有关的乘员输入的第三方av系统必须例如从av系统120或云服务器136获得授权,以访问与乘员相关联的信息。例如,av系统120使用乘员的指定隐私级别来确定是否可以将与时空地点有关的乘员输入呈现给第三方av系统、av 100或另一av。这使得乘员的隐私级别能够指定允许哪些其它实体接收与乘员的动作有关的数据或与乘员相关联的其它数据。
[0071]
图2例示示例“云”计算环境。云计算是一种服务交付模式,用于使得能够方便、按需地在网络上访问可配置计算资源(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)的共享池。在典型的云计算系统中,一个或多个大型云数据中心容纳用于交付云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。
[0072]
云计算环境200包括一个或多个云数据中心。一般而言,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,并且每行包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在一些实现中,区域、房间、机架和/或行中的服务器基于数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)被排列成若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。
[0073]
云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路耦接的网际网络的任意组合。通过网络交换的数据使用多种网络层协议(诸如,因特网协议(ip)、多协议标签交换(mpls)、异步传输模式(atm)、帧中继(frame relay)等)进行传输。此外,在网络表示多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络表示一个或多个互连网际网络(诸如公共因特网等)。
[0074]
计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、
平板电脑、智能手机、物联网(iot)装置、av(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。
[0075]
图3例示计算机系统300。在实现中,计算机系统300是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。
[0076]
在实施例中,计算机系统300包括总线302或用于传达信息的其它通信机制、以及与总线302耦接以处理信息的硬件处理器304。硬件处理器304是例如通用微处理器。计算机系统300还包括主存储器306,诸如随机存取存储器(ram)或其它动态存储装置,该主存储器306耦接到总线302以存储信息和指令,该信息和指令由处理器304执行。在一个实现中,主存储器306用于在执行要由处理器304执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器304可访问的非暂时性存储介质中时,使计算机系统300变成一个专用机器,该机器被定制以执行指令中指定的操作。
[0077]
在实施例中,计算机系统300还包括只读存储器(rom)308或耦接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置310,并且该存储装置310耦接到总线302以存储信息和指令。
[0078]
在实施例中,计算机系统300通过总线302耦接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器的显示器312。包括字母数字键和其它键的输入装置314耦接到总线302,用于向处理器304传送信息和命令选择。另一种类型的用户输入装置是光标控制器316,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器304,并用于控制光标在显示器312上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。
[0079]
根据一个实施例,本文的技术由计算机系统300响应于处理器304执行主存储器306中包含的一个或多个指令的一个或多个序列而执行。这些指令从诸如存储装置310的另一存储介质读入主存储器306。执行主存储器306中包含的指令序列使处理器304执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。
[0080]
如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、nv-ram、或任何其它存储芯片或存储盒。
[0081]
存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线302的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。
[0082]
在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器304以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统300的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线302上。总线302将数据承载到主存储器306,处理器304从主存储器306检索并执行指令。主存储器306接收的指令可以可选地在处理器304执行之前或之后存储在存储装置310上。
[0083]
计算机系统300还包括耦接到总线302的通信接口318。通信接口318提供耦接到连接至本地网络322的网络链路320的双向数据通信。例如,通信接口318是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口318是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口318发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。
[0084]
网络链路320通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路320通过本地网络322提供与主计算机324或与由因特网服务提供商(isp)326运营的云数据中心或设备的连接。isp 326又通过现在通常称为“因特网”328的世界范围分组数据通信网络来提供数据通信服务。本地网络322和因特网328两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路320上并通过通信接口318的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统300的数字数据。在实施例中,网络320包含上述云202或云202的一部分。
[0085]
计算机系统300通过(一个或多个)网络、网络链路320和通信接口318发送消息和接收包括程序代码的数据。在实施例中,计算机系统300接收用于处理的代码。接收到的代码在接收到时由处理器304执行,和/或存储在存储装置310中,或存储在其它非易失性存储装置中以便以后执行。
[0086]
av架构
[0087]
图4a示出用于av(例如,图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]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。模块402、404、406、408和410各自有时被称为处理电路(例如,计算机硬件、计算机软件、或者这两者的组合)。模块402、404、406、408和410中的任何或全部的组合也是处理电路的示例。
[0088]
在使用中,规划模块404接收表示目的地412的数据,并且确定表示av100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。
[0089]
感知模块402使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象416的场景描述提供至规划模块404。
[0090]
规划模块404还从定位模块408接收表示av位置418的数据。定位模块408通过使用来自传感器121的数据和来自数据库模块410的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块408使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块408所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。在实施例中,高精度地图是通过将数据经由自动或手动注释添加到低精度地图所构建的。
[0091]
控制模块406接收表示轨迹414的数据和表示av位置418的数据,并且以将使得av 100行驶轨迹414到达目的地412的方式来操作av的控制功能420a~420c(例如,转向、油门、制动、点火系统)。例如,如果轨迹414包括左转,则控制模块406将以如下方式操作控制功能420a~420c:转向功能的转向角度将使得av 100左转,并且油门和制动将使得av 100在进行转弯之前暂停并等待经过的行人或运载工具。
[0092]
图4b是根据一个或更多个实施例的规划模块404的框图。规划模块404包括路线规划器451、逻辑约束452、同伦提取器453、基于样本的机动动作实现器454、轨迹分数生成器455、跟踪控制器456和av 457。
[0093]
在实施例中,路线规划器451:1)接收初始和最终状态;2)利用车道路线规划器规划路障/车道的期望序列;3)基于车道改变将路线分成路段,使得路段不包含车道改变;4)基于投影在路障上的av的状态(来自动态世界模型458)选择av所在的路段;5)提取所选择的路段的基线路径(其可以标记为在期望车道改变的情况下的“期望的”基线路径);以及6)基于最大/最小长度修整基线路径。在不需要车道改变的情况下,提取相邻基线路径并仅将其标记为“可选的”,这意味着av可以使用该车道(如果需要)以避免碰撞。
[0094]
在实施例中,路线规划器451生成av的操作环境的图形表示、基于传感器数据的av的物理状态(例如,速率、位置)以及可能的结果。在实施例中,图形表示是包括多个节点的有向图或决策图(下面描述),其中各个节点表示av对于特定驾驶场景的决策空间的样本,例如,与其它运载工具和对象以及环境约束(例如,可驾驶区域、车道标记)相关的多个机动动作。有向图的边表示对于特定驾驶场景av可用的不同轨迹。
[0095]
在实施例中,逻辑约束452包括“硬”约束和“软”约束。硬约束是必须不被违反的逻辑约束,因为如果被违反,av将与其它对象(诸如可能穿过道路“溜达”的行人等)碰撞。注意,硬约束并不意味着“不碰撞”。而是,硬约束可以是例如可能导致碰撞的空间和速率约束的组合。例如,硬约束可以用词语表示为:“如果av在车道a中以30mph前进或者在车道b中以
2mph/s加速,则将与行人碰撞”。因此,正式表示的硬约束是“在车道a中不以30mph前进”和“在车道a中不超过25mph”。
[0096]
软约束是av应该遵循但是可以被违反以例如完成到目的地的行程或避免碰撞的约束。“软”约束的一些示例包括但不限于:乘客舒适度约束,以及用以向正在穿过街道(溜达)的行人和av乘客提供舒适度的与该行人的横向间隙的最小阈值。在实施例中,软约束体现在一个或多个规则手册中。软约束可以包括随时间改变的空间约束。空间约束可以是可驾驶区域。
[0097]
在一些实施例中,不同的约束被不同地采样。例如,同伦提取器453可以以10hz操作,并且实现搜索可以以20hz两倍快地进行。
[0098]
在实施例中,同伦提取器453生成av的潜在机动动作集合。代替假设目标、然后选择进行最佳的目标,同伦提取器453假设活动约束集合(称为“同伦”(下面定义)),然后选择产生较低成本的约束集合。同伦提取器453从路线规划器451接收包含基线路径的路线规划。基线路径是av所位于的车道的最佳估计,并且是当av进行车道改变时可使用的可选路径(潜在期望的路径)。在实施例中,路线规划器451还包含沿着基线路径计算(例如,用边界生成器计算)的速率平方和空间约束。在一些实现中,路线规划可以包含av可以穿过的多个基线路径。路线规划之一可以被指定为“锚路径”。默认情况下,如果锚路径未被阻挡(例如,被其它运载工具、行人、障碍物等阻挡),则av可以穿过该锚路径。如果锚路径被阻挡,则av可以穿过其它基线路径之一。
[0099]
给定av的初始状态、av的最终状态、场景中的其它智能体的地图表示和预测,同伦提取器453找到av可以进行的所有“近似”可行机动动作。注意,在该上下文中,所得到的机动动作可能不是动态可行的,但是同伦提取器453保证所得到的描述机动动作的约束集合不是空集(还考虑av足迹)。av机动动作由同伦描述。如上所述,同伦是av在穿过特定路线时可以遵守的av轨迹的约束集合的子集。在一些实现中,同伦可以是在起始位置(av状态)处开始并在最终状态处结束的任何路径可以连续变形的唯一空间。为了找到这些机动动作,同伦提取器453在av可以相对于其它智能体采取的所有可能的决策(例如,在左侧/右侧通过、在之前或之后通过或仅停留)上迭代。简而言之,同伦提取器453的输出描述av到智能体的时空地点。尽管这可能是计算上昂贵的搜索,但是由于一组简单的检查,可以消除所有不可行的组合。
[0100]
为了能够描述表示其它智能体位于何处以及av与这些智能体的碰撞意味着什么的约束,每个智能体被转换为基于站和基于空间的障碍物。基于站的约束随时间被参数化,而基于空间的约束随站和时间两者被参数化。参考图13~16描述关于同伦提取器453的进一步细节。
[0101]
在实施例中,实现搜索454a

454n由基于样本的机动动作实现器454进行,以生成所有提取的同伦的轨迹1

n的集合。基于样本的机动动作实现器454在2021年12月7日提交的题为“sampling-based manuver realizer”的共同未决申请(代理案卷号46154-0310001)中进一步详细描述,其全部内容通过引用并入本文。用于生成机动动作和/或轨迹的示例技术还在2021年12月7日提交的题为“vehicle operation using manuver generation”的共同未决申请(代理案卷号46154-0316001)中进一步详细描述,其全部内容通过引用并入本文。
[0102]
在实施例中,轨迹分数生成器455使用一个或多个规则手册、一个或多个机器学习模型459以及/或者一个或多个安全机动动作模型460来对轨迹1

n进行评分,并且使用分数来选择最符合一个或多个规则手册中的规则的轨迹。在实施例中,使用预定义的成本函数来生成轨迹分数。
[0103]
在使用成本函数的实施例中,可以使用全序或偏序分层成本函数来对轨迹进行评分。基于优先级或相对重要性将成本函数应用于与违反和/或满足一个或多个规则手册中的规则层级相关联的度量(例如,布尔值)。基于优先级的规则的示例层级如下(从上到下):碰撞避免(布尔)、阻塞(布尔)、期望车道中的最终状态(布尔)、车道改变(布尔)和舒适度(双浮点)。在该示例中,每个非零优先级规则被定义为布尔,以避免高优先级成本的过度优化。最重要或最高优先级的规则是避免碰撞,随后是避免阻塞,随后是避免期望车道中的最终状态,随后是车道改变,随后是舒适度规则(例如,最大加速度或减速度)。这些示例规则更全面地描述如下:
[0104]
碰撞:如果沿着评分轨迹存在av运载工具的足迹与任何其它智能体/对象的足迹碰撞(例如,如果它们的多边形相交,则它们被认为碰撞)的状态,则设置为真。
[0105]
阻塞:如果最终同伦不包含期望的目标状态并且轨迹的最终速度低于指定阈值(例如,2m/s),则认为轨迹被阻塞。目标状态可以是例如av的特定位置(例如,根据坐标系表示,诸如(x,y)位置等)。
[0106]
期望车道中的最终状态:如果在期望车道改变的车道中找到轨迹的最终状态,则设置为真,并且如果av的足迹在轨迹期间的任何时间穿过车道分隔物,则设置为真。
[0107]
舒适度:可以考虑加速度/减速度、制动距离、横向间隙的最大值。
[0108]
对于各个轨迹,检查规则并确定度量。使用度量来公式化成本函数,然后使用例如最小二乘公式或任何其它合适的求解器来最小化成本函数。具有最低成本的轨迹是所选择的轨迹,即,具有最少规则违反或最符合的轨迹。在实施例中,最小化成本函数可以用于对轨迹进行评分,如下面进一步详细描述的。注意,上述规则仅仅是示例。本领域普通技术人员将认识到,任何合适的成本函数和规则手册可以用于轨迹评分,包括具有更多或更少规则的规则手册。
[0109]
对于机器学习实施例,轨迹分数生成器455可以实现一个或多个机器学习模型459以及/或者安全机动动作模型460以对轨迹进行评分。例如,神经网络可以用于预测轨迹的分数。
[0110]
跟踪控制器456用于改善规划模块404针对计算需求中的意外尖峰的鲁棒性。跟踪控制器456是快速执行跟踪控制器,其提供稳定且平滑的控制输入并允许规划模块404更快地对干扰作出反应。在实施例中,跟踪控制器456以40hz运行。对跟踪控制器456的输入是由轨迹分数生成器455提供的所选择的且已按时间参数化的轨迹,使得跟踪控制器456可以查询av在给定时间的确切期望位置。
[0111]
在实施例中,跟踪控制器456被公式化为具有对控制输入和状态的约束的一类模型预测控制(mpc)问题。然而,也可以使用任何合适的多变量控制算法。mpc型公式使用处理的内部动态模型、滚动时域上的成本函数j以及用于使用控制输入u最小化成本函数j的优化算法。用于优化的示例成本函数是二次成本函数。
[0112]
在实施例中,动态模型是笛卡尔坐标或任何其它合适的参考坐标系中的运动学运
载工具模型。例如,运动学运载工具模型可以是自行车模型,其允许在几何上定义侧滑角,以根据相对于av的重心表示的变量来表示横摆率。在实施例中,成本函数j遵循轮廓误差公式(与锚路径的正交偏差),其中目标将最小化横向和纵向误差。
[0113]
av输入
[0114]
图5示出感知模块402(图4a)所使用的输入502a-502d(例如,图1中所示的传感器121)和输出504a-504d(例如,传感器数据)的示例。一个输入502a是lidar(光检测和测距)系统(例如,图1所示的lidar 123)。lidar是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出504a。例如,lidar数据是用于构造环境190的表示的3d或2d点(也称为点云)的集合。
[0115]
另一输入502b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统产生radar数据作为输出504b。例如,radar数据是用于构造环境190的表示的一个或多个射频电磁信号。
[0116]
另一输入502c是照相机系统。照相机系统使用一个或多个照相机(例如,使用诸如电荷耦接器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出504c。照相机数据通常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在一些实施例中,照相机系统被配置为“看见”远处的(例如,av前方的远至1公里或更远的)对象。因此,在一些实施例中,照相机系统具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。
[0117]
另一输入502d是交通灯检测(tld)系统。tld系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出504d。tld数据经常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得av 100能够访问这些对象所提供的所有相关导航信息。例如,tld系统的视角为约120度或更大。
[0118]
在一些实施例中,使用传感器融合技术来组合输出504a-504d。因而,将个体输出504a-504d提供至av 100的其它系统(例如,提供至如图4a和4b所示的规划模块404),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。
[0119]
图6示出lidar系统602的示例(例如,图5所示的输入502a)。lidar系统602从发光器606(例如,激光发射器)发射光604a-604c。lidar系统所发射的光通常不在可见光谱中;例如,经常使用红外光。所发射的光604b中的一些光遇到物理对象608(例如,运载工具)并
100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于av 100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。
[0126]
图10示出在路径规划中(例如,由规划模块404(图4a和4b))使用的有向图1000。一般而言,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。
[0127]
在实施例中,有向图1000具有表示起点1002和终点1004之间的av 100可能占用的不同地点的节点1006a-1006d。在一些示例中,例如,在起点1002和终点1004表示不同的都市区域时,节点1006a-1006d表示道路的路段。在一些示例中,例如,在起点1002和终点1004表示相同道路上的不同地点时,节点1006a-1006d表示该道路上的不同位置。这样,有向图1000包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点1002和终点1004相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示av 100的视场中的物理地点的一部分的一些高粒度信息。
[0128]
节点1006a-1006d不同于无法与节点重叠的对象1008a-1008b。在实施例中,在粒度低时,对象1008a-1008b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象1008a-1008b表示av 100的视场中的物理对象,例如其它汽车、行人、或av 100不能与之共用物理空间的其它实体。在实施例中,对象1008a-1008b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。
[0129]
节点1006a-1006d通过边1010a-1010c连接。如果两个节点1006a-1006b通过边1010a连接,则av 100可以在一个节点1006a和另一节点1006b之间行驶,例如,而不必在到达另一节点1006b之前行驶到中间节点。(即av 100在由相应节点表示的两个物理位置之间行驶。)边1010a-1010c通常是双向的,从某种意义上,av 100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边1010a-1010c是单向的,从某种意义上,av 100可以从第一节点行驶到第二节点,然而av 100不能从第二节点行驶到第一节点。在边1010a-1010c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或地图约束因而仅能沿一个方向穿过的其它特征的情况下,边1010a-1010c是单向的。
[0130]
在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边组成的路径1012。
[0131]
边1010a-1010c具有关联成本1014a-1014b。成本1014a-1014b是表示在av100选择该边的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边1010a所表示的物理距离是另一边1010b所表示的物理距离的两倍,则第一边1010a的关联成本1014a可以是第二边1010b的关联成本1014b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边1010a-1010b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边1010a与另一边1010b相比需要更多的燃料。
[0132]
在规划模块404识别起点1002和终点1004之间的路径1012时,规划模块404通常选择针对成本优化的路径,例如,在将边的个体成本相加到一起时具有最小总成本的路径。
[0133]
av控制
[0134]
图11示出(例如,如图4a所示的)控制模块406的输入和输出的框图1100。控制模块根据控制器1102而操作,该控制器1102例如包括:与处理器304类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器306、rom 308和存储装置310类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器1102的操作。
[0135]
在实施例中,控制器1102接收表示期望输出1104的数据。期望输出1104通常包括速度,例如速率和航向。期望输出1104例如可以基于从(例如,如图4a和4b所示的)规划模块404接收到的数据。根据期望输出1104,控制器1102产生可用作油门输入1106和转向输入1108的数据。油门输入1106表示例如通过接合转向踏板或接合另一油门控件来接合av 100的油门(例如,加速控制)以实现期望输出1104的大小。在一些示例中,油门输入1106还包括可用于接合av 100的制动器(例如,减速控制)的数据。转向输入1108表示转向角度,例如av的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出1104的角度。
[0136]
在实施例中,控制器1102接收在调整提供至油门和转向的输入时使用的反馈。例如,如果av 100遇到诸如山丘等的干扰1110,则av 100的测量速率1112降至低于期望输出速率。在实施例中,任何测量输出1114均被提供至控制器1102,使得例如基于测量速率和期望输出之间的差分1113来进行所需的调整。测量输出1114包括测量位置1116、测量速度1118(包括速率和航向)、测量加速度1120和av 100的传感器可测量的其它输出。
[0137]
在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰1110有关的信息,并且该信息被提供至预测性反馈模块1122。然后,预测性反馈模块1122将控制器1102可用于相应地调整的信息提供至控制器1102。例如,如果av 100的传感器检测到(“看见”)山丘,则控制器1102可以使用该信息来准备在适当时间接合油门,以避免显著减速。
[0138]
图12示出控制器1102的输入、输出和组件的框图1200。控制器1102具有影响油门/制动器控制器1204的操作的速率分析器1202。例如,速率分析器1202根据例如由控制器1102接收到并由速率分析器1202处理后的反馈,来指示油门/制动器控制器1204使用油门/制动器1206进行加速或进行减速。
[0139]
控制器1102还具有影响方向盘控制器1210的操作的横向跟踪控制器1208。例如,横向跟踪控制器1208根据例如由控制器1102接收到并由横向跟踪控制器1208处理后的反馈,来指示方向盘控制器1210调整转向角致动器1212的位置。
[0140]
控制器1102接收用于确定如何控制油门/制动器1206和转向角致动器1212的若干输入。规划模块404提供控制器1102例如选择av 100开始操作时的航向并确定在av 100到达十字交叉路口时穿过哪个道路路段所使用的信息。定位模块408例如将描述av 100的当前地点的信息提供至控制器1102,使得控制器1102可以确定av 100是否处于基于正控制油门/制动器1206和转向角致动器1212的方式而预期的地点。在实施例中,控制器1102接收来
自其它输入1214的信息,例如从数据库、计算机网络等接收到的信息。
[0141]
基于同伦的规划器
[0142]
如本文所述(例如,关于图4、图9和图10),规划模块404可以接收表示目的地的数据。此外,规划模块404可以接收来自上述一个或多个模块的数据(例如,来自感知模块402、定位模块408、数据库模块410等的数据)。作为示例,数据可以使用一个或多个传感器、av的位置、地理数据或本文描述的任何其它数据来表示附近的物理对象。此外,使用该数据,规划模块404可以确定(例如,生成)表示av可以行进以到达目的地的轨迹的数据。
[0143]
在一些实现中,规划模块404可以通过以下过程来以暴力方式确定轨迹:(i)生成大量候选轨迹(例如,以考虑av沿着路线可能采取的每个可能轨迹),(ii)评估各个候选轨迹,以及(iii)选择特定候选轨迹以供执行。然而,跨这样大的搜索空间(例如,包括每个可能轨迹的搜索空间)生成和评估各个轨迹在计算上可能是昂贵的。
[0144]
为了减少搜索空间,在一些实现中,规划模块404可以根据基于“同伦”的方法来确定av(例如,av系统120)的轨迹。作为示例,规划模块404可以确定av的路线,并且确定用于穿过路线的若干候选约束。此外,规划模块404可以确定这些约束的可行同伦(例如,av能够在穿过路线时安全地遵守的约束的组合,诸如不违反任何交通法规并且不与任何障碍物、运载工具、行人等接触)。此外,规划模块404可以生成针对各个可行同伦的轨迹(同时放弃生成针对不可行同伦的轨迹),并选择轨迹之一以供av执行。因此,可以更快速且有效地选择轨迹。
[0145]
在一些实现中,可以针对组成路线的路段的子集来进行本文描述的技术。在一些实现中,可以针对组成路线的所有路段来进行本文描述的技术。
[0146]
图13示出用于根据基于“同伦”的方法来确定av的轨迹的示例处理1300。在一些实现中,可以至少部分地使用av 100的规划模块404的同伦提取器453来进行处理1300(例如,如关于图4a和4b所描述的)。
[0147]
如图13所示,同伦提取器453可以生成与av穿过路线的一个或多个路段到目的地相关联的候选约束1302的集合(例如,av在穿过路线时可以遵守的轨迹的约束)。在一些实现中,候选约束1302中的各个候选约束可以包括特定参数和相应的参数值。例如,一个候选约束可以是特定参数c1等于特定参数值x1。作为另一示例,另一候选约束可以是同一参数c1等于不同的参数值x2。作为另一示例,另一候选约束可以是不同的参数c2等于参数值y1。
[0148]
在一些实现中,候选约束1302中的至少一些可以是可选的或“软的”(例如,av在穿过到目的地时不一定需要遵守这些候选约束)。在一些实现中,候选约束1302中的至少一些可能是必需的或“硬的”(例如,av在穿过到目的地时必须遵守这些候选约束)。
[0149]
候选约束1302可以表示在av穿过到目的地时可能限制、控制或以其它方式影响av的操作的任何方面。
[0150]
作为示例,候选约束1302中的至少一些可能涉及av的进行能力。例如,一个或多个候选约束1302可以基于av的进行能力指定av要遵守某些地图约束,包括但不限于:加速度限制、制动限制、限速、转弯速率限制、惯性限制等。作为另一示例,一个或多个候选约束1032可以指定av的运动范围(例如,av可以向前或向后行进,同时保持直线或转弯,但不能从一侧行进到另一侧)。
[0151]
作为另一示例,候选约束1302中的至少一些可以是涉及av可以使用以穿过到目的
地的一个或多个道路的地图几何形状的地图约束。例如,一个或多个候选约束1302可以指定av将被限制在道路的某些车道和/或道路的某些边界内(例如,在道路的可导航部分的左边缘和右边缘之间)。作为另一示例,一个或多个候选约束1302可以指定av不能通过的道路上的障碍物的存在和地点。
[0152]
作为另一示例,候选约束1302中的至少一些可以涉及关于av的操作的法律约束。例如,一个或多个候选约束1302指定av要遵守道路的特定限速和/或道路的特定交通流(例如,行驶方向)。作为另一示例,一个或多个候选约束可以指定av要遵守特定管辖区域中的交通规则或法律。
[0153]
作为另一示例,候选约束1302中的至少一些可能涉及av的一个或多个乘客的预测舒适度。例如,一个或多个候选约束1302可以基于这些约束对av的乘客的舒适度的影响来指定av遵守某些加速度限制、制动限制、限速、转弯速率限制等。
[0154]
作为另一示例,候选约束1302中的至少一些可能涉及av的一个或多个乘客的预测安全性和/或av的安全性。例如,一个或多个候选约束1302可以指定av不与某些对象(例如,其它运载工具、行人、障碍物等)接触,保持在道路的边界内,在道路的交通方向上行驶,不以将伤害其乘客的方式加速或减速等。作为另一示例,候选约束1302中的至少一些可以指定av与障碍物、运载工具、行人或其它对象碰撞的可能性小于阈值。在一些实现中,可以由同伦提取器453使用一个或多个计算机模拟或动态模型来计算可能性。
[0155]
作为另一示例,候选约束1302中的至少一些可以指定av进行某些操作或任务。例如,候选约束可以指定av进行特定机动动作。作为示例,候选约束可以指定av在特定时间和地点在道路上改变车道。作为另一示例,候选约束可以指定av在特定时间和地点保持在其当前地点。作为另一示例,候选约束可以指定av在特定时间和地点超过特定运载工具。作为另一示例,候选约束可以指定av在特定时间和地点保持在特定运载工具后方。作为另一示例,候选约束可以指定av在沿着av的路径进一步前进之前等待运载工具或行人离开该路径。作为另一示例,候选约束可以指定av在运载工具或行人进入路径之前沿着该路径前进。
[0156]
尽管本文描述了示例候选约束1302,但是这些仅仅是说明性示例。在实践中,候选约束1302可以包括附加约束,作为本文描述的约束的替代或补充。
[0157]
同伦提取器453可以基于候选约束1302生成一个或多个同伦1304a-1304n。各个同伦可以包括候选约束1302的不同的相应子集。例如,各个同伦可以包括候选约束1302中的不同的一个和/或候选约束1302中的两个或更多个的不同组合。
[0158]
在一些实现中,各个同伦可以包括“可选的”候选约束1302中的一个或多个。此外,各个同伦可以包括各个“所需的”候选约束1302。在实践中,特定候选约束是“可选的”还是“必需的”可以根据实现而变化。作为示例,在一些实现中,涉及av的进行能力的候选约束1302、av穿过到目的地可以使用的一个或多个道路的地图约束、关于av的操作的法律约束以及/或者av的一个或多个乘客的安全性可以被认为是“必需的”。作为另一示例,在一些实现中,涉及av的一个或多个乘客的舒适度的候选约束1302以及/或者指定av进行某些操作或任务的候选约束1302可以被认为是“可选的”。
[0159]
在图13所示的示例中,第一同伦1304a(“同伦1”)包括:(i)参数c1等于参数值x1的“可选的”候选约束,(ii)参数c2等于参数值y2的“可选的”候选约束,以及(iii)各个“所需的”候选约束。
[0160]
此外,第二同伦1304b(“同伦2”)包括:(i)参数c1等于参数值x1的“可选的”候选约束(如在同伦1中),(ii)参数c2等于参数值y2的“可选的”候选约束(如在同伦1中),(iii)参数cn等于参数值z1的附加“可选的”候选约束,以及(iv)各个“所需的”候选约束(如在同伦1中)。也就是说,尽管同伦2共享与同伦2中相同的一些候选约束,但是它包括不在同伦1中的附加约束。
[0161]
此外,第三同伦1304n(“同伦n”)包括:(i)参数c1等于参数值x1的“可选的”候选约束(如在同伦1和2中),(ii)参数c2等于参数值y2的“可选的”候选约束(如在同伦1和2中),(iii)参数cn等于参数值z2的“可选的”候选约束,以及(iv)各个“所需的”候选约束(如在同伦1和2中)。也就是说,尽管同伦3共享与同伦1和2中相同的一些候选约束,但是它为其候选约束之一指定不同的参数值。
[0162]
尽管图13中示出了三个示例同伦,但这仅仅是说明性示例。在实践中,同伦提取器453可以生成任何数量的同伦,各个同伦具有候选约束1302的不同的相应子集。
[0163]
同伦提取器453确定各个同伦1304a-1304n各自是否“可行”。作为示例,对于各个同伦,同伦提取器453可以确定av是否可以根据该同伦的候选约束穿过到目的地,而不会与道路上的其它对象碰撞,不会负面影响其乘客的安全,不会违反管辖区域的交通规则或法律等。
[0164]
在一些实现中,同伦提取器453可以通过预测av的运动来确定同伦1304a-1304n各自是否可行。例如,对于各个同伦,同伦提取器453使用计算机模拟或动态模型来进行av运动的模拟,以预测av在穿过路段时将如何移动,同时尝试遵守该同伦的各个候选约束。如果同伦提取器453确定av不能在遵守该同伦的各个候选约束的同时穿过路段,则同伦提取器453确定同伦“不可行”。如果同伦提取器453确定av能够在遵守该同伦的各个候选约束的同时穿过路段,则同伦提取器453确定同伦是“可行”的。
[0165]
作为示例,同伦可以包括候选约束的子集,其指定:(i)av在某些时间和地点进行某些操作和任务;(ii)av遵守管辖区内的所有交通规则和法律;(iii)av以不超过其进行能力的方式进行;以及(iv)av不与道路上的任何对象或障碍物碰撞。同伦提取器453可以根据这些候选约束来模拟av的运动。如果同伦提取器453确定av不能进行指定的操作和任务,除非其违反某些交通规则或法律,则同伦提取器453确定同伦“不可行”。类似地,如果同伦提取器453确定av不能在不与其它对象碰撞的情况下进行指定的操作和任务,则同伦提取器453也确定同伦“不可行”。类似地,如果同伦提取器453确定进行指定的操作和任务将需要超过av的进行能力,则同伦提取器453也确定同伦“不可行”。然而,如果同伦提取器453确定av可以进行指定的操作和任务,并且不违反任何其它约束,则同伦提取器453确定同伦“可行”。
[0166]
例如,在图13所示的示例中,同伦提取器453确定同伦1和n“可行”,并且同伦2“不可行”(例如,由于违反由同伦2指定的候选约束1302中的一个或多个)。
[0167]
此外,同伦提取器453可以根据第一精度确定同伦1304a-1304n各自是否“可行”。
[0168]
规划模块404生成被确定为“可行”的各个同伦的一个或多个轨迹,并且避免生成被确定为“不可行”的各个同伦的轨迹。例如,对于被确定为“可行”的各个同伦,规划模块404(例如,使用基于样本的机动动作实现器454)可以使用计算机模拟以及一个或多个动态模型、av的运动的控制法律和等效物来生成av的使其能够穿过路段的一个或多个轨迹,同
时遵守该同伦的各个候选约束。在一些实现中,可以使用指定环境中的一个或多个对象的运动的一个或多个等效物和/或控制法律来实现模拟和/或动态模型。本文描述了用于生成av的一个或多个轨迹的示例技术(例如,参考图4a、4b、9和10)。
[0169]
例如,在图13所示的示例中,规划模块404(例如,使用基于样本的机动动作实现器454)生成对应于同伦1的一个或多个轨迹1306a,以及对应于同伦n的一个或多个轨迹1306b(两者都被确定为“可行”)。然而,规划模块404避免生成对应于同伦2的任何轨迹(其被确定为“不可行”)。
[0170]
在一些实现中,规划模块404(例如,使用基于样本的机动动作实现器454)可以根据第二精度生成被确定为“可行”的各个同伦的一个或多个轨迹。该第二精度可以高于第一精度。
[0171]
在一些实现中,预测av的运动和/或生成av的轨迹所用的精度可以指以下各项中的一个或多个:(i)预测av的运动和/或生成av的轨迹的空间分辨率,(ii)预测av的运动和/或生成av的轨迹的时间分辨率,(iii)生成用于预测av的运动和/或生成av的轨迹的计算机模拟或动态模型的复杂性,(iv)为预测av的运动和/或生成av的轨迹而分配的计算资源量,(v)与预测av的运动和/或生成av的轨迹相关联的容差或误差范围,以及/或者可能影响如何预测av的运动和/或如何生成av的轨迹的其它此类特性。
[0172]
作为示例,同伦提取器453最初可以根据第一空间和/或时间分辨率生成针对各个同伦的预测。随后,规划模块404(例如,使用基于样本的机动动作实现器454)可以根据更高的第二空间和/或时间分辨率生成被确定为“可行”的各个同伦的一个或多个轨迹。例如,同伦提取器453最初可以根据较低的空间分辨率(例如,以10英尺的增量)针对各个同伦预测av的运动。随后,规划模块404(例如,使用基于样本的机动动作实现器454)可以根据较高的空间分辨率(例如,1英尺增量)生成被确定为“可行”的各个同伦的一个或多个轨迹。作为示例,同伦提取器453最初可以针对各个同伦根据较低的时间分辨率(例如,以10秒的增量)预测av的运动。随后,基于样本的机动动作实现器454可以根据较高的空间分辨率(例如,1秒的增量)生成被确定为“可行”的各个同伦的一个或多个轨迹。尽管上面描述了示例空间和/或时间分辨率,但是这些仅仅是说明性示例。在实践中,可以使用其它空间和/或时间分辨率来预测av的运动和/或生成av的一个或多个轨迹。
[0173]
作为另一示例,同伦提取器453最初可以根据第一计算机模拟或第一动态模型生成各个同伦的预测。随后,基于样本的机动动作实现器454可以根据比第一计算机模拟或第一动态模型更复杂的第二计算机模拟或第二动态模型(例如,更多的变量和/或参数被建模)生成被确定为“可行”的各个同伦的一个或多个轨迹。例如,第一计算机模拟或动态模型可能需要更少的计算资源来生成预测(但可能不太精确),而第一计算机模拟或动态模型可能需要更多的计算资源来生成轨迹(但可能更精确)。作为另一示例,第一计算机模拟或动态模型可能需要更少的数据输入和/或不太全面的数据输入来生成预测(但可能不太精确),而第一计算机模拟或动态模型可能需要更多的数据输入和/或更全面的数据输入来生成轨迹(但可能更精确)。示例数据输入可以包括例如传感器数据、交通数据、天气数据和/或关于av的环境的特性的其它数据。
[0174]
规划模块404(例如,使用轨迹分数生成器455)选择所生成的轨迹1306a和1306b中的一个,并且诸如通过将所选择的轨迹提供给跟踪控制器456等来指示av执行所选择的轨
迹。例如,在图13所示的示例中,轨迹分数生成器455已经选择了轨迹1306a(“轨迹1”)优先于轨迹1306b(“轨迹n”)。
[0175]
如上所述(例如,参考图4b),跟踪控制器456可以基于所选择的轨迹生成av的稳定且平滑的控制输入,并且将输入提供给av的适当子系统以供执行。作为示例,跟踪控制器456可以基于所选择的轨迹生成油门输入、转向输入和/或制动输入,并且将各个输入提供给av的适当子系统以供执行。
[0176]
在一些实现中,可以通过计算所生成的各个轨迹的质量分数或其它度量并且基于质量分数或度量选择轨迹来选择这些轨迹之一。例如,对于各个轨迹,质量分数或度量基于各种因素,诸如av的乘客的预测安全性、av的乘客的预测舒适度、av将消耗的预测资源(例如,燃料、电池电荷等)、穿过到目的地将花费的预测时间量和/或其它因素。可以基于质量分数或度量来选择轨迹之一(例如,具有最高质量分数或度量的轨迹)。
[0177]
在一些实现中,各个因素可以具有不同的相应权重,使得某些因素可以比其它因素对质量分数或度量具有更大的影响。例如,如果乘客安全性比资源消耗更重要,则可以在计算质量分数或度量时为乘客安全性分配更大的权重。在一些实现中,可以使用加权和作为评分函数来计算质量分数或度量。作为示例,可以使用以下函数来计算轨迹t的质量分数或度量q:
[0178]qt
=w1x1 w2x2,

wnxn,
[0179]
其中xi是与轨迹t的特定因素(例如,安全性、资源消耗、穿过轨迹所需的时间等)相关联的子分数,并且wi是分配给该子分数的权重。在一些实现中,较高的xi值可以指示轨迹相对于轨迹的特定因素(例如,更安全、需要消耗更少的资源、需要更少的时间来穿过等)是更期望的。在一些实现中,较高的wi值指示其相应因素在计算质量分数或度量时被给予较大权重。
[0180]
在一些实现中,规划模块404(例如,使用基于实现样本的机动动作实现器454)还可以确定可以覆盖(override)基于同伦1304a-1304n生成的轨迹的一个或多个紧急机动动作1308。例如,紧急机动动作可以对应于规避动作(例如,突然转弯、制动、加速、车道改变等),以避免不安全或其它不期望的结果(例如,碰撞、驶离道路等)。在一些实现中,规划模块404可以独立于所生成的轨迹来规划紧急机动动作,并且基于一个或多个数据输入利用紧急机动动作选择性地覆盖所选择的轨迹的执行。示例数据输入可以包括例如指示紧急动作可以被批准的传感器数据、来自av的乘客的指示要进行紧急动作的命令、来自远程监视或控制av的用户的指示要进行紧急动作的命令、来自远程计算机系统的指示要进行紧急动作的自动命令等。
[0181]
在一些实现中,同伦提取器453可以基于决策图来确定某些同伦是“可行”还是“不可行”。作为说明性示例,图14中示出了简化决策图1400。
[0182]
决策图1400包括若干互连节点1402,各个互连节点1402对应于候选约束的不同的相应子集。在一些实现中,可以分层地(例如,根据不同的层级)并且根据一个或多个分支来布置节点,其中“子”节点继承其“父”节点的候选约束并且另外包括一个或多个附加候选约束。在一些实现中,决策图1400可以类似于图10中所示的有向图1000。
[0183]
同伦提取器453可以确定根据各个节点的候选约束穿过到目的地(从具有最高级或层的节点开始,并且前进通过连续较低级或层的节点)的可行性。如果同伦提取器453确
定遵守特定节点的候选约束不可行,则同伦提取器453可以避免评定该节点的子节点的可行性。
[0184]
例如,参考图14,同伦提取器453确定根据最高级节点1402a的候选约束穿过到目的地可行。基于该确定,同伦提取器453随后评定子节点1402b和1402c各自的可行性,并且确定根据节点1402b的候选约束穿过到目的地不可行,但是根据节点1402c中的候选约束穿过到目的地可行。基于该确定,同伦提取器453避免评定依赖于节点1402b的任何节点的可行性,并且继续评定依赖于节点1402c的节点的可行性。上述处理可以继续,直到决策图1400中的各个节点已被评定或从评定中省略(由于“不可行”的父节点)为止。
[0185]
在一些实现中,规划模块404(例如,使用基于实现样本的机动动作实现器454)可以基于被确定为“可行”的节点生成一个或多个候选轨迹。例如,参考图14,基于实现样本的机动动作实现器454可以针对节点1402a、1402d、1402e、1402f和/或1402g各自生成一个或多个候选轨迹。在一些实现中,规划模块404可以基于被确定为“可行”并且还不具有任何子节点的节点来生成一个或多个候选轨迹。例如,参考图14,基于实现样本的机动动作实现器454可以针对节点1402e和1402g各自生成一个或多个候选轨迹。如上所述,同伦提取器453可以根据第一精度确定各个节点的可行性,并且基于实现样本的机动动作实现器454可以根据较高的第二精度生成候选轨迹。
[0186]
在图15a~15f中示出使用决策图评定同伦的可行性的实际示例。
[0187]
在该示例中(例如,如图15a所示),av 100位于第一道路1510a上,并且面向第一道路1510a和垂直于第一道路1510a的第二道路1510b之间的交叉口。三个运载工具1512a-1512c沿着第二道路1510b前进,并且行人1514沿着平行于第二道路1510b的人行道1516前进。运载工具1512a-1512c和行人1514相对于av 100的运动在图15b所示的图形1502中表示。例如,轨迹0表示第一运载工具1512a随时间的位置,轨迹1表示第二运载工具1512b随时间的位置,轨迹2表示第三运载工具1512c随时间的位置,并且轨迹3表示行人1514随时间的位置。
[0188]
在这种交通场景中,同伦提取器453确定av 100在以下情况下转弯到第二道路1510b上是否可行:(i)在所有三个运载工具1512a-1512c之前;(ii)在第二运载工具1512b与第一运载工具1512a之间;(iii)在第一运载工具1512a与第三运载工具1512c之间;以及(iv)在所有三个运载工具1512a-1512c之后。如图15c所示,可能性可以以具有多个节点1506的决策图1504的形式表示,各个节点表示约束的不同集合(例如,是在运载工具1512a-1512c之前转弯到道路上还是等待运载工具1512a-1512c通过,以及一个或多个“所需的”约束,诸如与安全性、法律约束、进行能力、地图约束等相关的约束)。作为示例,“所需的约束”可以是av 100不接触运载工具1512a-1512c或行人1514中的任何一个,同时遵守交通法规,同时保持在道路上,并且同时保持其乘客的安全性和舒适度的要求。
[0189]
如上所述,同伦提取器453可以评定各个节点的可行性,从最高级节点开始,并通过连续较低级的节点前进。基于运载工具1512a-1512c和行人1514的位置和运动,同伦提取器453确定av 100可以在以下情况下可行地转到第二道路1510b上:(i)在所有三个运载工具1512a-1512c之前(例如,如图15d所示),对应于节点1506a;(ii)在第二运载工具1512b与第一运载工具1512a之间(例如,如图15e所示),对应于节点1506b;以及(iii)在所有三个运载工具1512a-1512c之后(例如,如图15f所示),对应于节点1506c。然而,同伦提取器453确
定av 100不能在第一运载工具1512a与第三运载工具1512c之间可行地转弯到第二道路1510b上(由于行人1514在该时间期间进入av 100的路径)。
[0190]
基于确定av 100不能可行地转弯到第二道路1510b上,规划模块404(例如,使用基于实现样本的机动动作实现器454)可以生成与节点1506a-1506c各自相对应的一个或多个候选轨迹(同时避免生成其它节点的轨迹),并且选择所生成的轨迹之一以供av 100的控制电路(例如,图11和12中所示的控制器1102)执行。在一些实现中,可以基于各个轨迹的质量分数或度量来选择所生成的轨迹之一。如上所述,同伦提取器453可以根据第一精度确定各个节点的可行性,并且基于实现样本的机动动作实现器454可以根据较高的第二精度生成候选轨迹。因此,规划模块404不需要生成与av进行不可行的操作或任务相对应的较高精度轨迹,而是可以代替地将其处理资源集中在生成与av进行可行的操作或任务相对应的较高精度轨迹上。因此,规划模块404可以更快速且高效地选择av的轨迹。
[0191]
示例处理
[0192]
图16示出用于控制av的操作的示例处理1600。可以至少部分地使用图1~12中所示的系统中的一个或多个(例如,根据关于图13、14和15a~15e描述的技术)来进行处理1600。作为示例,可以至少部分地使用一个或多个处理器利用规划模块404来进行处理1600,规划模块404包括同伦提取器453、基于实现样本的机动动作实现器454、轨迹分数生成器455和/或跟踪控制器456(例如,如图4a、4b和13所示)。
[0193]
根据处理1600,一个或多个处理器获得针对运载工具要穿过的路段的候选约束的集合(框1602)。
[0194]
在一些实现中,候选约束可以包括与路段的至少一部分相关联的限速和/或与路段的至少一部分相关联的物理边界。
[0195]
在一些实现中,候选约束可以包括与运载工具相关联的加速度限制、与运载工具相关联的限速和/或与运载工具相关联的制动限制。
[0196]
在一些实现中,候选约束可以包括沿着路段的至少一个移动对象的指示。此外,对于各个移动对象,候选约束可以包括将运载工具定位在相对于移动对象的特定地点的指示。至少一些移动对象可以是运载工具。至少一些移动对象可以是行人。
[0197]
在一些实现中,候选约束可以包括使用运载工具进行机动动作的指示,诸如在穿过路段的同时进行车道改变、转弯、加速、减速或任何其它机动动作。
[0198]
一个或多个处理器确定多个同伦(框1604)。各个同伦包括用于穿过路段的候选约束的不同的相应组合。
[0199]
针对各个同伦,一个或多个处理器根据第一精度生成运载工具在路段上的运动的第一预测(框1606)。
[0200]
基于第一预测,一个或多个处理器确定运载工具能够根据同伦的子集穿过路段(框1608)。确定运载工具能够根据同伦的子集穿过路段可以包括:基于第一预测,确定运载工具能够根据同伦的该子集在不与对象碰撞的情况下穿过路段。
[0201]
一个或多个处理器根据同伦的子集确定路段的多个轨迹(框1610)。确定多个轨迹包括根据第二精度生成运载工具在路段上的运动的至少一个第二预测。第二精度大于第一精度。
[0202]
一个或多个处理器选择轨迹之一(框1612)。在一些实现中,选择轨迹之一可以包
括针对各个轨迹确定该轨迹的质量度量,并且基于质量度量选择轨迹之一。在一些实现中,可以基于根据相应轨迹穿过路段的预测时间、在根据相应轨迹穿过路段时自主运载工具的乘客的预测安全性以及/或者在根据相应轨迹穿过路段时运载工具的乘客的预测舒适度来确定质量度量中的至少一些。
[0203]
在一些实现中,多个轨迹中的第一轨迹可以包括运载工具的紧急机动动作。此外,选择轨迹之一可以包括接收包括运载工具与对象之间的预测碰撞的指示以及用于避免预测碰撞的紧急机动动作的指示的数据。响应于接收到数据,可以选择第一轨迹。
[0204]
一个或多个处理器向运载工具的控制电路发送指令以根据所选择的轨迹穿过路段(1614)。作为示例,指令可以被发送到控制模块406(例如,如图4a所示)和/或控制器1102(例如,如图11所示)。
[0205]
在一些实现中,确定运载工具能够根据同伦的子集穿过路段可以包括基于同伦生成决策图。该图可以包括多个节点。各个节点可以对应于运载工具在穿过路段时要进行的不同类型的动作。示例决策图在图14和15c中示出。
[0206]
此外,确定运载工具能够根据同伦的子集穿过路段可以包括:(i)针对节点的第一子集,确定运载工具是否可以安全地进行相应类型的动作,以及(ii)针对节点的第二子集,避免确定运载工具是否可以安全地进行相应类型的动作。
[0207]
在一些实现中,节点中的至少一些可以对应于在穿过路段时进行车道改变。在一些实现中,节点中的至少一些可以对应于在运载工具穿过路段时将运载工具定位在移动对象的前方。在一些实现中,节点中的至少一些可以对应于在运载工具穿过路段时将运载工具定位在移动对象的后方。在一些实现中,节点中的至少一些可以对应于在运载工具穿过路段时将运载工具定位在两个移动对象之间。在一些实现中,节点中的至少一些可以对应于在运载工具穿过路段时改变运载工具的速率。
[0208]
在一些实现中,可以基于决策图来确定多个轨迹。
[0209]
在先前描述中,已经参考许多具体细节描述了多个实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是以发布权利要求书的具体形式从本技术发布的权利要求书的字面和等同范围,包括任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当以此类术语如在权利要求书中所使用的意义为准。另外,当在先前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或先前所述的步骤或实体的子步骤/子实体。
[0210]
附加示例
[0211]
下面提供了本文描述的特征的示例实现。
[0212]
示例1:一种方法,包括:使用至少一个处理器获得针对运载工具要穿过的路段的候选约束的集合;使用所述至少一个处理器确定多个同伦,其中,所述同伦中的各个同伦包括用于穿过所述路段的所述候选约束的不同的相应组合;针对各个同伦:使用所述至少一个处理器,根据第一精度生成所述运载工具在所述路段上的运动的第一预测;使用所述至少一个处理器并且基于所述第一预测,确定所述运载工具能够根据所述同伦的子集穿过所述路段;使用所述至少一个处理器,根据所述同伦的所述子集确定针对所述路段的多个轨迹,其中,确定所述多个轨迹包括:根据第二精度生成所述运载工具在所述路段上的运动的
至少一个第二预测,所述第二精度大于所述第一精度;使用所述至少一个处理器选择所述轨迹之一;以及使用所述至少一个处理器向所述运载工具的控制电路发送指令,以根据所选择的轨迹穿过所述路段。
[0213]
示例2:根据示例1所述的方法,其中,确定所述运载工具能够根据所述同伦的所述子集穿过所述路段包括:基于所述第一预测,确定所述运载工具能够根据所述同伦的所述子集在不与对象碰撞的情况下穿过所述路段。
[0214]
示例3:根据前述示例中任一项所述的方法,其中,所述候选约束包括以下各项其中至少之一:与所述路段的至少一部分相关联的限速,以及与所述路段的至少一部分相关联的物理边界。
[0215]
示例4:根据前述示例中任一项所述的方法,其中,所述候选约束包括以下各项其中至少之一:与所述运载工具相关联的加速度限制,与所述运载工具相关联的限速,以及与所述运载工具相关联的制动限制。
[0216]
示例5:根据前述示例中任一项所述的方法,其中,所述候选约束包括沿着所述路段的至少一个移动对象的指示。
[0217]
示例6:根据前述示例中任一项所述的方法,其中,针对所述至少一个移动对象中的各个移动对象,所述候选约束包括将所述运载工具定位在相对于所述移动对象的特定地点处的指示。
[0218]
示例7:根据前述示例中任一项所述的方法,其中,所述至少一个移动对象包括以下各项其中至少之一:运载工具,以及行人。
[0219]
示例8:根据前述示例中任一项所述的方法,其中,所述候选约束包括在穿过所述路段时进行车道改变的指示。
[0220]
示例9:根据前述示例中任一项所述的方法,其中,选择所述轨迹之一包括:针对所述轨迹中的各个轨迹,确定针对该轨迹的质量度量,以及基于所述质量度量选择所述轨迹之一。
[0221]
示例10:根据前述示例中任一项所述的方法,其中,所述质量度量中的各个质量度量基于以下各项至少之一来确定:根据相应轨迹穿过所述路段的预测时间,在根据相应轨迹穿过所述路段时所述自主运载工具的乘客的预测安全性,以及在根据相应轨迹穿过所述路段时所述运载工具的乘客的预测舒适度。
[0222]
示例11:根据前述示例中任一项所述的方法,其中,所述多个轨迹中的第一轨迹包括所述运载工具的紧急机动动作。
[0223]
示例12:根据前述示例中任一项所述的方法,其中,选择所述轨迹之一包括:使用所述至少一个处理器接收数据,所述数据包括:所述运载工具与对象之间的预测碰撞的指示,以及用以避免所述预测碰撞的所述紧急机动动作的指示;以及响应于接收到所述数据,选择所述第一轨迹。
[0224]
示例13:根据前述示例中任一项所述的方法,其中,确定所述运载工具能够根据所述同伦的所述子集穿过所述路段包括:基于所述同伦生成决策图,其中,所述决策图包括多个节点,并且各个节点与在所述运载工具穿过所述路段时要进行的不同类型的动作相对应。
[0225]
示例14:根据前述示例中任一项所述的方法,其中,确定所述运载工具能够根据所
述同伦的所述子集穿过所述路段包括:针对所述节点的第一子集,确定所述运载工具是否能够安全地进行相应类型的动作,以及针对所述节点的第二子集,避免确定所述运载工具是否能够安全地进行相应类型的动作。
[0226]
示例15:根据前述示例中任一项所述的方法,其中,所述节点其中至少之一对应于在穿过所述路段时进行车道改变。
[0227]
示例16:根据前述示例中任一项所述的方法,其中,所述节点其中至少之一对应于在穿过所述路段时将所述运载工具定位在移动对象的前方。
[0228]
示例17:根据前述示例中任一项所述的方法,其中,所述节点其中至少之一对应于在穿过所述路段时将所述运载工具定位在移动对象的后方。
[0229]
示例18:根据前述示例中任一项所述的方法,其中,所述节点其中至少之一对应于在穿过所述路段时将所述运载工具定位在两个移动对象之间。
[0230]
示例19:根据前述示例中任一项所述的方法,其中,所述节点其中至少之一对应于在穿过所述路段时改变所述运载工具的速率。
[0231]
示例20:根据前述示例中任一项所述的方法,其中,所述多个轨迹是基于所述决策图来确定的。
[0232]
示例21:一种自主运载工具,包括:一个或多个计算机处理器;一个或多个非暂时性存储介质,其存储有指令,所述指令在由所述一个或多个计算机处理器执行时使得进行根据示例1-20中任一项所述的方法。
[0233]
示例22:一个或多个非暂时性存储介质,其存储有指令,所述指令在由一个或多个计算装置执行时使得进行根据示例1-20中任一项所述的方法。
[0234]
相关申请
[0235]
本技术要求2021年1月28日提交的美国临时申请序列号63/142,878的权益,其全部内容通过引用并入本文。
再多了解一些

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

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

相关文献