运动图构建和车道级路线规划的制作方法

文档序号:26101480发布日期:2021-07-30 18:12阅读:66来源:国知局
运动图构建和车道级路线规划的制作方法

相关申请的交叉引用

本申请要求于2018年10月10日提交的美国临时申请62/777,667和于2019年11月13日提交的美国专利申请16/682,095的权益。

本说明涉及运动图构建和车道级路线规划。



背景技术:

在地理区域中的连接一个位置(例如,原点)和另一个位置(例如,目的地)的道路包括一个或多个转弯。道路还可以包括多个车道。行驶在道路上的自主运载工具可能需要例如在转弯时改变车道。车道改变可能是突然的(例如,可以包括短纵向距离上的短横向移动),或可以是渐进的(例如,可以包括长纵向距离上的长横向移动)。



技术实现要素:

提供了用于由计算机(例如,自主运载工具上的计算机)所实现的方法的技术。运载工具的规划电路访问地理区域的地图,地图包括识别所述地理区域中的运载工具能够行驶的至少一个车道的信息。根据所述地图,所述规划电路生成表示所述运载工具的驾驶环境的图。所述图包括多个轨迹。至少一个轨迹包括车道改变。所述多个轨迹中的各个轨迹是所述运载工具从所述地图上的第一时空地点自主地移动到所述地图上的第二时空地点的路径。所述轨迹包括所述运载工具能够移动的至少一个车道。所述规划电路基于所述运载工具的初始运载工具轨迹来选择所述多个轨迹中的所述运载工具行驶的轨迹。所选择的轨迹包括主干。所述主干是所选择的轨迹中的所述运载工具被配置为附着至的部分。控制电路使得所述运载工具沿所选择的轨迹移动。

提供了用于运载工具的技术,该运载工具包括规划电路、存储器和存储器中所存储的至少一个程序。至少一个程序包括通过规划模块执行以进行本发明所描述的任何或所有方法的指令。

提供了用于计算机可读存储介质的技术,该计算机可读存储介质包括由装置的规划电路所执行的至少一个程序。至少一个程序包括指令,所述指令在由规划电路执行时,使得运载工具进行本发明所描述的任何或所有方法。

本文所描述的主题的某些方面可以作为方法来实现。使用运载工具的规划电路来访问地理区域的地图。地图包括用于识别地理区域中的运载工具可以行驶的至少一条车道的信息。使用规划电路并根据地图,生成表示运载工具的驾驶环境的图。该图包括多个轨迹。至少一个轨迹包括车道改变。各轨迹是运载工具从地图上的第一时空地点自主移动到地图上的第二时空地点的路径。该轨迹包括运载工具能够移动的至少一条车道。使用规划电路,基于运载工具的初始运载工具轨迹,选择多个轨迹中的运载工具行驶的轨迹。所选择的轨迹包括主干(stem)。主干是所选择的轨迹的运载工具被配置为附着至的部分。使用控制电路,运载工具沿所选择的轨迹移动。

本发明的可与任何其他方面组合的方面包括以下特征。沿所选择的轨迹开始行驶时至少沿所选择的轨迹的主干行驶。

本发明的可与任何其他方面组合的方面包括以下特征。选择所述运载工具在沿所述轨迹的主干行驶之后行驶的后续轨迹。

本发明的可与任何其他方面组合的方面包括以下特征。所述后续轨迹源于所选择的轨迹的主干的端部。

本发明的可与任何其他方面组合的方面包括以下特征。所述多个轨迹中的各个轨迹包括表示相应轨迹所表示的相应路径的所述运载工具被配置为附着至的相应部分的相应主干。

本发明的可与任何其他方面组合的方面包括以下特征。与所述地理区域的地图相比,所述运载工具的驾驶环境的图表示更小的地理范围。

本发明的可与任何其他方面组合的方面包括以下特征。与同所述地理区域的地图中所包括的地理范围有关的驾驶细节相比,所述运载工具的驾驶环境的图包括与所述地理范围有关的更多驾驶细节。

本发明的可与任何其他方面组合的方面包括以下特征。所述多个轨迹中的第一轨迹表示所述运载工具在车道中行驶的路径。为了生成所述多个轨迹中的轨迹,在所述驾驶环境所表示的地理范围内,识别所述至少一个车道中的车道。在该车道内,识别表示起始时空地点的起始节点和表示结束时空地点的结束节点。生成从所述起始节点到所述结束节点的边缘。所述边缘表示所述起始时空地点和所述结束时空地点之间的轨迹。

本发明的可与任何其他方面组合的方面包括以下特征。车道是第一车道。为了生成涉及所述车道改变的所述至少一个轨迹,在所述地理范围内,识别与所述第一车道相邻的第二车道。生成从所述结束节点到表示所述第二车道中的时空地点的节点的边缘。所述边缘表示跨越所述第一车道到所述第二车道的轨迹。

本发明的可与任何其他方面组合的方面包括以下特征。从所述结束节点到表示所述第二车道中的时空地点的节点的边缘包括基于影响所述运载工具从所述结束节点到所述第二车道中的时空地点的行驶的因素的过渡。所述因素包括如下项中的一个或多个:所述结束节点与表示所述时空地点的节点之间的最短距离、所述结束节点与表示所述时空地点的节点之间行驶的最短时间、在所述第一车道或所述第二车道中行驶的速率约束、或所述驾驶环境中的驾驶条件。

本发明的可与任何其他方面组合的方面包括以下特征。生成序列,所述序列包括从所述起始节点到所述结束节点的边缘以及从所述结束节点到表示所述第二车道中的时空地点的节点的边缘。

本发明的可与任何其他方面组合的方面包括以下特征。为所述序列分配标识符。

本发明的可与任何其他方面组合的方面包括以下特征。所述图是第一图。所述地理范围是第二地理范围。在所述运载工具正行驶在所述驾驶环境所表示的地理范围中期间,确定所述运载工具将在未来时间点行驶的与第一地理范围相邻的第二地理范围。生成表示所述第二地理范围的驾驶环境的第二图。

本发明的可与任何其他方面组合的方面包括以下特征。实时生成所述第二图。

本发明的可与任何其他方面组合的方面包括以下特征。为了生成所述图,为所述多个轨迹的各个轨迹分配权重。所述权重表示所述运载工具在相应轨迹中行驶所消耗的资源。

本发明的可与任何其他方面组合的方面包括以下特征。为了为各个轨迹分配权重,与为表示相对更长路块中的车道改变的轨迹所分配的权重相比,为表示短路块中的车道改变的轨迹分配更大的权重。

本发明的可与任何其他方面组合的方面包括以下特征。所述初始运载工具轨迹表示所述运载工具在选择所述轨迹的时间点的地点和行驶方向。

本发明的可与任何其他方面组合的方面包括以下特征。基于所述初始运载工具轨迹的所述多个轨迹中的所述运载工具行驶的轨迹使得所述运载工具从所述第一时空地点行驶到所述第二时空地点所消耗的资源最小化。

本文所描述的主题的某些方面可以作为运载工具来实现。一种运载工具,包括:规划电路;存储器;以及所述存储器中所存储的至少一个程序,所述至少一个程序包括指令,该指令由运载工具的规划电路执行,以任意组合进行本文所描述的主题的一个或多个或者所有方面。

本文所描述的主题的某些方面可以作为包括至少一个程序的计算机可读介质来实现,至少一个程序包括指令,该指令由运载工具的规划电路执行,以任意组合进行本文所描述的主题的一个或多个或者所有方面。

附图说明

图1示出具有自主能力的自主运载工具的示例。

图2例示计算机系统。

图3示出自主运载工具的示例架构。

图4示出感知模块可以使用的输入和输出的示例。

图5示出规划模块的输入和输出之间的关系的框图。

图6示出路径规划中所使用的有向图。

图7示出控制模块的输入和输出的框图。

图8示出控制器的输入、输出和组件的框图。

图9示出车道的示意图。

图10示出包含两条车道的路块的示意图。

图11示出车道连接线(laneconnector)的示意图。

图12示出交叉口的示意图。

图13示出基线序列的示意图。

图14是车道图的示意图。

图15是自主运载工具能够行驶的轨迹的第一示例的示意图。

图16是与轨迹的第一示例相关联的基线的第一示例的示意图。

图17是自主运载工具能够行驶的轨迹的第二示例的示意图。

图18是与轨迹的第二示例相关联的基线的第二示例的示意图。

图19是自主运载工具能够行驶的轨迹的第三示例的示意图。

图20是与轨迹的第三示例相关联的基线的第三示例的示意图。

图21是表示自主运载工具从一条车道行驶到相邻车道的可能轨迹的基线间连接的示意图。

图22是轨迹的主干分离和裁切的示意图。

图23是主干到基线连接的示意图。

图24是来自轨迹的并行基线连接的示意图。

图25是用于识别自主运载工具行驶的轨迹的处理的示例的流程图

具体实施方式

在以下描述中,为了解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,本发明可以在没有这些具体细节的情况下实施将是明显的。在其它实例中,众所周知的构造和装置是以框图形式示出的,以避免不必要地使本发明模糊。

在附图中,为了便于描述,示出了示意要素(诸如表示装置、模块、指令块和数据要素的那些要素)的具体排列或次序。然而,本领域技术人员应当理解,附图中示意要素的具体次序或排列并不意在意味着要求特定的处理次序或序列、或处理过程的分离。此外,在附图中包含示意要素并不意在意味着在所有实施例中都需要这种要素,也不意在意味着由这种要素表示的特征不能包括在一些实施例中或不能在一些实施例中与其它要素结合。

此外,在附图中,连接要素、诸如实线或虚线或箭头用于例示两个或更多个其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意在意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中示出,以便不使本公开内容模糊。此外,为了便于例示,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接要素表示信号、数据或指令的通信,本领域技术人员应理解,这种要素表示影响通信可能需要的一个或多个信号(例如,总线)。

现在将详细参考实施例,其示例在附图中例示出。在以下的详细描述中,阐述了许多具体细节,以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说将明显的是,可以在没有这些具体细节的情况下实施所描述的各种实施例。在其它情况下,没有详细描述众所周知的方法、程序、组件、电路和网络,以便不会不必要地使实施例的方面模糊。

下面描述的若干特征各自可以彼此独立地使用,也可以与其它特征的任何组合一起使用。然而,任何个别特征可能不能解决以上所讨论的任何问题,或者只能解决以上所讨论的问题之一。以上所讨论的一些问题可能不能通过本文所描述的任何一个特征得到充分解决。虽然提供了标题,但在本说明书的其它地方也可以找到与具体标题有关但在具有该标题的部分中未找到的信息。本文根据以下概要描述实施例:

1.总体概述

2.硬件概述

3.自主运载工具架构

4.自主运载工具输入

5.自主运载工具控制

6.自主运载工具运动图构建

7.自主运载工具车道级路线规划

总体概述

本发明描述一种自主运载工具,其根据地理区域的地图生成车道图(例如,路径的抽象图)以在从原点行驶到目的地时改变车道。基于包括姿势、路块和车道分隔线(例如,车道标记)的类型的因素,自主运载工具可以选择最优路径来改变车道。在一些实施例中,自主运载工具可以确定多个基线节点(如下所述),并且从基线节点确定基线边缘,各基线边缘表示两个基线节点之间的过渡。当生成从一个基线节点行驶到另一基线节点的路径时,自主运载工具可以使用分隔线的性质(例如,双黄线、虚白线)作为决定路径可行性的因素。在一些实施例中,基于包括跟随路径的可行性和跟随路径的成本的因素,自主运载工具能够将权重关联到所生成的路径。自主运载工具能够识别路径的初始部分(称为主干),并对主干作出承诺,使得根据主干的前端(例如,端部)来确定未来的路径。

系统概述

图1示出具有自主能力的自主运载工具100的示例。

如本文所使用的,术语“自主能力”是指一种功能、特征或设施,该功能、特征或设施使运载工具能够部分地或完全地操作,而无需实时的人类干预,包括但不限于完全自主运载工具、高度自主运载工具和有条件自主运载工具。

如本文所使用的,自主运载工具(av)是一种具有自主能力的运载工具。

如本文所使用的,“运载工具”包括货物或人员的运输方式。例如,小汽车、公共汽车、火车、飞机、无人机、卡车、船只、舰艇、潜水器、飞船等。无人驾驶的小汽车是运载工具的示例。

如本文所使用的,“轨迹”是指将av从第一时空地点导航到第二时空地点的路径或路线。在实施例中,第一时空地点被称为初始地点或起始地点,第二时空地点被称为目的地、最终地点、目标、目标位置或目标地点。在一些示例中,轨迹由一个或多个路段(例如,道路的数段)组成,并且各路段由一个或多个块(例如,车道或交叉口的一部分)组成。在实施例中,时空地点对应于真实世界地点。例如,时空地点是上车或下车地点,以使人员或货物上车或下车。

如本文所使用的,“(一个或多个)传感器”包括一个或多个硬件组件,用于检测与传感器周围环境有关的信息。一些硬件组件可包括感测组件(例如,图像传感器、生物特征传感器)、传输和/或接收组件(例如,激光或射频波发射器和接收器)、电子组件(诸如,模数转换器)、数据存储装置(诸如,ram和/或非易失性存储器)、软件或固件组件和数据处理组件(诸如,专用集成电路)、微处理器和/或微控制器。

如本文所使用的,“场景描述”是一种数据结构(例如,列表)或数据流,其包括由av运载工具上的一个或多个传感器检测到的一个或多个分类或标记的对象,或由av外部的源提供的一个或多个分类或标记的对象。

如本文所使用的,“道路”是一个可以被运载工具穿过的物理区域,并且可以对应于已命名的通道(例如,城市街道、州际高速公路等)或可对应于未命名的通道(例如,房屋或办公楼内的行车道、停车场的一段、空置停车场的一段、乡村区域的污物通道等)。因为有些运载工具(例如,四轮驱动的小卡车、越野车(suv)等)能够穿过各种不特别适合运载工具行驶的物理区域,因此“道路”可以是任何市政当局或其它政府或行政机构没有正式定义为一条通道的物理区域。

如本文所使用的,“车道”是道路的可被运载工具穿过的部分。有时基于车道标记来识别车道。例如,车道可对应于车道标记之间的大部分或全部空间,或仅对应于车道标记之间的一些空间(例如,小于50%)。例如,具有相距远的车道标记的道路可能在标记之间容纳两个或更多个运载工具,使得一个运载工具可以在不穿过车道标记的情况下超过另一个运载工具,并且因此可被解释为具有比车道标记之间的空间窄的车道,或具有车道之间的两个车道。在没有车道标记的情况下,也可以对车道进行解释。例如,可以基于环境的物理特征(例如乡村区域沿着通道的岩石和树木、或者例如在欠发达地区应避免的自然障碍物)来定义车道。也可以独立于车道标记或物理特征来解释车道。例如,可以基于原本缺少将会被解释为车道边界的特征的在区域中无障碍物的任意路径来解释车道。在示例情景中,av可以解释通过田野或空地的无障碍物部分的车道。在另一示例情景中,av可以解释通过不具有车道标记的宽(例如,足够两个或更多个车道宽)道路的车道。在该情景中,av可以将与车道有关的信息通信至其它av,使得其它av可以使用相同的车道信息来协调av之间的路径规划。

“一个或多个”包括由一个要素执行的功能、由多个要素例如以分布式的方式执行的功能、由一个要素执行的若干功能、由若干要素执行的若干功能、或上述的任何组合。

还将理解的是,尽管在一些情况下,术语“第一”、“第二”等在本文中是用来描述各种要素的,但这些要素不应受到这些术语的限制。这些术语仅用于区分一个要素与另一个要素。例如,在未背离各种所描述的实施例的范围的情况下,第一触点可被称为第二触点,并且类似地,第二触点可被称为第一触点。第一触点和第二触点两者都是触点,但它们不是相同触点。

在本文所描述的各种实施例的说明书中使用的术语仅用于描述特定实施例的目的,而不是意在限制。如在所描述的各种实施例的说明书和所附权利要求书中所使用的,单数形式“a”、“an”和“the”也意在包括复数形式,除非上下文另有明确说明。还将理解的是,如本文所使用的“和/或”是指并且包括一个或多个相关清单项目的任何和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”、“包含”、“具备”和/或“具有”时,具体说明存在所陈述的特征、整数、步骤、操作、要素和/或组件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、要素、组件、和/或其群组。

如本文所使用的,取决于上下文,术语“如果”可选地被理解为意指“当”或“在当时”或“响应于确定为”或“响应于检测到”。类似地,取决于上下文,短语“如果已确定”或“如果[所陈述的条件或事件]已被检测到”可选地被理解为意指“在确定时”或“响应于确定为“或”在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

如本文所使用的,av系统是指av以及支持av操作的硬件、软件、存储的数据和实时生成的数据的阵列。在实施例中,av系统并入在av内。在实施例中,av系统跨若干地点分布。例如,av系统的一些软件是在云计算环境中实现的。

一般而言,本文件描述了适用于任何具有一种或多种自主能力的运载工具的技术,包括完全自主运载工具、高度自主运载工具和有条件自主运载工具,诸如分别为所谓的第5级、第4级和第3级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义,通过引用将其全部内容并入本文件,用于了解运载工具自主权等级的更多详细信息)。本文件所描述的技术也适用于部分自主运载工具和驾驶员辅助运载工具,诸如所谓的第2级和第1级运载工具(见sae国际标准j3016:道路上机动车自动驾驶系统相关术语的分类和定义)。在实施例中,一个或多个第1级、第2级、第3级、第4级和第5级运载工具系统可基于对传感器输入的处理,在某些操作条件下自动执行某些运载工具操作(例如,转向、制动和使用地图)。本文件中所描述的技术可以使从完全自主运载工具到人类操作的运载工具范围内的任何级别的运载工具受益。

参考图1,av系统120使av100沿着轨迹198操作,穿过环境190至目的地199(有时称为最终地点),同时避开对象(例如,自然障碍物191、运载工具193、行人192、骑车者和其它障碍物)和遵守道路规则(例如,操作规则或驾驶偏好)。

在实施例中,av系统120包括被装备以从计算机处理器146接收操作命令并对其进行操作的装置101。在实施例中,计算处理器146与下面参考图2描述的处理器204类似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。

在实施例中,av系统120包括用于测量或推断av100的状态或条件的属性的传感器121,这些属性诸如是av的位置、线速度和角速度及线加速度和角加速度、以及航向(例如,av100的前端的方向)。传感器121的示例是gps、测量运载工具线加速度和角速率两者的惯性测量单元(imu)、用于测量或估计轮滑移率的轮速率传感器、轮制动压力或制动扭矩传感器、引擎扭矩或轮扭矩传感器以及转向角度和角速率传感器。

在实施例中,传感器121还包括用于感测或测量av的环境的属性的传感器。例如,可见光、红外或热(或两者兼有)光谱的单目或立体摄像机122,lidar123,radar,超声波传感器,飞行时间(tof)深度传感器,速率传感器,温度传感器,湿度传感器和降水传感器。

在实施例中,av系统120包括数据存储单元142和存储器144,用于存储与计算机处理器146相关联的机器指令或由传感器121收集的数据。在实施例中,数据存储单元142与以下关于图2描述的rom208或存储装置210类似。在实施例中,存储器144与下面描述的主存储器206类似。在实施例中,数据存储单元142和存储器144存储有关环境190的历史、实时和/或预测性信息。在实施例中,存储的信息包括地图、驾驶性能、交通拥堵更新或天气条件。在实施例中,与环境190有关的数据从远程数据库134通过通信信道传输到av100。

在实施例中,av系统120包括通信装置140,用于将对其它运载工具的状态和条件(诸如位置、线速度和角速度、线加速度和角加速度、以及线航向和角航向)测量或推断的属性传送到av100。这些装置包括运载工具到运载工具(v2v)和运载工具到基础设施(v2i)通信装置以及用于通过点对点或自组织(adhoc)网络或两者进行无线通信的装置。在实施例中,通信装置140跨电磁频谱(包括无线电和光通信)或其它介质(例如,空气和声介质)进行通信。运载工具对运载工具(v2v)、运载工具对基础设施(v2i)通信(以及在一些实施例中为一种或多种其它类型的通信)的组合有时被称为运载工具对所有事物(v2x)通信。v2x通信通常符合一个或多个通信标准,用于与自主运载工具进行的和在自主运载工具之间的通信。

在实施例中,通信装置140包括通信接口。例如,有线、无线、wimax、wi-fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到av系统120。通信接口140将从传感器121收集的数据或与av100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向av100传输与遥操作有关的信息。在一些实施例中,av100与其它远程(例如,“云”)服务器136通信。

在实施例中,远程数据库134还存储和传输数字数据(例如,存储诸如道路和街道地点的数据)。这些数据存储在av100上的存储器144中,或者通过通信信道从远程数据库134传输到av100。

在实施例中,远程数据库134存储和传输与以前在一天中类似时间沿着轨迹198行驶的运载工具的驾驶属性有关的历史信息(例如,速率和加速度分布)。在一个实现中,这种数据可以存储在av100上的存储器144中,或者通过通信信道从远程数据库134传输到av100。

位于av100上的计算装置146基于实时传感器数据和先验信息两者以算法方式生成控制动作,允许av系统120执行其自主驾驶能力。

在实施例中,av系统120包括耦接到计算装置146的计算机外围设备132,用于向av100的用户(例如,乘员或远程用户)提供信息和提醒并接收来自该用户的输入。在实施例中,外围设备132类似于下面参考图2讨论的显示器212、输入装置214和光标控制器216。耦接是无线的或有线的。任意两个或更多个的接口装置可以集成到单个装置中。

图2例示计算机系统200。在实现中,计算机系统200是一种专用计算装置。专用计算装置被硬连线以执行这些技术,或包括诸如一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)的被持久编程为执行上述技术的数字电子装置,或可包括一个或多个通用硬件处理器,这些硬件处理器经编程以根据固件、存储器、其它存储器、或者组合中的程序指令执行这些技术。这种专用的计算装置还可以将定制的硬线逻辑、asic或fpga与定制的编程相结合来完成这些技术。在各种实施例中,专用计算装置是台式计算机系统、便携式计算机系统、手持装置、网络装置或包含硬线和/或程序逻辑以实现这些技术的任何其它装置。

在实施例中,计算机系统200包括总线202或用于传达信息的其它通信机制、以及与总线202耦接以处理信息的硬件处理器204。硬件处理器204是例如通用微处理器。计算机系统200还包括主存储器206,诸如随机存取存储器(ram)或其它动态存储装置,该主存储器206耦接到总线202以存储信息和指令,该信息和指令由处理器204执行。在一个实现中,主存储器206用于在执行要由处理器204执行的指令期间存储临时变量或其它中间信息。当这些指令存储在处理器204可访问的非暂时性存储介质中时,使计算机系统200变成一个专用机器,该机器被定制以执行指令中指定的操作。

在实施例中,计算机系统200还包括只读存储器(rom)208或耦接到总线202的其它静态存储装置,用于存储处理器204的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器的存储装置210,并且该存储装置210耦接到总线202以存储信息和指令。

在实施例中,计算机系统200通过总线202耦接到诸如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、发光二极管(led)显示器或用于向计算机用户显示信息的有机发光二极管(oled)显示器的显示器212。包括字母数字键和其它键的输入装置214耦接到总线202,用于向处理器204传送信息和命令选择。另一种类型的用户输入装置是光标控制器216,诸如鼠标、轨迹球、触控显示器或光标方向键,用于将方向信息和命令选择传送到处理器204,并用于控制光标在显示器212上的移动。这种输入装置通常具有两个轴(第一轴(例如,x轴)和第二轴(例如,y轴))上的两个自由度,这两个轴允许装置指定平面上的位置。

根据一个实施例,本文的技术由计算机系统200响应于处理器204执行主存储器306中包含的一个或多个指令的一个或多个序列而执行。这些指令从诸如存储装置210的另一存储介质读入主存储器206。执行主存储器206中包含的指令序列使处理器204执行本文所描述的过程步骤。在替代实施例中,使用硬连线电路代替或与软件指令结合使用。

如本文所使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式操作。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置210的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器206。存储介质的常见形式包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、任何具有孔型的物理介质、ram、prom和eprom、flash-eprom、nv-ram、或任何其它存储芯片或存储盒。

存储介质有别于传输介质,但可以与传输介质相结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括具备总线202的电线。传输介质也可以采取声波或光波的形式,诸如在无线电波和红外数据通信过程中产生的声波或光波。

在实施例中,各种形式的介质涉及将一个或多个指令的一个或多个序列承载到处理器204以供执行。例如,这些指令最初是在远程计算机的磁盘或固态驱动器上执行的。远程计算机将指令加载到其动态存储器中,并使用调制解调器通过电话线路发送指令。计算机系统200的本地调制解调器接收电话线路上的数据,并使用红外发射器将数据转换为红外信号。红外检测器接收红外信号中承载的数据,并且适当的电路将数据放置在总线202上。总线202将数据承载到主存储器206,处理器204从主存储器206检索并执行指令。主存储器206接收的指令可以可选地在处理器204执行之前或之后存储在存储装置210上。

计算机系统200还包括耦接到总线202的通信接口218。通信接口218提供耦接到连接至本地网络222的网络链路220的双向数据通信。例如,通信接口218是综合业务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或用以提供与相应类型电话线路的数据通信连接的调制解调器。作为另一示例,通信接口218是局域网(lan)卡,用于提供与兼容lan的数据通信连接。在一些实现中,无线链路也被实现。在任何这种实现中,通信接口218发送和接收承载表示各种类型的信息的数字数据流的电、电磁或光信号。

网络链路220通常通过一个或多个网络向其它数据装置提供数据通信。例如,网络链路220通过本地网络222提供与主计算机224或与由因特网服务提供商(isp)226运营的云数据中心或设备的连接。isp226又通过现在通常称为“因特网”228的世界范围分组数据通信网络来提供数据通信服务。本地网络222和因特网228两者都使用承载数字数据流的电、电磁或光信号。通过各种网络的信号以及网络链路220上并通过通信接口218的信号是传输介质的示例形式,其中这些信号承载了进出计算机系统200的数字数据。在实施例中,网络220包含云或云的一部分。

计算机系统200通过(一个或多个)网络、网络链路220和通信接口218发送消息和接收包括程序代码的数据。在实施例中,计算机系统200接收用于处理的代码。接收到的代码在接收到时由处理器204执行,和/或存储在存储装置210中,或存储在其它非易失性存储装置中以便以后执行。

自主运载工具架构

图3示出用于自主运载工具(例如,图1所示的av100)的示例架构300。架构300包括感知模块302(有时称为感知电路)、规划模块304(有时称为规划电路)、控制模块306(有时称为控制电路)、定位模块308(有时称为定位电路)和数据库模块310(有时称为数据库电路)。各模块在av100的操作中发挥作用。共同地,模块302、304、306、308和310可以是图1所示的av系统120的一部分。在一些实施例中,模块302、304、306、308和310中的任何模块是计算机软件(例如,计算机可读介质上所存储的可执行代码)和计算机硬件(例如,一个或多个微处理器、微控制器、专用集成电路[asic]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。

在使用中,规划模块304接收表示目的地312的数据,并且确定表示av100为了到达(例如,抵达)目的地312而可以行驶的轨迹314(有时称为路线)的数据。为了使规划模块304确定表示轨迹314的数据,规划模块304从感知模块302、定位模块308和数据库模块310接收数据。

感知模块302使用例如也如图1所示的一个或多个传感器121来识别附近的物理对象。将对象分类(例如,分组成诸如行人、自行车、汽车、交通标志等的类型),并且将包括经分类的对象316的场景描述提供至规划模块304。

规划模块304还从定位模块308接收表示av位置318的数据。定位模块308通过使用来自传感器121的数据和来自数据库模块310的数据(例如,地理数据)以计算位置来确定av位置。例如,定位模块308使用来自gnss(全球导航卫星系统)传感器的数据和地理数据来计算av的经度和纬度。在实施例中,定位模块308所使用的数据包括具有行车道几何属性的高精度地图、描述道路网络连接属性的地图、描述行车道物理属性(诸如交通速率、交通量、运载工具和自行车车道的数量、车道宽度、车道交通方向、或车道标记类型和地点,或者它们的组合)的地图、以及描述道路特征(诸如十字路口、交通标志或各种类型的其它行驶信号等)的空间地点的地图。在实施例中,高精度地图是通过将数据经由自动或手动注释添加到低精度地图所构建的。

控制模块306接收表示轨迹314的数据和表示av位置318的数据,并且以将使得av100行驶轨迹314到达目的地312的方式来操作av的控制功能320a~320c(例如,转向、油门、制动、点火)。例如,如果轨迹314包括左转,则控制模块306将以如下方式操作控制功能320a~320c:转向功能的转向角度将使得av100左转,并且油门和制动将使得av100在进行转弯之前暂停并等待经过的行人或运载工具。

自主运载工具输入

图4示出感知模块302(图3)所使用的输入402a-402d(例如,图1中所示的传感器121)和输出404a-404d(例如,传感器数据)的示例。一个输入402a是lidar(光检测和测距)系统(例如,图1所示的lidar123)。lidar是使用光(例如,诸如红外光等的一道光)来获得与其视线中的物理对象有关的数据的技术。lidar系统产生lidar数据作为输出404a。例如,lidar数据是用于构造环境190的表示的3d或2d点(也称为点云)的集合。

另一输入402b是radar(雷达)系统。radar是使用无线电波来获得与附近的物理对象有关的数据的技术。radar可以获得与不在lidar系统的视线内的对象有关的数据。radar系统402b产生radar数据作为输出404b。例如,radar数据是用于构造环境190的表示的一个或多个射频电磁信号。

另一输入402c是照相机系统。照相机系统使用一个或多个照相机(例如,使用诸如电荷耦合器件[ccd]等的光传感器的数字照相机)来获取与附近的物理对象有关的信息。照相机系统产生照相机数据作为输出404c。照相机数据通常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。在一些示例中,照相机系统具有例如为了立体影像(立体视觉)的目的的多个独立照相机,这使得照相机系统能够感知深度。尽管照相机系统所感知的对象在这里被描述为“附近”,但这是相对于av而言的。在使用中,照相机系统可被配置为“看见”远处的(例如,av前方的远至1公里或更远的)对象。因此,照相机系统可以具有为了感知遥远的对象而优化的诸如传感器和镜头等的特征。

另一输入402d是交通灯检测(tld)系统。tld系统使用一个或多个照相机来获得与交通灯、街道标志和提供视觉导航信息的其它物理对象有关的信息。tld系统产生tld数据作为输出404d。tld数据经常采用图像数据(例如,诸如raw、jpeg、png等的图像数据格式的数据)的形式。tld系统与包含照相机的系统的不同之处在于:tld系统使用具有宽视场(例如,使用广角镜头或鱼眼镜头)的照相机,以获得与尽可能多的提供视觉导航信息的物理对象有关的信息,使得av100能够访问这些对象所提供的所有相关导航信息。例如,tld系统的视角可以为约120度或更大。

在一些实施例中,使用传感器融合技术来组合输出404a-404d。因而,将个体输出404a-404d提供至av100的其它系统(例如,提供至如图3所示的规划模块304),或者可以采用相同类型的单个组合输出或多个组合输出(例如,使用相同组合技术或组合相同输出或者这两者)或不同类型的单个组合输出或多个组合输出(例如,使用不同的各个组合技术或组合不同的各个输出或者这两者)的形式,将组合输出提供至其它系统。在一些实施例中,使用早期融合技术。早期融合技术的特征在于:在将一个或多个数据处理步骤应用到组合输出之前,将输出组合。在一些实施例中,使用后期融合技术。后期融合技术的特征在于:在将一个或多个数据处理步骤应用到个体输出之后,将输出组合。

路径规划

图5示出(例如,如图3所示的)规划模块304的输入和输出之间的关系的框图500。一般而言,规划模块304的输出是从起点504(例如,源地点或初始地点)到终点506(例如,目的地或最终地点)的路线502。路线502通常由一个或多个路段定义。例如,路段是指要在街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分上行驶的距离。在一些示例中,例如,如果av100是诸如四轮驱动(4wd)或全轮驱动(awd)小汽车、suv或小卡车等的能够越野的运载工具,则路线502包括诸如未铺面路径或开阔田野等的“越野”路段。

除路线502之外,规划模块还输出车道级路线规划数据508。车道级路线规划数据508用于在特定时间基于路线502的路段的条件来驶过这些路段。例如,如果路线502包括多车道公路,则车道级路线规划数据508包括轨迹规划数据510,其中av100可以使用该轨迹规划数据510以例如基于出口是否临近、多个车道中的一个或多个车道是否存在其它运载工具、或者在几分钟或更少时间的过程中变化的其它因素来从这多个车道中选择某车道。类似地,在一些实现中,车道级路线规划数据508包括路线502的某路段特有的速率约束512。例如,如果该路段包括行人或非预期交通,则速率约束512可以将av100限制到比预期速率慢的行驶速率,例如基于该路段的限速数据的速率。

在实施例中,向规划模块304的输入包括(例如,来自图3所示的数据库模块310的)数据库数据514、当前地点数据516(例如,图3所示的av位置318)、(例如,用于图3所示的目的地312的)目的地数据518和对象数据520(例如,如图3所示的感知模块302所感知的经分类的对象316)。在一些实施例中,数据库数据514包括规划时所使用的规则。规则是使用形式语言(例如,使用布尔逻辑)指定的。在av100所遇到的任何给定情形中,这些规则中的至少一些规则将适用于该情形。如果规则具有基于av100可用的信息(例如,与周围环境有关的信息)所满足的条件,则该规则适用于给定情形。规则可以具有优先级。例如,“如果公路是高速公路,则移动到最左侧车道”这一规则与“如果出口在一英里内临近,则移动到最右侧车道”相比可以具有更低的优先级。

图6示出在路径规划中(例如,由规划模块304(图3))使用的有向图600。一般而言,如图6所示的有向图那样的有向图600用于确定任何起点602和终点604之间的路径。在现实世界中,分隔起点602和终点604的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个十字路口或多车道道路的两条车道)。

在实施例中,有向图600具有表示起点602和终点604之间的av100可能占用的不同地点的节点606a-606d。在一些示例中,例如,在起点602和终点604表示不同的都市区域时,节点606a-606d表示道路的路段。在一些示例中,例如,在起点602和终点604表示相同道路上的不同地点时,节点606a-606d表示该道路上的不同位置。这样,有向图600包括不同粒度级别的信息。在实施例中,具有高粒度的有向图也是具有更大规模的另一有向图的子图。例如,起点602和终点604相距远(例如,相距许多英里)的有向图的大部分信息处于低粒度,并且该有向图是基于所存储的数据,但该有向图还包括用于该有向图中的表示av100的视场中的物理地点的一部分的一些高粒度信息。

节点606a-606d不同于无法与节点重叠的对象608a-608b。在实施例中,在粒度低时,对象608a-608b表示汽车不能穿过的地区,例如无街道或道路的区域。在粒度高时,对象608a-608b表示av100的视场中的物理对象,例如其它汽车、行人、或av100不能与之共用物理空间的其它实体。在实施例中,对象608a-608b的一部分或全部是静态对象(例如,不改变位置的对象,诸如街灯或电线杆等)或动态对象(例如,能够改变位置的对象,诸如行人或其它小汽车等)。

节点606a-606d通过边缘610a-610c连接。如果两个节点606a-606b通过边缘610a连接,则av100可以在一个节点606a和另一节点606b之间行驶,例如,而不必在到达另一节点606b之前行驶到中间节点。(当提到av100在节点之间行驶时,意味着av100在由相应节点表示的两个物理位置之间行驶。)边缘610a-610c通常是双向的,从某种意义上,av100从第一节点行驶到第二节点,或者从第二节点行驶到第一节点。在实施例中,边缘610a-610c是单向的,从某种意义上,av100可以从第一节点行驶到第二节点,然而av100不能从第二节点行驶到第一节点。在边缘610a-610c表示例如单向街道,街道、道路或公路的单独车道,或者由于法律或物理约束因而仅能沿一个方向穿过的其它特征的情况下,边缘610a-610c是单向的。

在实施例中,规划模块304使用有向图600来识别由起点602和终点604之间的节点和边缘组成的路径612。

边缘610a-610c具有关联成本614a-614b。成本614a-614b是表示在av100选择该边缘的情况下将花费的资源的值。典型的资源是时间。例如,如果一个边缘610a所表示的物理距离是另一边缘610b所表示的物理距离的两倍,则第一边缘610a的关联成本614a可以是第二边缘610b的关联成本614b的两倍。影响时间的其它因素包括预期交通、十字路口的数量、限速等。另一典型的资源是燃料经济性。两个边缘610a-610b可以表示相同的物理距离,但例如由于道路条件、预期天气等,因此一个边缘610a与另一边缘610b相比需要更多的燃料。

在规划模块304识别起点602和终点604之间的路径612时,规划模块304通常选择针对成本优化的路径,例如,在将边缘的个体成本相加到一起时具有最小总成本的路径。

自主运载工具控制

图7示出(例如,如图3所示的)控制模块306的输入和输出的框图700。控制模块根据控制器702而操作,该控制器702例如包括:与处理器204类似的一个或多个处理器(例如,诸如微处理器或微控制器或这两者等的一个或多个计算机处理器);与主存储器206、rom208和存储装置210类似的短期和/或长期数据存储装置(例如,存储器,随机存取存储器或闪速存储器或这两者);以及存储器中所存储的指令,这些指令在(例如,由一个或多个处理器)执行时执行控制器702的操作。

在实施例中,控制器702接收表示期望输出704的数据。期望输出704通常包括速度,例如速率和航向。期望输出704例如可以基于从(例如,如图3所示的)规划模块304接收到的数据。根据期望输出704,控制器702产生可用作油门输入706和转向输入708的数据。油门输入706表示例如通过接合转向踏板或接合另一油门控件来接合av100的油门(例如,加速控制)以实现期望输出704的大小。在一些示例中,油门输入706还包括可用于接合av100的制动器(例如,减速控制)的数据。转向输入708表示转向角度,例如av的转向控制(例如,方向盘、转向角致动器或用于控制转向角度的其它功能)应被定位成实现期望输出704的角度。

在实施例中,控制器702接收在调整提供至油门和转向的输入时使用的反馈。例如,如果av100遇到诸如山丘等的干扰710,则av100的测量速率712降至低于期望输出速率。在实施例中,任何测量输出714均被提供至控制器702,使得例如基于测量速率和期望输出之间的差分713来进行所需的调整。测量输出714包括测量位置716、测量速度718(包括速率和航向)、测量加速度720和av100的传感器可测量的其它输出。

在实施例中,例如通过诸如照相机或lidar传感器等的传感器预先检测与干扰710有关的信息,并且该信息被提供至预测性反馈模块722。然后,预测性反馈模块722将控制器702可用于相应地调整的信息提供至控制器702。例如,如果av100的传感器检测到(“看见”)山丘,则控制器702可以使用该信息来准备在适当时间接合油门,以避免显著减速。

图8示出控制器702的输入、输出和组件的框图800。控制器702具有影响油门/制动器控制器804的操作的速率分析器802。例如,速率分析器802根据例如由控制器702接收到并由速率分析器802处理后的反馈,来指示油门/制动器控制器804使用油门/制动器806进行加速或进行减速。

控制器702还具有影响方向盘控制器810的操作的横向跟踪控制器808。例如,横向跟踪控制器808根据例如由控制器702接收到并由横向跟踪控制器808处理后的反馈,来指示方向盘控制器810调整转向角致动器812的位置。

控制器702接收用于确定如何控制油门/制动器806和转向角致动器812的若干输入。规划模块304提供控制器702例如选择av100开始操作时的航向并确定在av100到达十字交叉路口时穿过哪个道路路段所使用的信息。定位模块308例如将描述av100的当前地点的信息提供至控制器702,使得控制器702可以确定av100是否处于基于正控制油门/制动器806和转向角致动器812的方式而预期的地点。在实施例中,控制器702接收来自其它输入814的信息,例如从数据库、计算机网络等接收到的信息。

自主运载工具运动图构建

本章节描述了av系统120(例如规划模块304)执行以规划av100可行驶的车道级路线(有时称为路径或轨迹)的计算机可实现的方法。路径是地理区域中的物理的真实世界路径。为了规划路线,规划模块304将地理区域表示并存储为包括地图要素的地图。以下段落描述各种地图要素。某些地图要素与物理的真实世界的要素(例如,车道、交叉口)具有直接对应关系,而其它地图要素是概念性的,并且被实现成由规划模块304所生成并使用以规划路线的计算机构造。

图9示出车道902的示意图。车道902是道路上的物理车道,并且与表示其在地理地图上的几何范围的方向和多边形相关联。两条车道经由车道连接线(如下所述)纵向连接。车道902与路块(如下所述)相关联。与同一方向相关联的两条相邻车道由车道分隔线(例如,车道标记)所分隔。车道分隔线可以有不同的类型,例如,单实白线、单虚白线、双实白线、双虚白线、单之字形白线和单实黄线、左虚白线、右实白线。在实施例中,在如上所述构建高精度地图的处理期间,这些车道分隔线类型被分配给车道分隔线。没有明确注释的车道分隔线被视为nil类型,即指示车道分隔线不被分类为任何其他车道分隔线类型的类型。车道分隔线的子集(例如,nil、单实白线和单虚白线)被认为是可改变车道的,例如,自主运载工具可以合法地从一条车道越过车道分隔线到相邻车道。一条车道恰好与一个基线序列相关联(如下所述)。

图10示出包含两条车道902和904的路块1002的示意图。路块是环境中的物理可驾驶区域的一部分。路块有多条车道。路块1002包含沿相同方向行驶的多条车道。同一路块中的车道在横向方向上被编索引。路块通过路块连接线纵向连接到其他路块。路块连接线与交叉口相关联,并且可以包括一个或多个车道连接线。

图11示出车道连接线1102的示意图。车道连接线将车道的终点纵向连接到另一车道的起点。车道连接线与表示其在地理地图上的几何范围的多边形相关联。车道连接线与路块连接器和基线序列相关联。在图11所示的车道连接线1102中,阴影区域表示连接多边形的车道,各区域包括相关联的基线。

图12示出交叉口1202的示意图。交叉口与表示其在地图上的几何范围的多边形相关联。交叉口1202包括多个路块,例如,路块1002。

图13示出基线序列1302的示意图。基线序列与车道和车道连接线相关联,并且可以包含多于一个的基线边缘。基线边缘表示两个基线节点之间的过渡,例如dubins过渡。(dubins过渡是沿dubins路径的过渡,其是附着到约束的两个点之间的最短曲线。通常基于运载工具的转弯半径来确定该约束。)基线边缘与原点节点和目的地节点这两个基线节点相关联。基线节点表示姿势,例如表示速率和方向的矢量。基线节点与零个或一个或多个汇入和出发的基线边缘相关联。

图14是车道图1402的示意图。车道图是用于车道级路线规划的车道级道路网络的抽象图。车道图是包括车道图节点(例如,车道图节点1404)和车道图边缘的有向图,车道图边缘包括一个或多个遍历边缘(例如,遍历边缘1406)、一个或多个连接边缘(例如,连接边缘1408)和一个或多个车道改变边缘(例如,车道改变边缘1410)。车道图节点(例如,车道图节点1404)是车道起始节点或车道结束节点。车道起始节点与车道的起点(例如,基线节点)相对应,并且车道结束节点与车道的终点(例如,基线节点)相对应。车道图节点与一条车道相关联。车道起始节点始终经由遍历边缘连接到同一车道的恰好一个车道结束节点。车道结束节点可以经由相应的一个或多个车道连接边缘或不经由车道连接边缘连接到其他车道的一个或多个车道起始节点或不连接到其他车道的车道起始节点。

车道图边缘(例如,车道图边缘1406、1408或1410)从恰好一个原点车道图节点连接到恰好一个目的地车道图节点。车道边缘具有车道图成本(如下所述)。遍历边缘(例如,遍历边缘1406)始终从车道起始节点连接到车道结束节点。连接边缘(例如,连接边缘1408)始终从汇入车道的车道结束节点连接到出发车道的车道起始节点。车道改变边缘(例如,车道改变边缘1410)始终从车道起始节点连接到同一路块中的不同的车道起始节点。遍历边缘和连接边缘各自与恰好一个基线序列相关联,但车道改变边缘不与之关联。

在实施例中,规划模块304使用上述地图元素中的一个或多个或全部来构建av100在地理区域内穿越的多个路线。av100的原点(例如,在特定时间的空间中的第一地点,有时被称为时空地点)和目的地(例如,第二时空地点)位于地理区域内。规划模块304访问地理区域的地图,该地图可以存储在例如数据库模块310中或者从存储该地图的不同计算机可读存储介质被接收。该地图包括识别地理区域中的运载工具可以行驶的至少一条车道的信息。

在一些实现中,规划模块304根据地图生成表示av100的驾驶环境的图。与地理区域的地图相比,av100的驾驶环境的图表示较小的地理范围。例如,av100的驾驶环境的图可以包括av100和周围区域的当前时空地点。特别地,该图可以排除其它地理范围的表示。即,如果驾驶环境的各图所覆盖的地理范围彼此相邻定位,则将产生该地理区域的地图。在一些实现中,规划模块304被配置为当av100从一个较小的地理范围行驶到下一个地理范围(例如,相邻的较小的地理范围)时生成驾驶环境的图。这样,节省了规划模块304的资源(例如存储器、处理资源),并且提高了规划模块304的操作速率。

同与地理区域的地图所覆盖的整个地理范围有关的驾驶细节相比,av100的驾驶环境的图包括与较小的地理范围有关的更多驾驶细节。例如,整个地理范围的地图可以仅包括诸如车道等的高级别地图要素。相反,驾驶环境的图可以包括上述可针对该图表示的较小地理范围而生成的所有地图要素。在一些实现中,规划模块304可以部分地基于av100在较小地理范围中的地点来识别要由该图所覆盖的较小地理范围,并针对较小地理范围来生成上述所有地图要素。

自主运载工具车道级路线规划

在生成了驾驶环境的图的情况下,规划模块304可以生成轨迹,各个轨迹是av100能够行驶的路径。为此,在一些实现中,规划模块304识别驾驶环境所表示的地理范围内的第一车道。在第一车道内,规划模块304可以识别表示起始时空地点的起始节点和表示结束时空地点的结束节点。规划模块304可以生成从起始节点到结束节点的边缘。该边缘表示起始时空地点和结束时空地点之间的轨迹。例如,该边缘可以位于第一车道内,并且不会与相邻车道交叉。

在实施例中,规划模块304识别地理范围内的第二车道。规划模块304可以生成从结束节点到表示第二车道中的时空地点的节点的边缘。该边缘可以表示穿过第一车道到第二车道的轨迹。从结束节点到表示第二车道中的时空地点的节点的边缘可以包括基于影响av100从结束节点行驶到第二车道中的时空地点的因素的过渡。这些因素可以包括例如两个节点之间的最短距离、在两个节点之间行驶的最短时间、在任一车道上行驶的速率约束、驾驶环境中的行驶条件或它们中的两个或更多个的任意组合。可以使用前面所描述的一种或多种技术来确定各个因素。

通过这种方式,规划模块304可以生成多条边缘,各边缘连接两个节点,并且各边缘可以是遍历边缘、连接边缘或车道改变边缘。在生成了边缘的情况下,规划模块304可以生成多个基线序列,各基线序列连接至少两个边缘。规划模块304能够为各基线序列分配并存储唯一标识符。所有边缘的起始节点和结束节点位于驾驶环境的图所覆盖的更小的地理范围内,在av100生成图时av100位于该地理范围中。

当av100接近图所表示的地理范围的边界时,规划模块304能够识别相邻地理范围并生成相邻地理范围中的驾驶环境的图。通过这种方式,规划模块304能够实时生成相邻地理范围的驾驶环境的图。实时在例如秒、微秒或纳秒的量级上是指在接收到输入到进行动作(例如,生成驾驶环境的图)之间的时间可以忽略。在一些实现中,规划模块304可以生成多个地理范围的驾驶环境的图,各地理范围与av100所存在的地理范围相邻(例如,毗连或附近)。

av100在穿越车道图边缘时评估成本。下面描述为穿越边缘分配成本的某些示例。成本的其它分配也是可能的。成本取决于路径长度(例如av行驶的基线序列的长度)(路径长度成本)以及机动(例如车道改变的次数)(机动成本)。为穿越遍历边缘(例如,遍历边缘1406)或连接边缘(例如,连接边缘1408)分配零机动成本。为穿越车道改变边缘(例如,车道改变边缘1410)分配等于1的机动成本。根据以下规则为车道改变边缘分配路径长度成本。如果车道改变边缘从较短车道连接到较长车道(以路径长度衡量),则车道改变边缘的路径长度成本为零。如果车道改变边缘从较长车道连接到较短车道(以路径长度测量),则将车道改变边缘的路径长度成本设置为较长车道和较短车道的路径长度之间的差。这种分配避免了偏向于向较短车道的车道改变以避开较短车道。车道图边缘的序列的成本是各边缘的成本之和。

当前成本被定义为路径长度成本和机动成本的加权和。在一些实现中,权重是基于单车道改变的成本相对于行驶附加距离的比较而选择的预定值。例如,在路线a具有单车道改变并且路线b没有车道改变的情况下,如果在路线b上行驶将产生等于预定值(例如,30米)的附加行驶距离,则将选择路线a。换句话说,如果一条车道改变将会节省的行驶距离小于预定值,则这一条车道改变的成本太高。车道路线是所连接的车道图边缘的序列。当第一边缘是车道遍历边缘时,路线的起始节点是车道起始节点。当第一边缘是车道连接边缘时,路线的起始节点是车道结束节点。当最后的边缘是车道遍历边缘时,路线的结束节点是车道结束节点。当最后的边缘是车道连接边缘时,路线的结束节点是车道起始节点。

在实施例中,除了路径长度成本和机动成本之外,成本还取决于车道改变惩罚成本。车道改变惩罚成本被描述为地图中最长车道的长度与车道改变边缘的起始车道和结束车道中的较短车道的长度之间的差除以地图中最长车道的长度与地图中最短车道的长度之间的差。引入车道改变惩罚成本的动机是要阻止较短路块上的车道改变。这是因为,在较短路块上的车道改变通常会导致更急剧、更突然的机动动作。在实施例中,车道改变惩罚成本总是在0.0和1.0之间(并且概念上与机动成本为同一单位)。在实施例中,车道改变成本参数被定义为使得在运载工具正穿越地图中的最短路块时的车道改变的成本(例如,1个机动成本+1个车道改变惩罚成本)是在运载工具正穿越最长路块时的车道改变的成本(1个机动成本+0个车道改变惩罚成本)的两倍。

在构建了多条路线的情况下,规划模块304使用从目标(例如,av100的最终目的地)开始的深度优先搜索算法来识别从车道起始节点到车道结束节点的成本最低的路线。该路线是所连接的车道图边缘的序列。当第一边缘是车道遍历边缘时,路线的起始节点是车道起始节点。当第一边缘是车道连接边缘时,路线的起始节点是车道结束节点。当最后的边缘是车道遍历边缘时,路线的结束节点是车道结束节点。当最后的边缘是车道连接边缘时,路线的结束节点是车道起始节点。规划模块304在确定为从目标向后可达的每个车道节点具有精确的代价时,终止深度优先搜索。在此基础上,规划模块304提取从图的起始节点到结束节点的最短路径。路线是av100从第一时空地点自主移动到第二时空地点的路径。路线中的至少一条路线包括av100能够沿其移动的至少一条车道。

图15是av能够行驶的轨迹1502的第一示例的示意图。这里描述了可以由规划模块304实现以生成轨迹1502的处理的示例。规划模块304确定av100的姿势(例如,速率和方向)。规划模块304将姿势投影到基线图上的最近的基线边缘,其中姿势和投影姿势之间的横向距离被定义为距离。投影姿势是av100将行驶的未来速率和方向。这样,规划模块304实现以下例外。如果姿势和投影姿势之间的航向差大于阈值角度(例如,45°),则规划模块304认为该距离无限远。如果投影姿势的坐标位于车道多边形内,则规划模块304将相应遍历边缘确定为相应的车道图边缘。由于车道多边形不重叠,因此不存在车道或者恰好存在一条车道。

如果投影姿势的坐标不在车道多边形内,而是在一个或多个车道连接线多边形内,则规划模块304将该姿势与最接近该姿势的车道图边缘相关联。在这种实例中,规划模块304将距离定义为姿势与其在车道连接线上的投影之间的横向距离,但存在以下例外。如果姿势在基线序列上的投影(在纵向上)位于基线序列外,则规划模块304认为该投影具有无限远的距离。如果姿势与其在基线序列上的投影之间的航向差大于阈值角度(例如,90°),则规划模块304认为该投影具有无限远的距离。如果投影姿势不在任何车道或车道连接线多边形内,则规划模块304忽略该姿势。

在确定姿势的相应车道图边缘时,规划模块304通过实现以下处理来确定相应车道图节点。如果姿势与路线的起点(例如,规划路线时av100的当前姿势)相对应,则规划模块304使用车道图边缘的原点节点。另一方面,如果姿势与路线的终点(例如,目的地地点)相对应,则规划模块304使用车道图边缘的目的地节点。由此得到的路线或轨迹(例如,轨迹1502)包括遍历边缘、连接边缘和车道改变边缘。图16是与轨迹1502相关联的基线1602的第一示例的示意图。图17是av100能够在其上行驶的轨迹1702的第二示例的示意图。图18是与轨迹1702相关联的基线1802的第二示例的示意图。

当不存在现有路线时,例如,当规划模块304首次被初始化时或者当目的地地点被替换时,规划模块304使用运载工具的当前姿势来确定车道图上的起始节点。规划模块304还使用第一目的地地点来确定路线的结束节点。当路线存在并且接收到新的目的地地点以进一步扩展路线时,规划模块304使用现有路线的最后车道图节点作为扩展路线的起始节点。规划模块304还使用所添加的目的地地点来确定车道图路线的结束节点。由于车道改变图上的车道改变边缘仅从车道起始节点到车道结束节点是可用的,所以为了强制进行特定车道上的车道改变(例如,从起始车道到终点车道),必须将目的地地点发送到起始车道的汇入车道连接线,并且必须将目的地地点发送到终点车道。图19是av100能够在其上行驶的轨迹1902的第三示例的示意图。轨迹1902是两个路块1904和1906之间的车道改变。图20是自主运载工具能够在其上行驶的轨迹2002的第四示例的示意图。轨迹2002是如下的姿势序列,其强制在三个路块2004、2006和2008中的中间路块2006处进行车道改变,而不是在第一路块2008处进行车道改变。

目的地地点将始终离开至少一个路块,除非目标是路线的最终目标。在车道改变路块,注入起始车道和结束车道这两者的基线序列。在同一路块中可以有多次车道改变。在这种情况下,将注入车道改变期间所有车道的相应基线。车道改变辅助过渡作为非基线过渡从起始车道注入到结束车道,以确保规划模块304始终具有到目的地地点的路径。在同一路块中的多次车道改变的情况下,将在从起始车道到结束车道的各对车道之间注入车道改变辅助过渡。中间目的地默认为各车道/车道连接线的结束基线节点。例外情况是在各路线段的末端处,其中将目的地地点设置为最终目的地地点以生成该路线段。

图21是表示av100从一个车道行驶到相邻车道的可能轨迹的基线间连接的示意图。图21示出具有辅助连接(例如,2106、2108)的两条基线(2102和2104)。规划模块304以滚动时域(recedinghorizon)的方式注入辅助连接(有时称为基线间连接),其中该时域(例如,av100前面的距离)是预定义的。对于各基线节点,规划模块304将辅助连接从节点(例如,基线2102上的节点2110)添加到同一组内和该时域内的一个或多个节点(例如,基线2104上的节点2112)。

图22是轨迹2202的主干分离和裁切的示意图。规划模块304所生成的各个路线(例如,路线2202)可以包括根(例如,路线2204)和主干(例如,2206)。主干是所选择的轨迹的运载工具被配置为附着至的部分。规划模块304可以通过当前速度、速度分布优化器所产生的未来速度分布和致力于要在主干上行驶的时间量来确定主干的长度。在一些实现中,主干可以是轨迹长度的一半长度。在一些实现中,主干长度可以在轨迹长度的1/3至2/3的范围内。即,一旦规划模块304识别出路线2202作为要行驶的路线,av100致力于在偏离路线2202之前至少行驶到路线2202的主干2206的前端2208。在至少行驶了主干2206之后,av100可以继续行驶相同的轨迹2202或者可以选择不同的路线来行驶,例如,到不同基线的辅助连接。较长的主干增加了av100的稳定性但降低了其灵敏性。

图23是主干到基线连接的示意图。连接表示av100从另一基线2304返回到基线2302的运动规划。规划模块304建立从主干的前端到av100前面的预定义的时域内的所有基线节点的连接。在基线组内存在多个基线序列的情况下,主干到基线的连接连接到所有基线序列,以提供车道改变运动规划以及基线间连接。

图24是来自轨迹2402的并行基线连接的示意图。并行基线踪迹(例如,踪迹2406、2408)表示如下运动规划:偏离基线(例如,基线2402),(以不同的横向偏移)与基线并行行驶,然后在一定纵向距离之后返回到基线2404。踪迹的数量和踪迹的横向距离可以被预先定义和存储。踪迹的方向可以例如向着基线的左侧或右侧,可以基于用于在地理范围内经过相邻运载工具的驾驶规则。各个并行基线踪迹可以具有连接回至基线的纵向分布的多个出口点或关键顶点。顶点连接到预定义的时域内的所有基线节点。在一些实现中,踪迹可以以滚动时域的方式注入到运动图中。

图25是用于识别自主运载工具行驶的轨迹的处理2500的示例的流程图。在一些实现中,处理2500可以由规划模块304实现。在2502,访问地理区域的地图。该地图包括识别地理区域中的运载工具可以行驶的至少一条车道的信息。在2504,生成运载工具的驾驶环境的图。该图包括多个轨迹。至少一个轨迹包括车道改变。各个轨迹是运载工具从地图上的第一时空地点自主移动到地图上的第二时空地点的路径。该轨迹包括运载工具可沿其移动的至少一条车道。该轨迹包括运载工具可沿其移动的至少一条车道。在2506,基于运载工具的初始运载工具轨迹来选择多个轨迹中的运载工具行驶的轨迹。所选轨迹包括主干,主干是所选择的轨迹的运载工具附着至的部分。在2508,运载工具沿着所选择的轨迹移动。

在先前描述中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现而不同。因此,说明书和附图应被视为说明性的,而非限制性意义的。本发明范围的唯一且排他的指示、以及申请人期望是本发明范围的内容是根据本申请所授权的权利要求书的以授权权利要求书的具体形式的字面和等同范围,包括对授权权利要求书的任何后续修正。本文中明确阐述的用于被包括在此类权利要求中的术语的任何定义应当支配在权利要求书中所使用的此类术语的意义。另外,当在之前的说明书或所附权利要求书使用术语“还包括”时,该短语的下文可以是附加的步骤或实体、或者先前所述的步骤或实体的子步骤/子实体。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1