首页> 中国专利> 从预先计算的或动态生成的轨迹库的轨迹预测

从预先计算的或动态生成的轨迹库的轨迹预测

摘要

描述了用于基于先前移动、路网、周围对象和/或其它相关环境因素来预测智能体(例如,运载工具、自行车、行人等)将如何在环境中移动的技术等。一个轨迹预测技术涉及生成智能体的移动的概率图。另一轨迹预测技术涉及为智能体的移动生成轨迹点阵。另外,不同的轨迹预测技术涉及多模态回归,其中训练分类器(例如,神经网络)以对多个(经学习的)模式的概率进行分类,使得各模型基于当前输入产生轨迹。

著录项

  • 公开/公告号CN112783151A

    专利类型发明专利

  • 公开/公告日2021-05-11

    原文格式PDF

  • 申请/专利权人 动态AD有限责任公司;

    申请/专利号CN202011222551.4

  • 申请日2020-11-05

  • 分类号G05D1/02(20200101);

  • 代理机构11277 北京林达刘知识产权代理事务所(普通合伙);

  • 代理人刘新宇

  • 地址 美国马萨诸塞州

  • 入库时间 2023-06-19 10:57:17

说明书

技术领域

本说明书涉及从预先计算的或动态生成的轨迹库的轨迹预测。

背景技术

自主运载工具与人类驾驶运载工具相比存在益处,例如减少了道路交通事故死伤人数、交通拥堵、停车拥堵和考虑燃料效率。在作出驾驶决策时,典型的自主运载工具系统考虑到自主运载工具系统通过利用传感器数据而知晓处于运载工具的环境中的周围环境的对象(诸如其它运载工具和障碍物等)。自主运载工具系统可以受益于预测环境中的其它对象(例如,其它运载工具、自行车、行人等)将如何移动以改进轨迹规划。

发明内容

一种计算机实现的方法,包括:利用运载工具的一个或多个处理器,接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据;利用所述一个或多个处理器,基于所述地点数据和所述过去轨迹数据来确定所述一个或多个对象的一组特征;利用所述一个或多个处理器,将所述一组特征与智能体的运动数据组合以形成链接数据集;利用所述一个或多个处理器,基于所述链接数据集来生成概率图,其中所述概率图包括多个物理地点,以及其中所述多个物理地点中的各物理地点被指派所述智能体移动通过该地点的概率;利用所述一个或多个处理器,基于所述概率图来确定所述智能体的一个或多个预测轨迹;利用所述一个或多个处理器,基于所述一个或多个预测轨迹来生成针对所述运载工具的一个或多个驾驶命令;以及利用所述运载工具的控制电路,基于所述一个或多个驾驶命令来操作所述运载工具。

一种非暂时性计算机可读存储介质,包括供一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括指令,所述指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器进行以下操作:接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据;基于所述地点数据和所述过去轨迹数据来确定所述一个或多个对象的一组特征;将所述一组特征与智能体的运动数据组合以形成链接数据集;基于所述链接数据集来生成概率图,其中所述概率图包括多个物理地点,以及其中所述多个物理地点中的各物理地点被指派所述智能体移动通过该地点的概率;基于所述概率图来确定所述智能体的一个或多个预测轨迹;基于所述一个或多个预测轨迹来生成针对运载工具的一个或多个驾驶命令;以及利用所述运载工具的控制电路,基于所述一个或多个驾驶命令来操作所述运载工具。

一种运载工具,包括:一个或多个计算机可读介质,用于存储计算机可执行指令;以及一个或多个处理器,其被配置为执行所述计算机可执行指令,以进行以下操作:接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据;基于所述地点数据和所述过去轨迹数据来确定所述一个或多个对象的一组特征;将所述一组特征与智能体的运动数据组合以形成链接数据集;基于所述链接数据集来生成概率图,其中所述概率图包括多个物理地点,以及其中所述多个物理地点中的各物理地点被指派所述智能体移动通过该地点的概率;基于所述概率图来确定所述智能体的一个或多个预测轨迹;基于所述一个或多个预测轨迹来生成针对运载工具的一个或多个驾驶命令;以及利用所述运载工具的控制电路,基于所述一个或多个驾驶命令来操作所述运载工具。

附图说明

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

图2例示示例“云”计算环境。

图3例示计算机系统。

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

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

图6示出LiDAR系统的示例。

图7示出操作中的LiDAR系统。

图8示出LiDAR系统的操作的附加细节。

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

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

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

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

图13示出可以作为地点数据和过去轨迹数据接收的图像的示例。

图14是系统为了使用概率图预测对象的一个或多个轨迹而可以进行的动作的框图。

图15是智能体(agent)的概率图的数据结构的一部分的示例。

图16是系统为了使用轨迹点阵(trajectory lattice)预测智能体的一个或多个轨迹而可以进行的动作的框图。

图17示出具有各种轨迹的各种轨迹点阵。

图18示出智能体的多个预测轨迹和行驶轨迹。

图19A和19B是系统为了训练多模态轨迹预测的模型而可以进行的动作的框图。

具体实施方式

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

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

此外,在附图中,连接要素、例如实线或虚线或箭头用于说明两个或两个以上其它示意要素之间的连接、关系或关联,没有任何此类连接要素并不意味着不能存在连接、关系或关联。换句话说,一些要素之间的连接、关系或关联未在附图中显示,以便不掩盖本发明。此外,为了便于说明,使用单个连接要素来表示要素之间的多个连接、关系或关联。例如,如果连接元件代表信号、数据或指令的通信,本领域技术人员应理解,该元件代表影响通信可能需要的一个或多个信号路径(例如,总线)。

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

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

1.总体概述

2.系统概述

3.自主运载工具架构

4.自主运载工具输入

5.自主运载工具规划

6.自主运载工具控制

7.从预先计算的或动态生成的概率图的轨迹预测

8.从轨迹点阵的轨迹预测

9.多模态轨迹预测

本文描述用于基于周围对象的移动来预测智能体(例如,运载工具、自行车、行人等)将如何在环境中移动的不同技术。一个技术涉及生成概率图。系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据。这些对象可能已由该智能体检测到(例如,如果智能体是运载工具,则对象可能已由运载工具的传感器检测到)。系统从这些对象确定一组特征,并且将该组中的特征与智能体的运动数据(例如,速率、加速度、偏航率等)组合。系统然后(例如,使用神经网络)从链接数据集(concatenated data set)生成概率图。概率图包括多个物理地点(例如,一米分辨率的正方形),使得各物理地点被指派智能体穿越该物理地点的概率。基于该概率图,系统生成智能体的一个或多个预测轨迹。预测系统可以使用在使用之前经训练的神经网络。在训练期间,输入可以包括智能体所行驶的轨迹。尽管该技术被描述为对单个智能体进行轨迹预测,但系统能够预测特定输入集(例如,一组地点数据和过去轨迹数据)中的多个或所有智能体的轨迹。

另一技术涉及生成轨迹点阵。系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据,从这些对象确定一组特征,并且将该组中的特征与智能体的运动数据(诸如速率、加速度、偏航率等)组合。在实施例中,过去轨迹数据可以包括过去地图数据,该过去地图数据包括交通信号数据、转弯信号数据、注意力估计、刹车灯指示、智能体类型和其它合适的过去轨迹数据。系统然后(例如,使用神经网络)从链接数据集生成轨迹点阵。轨迹点阵包括智能体的多个可能轨迹以及相应概率。基于轨迹点阵,系统生成智能体的一个或多个预测轨迹。尽管该技术被描述为对单个智能体进行轨迹预测,但系统能够预测特定输入集(例如,一组地点数据和过去轨迹数据)中的多个或所有智能体的轨迹。

不同的技术涉及训练用于多模态预测方法的分类器(例如,神经网络)。与上述两个技术一样,系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据,从这些对象确定一组特征,并且将这些特征与智能体的运动数据(例如,速率、加速度、偏航率等)组合。然而,在该实例中,所接收到的数据是有时被称为地面真值的还包括智能体实际行驶的轨迹的训练数据。系统然后(例如,使用神经网络)生成各轨迹具有相应概率的多个预测轨迹,并且计算各预测轨迹和智能体所行驶的轨迹之间的角度。预测系统确定这些角度中的任何角度是否在阈值(例如,阈值角度)内。基于确定为这些角度都不在阈值内,系统使用函数来选择最佳轨迹(有时称为最佳模式)。在实施例中,代替在该计算中使用角度,系统可以使用不同的度量。因此,系统可以使用度量来计算各预测轨迹和智能体所行驶的轨迹之间的值,以确定各值是否在阈值内。例如,函数可以使得(例如,使用随机数生成器)选择随机轨迹。在实施例中,函数可以使用一个或多个模板(例如,模板轨迹)来选择最佳轨迹。模板可以是基于智能体的当前状态(例如,速率、加速度、偏航率或其它合适的状态分量)静态地或动态地生成的。系统(例如,使用多模态损失函数)计算最佳轨迹和智能体所行驶的轨迹之间的差异,并且(例如,通过最小化训练数据的损失)基于该差异来调整模型的权重。可以针对训练集(例如,地点数据和过去轨迹数据的数千个实例)重复该处理,以开发模型(例如,神经网络)来预测智能体的多个轨迹。尽管该技术被描述为对单个智能体进行轨迹预测,但系统能够预测特定输入集(例如,一组地点数据和过去轨迹数据)中的多个或所有智能体的轨迹。

这些技术的优点中的一些优点包括能够预测智能体(例如,运载工具、自行车或行人)的移动、并且基于该移动来进行运动规划。因此,这些技术使自主运载工具在导航时更安全且更高效。

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

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

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

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

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

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

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

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

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

术语“空中下载(OTA)客户端”包括任何AV,或者嵌入在AV中、耦接至AV或与AV进行通信的任何电子装置(例如,计算机、控制器、IoT装置、电子控制单元(ECU))。

术语“空中下载(OTA)更新”意味着对使用专有和/或标准化的无线通信技术递送至OTA客户端的软件、固件、数据或配置设置或者它们的任何组合的任何更新、改变、删除或添加,其中该专有和/或标准化的无线通信技术包括但不限于:蜂窝移动通信(例如,2G、3G、4G、5G)、无线电无线区域网络(例如,WiFi)和/或卫星因特网。

术语“边缘节点”是指耦接至网络的一个或多个边缘装置,这些装置提供与AV进行通信所用的门户并且可以与其它边缘节点和基于云的计算平台进行通信,以调度OTA更新并将OTA更新递送至OTA客户端。

术语“边缘装置”是指实现边缘节点并提供向企业或服务提供商(如VERIZON、AT&T)核心网的物理无线接入点(AP)的装置。边缘装置的示例包括但不限于:计算机、控制器、发送器、路由器、路由交换机、综合接入装置(IAD)、多路复用器、城域网(MAN)和广域网(WAN)接入装置。

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

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

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

如本文所使用的,“如果”一词可选择地理解为在该情况下、在当时、或者响应于检测到、或响应于确定为,视上下文而定。同样,“如果已确定”或“如果[所述条件或事件]已被检测到”这一短语,视情境而定,可以理解为“在确定时”或“响应于确定为“或”在检测到[所述条件或事件]时”或“响应于检测到[所述条件或事件]”。

如本文所使用的,AV系统是指AV以及实时生成的支持AV操作的硬件、软件、存储的数据和实时生成的支持AV运作的数据。在实施例中,AV系统并入在AV内。在实施例中,AV系统跨多个地点分布。例如,AV系统的一些软件是在类似于下面结合图3描述的云计算环境300的云计算环境中实现的。

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

自主运载工具与需要人类驾驶员的运载工具相比存在优势。一个优势是安全性。例如,在2016年,美国经历了600万起汽车事故、240万人受伤、40000人死亡和1300万辆运载工具碰撞事故,估计社会成本为9100亿美元多。从1965年到2015年,每行驶1亿英里的美国交通事故死亡人数已从约6人减少到约1人,部分是由于运载工具中所部署的附加安全措施。例如,认为与将发生碰撞有关的额外半秒的警告减轻了60%的前后碰撞。然而,被动安全特征(例如,安全带、安全气囊)在改进该数字方面有可能已达到它们的极限。因而,诸如运载工具的自动控制等的主动安全措施是改进这些统计数据的可能的下一步。由于在95%的碰撞中认为人类驾驶员是造成严重碰撞前事件的原因,因此自动驾驶系统例如通过以下操作,有可能实现更好的安全结果:比人类更好地可靠地识别和避免紧急情况;做出比人类更好的决策,比人类更好地遵守交通法规,并且比人类更好地预测将来事件;并且比人类更好地可靠地控制运载工具。

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

在实施例中,AV系统120包括用于从计算机处理器146接收操作命令并对其进行操作的装置101。使用术语“操作命令”来表示使得运载工具进行动作(例如,驾驶机动动作)的可执行指令(或指令集)。操作命令可以非限制性地包括用于使运载工具开始向前移动、停止向前移动、开始向后移动、停止向后移动、加速、减速、进行左转和进行右转的指令。在实施例中,计算处理器146与下面参考图3描述的处理器304相似。装置101的示例包括转向控制器102、制动器103、挡位、加速踏板或其它加速控制机构、挡风玻璃雨刮器、侧门锁、窗控器和转向指示器。

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

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

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

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

在实施例中,通信装置140包括通信接口。例如,有线、无线、WiMAX、Wi-Fi、蓝牙、卫星、蜂窝、光、近场、红外或无线电接口。通信接口将数据从远程数据库134传输到AV系统120。在实施例中,远程数据库134嵌入云计算环境200中,如图2中所述。通信接口140将从传感器121收集的数据或与AV 100操作有关的其它数据传输到远程数据库134。在实施例中,通信接口140向AV 100传输与远程操作有关的信息。在一些实施例中,AV 100与其它远程(例如,“云”)服务器136通信。

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

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

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

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

在实施例中,AV系统120接收并强制执行例如由乘员指定的或者存储在与乘员相关联的简档中的乘员的隐私级别。乘员的隐私级别确定了如何许可使用存储在乘员简档中的以及/或者存储在云服务器136上且与乘员简档相关联的、与乘员相关联的特定信息(例如,乘员舒适度数据、生物测量数据等)。在实施例中,隐私级别指定了一旦搭乘完成则被删除的与乘员相关联的特定信息。在实施例中,隐私级别指定了与乘员相关联的特定信息,并且标识被授权访问该信息的一个或多个实体。被授权访问信息的所指定的实体的示例可以包括其它AV、第三方AV系统、或者可以潜在地访问该信息的任何实体。

可以在一个或多个粒度级别指定乘员的隐私级别。在实施例中,隐私级别标识要存储或共享的特定信息。在实施例中,隐私级别适用于与乘员相关联的所有信息,使得乘员可以指定不存储或共享她的个人信息。被许可访问特定信息的实体的指定也可以在各种粒度级别指定。被许可访问特定信息的各种实体集例如可以包括其它AV、云服务器136、特定第三方AV系统等。

在实施例中,AV系统120或云服务器136确定AV 100或另一实体是否可访问与乘员相关联的某些信息。例如,试图访问与特定时空地点有关的乘员输入的第三方AV系统必须例如从AV系统120或云服务器136获得授权,以访问与乘员相关联的信息。例如,AV系统120使用乘员的指定隐私级别来确定是否可以将与时空地点有关的乘员输入呈现给第三方AV系统、AV 100或另一AV。这使得乘员的隐私级别能够指定允许哪些其它实体接收与乘员的动作有关的数据或与乘员相关联的其它数据。

图2例示示例“云”计算环境。云计算是一种服务交付模式,可以方便、按需地在网络上访问共享的可配置计算资源池(例如网络、网络带宽、服务器、处理、内存、存储、应用程序、虚拟机和服务)。在典型的云计算系统中,一个或多个大型云数据中心容纳用于递送云所提供的服务的机器。现在参考图2,云计算环境200包括通过云202互连的云数据中心204a、204b和204c。数据中心204a、204b和204c为连接到云202的计算机系统206a、206b、206c、206d、206e和206f提供云计算服务。

云计算环境200包括一个或多个云数据中心。通常,云数据中心(例如图2中所示的云数据中心204a)是指构成云(例如图2中所示的云202或云的特定部分)的服务器的物理排列。例如,服务器在云数据中心中物理排列成房间、组、行和机架。云数据中心有一个或多个区域,其中包括一个或多个服务器房间。每个房间有一行或多行服务器,每行都包括一个或多个机架。每个机架包括一个或多个单独的服务器节点。在实施例中,区域、房间、机架和/或行中的服务器根据数据中心设施的物理基础设施要求(包括电力、能源、热力、热源和/或其它要求)分为若干组。在实施例中,服务器节点类似于图3中描述的计算机系统。数据中心204a具有许多分布在多个机架上的计算系统。

云202包括云数据中心204a、204b和204c以及用于连接云数据中心204a、204b和204c并有助于促进计算系统206a-f对云计算服务的访问的网络和网络资源(例如,网络设备、节点、路由器、交换机和网络电缆)。在实施例中,该网络表示一个或多个本地网络、广域网或通过使用地面或卫星连接部署的有线或无线链路连接的网际网络的任意组合。通过网络交换的数据采用多种网络层协议(如Internet协议(IP)、多协议标签交换(MPLS)、异步传输模式(ATM)、帧中继(FrameRelay)等)进行传输。此外,在网络代表多个子网络的组合的实施例中,在每个底层子网络上使用不同的网络层协议。在一些实施例中,网络代表一个或多个互连网际网络(例如公共互联网等)。

计算系统206a-f或云计算服务消费者通过网络链路和网络适配器连接到云202。在实施例中,计算系统206a-f被实现为各种计算装置,例如服务器、台式机、膝上型计算机、平板电脑、智能手机、物联网(IoT)设备、自主运载工具(包括小汽车、无人机、航天飞机、火车、公共汽车等)和消费电子产品。在实施例中,计算系统206a-f在其它系统中实现或作为其它系统的一部分实现。

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

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

在实施例中,计算机系统300还包括只读存储器(ROM)308或连接到总线302的其它静态存储装置,用于存储处理器304的静态信息和指令。提供诸如磁盘、光盘、固态驱动器或三维交叉点存储器等的存储装置310,并连接到总线302以存储信息和指令。

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

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

此处使用的术语“存储介质”是指存储数据和/或指令的任何非暂时性介质,这些数据和/或指令使机器以特定方式运行。这种存储介质包括非易失性介质和/或易失性介质。非易失性介质例如包括诸如存储装置310等的光盘、磁盘、固态驱动器或三维交叉点存储器。易失性介质包括动态存储器,诸如主存储器306等。存储介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光数据存储介质、任何具有孔型的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NV-RAM、或任何其它存储芯片或存储盒。

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

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

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

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

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

图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]、硬件存储器装置、其它类型的集成电路、其它类型的计算机硬件、或者这些硬件中的任何或所有的组合)的组合。模块402、404、406、408和410各自有时被称为处理电路(例如,计算机硬件、计算机软件、或者这两者的组合)。模块402、404、406、408和410中的任何或全部的组合也是处理电路的示例。

在使用中,规划模块404接收表示目的地412的数据,并且确定表示AV100为了到达(例如,抵达)目的地412而可以行驶的轨迹414(有时称为路线)的数据。为了使规划模块404确定表示轨迹414的数据,规划模块404从感知模块402、定位模块408和数据库模块410接收数据。

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

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

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

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

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

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

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

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

图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。

图7示出操作中的LiDAR系统602。在该图所示的情境中,AV 100接收采用图像702的形式的照相机系统输出504c和采用LiDAR数据点704的形式的LiDAR系统输出504a。在使用中,AV 100的数据处理系统将图像702与数据点704进行比较。特别地,在数据点704中也识别出在图像702中识别出的物理对象706。这样,AV 100基于数据点704的轮廓和密度来感知物理对象的边界。

图8示出LiDAR系统602的操作的附加细节。如上所述,AV 100基于LiDAR系统602所检测到的数据点的特性来检测物理对象的边界。如图8所示,诸如地面802等的平坦对象将以一致的方式反射从LiDAR系统602发射的光804a-804d。换句话说,由于LiDAR系统602使用一致的间隔发射光,因此地面802将以相同的一致间隔将光反射回到LiDAR系统602。在AV100在地面802上行驶时,在没有东西阻挡道路的情况下,LiDAR系统602将继续检测到由下一个有效地面点806反射的光。然而,如果对象808阻挡道路,则LiDAR系统602所发射的光804e-804f将以不符合预期一致方式的方式从点810a-810b反射。根据该信息,AV 100可以确定为存在对象808。

图9示出(例如,如图4所示的)规划模块404的输入和输出之间的关系的框图900。通常,规划模块404的输出是从起点904(例如,源地点或初始地点)到终点906(例如,目的地或最终地点)的路线902。路线902通常由一个或多个路段定义。例如,路段是指要行驶经过街道、道路、公路、行车道或适合汽车行驶的其它物理区域的至少一部分的距离。在一些示例中,例如,如果AV 100是诸如四轮驱动(4WD)或全轮驱动(AWD)小汽车、SUV或小型卡车等的越野运载工具,则路线902包括诸如未铺面道路或开阔田野等的“越野”路段。

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

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

图10示出在路径规划中(例如,由规划模块404(图4))使用的有向图1000。通常,如图10所示的有向图那样的有向图1000用于确定任何起点1002和终点1004之间的路径。在现实世界中,分隔起点1002和终点1004的距离可能相对较大(例如,在两个不同的都市区域中),或者可能相对较小(例如,毗邻城市街区的两个交叉口或多车道道路的两条车道)。

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

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

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

在实施例中,规划模块404使用有向图1000来识别由起点1002和终点1004之间的节点和边缘组成的路径1012。

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

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

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

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

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

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

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

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

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

如上所述,本文描述用于基于周围对象的移动来预测智能体(例如,运载工具、自行车、行人等)将如何在环境中移动的不同技术。以下所述的技术包括用于接收在智能体的一定距离内的对象的地点数据和过去轨迹数据的系统。如本文所使用的,术语智能体是指系统正尝试预测可能轨迹上的分布的对象(例如,运载工具、自行车、行人或另一合适对象)。如本文所使用的,术语“地点数据”是指对象(例如,运载工具、自行车、行人或另一合适对象)关于检测范围中的智能体或另一对象的地点。如本文所使用的,术语“过去轨迹数据”是指特定对象(例如,运载工具、自行车、行人或另一合适对象)在特定时间量(例如,一秒、两秒、三秒或另一合适的时间)内的轨迹。在实施例中,过去轨迹数据可以包括过去时间间隔(例如,一秒之前、两秒之前、三秒之前或另一合适时间)内记录的原始传感器数据。

图13示出作为地点数据和过去轨迹数据可以接收的图像1300的示例。图像1300包括具有各运载工具的当前地点和各运载工具的过去轨迹历史的、运载工具沿着车道行驶的描绘(depiction)1302和1304。另一描绘1306示出多个行人在人行横道处且正在穿过道路。图像1300可以由系统接收以进行以下所述的各种预测技术。在实施例中,该图像是通过将地图数据和多个时间(例如,一秒之前、两秒之前、三秒之前或另一合适时间)的其它对象数据重叠所构建的。

以下所述的各图(例如,图14、图16、图19A和19B)中的动作可以由本文中前面所述的各种组件来进行。例如,图1的一个或多个处理器146可以进行这些动作。在实施例中,以下所述的动作中的一部分或全部可以在数据中心(例如,数据中心204A)中或者在多个数据中心(例如,如图2所示的数据中心204A、204B和/或204C)中进行。在实施例中,以下所述的动作可以由感知电路402、规划电路404和/或这两个电路的组合来进行。然而,为了清楚起见,本发明将进行这些动作的系统称为预测系统。

一个轨迹预测技术涉及生成概率图(有时被称为成本图或热图)。预测系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据。这些对象可能已由该智能体检测到(例如,如果智能体是运载工具,则对象可能已由运载工具的传感器检测到)。预测系统从该组中的对象中确定一组特征,将这些特征与智能体的运动数据(例如,速率、加速度、偏航率等)组合,并且(例如,使用神经网络)从链接数据集生成概率图。概率图包括多个物理地点(例如,一米分辨率的正方形),使得各物理地点被指派智能体穿越该物理地点的概率。基于概率图,预测系统生成智能体的一个或多个预测轨迹。

图14是为了预测对象的一个或多个轨迹而可以进行的处理1400的框图。在1405中,预测系统接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据。例如,如上所述,可以接收到图13的图像1300作为地点数据和过去轨迹数据。在实施例中,预测系统可以接收采用不同格式的地点数据和过去轨迹数据。预测系统可以接收过去时间间隔(例如,一秒、两秒、三秒或另一合适的时间间隔)内的过去轨迹数据。当接收到地点数据和过去轨迹数据作为图像的一部分时,图像可以包括采用颜色编码格式的一个或多个对象的过去轨迹数据,以指示一个或多个对象的各对象的相应过去轨迹。例如,各个对象1302被示出为具有存在颜色的逐渐变化的多个颜色,以示出过去轨迹数据的时间进展。

在1410中,预测系统使用一个或多个处理器并且基于地点数据和过去轨迹数据来确定一个或多个对象的一组特征。例如,在接收到地点数据和过去轨迹数据作为图像的实施例中,预测系统可以将该图像输入到分类器中,并且从分类器接收该图像的多个特征。图像的特征可以包括各种对象的速度、这些对象的地点和距离、以及其它合适的信息。在1415中,预测系统(例如,使用一个或多个处理器)将该组特征与智能体的运动数据组合以形成链接数据集。例如,预测系统可以向该特征集添加包括智能体的速率、加速度和偏航率的矢量。

在1420中,预测系统使用一个或多个处理器基于链接数据集来生成包括多个物理地点的概率图,其中这多个物理地点中的各物理地点被指派智能体移动通过该地点的概率。在实施例中,生成概率图包括:将链接数据集输入到神经网络中。神经网络可被配置为接受链接数据集作为输入。

使用训练集来训练神经网络。例如,训练集可以包括多个对象的多组地点数据和过去轨迹数据。在实施例中,训练集包括(例如,采用与图像1300相同的格式的)多个图像。另外,训练集还包括智能体的轨迹(例如,智能体所行驶的路径)。地点数据和轨迹数据(例如,采用与图像1300相同的格式的图像)可被输入到神经网络中,并且神经网络可以返回预测轨迹和该轨迹的概率。在实施例中,神经网络返回多个预测轨迹和相应概率。预测系统可以将智能体的轨迹与预测轨迹比较,以确定这两个轨迹之间的差异。预测系统可以获取该差异和概率,并且该信息反向传播通过神经网络。例如,预测系统可以指示神经网络基于差异和概率来调整节点权重。当提供了多个预测轨迹和多个概率时,预测系统可以生成多个差异,并且这些差异和这些概率反向传播通过神经网络。预测系统可以针对训练集的每个输入重复该处理以训练神经网络。

在实施例中,预测系统可以采取以下动作来训练神经网络。在实施例中,预测系统可以使用运载工具的资源(例如,(一个或多个)处理器、存储器和其它合适的资源)来进行训练。该训练可以在运载工具的外部(例如,在如图2所示的数据中心204A处)进行。预测系统可以接收一个或多个训练对象的训练地点数据和训练过去轨迹数据(例如,一秒、两秒或另一合适的移动时间间隔)。可以接收到训练地点数据和训练过去轨迹数据作为采用与图13的图像1300相同的格式的图像。预测系统可以基于训练地点数据和训练历史轨迹数据来确定一个或多个训练对象的一组训练特征。例如,当接收到地点数据和过去轨迹数据作为图像时,预测系统可以将该图像输入到分类器中,并且从分类器接收该图像的多个特征。图像的特征可以包括各种对象的速度、这些对象的地点和距离、以及其它合适的信息。预测系统将一组训练特征与智能体的训练运动数据组合以形成训练链接数据集。例如,预测系统可以添加包括各对象的速率、加速度和偏航率的矢量。

然后,使用链接数据集来生成包括多个训练物理地点的训练概率图,其中多个训练物理地点各自被指派训练智能体移动经过该地点的训练概率。然后,预测系统基于训练概率图来确定训练智能体的一个或多个训练轨迹。该动作和训练神经网络的上述动作与在执行神经网络以获得预测轨迹时的动作类似。然而,在生成预测之后,进行不同的动作。具体地,预测系统将一个或多个训练轨迹与训练智能体的已知轨迹进行比较。由于地点数据和过去轨迹数据是训练集的一部分,因此训练集包括智能体移动所沿着的轨迹。因而,可以将一个或多个预测轨迹(训练轨迹)与智能体移动所沿着的轨迹进行比较。然后,预测系统根据该比较来更新模型(例如,正训练的神经网络)的权重。如上所述,比较结果(例如,轨迹的(一个或多个)差异)可以反向传播通过神经网络,以调整神经网络的权重。因此,根据比较来更新模型的权重可以通过将一个或多个训练轨迹中的各训练轨迹与已知轨迹之间的差异传播通过模型来进行。

在实施例中,预测系统可以生成表示智能体的一个或多个传感器的检测范围的网格的数据结构。网格可以包括多个地点,并且可以表示概率图。预测系统可以向网格内的各地点指派智能体将存在于网格内的该地点中的概率。图15是智能体的概率图的数据结构的一部分的示例。如图15的数据结构1500所示,概率图(例如,网格)内的各地点1502存储网格内的相应地点的概率1504。在实施例中,数据结构1500可以存储网格内的各地点的时间1506。时间指示随着时间从场景流逝、从输入地点数据和过去轨迹数据起的经过时间。数据结构可以包括如由参数1字段1508指示的其它参数。在实施例中,可以自适应地调整网格的大小。例如,网格内的区域在空间上更接近智能体时可以具有更小的大小,并且在空间上进一步远离智能体时可以具有更大的大小。该调整大小使得更多预测点能够接近智能体。在另一示例中,可以基于时间来调整网格的大小。例如,对于前几秒,预测系统可以生成与接下来的几秒相比更多的坐标,从而使得能够处理更多的预测数据。

返回到图14,在1425中,预测系统基于概率图来确定运载工具的一个或多个预测轨迹。预测系统可以从如此得到的概率图中选择最高概率轨迹。在选择处理期间,预测系统可以访问与网格相关联的数据结构,并且针对各时间间隔(例如,一秒、两秒和/或三秒)检索网格内的最高概率地点。然后,预测系统可以使用所选择的地点作为智能体的预测轨迹。在实施例中,预测系统可以选择多个轨迹。例如,可以存在具有不同概率的三个预测轨迹,其中一个预测轨迹用于直行,一个预测轨迹用于右转,并且一个预测轨迹用于左转。

在1430中,预测系统使用运载工具的规划电路基于一个或多个预测轨迹来使得生成针对运载工具的一个或多个驾驶命令。预测系统可以至少部分位于正使用预测系统来预测其它对象(例如,智能体)将如何移动的运载工具中。因此,该运载工具的规划电路可以使用对象的一个或多个预测轨迹来生成针对运载工具的驾驶命令。因此,运载工具可以包括存储有计算机可执行指令的一个或多个计算机可读介质以及被配置为执行进行处理1400的计算机可执行指令的一个或多个处理器。

在实施例中,预测系统至少部分驻留在运载工具的外部(例如,在如图2所示的数据中心204A中)。因此,预测系统可以将运载工具所检测到的对象的预测轨迹发送至运载工具,并且运载工具(例如,使用规划电路)可以基于所接收到的轨迹来生成驾驶命令。在实施例中,驾驶命令可以是从远离运载工具的地点(例如,在图2所示的数据中心204A处)生成的,并且被发送至运载工具以供执行。

在1435中,预测系统使用运载工具的控制电路来使得运载工具基于一个或多个驾驶命令而操作。例如,规划电路可以将驾驶命令发送至控制电路以供执行。运载工具的控制电路可以解释并执行这些命令,以基于所检测到的对象(例如,智能体)的预测轨迹来在避开这些对象的轨迹上驾驶运载工具。

关于来自预先计算的或动态生成的概率图的轨迹预测所述的动作可以作为一个或多个程序存储在非暂时性计算机可读存储介质上,以供由(例如,在运载工具上、在数据中心或另一合适的地点处的)一个或多个处理器执行。一个或多个程序可以包括指令,其中这些指令在由一个或多个处理器执行时,使得进行上述的(一个或多个)计算机实现的方法。

另一轨迹预测技术涉及为智能体(例如,运载工具、自行车、行人或另一合适对象)生成轨迹点阵。预测系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据。这些对象可能已由该智能体检测到(例如,如果智能体是运载工具,则对象可能已由运载工具的传感器检测到)。预测系统从这些对象确定一组特征,将该组中的特征与智能体的运动数据(例如,速率、加速度、偏航率等)组合,并且(例如,使用神经网络)生成智能体的轨迹点阵。轨迹点阵包括智能体的多个轨迹。在实施例中,轨迹点阵中的各轨迹均具有相应概率。基于轨迹点阵,预测系统生成智能体的一个或多个预测轨迹。

图16是为了预测智能体的一个或多个轨迹而可以进行的处理1600的框图。在1605中,预测系统接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据。例如,如上所述,可以接收到图13的图像1300作为地点数据和过去轨迹数据。在实施例中,预测系统可以接收采用与图像不同的格式的地点数据和过去轨迹数据。预测系统可以接收过去时间间隔(例如,一秒、两秒、三秒或另一合适的时间间隔)的过去轨迹数据。当接收到地点数据和过去轨迹数据作为图像的一部分时,图像可以包括采用颜色编码格式的一个或多个对象的过去轨迹数据,以指示一个或多个对象中的各对象的相应过去轨迹。例如,各个对象1302被示出为具有存在颜色的逐渐变化的多个颜色,以示出过去轨迹数据的时间进展。

在1610中,预测系统使用一个或多个处理器并且基于地点数据和过去轨迹数据来确定一个或多个对象的一组特征。例如,在接收到地点数据和过去轨迹数据作为图像的实施例中,预测系统可以将该图像输入到分类器中,并且从分类器接收图像的多个特征。图像的特征可以包括各种对象的速度、这些对象的地点和距离、以及其它合适的信息。在1615中,预测系统(例如,使用一个或多个处理器)将该组特征与智能体的运动数据组合以形成链接数据集。例如,预测系统可以向该特征集添加包括智能体的速率、加速度和偏航率的矢量。

在1620中,预测系统基于链接数据集来生成包括智能体的多个可能轨迹的轨迹点阵,其中该轨迹点阵中的各轨迹均被指派概率。例如,预测系统可以将链接数据集输入到神经网络中,并且从神经网络接收轨迹点阵的数据。图17示出预测系统可以生成的一个可能轨迹点阵1702。在实施例中,预测系统生成轨迹点阵的数据结构。数据结构可以包括轨迹点阵中的各轨迹的多个字段。这些字段可以包括用于存储各轨迹的坐标的坐标字段和用于存储各轨迹的概率的概率字段。其它字段可以包括在轨迹点阵中。

在实施例中,预测系统可以使用(例如,先前经训练的)神经网络来生成轨迹点阵。预测系统可以采取以下动作来训练神经网络。预测系统可以使用运载工具的资源(例如,(一个或多个)处理器、存储器和其它合适的资源)来进行训练。在实施例中,该训练是在运载工具的外部(例如,在如图2所示的数据中心204A处)进行的。预测系统可以接收一个或多个训练对象的(例如,一秒、两秒或另一合适的移动时间间隔的)训练地点数据和训练过去轨迹数据。可以接收到训练地点数据和训练过去轨迹数据作为采用与图13的图像1300相同的格式的图像。预测系统可以基于训练地点数据和训练过去轨迹数据来确定一个或多个训练对象的一组训练特征。例如,当接收到地点数据和过去轨迹数据作为图像时,预测系统可以将该图像输入到分类器中,并且从分类器接收该图像的多个特征。图像的特征可以包括各种对象的速度、这些对象的地点和距离、以及其它合适的信息。预测系统将一组训练特征与智能体的训练运动数据组合以形成训练链接数据集。例如,预测系统可以添加包括各对象的速率、加速度和偏航率的矢量。

然后,使用链接数据集来生成包括多个训练预测轨迹的训练轨迹点阵,其中多个训练预测轨迹各自均被指派训练智能体的训练概率(例如,智能体将行驶特定轨迹的概率)。预测系统然后基于训练轨迹点阵来确定训练智能体的一个或多个训练轨迹。该动作和训练神经网络的上述动作与当执行神经网络以获得预测轨迹时的这些动作类似。然而,在生成预测之后,进行不同的动作。具体地,预测系统将一个或多个训练轨迹与训练智能体的已知轨迹进行比较。由于地点数据和过去轨迹数据是训练集的一部分,因此训练集包括智能体移动所沿着的轨迹。因此,可以将一个或多个预测轨迹(训练轨迹)可以与智能体移动所沿着的轨迹进行比较。预测系统然后根据该比较来更新模型(例如,正训练的神经网络)的权重。如上所述,比较结果(例如,轨迹的(一个或多个)差异)可以反向传播通过神经网络,以调整神经网络的权重。因此,根据比较来更新模型的权重可以通过将一个或多个训练轨迹中的各轨迹与已知轨迹之间的差异传播通过模型来进行。可以针对可用的各组训练数据重复该处理。因此,轨迹点阵可以是基于智能体状态(例如,速率、加速度、偏航率和/或另一状态分量)动态地生成的。如上所述,在实施例中,轨迹点阵也可以是基于智能体的环境背景(例如,路网、地图数据、其它对象等)。

返回参考图16,在1625中,预测系统基于轨迹点阵来确定智能体的一个或多个预测轨迹。例如,预测系统可以选择具有最高概率的轨迹。在实施例中,预测系统使用智能体的运动数据来确定一个或多个预测轨迹。预测系统可以接收智能体的速率、加速度和偏航率中的一个或多个,并且在轨迹点阵中基于智能体的速率、加速度和偏航率中的一个或多个来识别智能体无法行驶的轨迹。预测系统可以将这些轨迹从轨迹点阵中去除。预测系统可以(例如,基于轨迹点阵中的各轨迹的概率)从更新后的轨迹点阵中选择一个或多个轨迹。

轨迹点阵1704和轨迹点阵1706示出基于运载工具的速率的不同的可能轨迹。轨迹点阵1704示出智能体的每秒2米的速率的可能轨迹。基于该速率,在可能的许多方向上存在许多轨迹。轨迹点阵1706示出每秒10米的速率的可能轨迹。如轨迹点阵1706所示,智能体(例如,运载工具)不能以该速率进行某些转弯,因而需要这些转弯的这些轨迹未包括在轨迹点阵1706中(例如,从轨迹点阵1706被去除)。为了识别不能以一定速度执行的轨迹,预测系统可以(例如,针对诸如运载工具、自行车、行人或其它对象类型等的各对象类型)存储不能以相应速率执行的各种机动动作(例如,转弯)。例如,如果不能以每秒10米的速率执行U形转弯机动动作,则预测系统可以存储该信息并访问该信息以相应地精简轨迹点阵。

在实施例中,预测系统使用道路规则数据来确定一个或多个预测轨迹。预测系统可以接收道路规则数据(例如,表示交通规则的数据)和道路标记数据(例如,车道标记、人行横道标记等)中的一个或多个。表示交通规则的数据可以包括限速数据、交通信号灯数据(例如,绿色、红色或黄色)、以及其它合适的交通规则数据。道路标记数据可以包括车道标记(例如,哪些车道沿哪些方向行驶)、人行横道标记(例如,用于确定行人有可能穿过的地点)、以及其它合适的道路标记数据。预测系统可以在轨迹点阵中基于道路规则数据和道路标记数据中的一个或多个来识别智能体无法行驶的轨迹,并且将这些轨迹从轨迹点阵中去除。例如,如果在智能体(例如,运载工具)进行左转的地点存在预测轨迹、但根据道路规则在该地点不允许左转,则预测系统可以将该轨迹从轨迹点阵中去除。

轨迹点阵1708示出基于道路规则和/或道路标记去除了多个轨迹的轨迹点阵。该图示示出不存在左转的轨迹(例如,因为左转将需要与行车方向相违背)。

返回参考图16,在1630中,预测系统使用运载工具的规划电路基于一个或多个预测轨迹来使得生成针对运载工具的一个或多个驾驶命令。在实施例中,预测系统至少部分位于正使用预测系统来预测智能体(例如,运载工具、行人、骑车者和/或其它合适的智能体)将如何移动的运载工具中。因此,运载工具的规划电路可以使用对象的一个或多个预测轨迹来生成运载工具的驾驶命令。因此,运载工具可以包括存储有计算机可执行指令的一个或多个计算机可读介质、以及被配置为执行进行处理1600的计算机可执行指令的一个或多个处理器。

在实施例中,预测系统至少部分驻留在运载工具的外部(例如,在如图2所示的数据中心204A中)。因此,预测系统可以将运载工具所检测到的对象的预测轨迹发送至运载工具,并且运载工具(例如,使用规划电路)可以基于所接收到的轨迹来生成驾驶命令。因而,驾驶命令可以是从远离运载工具的地点(例如,在如图2所示的数据中心204A处)生成的,并且被发送至运载工具以供执行。

在1635中,预测系统使用运载工具的控制电路来使得运载工具基于一个或多个驾驶命令而操作。例如,规划电路可以将驾驶命令发送至控制电路以供执行。运载工具的控制电路可以解释并执行这些命令以基于所检测到的对象(例如,智能体)的预测轨迹来在避开这些对象的轨迹上驾驶运载工具。

关于从轨迹点阵的轨迹预测有关地所述的动作可以作为一个或多个程序存储在非暂时性计算机可读存储介质中,以供由(例如,在运载工具上、在数据中心或另一合适地点处的)一个或多个处理器执行。一个或多个程序可以包括指令,这些指令在由一个或多个处理器执行时,使得进行上述的(一个或多个)计算机实现的方法。

图18示出智能体(在本实例中为运载工具)的多个预测轨迹和行驶轨迹。行驶轨迹有时被称为地面真值。轨迹1802和1806示出两个预测轨迹,而轨迹1804示出行驶轨迹。如图18所示,轨迹1806是一组预测轨迹中的最佳轨迹,因为轨迹1806最接近行驶轨迹(地面真值)。

另一轨迹预测技术涉及训练分类器(例如,神经网络)以生成智能体(例如,运载工具、自行车、行人或另一合适的对象)的多个轨迹预测。具体地,模型对坐标进行回归并且还对损失应用分类分量,使得产生与各个回归轨迹相关联的概率值。本实施例中正使用的数据是还包括智能体已行驶的轨迹的训练数据。如以下所述,作为训练处理的一部分,预测系统可以使用该数据。预测系统接收在智能体的一定距离内的对象的地点数据和过去轨迹数据。这些对象可能已由该智能体检测到(例如,如果该智能体是运载工具,则对象可能已由运载工具的传感器检测到)。预测系统从这些对象学习或确定一组特征,并将该组中的特征与智能体的运动数据(例如,速率、加速度、偏航率等)组合。预测系统基于链接数据集(例如,通过回归到坐标,并且使用损失中的分类分量来预测与这些轨迹相关联的概率)来生成多个预测轨迹。然后,预测系统使用预测轨迹之间的角度来从多个预测轨迹中选择与地面真值(即,行驶轨迹)最匹配的轨迹。然后,使用所选择的轨迹来计算预测离地面真值有多远。然后使用该信息来训练神经网络。在实施例中,代替使用预测轨迹和行驶轨迹之间的角度对模型进行训练,系统可以使用不同的度量。基于经训练的模型,预测系统生成智能体的一个或多个预测轨迹,并且将该信息用在运载工具的规划和驾驶算法中。

图19A和19B是为了训练分类器以预测智能体的一个或多个轨迹而可以进行的处理1900的框图。在1905中,预测系统接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据。例如,如上所述,可以接收到图13的图像1300作为地点数据和过去轨迹数据。在实施例中,预测系统可以接收采用与图像1300不同的格式的地点数据和过去轨迹数据。预测系统可以接收过去时间间隔(例如,一秒、两秒、三秒或另一合适的时间间隔)的过去轨迹数据。当接收到地点数据和过去轨迹数据作为图像的一部分时,图像可以包括采用颜色编码格式的一个或多个对象的过去轨迹数据,以指示一个或多个对象中的各对象的相应过去轨迹。例如,各个对象1302被示出为具有存在颜色的逐渐变化的多个颜色,以示出过去轨迹数据的时间进展。

在1910中,预测系统使用一个或多个处理器并且基于地点数据和过去轨迹数据来确定一个或多个对象的一组特征。在接收到地点数据和过去轨迹数据作为图像的实施例中,预测系统接收到图像作为输入,并且输出该图像的多个特征作为中间结果。在1915中,预测系统(例如,使用一个或多个处理器)将该组特征与智能体(例如,运载工具、自行车、行人或另一合适的智能体)的运动数据组合以形成链接数据集。例如,预测系统可以向该特征集添加包括智能体的速率、加速度和偏航率的矢量。

在1920中,预测系统基于链接数据集来生成多个预测轨迹。例如,预测系统可以将链接数据集输入到神经网络中,并且从神经网络接收预测轨迹的数据。预测轨迹的数据可以存储在可以针对各预测轨迹包括多个字段的数据结构中。这些字段可以包括用于存储各轨迹的坐标的坐标字段和用于存储各轨迹的概率的概率字段。其它字段可以包括在数据结构中。另外,预测系统可以从存储器中检索多个期望的预测轨迹。预测轨迹可以是利用相应概率检索的。在实施例中,轨迹和相应概率值这两者可以由神经网络并行地预测。因而,多个字段中的各字段可以包括坐标并且还包括各轨迹的概率值。因此,神经网络的损失可以包含两个分量:预测各轨迹的概率值的分类所用的分量和回归到坐标(即,以预测构成轨迹的实际坐标值)的回归所用的分量。

在1925中,预测系统计算多个预测轨迹中的各预测轨迹与智能体已行驶的轨迹之间的多个角度。例如,对于给定预测轨迹,该预测轨迹与智能体已行驶的轨迹(即,地面真值)之间的角度可以通过取智能体的中心与行驶轨迹(地面真值)中的最后点之间的直线以及运载工具的中心与预测轨迹中的最后点之间的直线、并且计算这两个线之间的角度值(例如,0和180之间的范围中的以度为单位的角度)来计算。在实施例中,代替角度,可以将不同的度量用在预测系统中。预测系统可以计算多个预测轨迹中的各预测轨迹与智能体已行驶的轨迹之间的多个度量。

在1930中,预测系统确定多个角度中的一个或多个是否在阈值内。阈值可以是任何合适的角度(例如,七度、八度、九度或另一合适的角度),并且可以是通过经验获得的。预测系统可以针对各预测轨迹来比较该轨迹(如上所述)与阈值角度(例如,七度)之间的角度。在实施例中,预测系统可以确定多个度量中的一个或多个是否在阈值内。

在1935中,如果预测系统确定为多个角度均不在阈值内,则预测系统使用函数来选择多个预测轨迹中的最佳轨迹。在许多情况下,多个角度均未在阈值内的情景在神经网络的训练例程的开始处发生。由于神经网络尚未得到良好训练,因此预测轨迹通常不是非常准确,这导致在预测轨迹和行驶轨迹(即,地面真值)之间存在大的差异(例如,大的角度)。在实施例中,该函数随机选择多个预测轨迹中的轨迹。例如,预测系统可以检索预测轨迹的数量,并将该数量输入到随机数生成器中。预测系统接收随机数生成器的输出,并且根据该输出来选择相应的预测轨迹。如果预测系统确定角度值低于阈值的模式子集,则预测系统从该模式子集中选择使L2范数的平均值最小的模式。在实施例中,代替角度,预测系统可以使用不同的度量。

可以使用各种其它方式来选择预测轨迹(有时称为最佳模式)。例如,每次可以基于使特定度量(例如,各预测轨迹和行驶轨迹之间的L2范数)的平均值最小化来选择预测轨迹。采用该方法,预测系统将遇到模式坍塌的问题。这是因为,预测系统(例如,神经网络)最初选择一个预测轨迹(例如,一个模式),然后使用该预测轨迹模式计算(以下所述的)各智能体的损失,从而在反向传播处理期间更新与该轨迹相对应的权重。在下一训练输入时,预测系统将再次选择与最佳预测轨迹相同的预测轨迹,因为预测系统现在已改进了该轨迹,从而得到提供最佳度量(例如,L2范数的平均值)的相同预测轨迹。该情景会导致模式坍塌问题,其中预测系统将针对一个预测轨迹仅训练模型(例如,神经网络)。因而,失去了其它可能的轨迹训练机会。当没有角度在阈值内时选择要训练的随机轨迹,这使得能够在训练期间探索所有轨迹。

在实施例中,该函数基于多个模板来选择多个预测轨迹中的轨迹。如本文所述,模板是指模板轨迹。预测系统可以通过对训练集数据采用聚类技术来生成模板,以获得与在开始训练时所选择的预测轨迹的数量相等的多个模板。例如,预测系统可以分析训练集内的各行驶轨迹,并且确定该训练集内的多个轨迹簇。例如,可能存在用于以特定角度右转的轨迹簇、用于以特定角度左转的轨迹簇、用于直行移动的轨迹簇、或者另一合适的轨迹簇。如果预测系统被配置为在训练时使用模板,则针对各预测轨迹的角度比较是与各模板轨迹(例如,基于预测轨迹与行驶轨迹之间的角度高于阈值)进行的。因此,基于所选择的模板的索引来选择预测轨迹。也就是说,如果预测系统包括编号为0、1、2的模板、并且预测系统选择模板2作为最佳匹配模板,则预测系统选择模式2作为最佳匹配模式以进一步用在模型中。

在实施例中,为了防止模式坍塌,预测系统基于高级类来生成模板轨迹。这些模板轨迹被称为“固定模板”,因为这些模板轨迹是针对智能体生成的,并且不会根据智能体的不同运动或状态而改变。例如,如果为了训练所选择的轨迹的数量为3个,则预测系统可以生成针对左转、右转和直行轨迹的模板。如果为了训练所选择的轨迹的数量为5个,则预测系统可以生成沿五个不同方向的模板轨迹。因此,预测系统基于智能体的可能轨迹来生成多个模板。

预测系统可以根据基于智能体状态(例如,速度、加速度、偏航率、航向和/或另一合适的条件)的一组初始条件来生成模板。这些模板有时被称为动态模板,因为这些模板根据智能体的不同运动或状态而改变。在这种情况下,预测系统针对各条件生成不同的一组模板。因而,预测系统基于智能体的状态(例如,速度、加速度、偏航率、航向和/或另一合适的条件)来生成多个模板。

当预测轨迹和行驶轨迹(例如,地面真值)之间的角度不在阈值内时(例如,代替选择随机预测轨迹),预测系统可以使用模板。然而,模板也可例如用在训练处理开始时的一些固定数量的迭代期间,之后预测系统切换到基于度量(例如,L2范数)来选择最佳预测轨迹。因而,预测系统基于确定为多个角度中的一个或多个角度在阈值内(例如,在一定数量的训练迭代之后),基于智能体所行驶的轨迹与多个预测轨迹中的各预测轨迹的相应轨迹之间的差异来选择多个预测轨迹中的轨迹。

在实施例中,预测系统随机地选择模板,并且将所选择的模板用作具有相同索引的预测轨迹的行驶轨迹(即,地面真值)。这使得训练不同的预测轨迹以开始与模板类似。在实施例中,预测系统停止使用模板,并且在训练预测轨迹以看起来更合理(当预测系统未识别出预测轨迹和行驶轨迹之间的任何角度低于阈值时,有时称为“老化(burn-in)”阶段)之后使用行驶轨迹(即,地面真值)。

返回到图19B,在1940中,预测系统计算被选择为最佳匹配轨迹的轨迹与智能体所行驶的轨迹之间的差异。例如,预测系统可以通过针对所选择的预测轨迹(即,最佳模式)对回归损失进行求和并且还针对所有的预测轨迹(即,模式)对分类损失进行求和,来计算各智能体损失。例如,用以对回归损失进行求和的一个方法是使用平滑L1损失,并且用以对分类损失进行求和的一个方法是使用交叉熵。因而,总损失可以是使用平滑L1损失和交叉熵的回归损失的总和。为了计算整个训练集中的损失,预测系统对所有的各智能体损失(例如,地点数据和过去轨迹数据的各实例(例如,图像1300)的损失)进行求和。

在1945中,预测系统基于差异来调整模型(例如,神经网络)的权重。例如,这些差异反向传播通过模型以调整模型的权重,以便在下一迭代期间获得更好的性能。

在1950中,预测系统使用运载工具的规划电路基于模型来使得生成针对运载工具的一个或多个驾驶命令。预测系统可以至少部分位于正使用该预测系统来预测智能体(例如,运载工具、行人、骑车者)将如何移动的运载工具中。因而,运载工具的规划电路可以使用对象的一个或多个预测轨迹来生成针对运载工具的驾驶命令。在实施例中,规划电路可以使用预测轨迹和关联的概率来生成驾驶命令。也就是说,预测系统可以通知可能轨迹的规划以及每一个可能轨迹如何发生的可能性。因而,运载工具可以包括存储有计算机可执行指令的一个或多个计算机可读介质、以及被配置为执行进行处理1900的计算机可执行指令的一个或多个处理器。

预测系统可以至少部分驻留在运载工具的外部(例如,在如图2所示的数据中心204A中)。因而,预测系统可以将运载工具所检测到的对象的预测轨迹发送至运载工具,并且运载工具(例如,使用规划电路)可以基于所接收到的轨迹来生成驾驶命令。在该情景中,驾驶命令可以是从远离运载工具的地点(例如,在如图2所示的数据中心204A处)生成的,并且被发送至运载工具以供执行。

在1955中,预测系统使用运载工具的控制电路来使得运载工具基于一个或多个驾驶命令而操作。例如,规划电路可以将驾驶命令发送至控制电路以供执行。运载工具的控制电路可以解释并执行这些命令,以基于所检测到的对象的预测轨迹来在避开这些对象的轨迹上驾驶运载工具。

在实施例中,在地面真值的ε(epsilon)值内的轨迹未被惩罚。在一个方法中,分类被重新公式化为多标签问题。例如,y用于表示1和0的数组,其中如果轨迹集中的该轨迹在地面真值的ε内,则各条目为1,否则各条目为0。新的分类损失函数是如以下在等式(1)中定义的修正的熵损失函数MCE。

在等式(1)中,i用于对轨迹(类)编索引。MCE损耗损失对在地面真值的ε值内的轨迹的logit的log softmax值求平均。softmax函数是指采用k个实数的矢量作为输入并且将该矢量归一化为包括与所输入的数量的指数成比例的K个概率的概率分布的函数。logit函数是指创建概率值的映射的一种函数。可以使用不同的距离函数和ε的值,例如,均值或最大L

在另一方法中,使用加权后的交叉熵损失函数。例如,d用于表示存储轨迹集中的各轨迹与地面真值之间的元素级L

在等式(2)中,K表示轨迹的大小。等式(2)表示交叉熵损失,但由距离加权。

在实施例中,对偏离道路的轨迹添加惩罚。在一个方法中,使用模型来对哪些轨迹偏离道路进行分类。例如,表达式

bce项表示二元交叉熵。如下在等式(4)中表示新的损失函数。

在等式(4)中,λ∈[0,∞]。该方法的优点是偏离道路惩罚被公式化为分类问题,因此可以在无需重新调整单位的情况下自然地组合分类损失函数和偏离道路惩罚。

在实施例中,一个或多个处理器接收一个或多个传感器所检测到的一个或多个对象的地点数据和过去轨迹数据。一个或多个处理器基于地点数据和过去轨迹数据来确定一个或多个对象的一组特征。一个或多个处理器将该组特征与智能体的运动数据组合以形成链接数据集。基于该链接数据集,生成包括智能体的多个可能轨迹的轨迹点阵。轨迹点阵中的各轨迹均被指派概率。基于轨迹点阵,确定智能体的一个或多个预测轨迹。使用运载工具的规划电路,基于一个或多个预测轨迹来使得生成针对运载工具的一个或多个驾驶命令。使用运载工具的控制电路,使得运载工具基于一个或多个驾驶命令而操作。

在实施例中,生成智能体的轨迹点阵包括:将链接数据集输入到神经网络中。从神经网络接收到轨迹点阵的数据。

在实施例中,基于轨迹点阵来确定智能体的轨迹包括:接收智能体的速率、加速度和偏航率中的一个或多个。在轨迹点阵中,基于智能体的速率、加速度和偏航率识别出智能体不能行驶的这些轨迹。将这些轨迹从轨迹点阵中去除。

在实施例中,基于轨迹点阵来识别智能体的轨迹包括:接收道路规则数据和道路标记数据中的一个或多个。在轨迹点阵中,基于道路规则数据和道路标记数据中的一个或多个识别出智能体不能行驶的这些轨迹。将这些轨迹从轨迹点阵中去除。

在实施例中,接收过去轨迹数据包括:接收过去时间间隔内的一个或多个对象中的各对象的轨迹。

在实施例中,接收地点数据和过去轨迹数据包括:接收图像。该图像包括一个或多个对象的地点数据和一个或多个对象的过去轨迹数据。过去轨迹数据被颜色编码,以指示一个或多个对象中的各对象相对于地点数据的相应过去轨迹。

在实施例中,确定一个或多个对象的一组特征包括:将图像输入到分类器中,以及从分类器接收该图像的多个特征。

在实施例中,一个或多个处理器位于运载工具中。

在实施例中,一个或多个处理器位于远离运载工具的地点。

在实施例中,接收到一个或多个训练对象的训练地点数据(例如,运载工具、自行车、行人等的位置数据)和训练过去轨迹数据。基于训练地点数据和训练过去轨迹数据来确定一个或多个训练对象的一组训练特征。将该组训练特征与训练智能体的训练运动数据(例如,运载工具的速率、加速度和偏航率)组合,以形成训练链接数据集。基于该训练链接数据集,确定训练轨迹点阵。训练轨迹点阵包括预测轨迹的训练集。轨迹点阵中的各轨迹均被指派概率。基于训练轨迹点阵,确定训练智能体的一个或多个训练轨迹。将一个或多个训练轨迹与训练智能体的已知轨迹进行比较。根据该比较来更新模型的权重。

在实施例中,根据比较来更新模型的权重包括:将一个或多个训练轨迹中的各轨迹与已知轨迹之间的差异传播通过模型。

在实施例中,接收到一个或多个对象的地点数据和过去轨迹数据。一个或多个处理器基于该地点数据和过去轨迹数据来确定一个或多个对象的一组特征。将该组特征与智能体的运动数据组合以形成链接数据集。从该链接数据集确定多个预测轨迹。计算多个预测轨迹中的各预测轨迹和智能体所行驶的轨迹之间的多个角度。确定多个角度中的一个或多个是否在阈值内。基于确定为多个角度都不在阈值内,使用函数选择多个预测轨迹中的最佳轨迹。计算最佳轨迹与智能体所行驶的轨迹之间的差异。基于该差异来调整模型的权重。基于该模型并且使用运载工具的规划电路,使得生成针对运载工具的一个或多个驾驶命令。运载工具的控制电路使得运载工具基于该一个或多个驾驶命令而操作。

在实施例中,生成多个预测轨迹包括:将链接数据集输入到神经网络中。从神经网络接收到多个预测轨迹。

在实施例中,基于确定为多个角度中的一个或多个在阈值内,基于智能体所行驶的轨迹和多个预测轨迹中的各预测轨迹的相应轨迹之间的差异来选择多个预测轨迹中的轨迹。

在实施例中,函数随机地选择多个预测轨迹中的轨迹。

在实施例中,函数基于多个模板来选择多个预测轨迹中的轨迹。

在实施例中,对训练集进行聚类操作以获得多个模板。

在实施例中,基于一个或多个智能体的可能轨迹来生成多个模板。

在实施例中,基于智能体的状态来生成多个模板中的各模板。

在实施例中,接收地点数据和过去轨迹数据包括接收图像。图像包括一个或多个对象的地点数据和一个或多个对象的过去轨迹数据。过去轨迹数据被颜色编码,以指示一个或多个对象中的各对象的相应过去轨迹。

关于多模态轨迹预测所述的动作可以作为一个或多个程序存储在非暂时性计算机可读存储介质中,以供由(例如,运载工具上、数据中心或另一合适地点处的)一个或多个处理器执行。一个或多个程序可以包括指令,这些指令在由一个或多个处理器执行时,使得进行上述的(一个或多个)计算机实现的方法。

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

本申请要求2019年11月7日提交的美国临时申请62/932,164和2020年5月26日提交的美国申请16/883,899的优先权,这两个申请的全部内容通过引用而被包含于此。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号