概率性对象跟踪和预测框架
技术领域
本申请涉及自主运载工具,包括用于自主运载工具的对象跟踪的方法、设备、系统和非暂时性计算机可读介质。
背景技术
增加自主运载工具的使用为通过运输网络的乘客和货物的更高效移动创造了可能性。此外,自主运载工具的使用可以得到改进的运载工具安全性以及运载工具之间的更有效通信。然而,关键的是,自主运载工具可以检测静态对象以及/或者预测其它附近动态对象的轨迹,以规划轨迹,使得自主运载工具可以安全地穿过运输网络并避开这类对象。
发明内容
这里公开了用于远程支持运载工具的自主操作的方面、特征、元素和实现。这些实现支持将现有路线扩展到目的地处的可选终点的远程操作。
所公开的实现的一方面是用于自主运载工具即AV的世界对象跟踪和预测的方法。所述方法包括:从所述AV的传感器接收第一观察数据;将所述第一观察数据与第一世界对象相关联;确定针对所述第一世界对象的假设,其中,假设与所述第一世界对象的意图相对应;确定所述假设中的各假设的相应假设可能性,所述相应假设可能性指示所述第一世界对象遵循所述意图的可能性;针对所述假设中的至少一个假设确定相应状态,其中,所述相应状态包括所述第一世界对象的预测位置;以及响应于查询,基于所述假设中的各假设的相应假设可能性来提供所述假设中的假设。
所公开的实现的一方面是用于自主运载工具即AV的世界对象跟踪和预测的系统。所述系统包括世界模型模块,所述世界模型模块被配置为:从所述AV的传感器接收第一观察数据;将所述第一观察数据与第一世界对象相关联;确定针对所述第一世界对象的假设,其中,假设与所述第一世界对象的可能路径相对应;确定所述假设中的各假设的相应假设可能性,所述相应假设可能性指示所述第一世界对象遵循所述可能路径的可能性;针对所述假设中的至少一个假设确定相应状态,其中,所述相应状态包括所述第一世界对象的预测位置;以及响应于查询,基于所述假设中的各假设的相应假设可能性来提供所述假设中的假设。
所公开的实现的一方面是用于自主运载工具即AV的世界对象跟踪和预测的系统。所述系统包括世界模型模块,所述世界模型模块被配置为:创建并维持针对现实世界对象的相应假设;预测针对所述现实世界对象的相应轨迹;将接收到的传感器观察与所述现实世界对象中至少之一相关联;更新所述假设中的至少一些假设的相应可能性;以及更新与所述假设中的至少一些假设相关联的相应状态。
在以下对实施例、所附权利要求书和附图的详细描述中,公开了本发明的这些和其它方面。
附图说明
当结合附图阅读时,根据以下详细描述最好地理解所公开的技术。应当强调,根据惯例,附图的各个特征可以不按比例。相反,为了清楚起见,各个特征的尺寸可以被任意地扩大或缩小。此外,在整个附图中,除非另有说明,否则相同的附图标记指代相同的元素。
图1是可以实现这里公开的方面、特征和元素的运载工具的一部分的示例的图。
图2是可以实现这里公开的方面、特征和元素的运载工具运输和通信系统的一部分的示例的图。
图3是根据本发明的实现的可预测响应的情形的图。
图4是根据本发明的实现的自主运载工具所用的系统的组件的示例。
图5是根据本发明的实现的自主运载工具所用的轨迹规划器的层的示例。
图6是根据本发明的实现的粗驾驶线级联的示例的图。
图7是根据本发明的实现的确定策略性速率规划的示例。
图8是根据本发明的实现的用于确定可驾驶区域和离散时间速率规划的处理的流程图。
图9是根据本发明的实现的确定可驾驶区域和离散时间速率规划的图。
图10~12是根据本发明的实现的针对静态对象调整可驾驶区域的示例。
图13是根据本发明的用于确定静态边界的处理的流程图。
图14~16是根据本发明的实现的确定动态边界的示例。
图17示出根据本发明的实现的轨迹规划的附加示例。
图18是根据本发明的用于对象避开的处理的流程图。
图19是根据本发明的实现的针对现实世界对象的假设的示例的图。
图20包括根据本发明的用于世界建模的处理的流程图和使用世界模型的处理的流程图。
图21是根据本发明的创建和维持假设的示例。
图22是根据本发明的轨迹预测的示例。
图23是根据本发明的将传感器观察与现实世界对象相关联的示例。
图24是根据本发明的更新假设的状态的示例。
图25是根据本发明的用于自主运载工具的世界对象跟踪和预测的处理的流程图。
图26是根据本发明的预测轨迹的示例。
图27是根据本发明的用于预测轨迹的处理的流程图。
具体实施方式
诸如自主运载工具或半自主运载工具等的运载工具可以穿过运载工具运输网络的一部分。运载工具运输网络可以包括诸如建筑物等的一个或多个不可导航区域;诸如停泊区域(例如,停泊场、停泊空间等)等的一个或多个部分可导航的区域;诸如道路(其包括车道、中线、交叉路口等)等的一个或多个可导航区域;或其组合。
运载工具可以包括一个或多个传感器。穿过运载工具运输网络可以包括传感器生成或捕获传感器数据(诸如与运载工具的操作环境相对应的数据或其一部分)。例如,传感器数据可以包括与一个或多个外部对象(或简单地,对象)相对应的信息。
外部对象可以是静态对象。静态对象是静止的且预期不会在接下来的几秒内移动的对象。静态对象的示例包括没有骑手的单车、冷车、空车、道路标志、墙、建筑物、坑洼等。
外部对象可以是停止对象。停止对象是静止的、但可能在任意时间移动的对象。停止对象的示例包括在交通灯处停止的运载工具以及道路边上具有乘员(例如,驾驶员)的运载工具。在一些实现中,停止对象被视为静态对象。
外部对象可以是诸如行人、远程运载工具、摩托车、自行车等的动态(即,移动)对象。动态对象可能正在(朝向运载工具)迎面而来,或者可能正在沿着与运载工具相同的方向移动。动态对象可能正在相对于运载工具纵向或横向移动。静态对象可以变为动态对象,并且反之亦然。
一般来说,穿过运载工具运输网络(例如,在运载工具运输网络内驾驶)可被视为机器人行为。也就是说,可以预料运载工具对某些情形(例如,交通或道路情形)的可预测响应。例如,交通情形的观察者可以预料运载工具在未来几秒内的响应将是什么。也就是说,例如,虽然驾驶环境(即,运载工具运输网络、道路)可能是动态的,但可以预测/预料诸如运载工具(即,由人驾驶、远程操作等)对道路状况的响应。
可以预测响应,这是因为穿过运载工具运输网络受道路规则(例如,左转弯的运载工具必须为迎面而来的交通让路,运载工具必须在车道线之间驾驶)、社会惯例(例如,在停车标志处,右侧的驾驶员被让路)和物理限制(例如,静止对象不会瞬间横向移动到运载工具的通行权内)管制。针对图3示出可预测响应的附加示例。
根据本发明的实现通过检测(例如,感测、观察等)静态对象的存在并预料(即,预测)运载工具运输网络的其它用户(例如,道路用户、动态对象)的轨迹来确定自主运载工具的轨迹。根据本发明的实现可以准确且高效地规划动态对象(例如,其它道路用户)的轨迹,从而有助于自主运载工具的平滑控制(例如,停止、等待、加速、减速、合并等)和自主运载工具的社会可接受行为(例如,操作)。
如下文进一步所述,根据本发明的轨迹规划器的实现可以例如通过以下操作来生成自主运载工具(AV)从源位置到目的地位置的平滑轨迹:接收HD地图数据、遥操作数据和其它输入数据;纵向拼接(例如,融合、连接等)输入数据以确定从源位置到目的地位置的路径的速率分布(例如,用于指定沿着从源位置到目的地位置的路径的不同段,AV可以驾驶得有多快的速率分布);以及在离散的时间点(例如,每几毫秒)使轨迹规划器处理与基于AV的传感器数据而观察到的静态对象和动态对象相关的约束以生成下一个时间窗(例如,6秒的前瞻时间)的AV的平滑轨迹。
轨迹规划器可以从模块(例如,世界模型模块)接收运载工具运输网络的其它用户(这里也称为现实世界对象)的预料(即,预测)轨迹。对于各检测到的动态对象(例如,现实世界对象,诸如运载工具、行人和自行车等),世界模型模块可以维持(例如,预测和更新)与现实世界对象的可能意图有关的一个或多个假设。意图(例如,假设)的示例包括停止、右转弯、左转弯、直行、通过和停泊。可能性与各假设相关联。可能性基于从传感器数据接收到的观察而更新。
现实世界对象是基于接收到的传感器数据(这里也称为测量或传感器观察)而检测到的。世界模型模块维持(即,关联且随时间更新)与现实世界对象相关联的各假设(例如,意图)的状态。以下进一步描述状态。例如,在给定假设的意图的情况下,状态包括相关现实世界对象的预测位置。
世界模型模块持续接收观察(例如,传感器数据)。对于给定观察,世界模型模块确定与观察相关联的现实世界对象。如果找到相关联的现实世界对象,则基于观察来更新与现实世界对象相关联的各假设的状态。也就是说,例如,基于从现实(例如,物理)世界接收到的观察来更新现实世界对象的预测位置。
注意,传感器观察可能有噪声。噪声可能是由于感测能力和/或传感器设置的限制而导致的。例如,传感器可能具有有限的视野,具有有限的感测范围,提供误报和/或漏报的读数,提供具有较大不确定性的观察,以及/或者提供错误的对象分类。另外,自主运载工具所使用的不同传感器类型可以提供不同、部分和/或冲突的观察(例如,分类、位置等)。正因如此,不确定性程度与世界模型模块所接收到的传感器数据相关联。
自主运载工具可以使用(例如,融合)来自多种类型的传感器(例如,照相机、LiDAR、雷达等)的数据,以估计自主运载工具外部的现实世界对象的速度、姿势(位置和航向)、轨迹和类别等中至少之一。根据本发明的实现,世界模型模块可以通过将来自多个传感器的信息融合在一起并考虑传感器特性,来提供对现实世界对象(即,道路用户)的当前状况的最佳估计。
总之,由于AV不知道其它道路用户的意图,因此AV预测并跟踪道路用户可能做什么的多个可能意图(即,假设),以使得AV(例如,AV的轨迹规划器)可以基于道路用户的预测意图来规划平滑轨迹。在给定来自传感器数据的观察的情况下,根据本发明的实现,世界模型模块跟踪和估计观察对象(即,现实世界对象)的状态,并以概率的方式预测具有多个假设的现实世界对象的未来状态。也就是说,世界模型模块可以提供对现实世界中的对象的改进跟踪。世界模型模块预测现实世界对象的可能轨迹的多个假设。也就是说,例如,如以下进一步描述的,世界模型模块可以预测对象正去往哪里、对象是否正停止、或者对象是否正停泊等。
根据以下描述可以明显看出,世界模型模块可以提供多个益处,包括:(1)跟踪持续的(例如,对象姿势、速度、几何形状等)和离散的(例如,对象分类、意图等)对象状态;(2)估计和跟踪具有相关概率(例如,可能性)的多个对象状态假设(例如,意图);(3)根据对象状态、地图和/或环境信息来生成和跟踪抽象对象意图;(4)预测可变时间长度内的具有多个假设的未来对象状态;以及(5)对来自各种传感器(例如,LiDAR、雷达、照相机等)的数据进行实时处理和融合。这里的教导可以适用于广泛的对象和道路用户(包括但不限于汽车、单车和行人)。
尽管这里参考自主运载工具进行了描述,但这里描述的方法和设备可以在能够进行自主或半自主操作的任何运载工具中实现。尽管参考运载工具运输网络进行了描述,但这里描述的方法和设备可以包括运载工具可导航的任何区域内操作的自主运载工具。
为了更详细地描述这里所述的一些实现,首先参考可以实现本发明的环境。
图1是可以实现这里公开的方面、特征和元素的运载工具100的一部分的示例的图。运载工具100包括底盘102、动力总成104、控制器114、轮132/134/136/138,并且可以包括运载工具的任何其它元件或元件组合。尽管为了简单起见,运载工具100被示出为包括四个轮132/134/136/138,但是可以使用诸如推动器或踏面等的任何其它推进装置。在图1中,诸如动力总成104、控制器114和轮132/134/136/138等的线路互连元件表示诸如数据或控制信号等的信息、诸如电力或扭矩等的动力、或者信息和动力这两者可以在相应元件之间通信。例如,控制器114可以从动力总成104接收动力,并与动力总成104、轮132/134/136/138或这两者进行通信以控制运载工具100,这可以包括对运载工具100进行加速、减速、转向或以其它方式进行控制。
动力总成104包括动力源106、发送单元108、转向单元110、运载工具致动器112,并且可以包括动力总成的任何其它元件或元件组合(诸如悬架、驱动轴、轮轴或排气系统等)。尽管单独示出,但是轮132/134/136/138可以包括在动力总成104中。
动力源106可以是可操作地提供诸如电能、热能或动能等的能量的任何装置或装置组合。例如,动力源106包括诸如内燃机、电动马达、或内燃机和电动马达的组合等的引擎,并且可操作地向轮132/134/136/138中的一个或多个提供动能作为原动力。在一些实施例中,动力源106包括潜在能量单元,例如:诸如镍镉(NiCd)电池、镍锌(NiZn)电池、镍氢(NiMH)电池、锂离子(Li离子)电池等的一个或多个干电池;太阳能电池;燃料电池;或能够提供能量的任何其它装置。
发送单元108从动力源106接收诸如动能等的能量,并将能量发送至轮132/134/136/138以提供原动力。发送单元108可以由控制器114、运载工具致动器112或这两者控制。转向单元110可以由控制器114、运载工具致动器112或这两者控制,并控制轮132/134/136/138以使运载工具转向。运载工具致动器112可以接收来自控制器114的信号,并且可以致动或控制动力源106、发送单元108、转向单元110或其任何组合以操作运载工具100。
在所示实施例中,控制器114包括定位单元116、电子通信单元118、处理器120、存储器122、用户接口124、传感器126和电子通信接口128。尽管被示出为单个单元,但控制器114的任何一个或多个元件可以集成到任何数量的单独物理单元中。例如,用户接口124和处理器120可以集成在第一物理单元中,并且存储器122可以集成在第二物理单元中。尽管在图1中未示出,但控制器114可以包括诸如电池等的动力源。尽管被示出为单独元件,但是定位单元116、电子通信单元118、处理器120、存储器122、用户接口124、传感器126、电子通信接口128或其任何组合可以集成在一个或多个电子单元、电路或芯片中。
在一些实施例中,处理器120包括现有的或随后开发的能够操纵或处理信号或其它信息的任何装置或装置组合,例如光学处理器、量子处理器、分子处理器或其组合。例如,处理器120可以包括一个或多个专用处理器、一个或多个数字信号处理器、一个或多个微处理器、一个或多个控制器、一个或多个微控制器、一个或多个集成电路、一个或多个专用集成电路、一个或多个现场可编程门阵列、一个或多个可编程逻辑阵列、一个或多个可编程逻辑控制器、一个或多个状态机或其任何组合。处理器120可以可操作地与定位单元116、存储器122、电子通信接口128、电子通信单元118、用户接口124、传感器126、动力总成104或其任何组合耦接。例如,处理器可以可操作地经由通信总线130与存储器122耦接。
处理器120可被配置为执行指令。这种指令可以包括可用于从包括操作中心的远程位置操作运载工具100的远程操作指令。远程操作指令可以存储在运载工具100中,或者从诸如交通管理中心等的外部源或者可包括基于云的服务器计算装置的服务器计算装置接收。在提交于2018年2月21日并且标题为“REMOTE OPERATION EXTENDING AN EXISTINGROUTE TO ADESTINATION”的美国临时专利申请序列号62/633,414中介绍了远程操作。
存储器122可以包括任何有形的非暂时性计算机可用或计算机可读介质,其例如能够包含、存储、通信或传输机器可读指令或与其相关联的任何信息以供处理器120或结合处理器120使用。存储器122可以包括例如一个或多个固态驱动器、一个或多个存储卡、一个或多个可移除介质、一个或多个只读存储器(ROM)、一个或多个随机存取存储器(RAM)、一个或多个寄存器、一个或多个低功耗双倍数据速率(LPDDR)存储器、一个或多个高速缓存存储器、一个或多个盘(包括硬盘、软盘或光盘)、磁卡或光卡、或适合存储电子信息的任何类型的非暂时性介质、或其任何组合。
电子通信接口128可以是如图所示的无线天线、有线通信端口、光通信端口、或者能够与有线或无线电子通信介质140接合的任何其它有线或无线单元。
电子通信单元118可被配置为经由有线或无线电子通信介质140(诸如经由电子通信接口128等)来发送或接收信号。尽管在图1中没有明确示出,但电子通信单元118被配置为经由任何有线或无线通信介质(诸如射频(RF)、紫外光(UV)、可见光、光纤、有线线路或其组合)来进行发送、接收或这两者。尽管图1示出单个电子通信单元118和单个电子通信接口128,但是可以使用任何数量的通信单元和任何数量的通信接口。在一些实施例中,电子通信单元118可以包括专用短距离通信(DSRC)单元、无线安全单元(WSU)、IEEE802.11p(WiFi-P)或其组合。
定位单元116可以确定运载工具100的地理位置信息,包括但不限于经度、纬度、高度、行进方向或速率。例如,定位单元包括全球定位系统(GPS)单元,诸如广域增强系统(WAAS)启用的国家海洋电子协会(NMEA)单元、无线电三角测量单元或其组合。定位单元116可以用于获得表示例如运载工具100的当前航向、运载工具100在二维或三维中的当前位置、运载工具100的当前角取向或其组合的信息。
用户接口124可以包括能够被人用作接口的任何单元,包括虚拟键盘、物理键盘、触摸板、显示器、触摸屏、扬声器、麦克风、摄像机、传感器和打印机中的任何一个。如图所示,用户接口124可以可操作地与处理器120或者与控制器114的任何其它元件耦接。尽管被示出为单个单元,但是用户接口124可以包括一个或多个物理单元。例如,用户接口124包括用于与人进行音频通信的音频接口、以及用于与人进行基于视觉和触摸的通信的触摸显示器。
传感器126可以包括能够可操作地提供可用于控制运载工具的信息的一个或多个传感器(诸如传感器阵列等)。传感器126可以提供与运载工具的当前操作特性或其周围有关的信息。传感器126例如包括速率传感器、加速度传感器、转向角传感器、牵引力相关传感器、制动相关传感器或者任何传感器或传感器组合,其可操作地报告与运载工具100的当前动态情形的某些方面有关的信息。
在一些实施例中,传感器126包括可操作地获得与运载工具100周围的物理环境有关的信息的传感器。例如,一个或多个传感器检测道路几何形状和障碍物(诸如固定障碍物、运载工具、骑行者和行人等)。传感器126可以是或者包括现在已知的或随后开发的一个或多个摄像机、激光感测系统、红外感测系统、声感测系统或者任何其它合适类型的车载环境感测装置或装置组合。传感器126和定位单元116可以组合。
尽管没有单独示出,但是运载工具100可以包括轨迹控制器。例如,控制器114可以包括轨迹控制器。轨迹控制器可以可操作地获得用于描述运载工具100的当前状态和针对运载工具100规划的路线的信息,并基于该信息来确定和优化运载工具100的轨迹。在一些实施例中,轨迹控制器输出可操作地控制运载工具100以使得运载工具100遵循轨迹控制器所确定的轨迹的信号。例如,轨迹控制器的输出可以是优化轨迹,该优化轨迹可被供给至动力总成104、轮132/134/136/138或这两者。优化轨迹可以是诸如转向角的集合等的控制输入,其中各转向角与时间点或位置相对应。优化轨迹可以是一个或多个路径、线路、曲线或其组合。
轮132/134/136/138中的一个或多个可以是:在转向单元110的控制下枢转至转向角度的转向轮;在发送单元108的控制下扭转以推动运载工具100的推动轮;或者用于对运载工具100进行转向和推动的转向推动轮。
运载工具可以包括图1中未示出的单元或元件,诸如外壳、蓝牙
模块、调频(FM)无线电单元、近场通信(NFC)模块、液晶显示器(LCD)显示单元、有机发光二极管(OLED)显示单元、扬声器或其任何组合。
图2是可以实现这里公开的方面、特征和元素的运载工具运输和通信系统200的一部分的示例的图。运载工具运输和通信系统200包括运载工具202(诸如图1所示的运载工具100等)以及一个或多个外部对象(诸如外部对象206等),该外部对象可以包括任何运输形式(诸如图1所示的运载工具100、行人、骑行者等)以及任何结构形式(诸如建筑物等)。运载工具202可以经由运输网络208的一个或多个部分行进,并且可以经由电子通信网络212的一个或多个来与外部对象206进行通信。尽管在图2中没有明确示出,但是运载工具可以穿过没有明确或完全包括在运输网络中的区域(诸如越野区域等)。在一些实施例中,运输网络208可以包括一个或多个运载工具检测传感器210(诸如感应环路传感器等),该运载工具检测传感器210可以用于检测运输网络208上的运载工具的移动。
电子通信网络212可以是在运载工具202、外部对象206和操作中心230之间提供诸如语音通信、数据通信、视频通信、消息传送通信或其组合等的通信的多址系统。例如,运载工具202或外部对象206可以经由电子通信网络212从操作中心230接收诸如表示运输网络208的信息等的信息。
操作中心230包括控制器设备232,该控制器设备232包括图1所示的控制器114的一些或所有特征。控制器设备232可以监视和协调运载工具(包括自主运载工具)的移动。控制器设备232可以监视诸如运载工具202等的运载工具和诸如外部对象206等的外部对象的状态或条件。控制器设备232可以接收包括以下各项中任一项的运载工具数据和基础设施数据:运载工具速度;运载工具位置;运载工具操作状态;运载工具目的地;运载工具路线;运载工具传感器数据;外部对象速度;外部对象位置;外部对象操作状态;外部对象目的地;外部对象路线;以及外部对象传感器数据。
此外,控制器设备232可以建立对诸如运载工具202等的一个或多个运载工具或者诸如外部对象206等的外部对象的远程控制。以这种方式,控制器设备232可以从远程位置遥操作运载工具或外部对象。控制器设备232可以经由诸如无线通信链路226等的无线通信链路或诸如有线通信链路228等的有线通信链路来与诸如运载工具202、外部对象206或服务器计算装置234等的运载工具、外部对象或计算装置交换(发送或接收)状态数据。
服务器计算装置234可以包括一个或多个服务器计算装置,这些服务器计算装置可以经由电子通信网络212来与包括运载工具202、外部对象206或操作中心230的一个或多个运载工具或计算装置交换(发送或接收)状态信号数据。
在一些实施例中,运载工具202或外部对象206经由有线通信链路228、无线通信链路214/216/224或者任何数量或类型的有线或无线通信链路的组合来进行通信。例如,如图所示,运载工具202或外部对象206经由地面无线通信链路214、经由非地面无线通信链路216或经由其组合来进行通信。在一些实现中,地面无线通信链214包括以太网链路、串行链路、蓝牙链路、红外(IR)链路、紫外(UV)链路或能够进行电子通信的任何链路。
诸如运载工具202等的运载工具或诸如外部对象206等的外部对象可与另一运载工具、外部对象或操作中心230进行通信。例如,主机或主体运载工具202可以经由直接通信链路224或经由电子通信网络212来从操作中心230接收诸如基本安全消息(BSM)等的一个或多个自动化运载工具间消息。例如,操作中心230可以将该消息广播到诸如300米等的定义广播范围内的主机运载工具,或者广播到定义地理区域。在一些实施例中,运载工具202经由诸如信号中继器(未示出)或另一远程运载工具(未示出)等的第三方来接收消息。在一些实施例中,运载工具202或外部对象206基于诸如100毫秒等的定义间隔来定期地发送一个或多个自动化运载工具间消息。
运载工具202可以经由接入点218来与电子通信网络212进行通信。可包括计算装置的接入点218被配置为经由有线或无线通信链路214/220来与运载工具202、与电子通信网络212、与操作中心230或与其组合进行通信。例如,接入点218是基站、基站收发台(BTS)、节点B、增强型节点B(eNode-B)、家庭节点B(HNode-B)、无线路由器、有线路由器、集线器、中继器、交换机或任何类似的有线或无线装置。尽管被示出为单个单元,但是接入点可以包括任何数量的互连元件。
运载工具202可以经由卫星222或其它非地面通信装置来与电子通信网络212进行通信。可包括计算装置的卫星222可被配置为经由一个或多个通信链路216/236来与运载工具202、与电子通信网络212、与操作中心230或与其组合进行通信。尽管被示出为单个单元,但是卫星可以包括任何数量的互连元件。
电子通信网络212可以是被配置为提供语音、数据或任何其它类型的电子通信的任何类型的网络。例如,电子通信网络212包括局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、移动或蜂窝电话网、因特网或任何其它电子通信系统。电子通信网络212可以使用诸如传输控制协议(TCP)、用户数据报协议(UDP)、因特网协议(IP)、实时传输协议(RTP)、超文本传输协议(HTTP)或其组合等的通信协议。尽管被示出为单个单元,但是电子通信网络可以包括任何数量的互连元件。
在一些实施例中,运载工具202经由电子通信网络212、接入点218或卫星222来与操作中心230进行通信。操作中心230可以包括一个或多个计算装置,这些计算装置能够与诸如运载工具202等的运载工具、包括外部对象206的外部对象、或者诸如服务器计算装置234等的计算装置交换(发送或接收)数据。
在一些实施例中,运载工具202识别运输网络208的一部分或状况。例如,运载工具202可以包括一个或多个车载传感器204(诸如图1所示的传感器126等),该一个或多个车载传感器204包括速率传感器、轮速传感器、照相机、陀螺仪、光学传感器、激光传感器、雷达传感器、声传感器、或能够确定或识别运输网络208的一部分或状况的任何其它传感器或装置或其组合。
运载工具202可以使用经由电子通信网络212通信的信息(诸如表示运输网络208的信息、一个或多个车载传感器204所识别的信息、或其组合等)来穿过运输网络208的一个或多个部分。外部对象206可以能够进行以上针对运载工具202所述的所有或一些通信和动作。
为了简单起见,图2示出作为主机运载工具的运载工具202、外部对象206、运输网络208、电子通信网络212和操作中心230。然而,可以使用任何数量的运载工具、网络或计算装置。在一些实施例中,运载工具运输和通信系统200包括图2中未示出的装置、单元或元件。
尽管运载工具202被示出为经由电子通信网络212来与操作中心230进行通信,但是运载工具202(和外部对象206)可以经由任何数量的直接或间接通信链路来与操作中心230进行通信。例如,运载工具202或外部对象206可以经由诸如蓝牙通信链路等的直接通信链路来与操作中心230进行通信。尽管为了简单起见,图2示出一个运输网络208和一个电子通信网络212,但是可以使用任何数量的网络或通信装置。
外部对象206被示出为图2中的第二个远程运载工具。外部对象不限于其它运载工具。外部对象可以是任何基础设施元素,例如,具有将数据发送至操作中心230的能力的栅栏、标志、建筑物等。数据可以例如是来自基础设施元素的传感器数据。
图3是根据本发明的实现的可预测响应的情形300的图。情形300包括可以预测自主运载工具(AV)302的响应并规划轨迹的情形310~360。
情形300表示道路用户的可预测情形和响应的示例。情形以缓慢的时间尺度进行(例如,发生、出现等)。也就是说,即使AV 302可能正以高速(例如,60英里/小时(MPH))前行,但是由于AV 302的计算能力(例如,处理器(诸如图1的处理器120)和/或控制器(诸如图1的控制器114)的计算能力),预测外部对象的响应并确定自主运载工具的轨迹可以在经过时间的亚秒内完成,因此情形310~360可被认为是缓慢的场景。
AV 302可以包括世界建模模块,该世界建模模块至少可以跟踪一些检测到的外部对象。世界建模模块可以预测至少一些被跟踪对象中的各被跟踪对象的一个或多个潜在假设(即,轨迹或路径等)。AV 302可以包括轨迹规划系统(或简称为轨迹规划器),该轨迹规划系统可以由处理器执行以(考虑到初始状态、期望动作以及具有预测轨迹的至少一些被跟踪对象而)生成避免碰撞、守法、舒适的响应(例如,轨迹、路径等)。
在情形310中,AV 302检测到(即,通过跟踪组件检测到)道路一侧的停泊汽车304(即,静态对象)。如下文进一步所述,AV 302(即,AV 302的轨迹规划器)可以规划路径(即,轨迹),该路径在停泊汽车304周围导航AV 302,如轨迹306所示。
情形320是AV 302检测到另一静态对象的另一种情形。检测到的静态对象是坑洼322。AV 302可以规划轨迹324,使得AV 302以AV 302的轮胎都不会驶入坑洼322中的方式驾驶通过坑洼322。
在情形330中,AV 302检测到迎面而来的运载工具332以及位于与迎面而来的运载工具332相同的道路侧的停泊运载工具334。迎面而来的运载工具332正在移动。正因如此,迎面而来的运载工具332是动态对象。迎面而来的运载工具332正在沿着与AV 302相同(或至少大致相同)的纵向方向移动。正因如此,迎面而来的运载工具332可被分类为纵向约束,如下文进一步所述。迎面而来的运载工具332正在沿着与AV 302相反的方向移动。正因如此,迎面而来的运载工具332可被分类为迎面而来的纵向约束。停泊运载工具334是静态对象。
AV 302可以以超过阈值的一定的确定性程度预测为(即,通过预测组件预测为)迎面而来的运载工具332可能遵循轨迹336以避开(例如,绕过)停泊运载工具334。轨迹336与道路的中心线337重叠。为了与迎面而来的运载工具332保持安全距离,AV 302的轨迹规划器可以规划包括位置339处的弯曲的轨迹338。也就是说,预料到迎面而来的运载工具332的路线,AV 302的规划轨迹使AV 302向右移动。
在情形340中,AV 302的跟踪组件可以检测到停泊运载工具342(即,静态对象)和正移动的自行车344(即,作为纵向约束的动态对象)。预测组件可以以一定的确定性程度判断为自行车344将遵循轨迹346以绕过停泊运载工具342。正因如此,AV 302确定(即,规划、计算、选择、生成或以其它方式确定)轨迹348,使得AV 302减慢以允许自行车344通过停泊运载工具342。在另一示例中,AV 302可以确定多于一个的可能轨迹。例如,AV 302可以确定如上所述的第一轨迹、在自行车344通过停泊汽车之前AV 302加速通过自行车344的第二轨迹、以及在自行车344正在通过停泊运载工具342时AV 302绕过自行车344的第三轨迹。然后,轨迹规划器选择所确定的可能轨迹其中之一。
在情形350中,AV 302的跟踪组件检测到迎面而来的运载工具352、第一停泊运载工具356和第二停泊运载工具357。AV 302的预测组件判断为迎面而来的运载工具352正在遵循轨迹354。AV 302选择轨迹358,使得AV 302通过第一停泊运载工具356,在第一停泊运载工具356和第二停泊运载工具357之间等待,直到迎面而来的运载工具352通过为止,然后继续通过第二停泊运载工具357。
在情形360中,AV 302的预测组件判断为大卡车362最有可能右转弯。轨迹规划器(例如,基于大卡车的运动模型)而判断为:由于大卡车需要大的转弯半径,因此大卡车362很可能遵循轨迹364。由于轨迹364干扰AV 302的路径,因此AV 302的轨迹规划器确定AV302的轨迹366,使得AV 302停止,直到大卡车362不挡道为止。
图4是根据本发明的实现的自主运载工具所用的系统400的组件的示例。系统400表示自主运载工具(诸如图1的运载工具100等)的软件流水线。系统400包括世界模型模块402、路线规划模块404、决策模块406、轨迹规划器408和反应性轨迹控制模块410。系统400的其它示例可以包括更多、更少或其它的模块。在一些示例中,模块可以组合;在其它示例中,模块可以分割为一个或多个其它模块。
世界模型模块402诸如从图1的传感器126接收传感器数据,并从传感器数据中确定(例如,转换为、检测到、等等)对象。也就是说,例如,世界模型模块402从所接收到的传感器数据中确定道路用户。例如,世界模型模块402可以将从光检测和测距(LiDAR)传感器(即,传感器126中的传感器)接收到的点云转换为对象。来自多个传感器的传感器数据可以融合在一起,以确定对象(例如,猜测对象的身份)。对象的示例包括自行车、行人、运载工具等。
世界模型模块402可以接收传感器信息,该传感器信息允许世界模型模块402计算和维持至少一些被检测的对象的附加信息。例如,世界模型模块402可以维持至少一些所确定的对象的状态。例如,对象的状态可以包括速度、姿势、几何形状(诸如宽度、高度和深度等)、分类(例如,自行车、大卡车、行人、道路标志等)以及位置中的零个或多个。正因如此,对象的状态包括离散状态信息(例如,分类)和连续状态信息(例如,姿势和速度)。
世界模型模块402融合传感器信息,跟踪对象,维持至少一些动态对象的假设列表(例如,对象A可能正在直行、右转弯或左转弯),创建和维持针对各假设的预测轨迹,并维持各假设的可能性估计(例如,考虑到对象姿势/速度和轨迹姿势/速度,对象A有90%的概率正在直行)。在示例中,世界模型模块402使用轨迹规划器的实例,该实例生成针对至少一些动态对象的各对象假设的参考驾驶线。例如,可以使用轨迹规划器的一个或多个实例来生成针对运载工具、自行车和行人的参考驾驶线。在另一示例中,可以使用轨迹规划器的实例来生成针对运载工具和自行车的参考驾驶线,并且可以使用不同的方法来生成针对行人的参考驾驶线(例如,参考路径)。
世界模型模块402所维持的对象可以包括静态对象和/或动态对象,如针对图3所述。
路线规划模块404确定道路级规划,诸如针对道路级规划412所示。例如,在给定起始位置和目的地位置的情况下,路线规划模块404确定从起始位置到目的地位置的路线。例如,路线规划模块404可以确定AV所要遵循以从起始位置导航到目的地位置的道路列表(即,道路级规划)。
路线规划模块404所确定的道路级规划和世界模型模块402所维持的对象(和相应状态信息)可被决策模块406用来确定沿道路级规划的离散级决策。针对离散决策414示出离散级决策中所包括的决策的示例。离散级决策的示例可以包括:在道路A和道路B之间的交互处停止,缓慢向前移动,加速到一定速率限制,合并到最右边的车道等。
轨迹规划器408可以接收离散级决策、世界模型模块402所维持的对象(和相应状态信息)以及来自世界模型模块402的外部对象的预测轨迹和可能性。轨迹规划器408可以使用至少一些接收到的信息来确定自主运载工具的详细规划轨迹。
例如,如针对详细规划轨迹416所示,轨迹规划器408确定接下来的几秒的轨迹。正因如此,并且在接下来的几秒是接下来的6秒(即,6秒的前瞻时间)的示例中,轨迹规划器408确定在接下来的6秒内自主运载工具的轨迹和位置。例如,轨迹规划器408可以确定(例如,预测、计算等)自主运载工具在数个时间间隔处(例如,每四分之一秒或一些其它时间间隔)的预期位置。如例如针对图3所述,轨迹规划器408可以基于其它道路用户的可预测响应来确定详细规划轨迹。
反应性轨迹控制模块410可以处理自主运载工具可能遇到、但不可被轨迹规划器408预测到(例如,不能被轨迹规划器408处理)的情形。这种情形包括轨迹规划器408的详细规划轨迹基于对象的误分类的情形和/或很少发生的未预料到的情形。例如,反应性轨迹控制模块410可以响应于判断为自主运载工具左侧的静态对象被误分类而修改详细规划轨迹。例如,对象可能已被分类为大卡车;然而,新的分类判断为它是静态的路障墙。在另一示例中,反应性轨迹控制模块410可以响应于自主运载工具的突然轮胎爆裂而修改详细规划轨迹。未预料到的情形的其它示例包括其它运载工具(例如,由于过迟决定驶往公路匝道或轮胎爆炸而)突然转向到AV的车道以及行人或其它对象突然从遮挡物后面出现。
图5是根据本发明的实现的自主运载工具所用的轨迹规划器500的层的示例。轨迹规划器500可以是图4的轨迹规划器408,或者可以是图4的轨迹规划器408的一部分。轨迹规划器500可以接收驾驶目标501。轨迹规划器500可以接收驾驶目标501的序列,这些驾驶目标501的序列可以例如表示使第一位置与第二位置相连的一系列车道选择和速率限制。例如,驾驶目标501中的驾驶目标可以是“从位置x开始,在具有特定标识符的车道(具有等于A123的标识符的车道)上行进,同时遵守速率限制y”。轨迹规划器500可用于生成完成驾驶目标501的序列的轨迹。
轨迹规划器500包括驾驶线数据层502、参考轨迹生成层504、对象避开层506和轨迹优化层508。轨迹规划器500生成优化轨迹。轨迹规划器500的其它示例可以包括更多、更少或其它的层。在一些示例中,层可以组合;在其它示例中,层可以分割为一个或多个其它层。
驾驶线数据层502包括可以由轨迹规划器500使用的输入数据。驾驶线数据可以(例如,由参考轨迹生成层504)用于确定(即,生成、计算、选择或以其它方式确定)从第一位置到第二位置的粗驾驶线。驾驶线可被认为是当AV沿道路移动时AV的纵轴重合的道路中的线。正因如此,驾驶线数据是可用于确定驾驶线的数据。驾驶线在该点处是粗糙的,并且可以包含横向不连续,诸如当指向相邻车道之间的横向过渡时。该点处的驾驶线也尚未针对AV所遇到的对象进行调整,如下文进一步所述。
在示例中,驾驶线数据层502可以包括高清晰度(HD)地图数据510、遥操作地图数据512、记录路径数据514、在前运载工具数据516、停泊场数据518和感知路径数据520中的一个或多个。
HD地图数据510是来自可供自主运载工具使用的高清晰度(即,高精度)地图的数据。HD地图数据510可以包括与运载工具运输网络有关的准确到几厘米内的信息。例如,HD地图数据510可以包括与道路车道、道路分隔栏、交通信号、交通标志和速率限制等有关的详细信息。
遥操作地图数据512可以包括相对短的驾驶线数据。例如,遥操作地图数据512可以是100米至200米长的驾驶线数据。然而,遥操作地图数据512不必限于此。遥操作地图数据512可以由遥操作员响应于或预料到AV不能自动处理的异常情形而手动生成。
驾驶线可以实时创建。为了例示实时地创建驾驶线,现在提供了示例。遥操作员可以正在远程观察AV原始传感器数据。例如,遥操作员可以(诸如在远程监视器上)看到(例如,AV的照相机所捕获的)施工场地塔架,并绘制AV通过施工区的路径。然后,遥操作员可以看到指挥人物向AV提供放行信号,此时遥操作员可以使AV沿着所绘制的路径前进。
为了减少在AV到达先前遇到的异常情形时手动绘制路径的处理时间,还可以将驾驶线数据远程存储并根据需要发送至AV。
记录路径数据514可以包括与自主运载工具先前遵循的路径有关的数据。在示例中,自主运载工具的操作员(例如,驾驶员或远程操作员)可能已经记录了从街道进入家的车库的路径。
在前运载工具数据516可以是从沿着与自主运载工具大致相同的轨迹在自主运载工具之前的一个或多个运载工具接收到的数据。在示例中,自主运载工具和在前运载工具可以经由无线通信链路进行通信,诸如针对图2所述。正因如此,自主运载工具可以经由无线通信链路从在前运载工具接收轨迹和/或其它信息。在前运载工具数据516也可以被感知(例如,跟随)而无需显式通信链路。例如,AV可以跟踪在前运载工具,并且可以基于跟踪结果来估计在前运载工具的运载工具驾驶线。
停泊场数据518包括与停泊场的位置和/或停泊空间有关的数据。在示例中,停泊场数据518可用于预测其它运载工具的轨迹。例如,如果停泊场入口靠近另一运载工具,则该另一运载工具的预测轨迹其中之一可以是该另一运载工具将进入停泊场。
在一些情形中,针对运载工具运输网络的部分可能无法获得地图(例如,HD地图)信息。正因如此,感知路径数据520可以表示不存在先前绘图信息的驾驶线。作为替代,AV可以使用与车道标记、路缘石和道路限制相比更少、更多或不同的车道标记、路缘石和道路限制来实时检测驾驶线。在示例中,可以基于从一种地形类型(例如,路面)到其它地形类型(例如,砾石或草)的过渡来检测道路限制。可以使用其它方法来实时检测驾驶线。
参考轨迹生成层504可以包括驾驶线级联模块522、策略性速率规划模块524和驾驶线合成模块526。参考轨迹生成层504将粗驾驶线提供给离散时间速率规划模块528。图6示出参考轨迹生成层504的操作的示例。
注意,路线规划模块404可以生成车道ID序列,该车道ID序列用于从第一位置行进至第二位置,从而对应于(例如,提供)驾驶目标501。正因如此,驾驶目标501可以例如是相距100米,这取决于车道的长度。在HD地图数据510的情况下,例如,参考轨迹生成层504可以使用驾驶目标501序列中的位置(例如,GPS位置、3D笛卡尔坐标等)和车道(例如,车道的标识符)的组合来生成被表示为AV的一系列姿势的(例如,HD地图510中的)高分辨率驾驶线。各姿势可以在预定距离处。例如,姿势可以是相距一到两米。姿势可以通过更多、更少或其它的量定义为坐标(x,y,z)、侧倾角、俯仰角和/或横摆角。
如上所述,驾驶线数据可用于确定(例如,生成、计算等)粗驾驶线。驾驶线级联模块522对驾驶线数据层502的输入数据进行拼接(例如,链接、融合、合并、连接、整合或以其它方式拼接),以确定沿纵向方向(例如,沿自主运载工具的路径)的粗驾驶线。例如,为了从位置A(例如,工作)到位置D(例如,家),为了确定粗驾驶线,驾驶线级联模块522可以使用来自停泊场数据518的输入数据来确定从工作位置停泊场离开到主道路的离开位置,可以使用来自HD地图数据510的数据来确定从主道路到家的路径,并且可以使用来自记录路径数据514的数据来导航到家中的车库。
粗驾驶线不包括速率信息。然而,在一些示例中,粗驾驶线可以包括速率限制信息,该速率限制信息可以从HD地图数据510使用(例如,提取)。策略性速率规划模块524确定沿粗驾驶线的不同部分的特定速率。例如,策略性速率规划模块524可以判断为,在粗驾驶线的第一个直线段上,自主运载工具的速率可被设置为该第一个直线段的速率限制;以及在粗驾驶线的随后的第二个弯曲段上,自主运载工具的速率将被设置为较慢的速率。正因如此,策略性速率规划模块524考虑到AV的当前状态(例如,速率和加速度)、但不考虑其它道路用户或静态对象来计算粗驾驶线的守法(例如,遵守速率限制和停止线)、舒适(例如,身体上和情感上)和物理可实现的速率分布(例如,沿驾驶线的速率与距离)。
一旦策略性速率规划模块524确定了策略性速率规划,驾驶线合成模块526可以横向调整粗驾驶线。考虑到策略性速率分布和具有横向不连续的粗驾驶线,驾驶线合成模块526确定车道变换的起始和结束位置,并合成连接这两个位置的驾驶线。车道变换的长度可能取决于速率。
驾驶线合成模块526可以合成联接粗驾驶线中的横向不连续位置的驾驶线。例如,假定HD地图数据510包括粗驾驶线的第一段,该第一段位于道路的第一车道上,但粗驾驶线的第二段位于同一道路的第二车道上。正因如此,在粗驾驶线中存在横向不连续。驾驶线合成模块526首先确定AV应从第一车道过渡到第二车道的过渡距离(或等效地,起始位置和结束位置)。也就是说,起始位置是控制自主运载工具从第一车道开始向第二车道移动的道路位置。结束位置是自主运载工具完成车道变换时的道路位置。然后,横向连续模块生成将第一车道中的起始位置联接到第二车道中的结束位置的新的驾驶线数据。
驾驶线合成模块526所确定的过渡可以取决于速率。例如,与AV正以较高速率移动时相比,当AV正以较慢的速率移动时,AV从第一车道过渡到第二车道可能需要较短的过渡距离。例如,在自主运载工具正以较慢的速率(例如,15MPH)行进的繁忙交通情形中,过渡可能需要20码;然而,如果自主运载工具正以较高速率(例如,65MPH)行进,则过渡距离可以是100码。正因如此,驾驶线合成模块526可以根据AV的速率来确定过渡位置。
驾驶线合成模块526的输出被提供给对象避开层506。驾驶线合成模块526的输出包括粗驾驶线和策略性速率规划。对象避开层506生成中期、离散时间的速率规划以及对粗驾驶线的横向约束。对于离散的未来时间点(或等效地,在沿AV的路径的离散位置处),离散时间速率规划模块528确定(即,计算)AV的相应期望速率。
在对象避开层506处,并且如下文进一步所述,对象避开层506使用粗驾驶线、附近的静态对象和附近的动态对象及其预测轨迹来确定(例如,提取)AV可以安全地操作的可驾驶区域。确定(后述的)各分箱的左边界和右边界。在给定AV的当前速率的情况下,可以生成实时速率规划。实时速率规划可用于估计AV的未来位置。可以对照动态对象的未来预料(例如,预测)位置来评价AV的未来位置。调整AV的可驾驶区域以去除可驾驶区域中的与动态对象的位置相对应(例如,重叠)的区域。
在对象避开层506处,针对对象评价和/或调整粗驾驶线。对象可以是AV外部和近端的对象。正因如此,对象可以是针对图4的世界模型模块402所描述的对象。正因如此,在给定AV的当前速率的情况下,对象避开层506生成实时速率规划。使用实时速率规划,对象避开层506可以估计AV在离散的未来时间点处的未来位置。可以对照对象(即,世界模型的对象)的位置来评价未来位置,以针对AV提供(例如,生成)平滑驾驶。如下文进一步所述,提供平滑驾驶(即,平滑轨迹)可以是迭代处理。
总之,首先生成粗驾驶线;然后根据粗驾驶线生成速率规划;并且在给定粗驾驶线和速率规划的情况下,鉴于AV的世界模型中所维持的其它对象来优化轨迹,以提供优化期望轨迹。在调整后的可驾驶区域中优化轨迹。从默认可驾驶区域中去除不可驾驶区域(即,由于其它对象而无法安全驾驶AV的区域),以提供调整后的可驾驶区域。
图6是根据本发明的实现的粗驾驶线级联的示例600的图。示例600是图5的参考轨迹生成层504的操作的示例。
在视图610中,AV 611位于包括车道612~614的三车道道路的最右侧车道614中。注意,视图610是左侧交通系统的示例(即,车道612~614中的交通从图6的底部朝向顶部移动)。诸如路线规划模块404等的路线规划器可能已基于诸如图5的HD地图数据510等的HD地图数据而判断为AV 611将右转弯至单车道道路的车道615中。HD地图可以为各车道提供中心线(未示出)。
在一些情形中,AV的驾驶线可能与车道或道路的中心线不重合。例如,车道615可以是超宽的,以容纳沿车道615的左侧的停泊空间。在另一示例中,可以发现,大多数驾驶员更喜欢稍微向中心线的左侧驾驶。正因如此,AV 611的驾驶线将被设置在车道615的中心线的左侧。正因如此,驾驶线级联模块522确定车道的几何形状,以确定在给定车道几何形状(例如,车道宽度)的情况下的驾驶线。例如,当粗驾驶线中存在转弯时,驾驶线级联模块522基于车道的宽度、转弯方向(例如,右或左)、转弯角度和/或转弯速率来确定驾驶线要移动至(即,偏离车道中心线)的位置。也就是说,驾驶线级联模块522基于HD地图中心线来设置AV的驾驶线。在示例中,可以基于车道宽度来设置驾驶线。
为了设置AV的驾驶线,驾驶线级联模块522确定沿粗驾驶线的车道的几何形状。在示例中,驾驶线级联模块522确定沿粗驾驶线的一定距离(例如,100米、200米、300米等)的几何形状。为了确定几何形状,驾驶线级联模块522可以确定诸如沿粗驾驶线的多边形616等的多边形,该多边形可用于定义车道边界。
视图620示出基于车道的宽度621来确定驾驶线(即,粗驾驶线)。AV 611正行进所沿的车道的右边缘624、左边缘622和中心线626可以从HD地图获得。驾驶线级联模块522基于宽度621来确定驾驶线628(即,粗驾驶线)。正因如此,驾驶线628相对于中心线626偏移。
视图630示出使用诸如针对图5的遥操作地图数据512所述的遥操作数据来确定驾驶线。如上所述,虽然HD地图数据是静态数据,但遥操作数据可以基于道路状况和/或异常情形来提供实时驾驶线。例如,沿着AV 611的驾驶线632存在施工区。该施工区由诸如塔架636等的障碍物界定,这些障碍物包围施工项目634。正因如此,驾驶线级联模块522如下文进一步所述使用遥操作数据所提供的实时驾驶线将驾驶线632调整为驾驶线638(即,粗驾驶线)。
视图640示出取决于速率的车道变换。如上所述,通过图5的驾驶线合成模块526来实现取决于速率的车道变换。在示例中,图4的决策模块406规定,沿着车道642行进的AV611例如由于车道642结束或AV 611将左转弯而接着将位于车道644中。正因如此,AV 611将在某一点处从车道642移动至车道644。由于HD地图可能不提供车道过渡信息,因此AV 611的参考轨迹生成层504确定车道过渡时间。如上所述,过渡可能取决于速率。
在示例中,(参考轨迹生成层504为一层的)轨迹规划器500可以判断为在沿着粗驾驶线的点X处,AV 611将正在以(如由策略性速率规划模块524确定的)速率Y移动。在AV 611正以低速率(例如,35MPH)移动的情况下,驾驶线合成模块526可以判断为过渡可以是缓慢的。因此,从车道642移动到车道644的路径可以如由路径646所示。另一方面,如果AV 611正以高速率(例如,65MPH)行进,则切换车道的路径需要较长距离,如路径648所示。
遵循路径646和648所需的时间可以是相同的。然而,距离是不同的。AV 611正以第一速率行进时的车道过渡所需的距离长于AV 611正以比第一速率慢的第二速率行进时所需的距离。
车道变换率可用于确定取决于速率的车道变换。也就是说,车道变换率可用于在两个相邻车道(诸如视图640中的车道642和车道644)之间创建连接。车道变换率可以用“米/米”定义:在纵向移动一米时,路径横向移动了多少米?如上文所述,目标是识别使得在目标时间量内完成车道变换的车道变换率:如果AV(例如,在密集的高峰时段交通期间)正在缓慢行进,则车道变换率很高,并且发生在短距离(例如,约几十米)内;如果AV正在(例如,以公路速率)快速行进,则车道变换率是缓慢的,并且发生在长距离(例如,约几百米)内。
图7是根据本发明的实现的确定策略性速率规划的示例700。示例700示出可由图5的策略性速率规划模块524使用以确定策略性速率规划714的输入的示例。在一些实现中,策略性速率规划模块524可以使用更多、更少或其它的输入来确定策略性速率规划。
在示例700中,可以使用速率限制输入和加速度限制输入。速率限制可以包括道路速率限制702、弯曲速率限制704和无缝自主移动(SAM)数据706其中至少之一。加速度限制可以包括运载工具加速度限制710和舒适度限制712。速率限制和/或加速度限制可以包括更多、更少或其它的输入。
道路速率限制702可以是道路速率限制,诸如在速率限制标志上标示的速率限制(例如,20MPH、65MPH等)。在示例中,道路速率限制702可以从HD地图获得。弯曲速率限制704可以是使运载工具速率与转弯(诸如AV沿着粗驾驶线的转弯等)的曲率相关的数据。可选地,弯曲速率限制704只能提供道路曲率信息(例如,曲线的转弯半径)。弯曲速率限制704可以是对AV的横向加速度的限制。正因如此,当AV弯曲时,速率规划可以包括与弯曲速率限制704一致的降低的AV速率。
SAM数据706可以是从运载工具(自主的或以其它方式)收集(诸如在基于云的系统中)的数据。该数据可以使得运载工具(包括AV)能够在道路上安全且平滑地操作。在示例中,SAM数据706可以包括从沿着道路的一部分的运载工具收集到的振动数据。振动数据可以使道路的不同部分的振动级和速率相关联。在示例中,振动数据可以指示对于某个道路位置当运载工具正以高于一定速率的速率行进时(例如,由于道路部分的减速带而导致)的不可接受的振动级。正因如此,为了最大限度地减少振动的影响,AV将在道路的一部分处减慢(低于一定速率)。在示例中,AV可以从中央服务器(诸如操作中心230、服务器计算装置234或某个其它网络装置等)接收SAM数据706。在示例中,SAM数据706可以是在自主运载工具到达该位置的特定时间段(例如,1分钟、10分钟、20分钟等)内从其它运载工具累积的数据。在示例中,AV可以提取SAM数据706。在另一示例中,可以基于AV将其位置报告给提供SAM数据706的服务器来向该AV推送SAM数据706。
道路速率限制702、弯曲速率限制704和SAM数据706可以组合以提供原始速率限制708。在示例中,对于沿粗驾驶线的特定位置中的各位置(例如,每5米、10米等),使用该位置处的道路速率限制702的速率、该位置处的弯曲速率限制704的速率以及该位置处的SAM数据706的速率中的最小值作为该位置处的原始速率限制708的速率。
运载工具加速度限制710可以是由于AV的扭矩和功率的AV加速度限制。舒适度限制712包括与加速有关的人体舒适度限制,诸如:AV的乘员希望AV加速到多快?
参考轨迹生成层504的策略性速率规划模块524可以组合原始速率限制708、运载工具加速度限制710和舒适度限制712,以提供作为平滑速率规划的策略性速率规划714。
如上所述,在沿粗驾驶线的位置处,道路速率限制702、弯曲速率限制704和无缝自主移动SAM数据706中的最小值可以用作AV的速率限制。运载工具加速度限制710和舒适度限制712使加速度与速率相关。正因如此,并且在示例中,运载工具加速度限制710和舒适度限制712可以通过求出两个最大曲线(舒适度、速率)中的最小值来进行组合。正因如此,在低速率处,舒适度可以限制AV的最大加速度;而在高速率处,AV的加速度限制(例如,功率)可以限制AV的加速度。通过求解满足对速率的约束(沿着驾驶线的任何给定位置处的速率限制)和对加速度的约束(任何给定速率处的加速度限制)的沿着粗驾驶线的最快速率分布,可以生成速率分布。
除上述输入之外的输入也可用于计算策略性速率规划714。例如,可以使用道路mu、最小巡航时间、邻域类型或其它输入中的一个或多个。道路mu与诸如由于冰、雨、斜坡等引起的道路滑度相关。
最小巡航时间与AV的速率可被设置为恒定速率的最小时间长度相关。例如,假定道路的一段长500米,并且该段的速率限制为45MPH。另外,假定在给定AV的运动模型的情况下,AV需要250米才能从停止位置达到45MPH的速率限制,并且在给定45MPH的当前速率的情况下,AV需要250米才能停止。如果AV在路段开始时处于停止位置、并且AV将在路段结束时再次停止,则AV一达到45MPH的速率限制,就将必须开始减速。这种速率分布可能不是AV的乘员所期望的和/或自然的。正因如此,最小巡航时间可以例如指示:在AV可以开始减速(或加速)之前,必须在最小巡航时间(例如,3秒)内维持速率。正因如此,可以提供更自然的速率分布。
邻域类型可用于对正常人类驾驶行为进行建模,这可以取决于AV正穿过的邻域的类型。例如,人类驾驶员可以在(例如,可能观察到小孩在街道上玩耍的)住宅邻域中以低于标示速率限制的速率驾驶,而在工业邻域中至少以标示限制驾驶,尽管这两个邻域可能具有相同的标示速率限制。
图8是根据本发明的实现的用于确定可驾驶区域和离散时间速率规划的处理800的流程图。处理800的一些或所有方面可以在运载工具(包括图1所示的运载工具100和图2所示的运载工具202)中实现,或者在计算设备(包括图2所示的控制器设备232)中实现。在实现中,处理800的一些或所有方面可以在结合本发明中所描述的一些或所有特征的系统中实现。例如,处理800可以由图5的对象避开层506利用。
参考图9来解释处理800。图9是根据本发明的实现的确定可驾驶区域和离散时间速率规划的图。图9示出生成可驾驶区域(横向约束)和以离散时间表示的约束速率分布。可驾驶区域可以例如是运载工具运输网络中的可以驾驶自主运载工具的区域。最初(例如,在处理800开始时),可驾驶区域可以包括AV不能被预测为安全驾驶的区域。处理800调整可驾驶区域(例如,从可驾驶区域中切出AV不能被预测为安全驾驶的区域)。处理800得到调整后的可驾驶区域。
在操作810处,处理800识别AV附近的对象。在示例中,附近对象可以是世界模型模块402所维持的至少一些外部对象。在示例中,附近对象可以是世界模型模块402所维持的所有对象。在另一示例中,附近对象可以是世界模型模块402所维持的对象的子集。例如,附近对象可以是距AV预定距离内的对象、AV的预测到达时间内的对象或满足用于识别对象的子集的其它标准的对象。例如,并且参考图9的视图910,针对AV 912,识别静态运载工具920、静态运载工具914、迎面而来的动态运载工具918和动态运载工具916。在实现中,如针对图10~12所述,操作810识别表示对象的点(即,边界点)和/或点组。
在操作820处,处理800提取可驾驶区域。可驾驶区域可以是AV 912可以(例如,合法地和/或物理地)被驾驶的区域。在示例中,可驾驶区域可以从粗驾驶线中提取。例如,可驾驶区域可以是沿着粗驾驶线(例如,在纵向方向上)距AV的预定距离。图9的视图930中的可驾驶区域932是可驾驶区域的示例。在示例中,可驾驶区域932可以是由中线934和路肩936界定(即,在横向方向上界定)的区域。在示例中,可以基于AV 912的当前位置从HD地图中提取可驾驶区域。可驾驶区域可以由AV 912所在的车道(或道路或某个其它区域)的左边界和右边界界定。在示例中,可驾驶区域可以跨越道路的中心线。也就是说,在可驾驶区域中可以包括相反方向的交通车道。正因如此,在视图930中,如果中线934不存在,则可驾驶区域可以是可驾驶区域938。
处理800继续从可驾驶区域中去除不能(例如,安全地)驾驶AV的部分。这里使用术语“调整后的可驾驶区域”来指代在已从可驾驶区域中去除区域以考虑如这里所述的静态和/或动态对象之后的可驾驶区域。如果没有静态和/或动态对象干扰AV的轨迹,则调整后的可驾驶区域与可驾驶区域相同。
在操作830处,处理800针对静态对象调整可驾驶区域。也就是说,处理800从可驾驶区域中去除(例如,切出等)静态对象所在的可驾驶区域的一些部分。这是因为AV将被控制以在静态对象周围导航(例如,驾驶)。图9的视图940示出从可驾驶区域中切出一部分。为了避开静态运载工具914,处理800从可驾驶区域932中切出切口942。切出区域的大小可以基于对静态对象的大小的估计来确定。切出区域的大小可以包括余隙区域,使得AV不会驾驶得太靠近静态对象。
以下针对图10~12来进一步描述针对静态对象调整可驾驶区域的示例。以下针对图13来描述用于针对静态对象调整可驾驶区域的处理的示例。
在操作840处,处理800针对静态对象调整离散时间速率规划。例如,在没有障碍物或其它道路用户的情况下,离散时间速率规划遵循策略性速率分布。例如,在考虑到静态对象、调整后的可驾驶区域包含窄通道的情况下,代替遵循原样呈现(即,如策略性分布中所设置)的策略性分布(即,使用策略性分布的速率),处理800调整离散时间速率规划以将AV的速率降低至舒适的速率。例如,在考虑到静态对象、调整后的可驾驶区域包含静态阻塞的情况下,处理800调整离散时间速率规划,使得AV在静态阻塞之前的规定距离处停下来。
在操作850处,处理800识别(例如,预测、计算、生成、接收或以其它方式识别)附近的各动态对象的相应路径。在示例中,可以在世界模型(诸如图4的世界模型模块402)中维持至少一些动态对象的相应路径(即,轨迹)的预测。正因如此,处理800可以从世界模型接收(例如,请求、读取或以其它方式接收)相应路径。
例如,处理800预测(例如,接收预测或以其它方式预测)迎面而来的动态运载工具918将遵循路径922以绕过静态运载工具920,并且动态运载工具916将在经过静态运载工具914之后遵循路径924。在实现中,操作820使用处理800的实例(即,执行处理800)以识别动态对象的路径。在示例中,当预测动态对象的路径时,处理800将AV从动态对象的附近对象的列表中排除。
在示例中,预测动态对象的路径可以基于其它动态对象的相应速率以及动态对象之间的通行权的估计。在通行权的估计的示例中,如果第二运载工具正在跟随车道中的第一运载工具(即,在第一运载工具之后),则在存在第二运载工具的情况下模拟第一运载工具(即,针对第一运载工具预测路径);但在不存在第一运载工具的情况下模拟第二运载工具。
正因如此,轨迹规划器500的实例可以专用于包括轨迹规划器500的自主运载工具,并且轨迹规划器500的一个或多个其它实例可被自主运载工具使用以预测对自主运载工具可见的动态对象(例如,世界模型模块402所维持的动态对象)的轨迹。
在操作860处,处理800针对动态对象调整可驾驶区域。也就是说,处理800基于各动态对象的相应预测轨迹来从可驾驶区域切出部分。处理800使用与各动态对象的位置有关的定时信息来从可驾驶区域切出附加部分。针对动态对象的可驾驶区域中的切口是通过将现在考虑了静态对象(如针对操作840所述)的离散时间速率规划所生成的定时与动态对象的预测的定时进行比较而生成的。也就是说,处理800可以针对动态对象并且基于动态对象的预测轨迹来预测动态对象在不同的离散时间点处相对于AV在相同离散时间点处的位置而所处的位置。以下针对图14~16进一步描述了针对动态对象调整可驾驶区域的示例。以下针对图18描述了用于针对动态对象调整可驾驶区域的处理的示例。
动态对象的位置与AV的预测位置相匹配,以确定切出部分。如上所述,AV的预测位置是基于如在操作840处调整(即,考虑静态对象)的离散时间速率规划。切口可能与动态对象的当前位置不对应。相反,切口可以基于AV和动态对象被预测为相遇的位置。如果动态对象的预测轨迹不干扰可驾驶区域,则针对动态对象不会切出可驾驶区域的部分。如果动态对象的预测轨迹确实干扰了可驾驶区域,则切出可驾驶区域的一个或多个部分,以避免与动态对象发生潜在碰撞。
图9的视图950示出针对动态对象调整可驾驶区域(即,操作860)。处理800预测到,迎面而来的动态运载工具918将遵循路径922,以绕过(例如,避开)静态运载工具920。处理800进一步预测到,如果AV 912继续沿其当前轨迹,则AV 912和迎面而来的动态运载工具918将会在位置954周围相遇。正因如此,处理800从可驾驶区域932中切出切口956。
在操作870处,处理800针对动态对象调整离散时间速率规划。在调整后的可驾驶区域(考虑了该点处的静态对象和动态对象这两者)包含沿与AV相同的方向上行进的动态对象的情况下,动态对象被标记为纵向约束,并且离散时间速率规划被调整为使得AV以舒适的速率和距离跟随阻塞对象。
图9的视图960示出针对动态对象调整离散时间速率规划(即,操作870)。处理800判断为,动态运载工具916在AV 912的调整后的可驾驶区域中,并且AV 912通过动态运载工具916是不安全的,这是因为例如在动态运载工具916的边缘和调整后的可驾驶区域的边界之间不存在安全间隙。正因如此,AV 912将跟随在动态运载工具916之后。如果动态运载工具916正在以比策略性速率规划慢的速率移动,则调整离散时间速率规划以使得AV以舒适的速率和距离跟随动态运载工具916。视图960还示出AV 912的例如基于切口956的轨迹962。
在另一示例中,假定动态运载工具916本身被判断为具有纵向约束。例如,第二运载工具(未示出)可能在动态运载工具916的前面。正因如此,第二运载工具本身也可被认为是AV 912的另一纵向约束。正因如此,可以基于动态运载工具916确定AV 912的第一离散时间速率规划(例如,第一减速度规划),并且可以确定AV 912的第二离散时间速率规划(例如,第二减速度规划)。第一离散时间速率规划和第二离散时间速率规划中与较高减速度相对应的一个可被选择为AV的离散时间速率规划。更一般地,被判断为约束AV的约束的对象本身可被视为AV的约束。
调整后的可驾驶区域964示出由处理800的操作得到的调整后的可驾驶区域。
图10~12是根据本发明的实现的针对静态对象调整可驾驶区域的示例1000、1100、1200。示例1000、1100、1200示出确定可驾驶区域的静态边界。也就是说,图10~12是如针对图8的操作830所述的针对静态对象调整可驾驶区域的示例。也就是说,示例1000、1100和1200示出沿着AV的粗驾驶线确定参考静态对象可以驾驶AV的位置。
在图10的示例1000中,AV 1002的粗驾驶线由粗驾驶线1004表示。这里粗驾驶线1004也被称为粗驾驶线。如针对图5的参考轨迹生成层504所述,可以确定(例如,计算、生成等)粗驾驶线1004。示例1000示出用于确定AV 1002的可驾驶区域的横向边界的操作830的示例。也就是说,示例1000示出确定例如AV 1002的可驾驶区域的左边界和右边界以考虑静态对象。
如上所述,确定可驾驶区域(即,未调整的、未切出的可驾驶区域,诸如图9的可驾驶区域932等)。在示例中,可驾驶区域可以具有默认宽度。默认宽度可以基于AV的当前车道或当前道路。默认宽度可以由预定义宽度(例如,8米)定义。正因如此,可驾驶区域可以越过道路的中心线。注意,默认可驾驶区域可以受到可能位于中线中的屏障(例如,混凝土屏障)的限制。这种屏障是静态对象,并且限制了可驾驶区域。
AV 1002的可驾驶区域被分割为分箱。各分箱具有中心点,诸如中心点1006等。中心点可以是等间隔的。例如,中心点可以相距约两米。各分箱的左边界和右边界可以与粗驾驶线1004的航向相关。右边界1018和左边界1020示出分箱1022的边界。
诸如边界点1008等的边界点源于静态对象。例如,边界点可以从来自LiDAR传感器、激光指示器、雷达或任何其它传感器(诸如图1的传感器126等)的数据推导出。边界点可以表示被占用或以其它方式禁止AV进入的(x,y)坐标。与静态对象相对应的各边界点被分配给包含该边界点的分箱。例如,边界点1008被分配给分箱1022。相邻边界点(诸如在分箱内或跨越分箱边界)可以与一个或多个静态对象相对应。
各分箱的左边界和右边界可以基于被分配给分箱的边界点来定义(即,设置)。例如,由于分箱1024不包括边界点,分箱1024的右边界1016和左边界1010与(未调整的)可驾驶区域对准。另一方面,分箱1026的左边界1012与可驾驶区域不对准,这是因为切口1028从可驾驶区域中排除;而分箱1026的右边界1014与可驾驶区域不对准,这是因为切口1030从可驾驶区域中排除。
调整后的可驾驶区域的边界由分段线1032和分段线1034表示,其中分段线1032形成调整后的可驾驶区域的左边界,分段线1034形成调整后的可驾驶区域的右边界。为了例示的清楚起见,分段线1032、1034被示出为偏离现实边界。也就是说,例如,虽然分段线1032与边界1010和边界1012重叠,但为了清楚起见,分段线1032被示出为略微偏离边界1010和边界1012。分段线1032是调整后的可驾驶区域的计算出的左边界。分段线1034是调整后的可驾驶区域的计算出的右边界。
计算出的右边界和左边界用于判断AV 1002是否可以继续沿着粗驾驶线1004。AV1002可以前进(实际上或计算上,而不是物理上)到各分箱的中心,以判断(在给定计算边界的情况下的)分箱的宽度是否使得AV 1002可以安全地适合通过该分箱。例如,针对分箱1022,AV 1002不能安全地通过分箱的左边界(即,计算出的左边界)。正因如此,并且如下文进一步所述,将改变AV 1002的轨迹。例如,AV 1002的轨迹可能无需调整,因为AV 1002可能需要停止,或者AV 1002的轨迹可以以其它方式改变。
图11示出根据本发明的实现的确定静态边界并识别在调整离散时间速率规划时考虑的阻塞的示例1100。在示例1100中,粗驾驶线1103是AV 1102的粗驾驶线。AV 1102的默认可驾驶区域由左边界1104和右边界1106定义。在示例1100中,示出包括AV 1102的车道的左车道边界1108和右车道边界1110。在示例1100中,可驾驶区域限于AV 1102的车道(即,由左车道边界1108及右车道边界1110界定的车道)。正因如此,针对静态对象调整车道的左边界和右边界。
左边界1104和右边界1106可以定义最大可能可驾驶区域(即,最大边界)。然而,由于优选将AV 1102保持在其车道内,因此左车道边界1108和右车道边界1110定义可驾驶区域的边界。在示例中,如果AV 1102不能在其本身的车道内(例如,在左车道边界1108与右车道边界1110之间)安全驾驶,则可以评价AV 1102是否可以在车道边界外但在最大边界内驾驶。扩展可驾驶区域可被称为“扩展可驾驶区域检查”。
右车道边界1110包括部分1112。部分1112被示出为虚线,因为如下文进一步所述,可驾驶区域的该部分将被调整。
如针对图10所述,AV 1102的可驾驶区域被分割为分箱,并且与静态对象相对应的边界点被分配至相应的分箱,诸如分箱1116、1118等。由于分箱1116、1118的边界点似乎对应于大的矩形对象,因此对象可以(例如,通过图4的世界模型模块402)被分类为“卡车”。
与对象(静态或动态对象)相对应(即,基于对象定义)的边界可被称为硬边界。硬边界使得,如果规划轨迹要越过硬边界,则可能与另一对象发生碰撞。另一方面,车道和/或道路标记可被称为软边界,并表示合法或逻辑边界。软边界使得,如果规划轨迹要越过还不是硬边界的软边界,则AV的运动可能是不合法的和/或不可被社会接受的,但AV可能是安全的。如图11所示,例如,左边界1104(即,左可驾驶区域边界)定义左硬边界,而左车道边界1108定义左软边界。右硬边界包括右边界1106(即,右可驾驶区域边界)和边界1114;右软边界由右车道边界1110和边界1114定义。
可以进行详细的检查,以判断在给定分箱的右硬边界和左硬边界之间的距离的情况下是否存在路径。边界1114和左车道边界1108之间的距离1120被判断为太窄,以致AV1102无法驾驶(即,适合)通过。正因如此,与分箱1116相对应的位置1122被标记为静态阻塞。正因如此,AV 1102不能通过分箱1116、1118的边界点所表示的对象。因此,AV 1102将在与位置1122相对应的静态阻塞之前停止。因此,模块530可以调整离散时间速率规划,使得AV在静态阻塞之前停下来。
在另一示例中,代替由于静态阻塞而停止,轨迹规划器确定通过间隙1124的轨迹,使得可驾驶区域至少针对分箱1116和1118跨越左车道边界1108而扩展。例如,如果左车道边界1108是道路的中心,则轨迹规划器可以判断为不存在迎面而来的动态对象,因此跨越车道边界是安全的。
在另一示例中,在不存在足以使AV在静态阻塞之前停止的距离的情况下,离散时间速率规划将只能使AV减慢,正因如此,可以确定这样的轨迹,使得AV可以越过左软边界以避免越过右硬边界并撞击静态对象。因此,通过维持对硬边界和软边界这两者的意识,轨迹规划器在大多数状况下可以生成合法和社会可接受的驾驶的轨迹,并在紧急状况下无缝地过渡到对象避开机动。
在示例中,可以基于分箱内的对象(例如,边界点组)的状况来调整分箱的边界。例如,可以随时间跟踪分箱内的边界点。如果判断为分箱内的边界点组略微移动(即,小于阈值移动水平),则可能需要更大的余隙水平。也就是说,如果边界点正在移动,则AV 1102可被驾驶得进一步远离边界点。另一方面,如果边界点是稳定的(即,没有正在移动),则AV1102可被驾驶得更靠近边界点。正因如此,可以根据分箱内的边界点的移动水平随时间调整分箱的边界(例如,边界1114)。
在示例中,如果在时间t检测到边界点的移动,则这些边界点被认为随后(即,在稍后的时间t+x)移动,而无论该边界点是否继续移动。
基于分箱内的边界点的移动随时间调整分箱边界可被称为滤波后的横向限制。在该上下文中,“滤波”意味着横向限制(例如,分箱边界)可以随时间变化。
图12是根据本发明的实现的确定静态边界的另一示例、即示例1200。在示例1200中,粗驾驶线1203是AV 1202的粗驾驶线。AV 1202的默认可驾驶区域由左车道边界1204和右车道边界1206定义。切口1208和切口1210被从可驾驶区域中切出。在该示例中,切口1210位于可驾驶区域的中间。
切出区域的边界是否扩展到默认可驾驶区域的边界可以取决于切出区域与默认可驾驶区域的边界之间的距离。例如,如果与切口1210的右边缘和右车道边界1206之间的间隙1216相对应的距离低于阈值距离,则切口1210可以由从切口1210的左边界1217扩展到右车道边界1206的区域定义。在示例中,阈值距离可以与AV 1202的宽度相关。例如,阈值距离可以是AV 1202的宽度的1.5倍、2.0倍等。类似地,还确定分箱的边界点的集群(例如,集群1209)和车道边界(例如,右车道边界1206)之间的间隙(例如,间隙1207)。在间隙1207的情况下,由于间隙1207被判断为小于阈值距离(使得AV 1202不能通过该间隙),因此切口1208扩展到右车道边界1206。
AV 1202的轨迹规划器可以判断为距离1212使得AV 1202可以通过与距离1212相对应的间隙。由于切口1210与粗驾驶线1203重叠,因此AV 1202的轨迹规划器进行详细检查以确定(例如,求出)到切口1210的左侧或右侧的间隙,使得AV 1202可以通过该间隙。如果由于详细检查未发现间隙,则AV 1202可被认为是阻塞的,并且必须停止。
在示例1200中,间隙1214和间隙1216都使得AV 1202可以通过间隙1214、1216中的任一个。在示例中,随机选择间隙1214、1216其中之一。在另一示例中,轨迹规划器选择间隙1214(即,切口1210左侧的间隙),因为轨迹规划器已经选择了向左的方向来通过切口1208。
在给定针对第二对象的两个可能路径(例如,关于对象的左路径和右路径)、并且给定针对第一对象的第一路径(例如,右侧或左侧)的情况下,“多假设跟踪”是指确定针对第二对象的第二路径(例如,轨迹)。
图13是根据本发明的用于确定静态边界的处理1300的流程图。处理1300的一些或所有操作可以在处理800的操作830处进行。
在操作1310处,处理1300将边界点组织在沿粗驾驶线的分箱中。如针对图10~12所描述的,边界点被组织到沿粗驾驶线的分箱中。
在操作1320处,处理1300对照粗驾驶线检查分箱的边界。对照粗驾驶线检查分箱的边界以判断是否存在间隙以使得AV可以通过至少一个间隙。在示例中,操作1320可以通过操作1320_2~1320_12来进行。操作1320基于诸如针对例如图10的分箱1026的左边界1012和右边界1014所述的分箱边界点,来调整可驾驶区域的分箱的右边界和左边界。
在操作1320_2处,处理1300估计实际驾驶线。例如,如针对切口1208所述,处理1300确定切口1208左侧的实际驾驶线。
在操作1320_4处,处理1300识别可通过间隙。也就是说,处理1300识别可通过间隙的数量。例如,在给定图11的分箱1116的右边界和左边界的情况下,处理1300判断AV 1102是否可以通过距离1120所定义的间隙。如果AV 1102可以通过距离1120所定义的间隙,则识别一个间隙。类似地,处理1300判断AV 1202是否可以通过图12的距离1212所定义的间隙。
在操作1320_6处,如果识别了单个(即,一个)间隙,则处理1300在1320_12处终止。也就是说,允许轨迹通过该间隙。如果在操作1320_4处识别了多于一个间隙,则处理1300进入操作1320_8。例如,针对AV 1202和切口1210,处理1300识别两个间隙,即切口1210右侧的间隙和左侧的间隙。
在操作1320_8处,处理1300进行详细检查以判断其它间隙是否可用,诸如针对图12的间隙1214、1216所述。例如,如果间隙1214被判断为太小以致AV 1202无法在切口1210的左侧通过,则处理1300可以测试AV 1202是否可以通过间隙1216。在操作1320_8处,处理1300选择在左侧或在右侧通过,并且如果两者都不可能,则处理1300判断为存在静态阻塞。
在操作1320_10处,如果前瞻距离被完全检查,则处理1300在操作1320_12处终止;否则,处理1300返回操作1320_2以检查附加障碍物。
前瞻距离可以随AV的速率而变化。例如,根据AV的速率,前瞻距离可以变化以减少计算时间,同时仍然保证在检测到前方的阻塞或横向约束的情况下有足够的时间使AV停止或舒适地(例如,安全地)转向。例如,在需要4秒前瞻时间的情况下,如果AV正以每秒12米的速率行进,则适当的前瞻距离将是48米。如果AV正以每秒30米的速率行进(例如,在公路上行进时),则适当的距离将是120米。
再次参考图5,离散时间速率规划模块528可以根据参考轨迹生成层504(更具体地,策略性速率规划模块524)所确定的策略性速率规划来生成目标速率和加速度。离散时间速率规划模块528可以根据(例如,基于)纵向约束来生成目标速率和加速度。在示例中,纵向约束可以包括(后述的)停止线、(后述的)虚拟停止线、静态障碍物(即,静态对象)和/或动态障碍物(即,动态对象)。离散时间速率规划模块528迭代地计算目标速率和加速度。针对前瞻时间(即,未来时间范围)计算目标速率和加速度。在示例中,前瞻时间可以是6秒。
停止线表示法律要求AV在继续之前停止的线。在示例中,停止线可以用道路上的涂画标记。在另一示例中,停止线可以基于交叉路口结构和停止标志位置来推断。虚拟停止线可以被AV用来表示AV预期、但不被法律要求停止以检查十字路口信息的关键位置。例如,在左转弯处,在交叉路口的中间可以使用虚拟停止线,以使AV停止并为十字路口的交通让路。
离散时间速率规划模块528计算纵向约束(即,在AV的纵向方向上的静态或动态对象)的相应目标速率和/或纵向约束的相应目标距离。
离散时间速率规划模块528可以为至少一些静态和/或动态对象设置(即,选择、确定或以其它方式设置)跟踪模式。例如,跟踪模式可以是“缩小间隙”、“维持间隙”、“开放间隙”、“制动”和“跟随”其中之一。例如,针对图9的动态运载工具916,离散时间速率规划模块528可以确定“缩小间隙”的跟踪模式。例如,针对图11的分箱1116中的对象,跟踪模式可被确定为“制动”。可用跟踪模式可以包括更少、更多或其它的跟踪模式。跟踪模式可用于选择离散时间速率规划模块528所使用的调谐参数的集合。调谐参数可以包括目标加速度、迟滞参数和其它调谐参数。
现在提供示例来示出离散时间速率规划模块528的操作。如果没有发现纵向约束,则离散时间速率规划模块528可以基于(如参考轨迹生成层504所确定的)策略性速率规划来判断为可以操作AV。另一方面,如果(例如,针对图11的分箱1116中的对象)发现纵向约束(其中跟踪模式被确定为“制动”),则离散时间速率规划模块528计算速率分布以使AV停止。也就是说,计算减速速率分布以使AV停止。
在示例中,速率分布使用AV的当前速率以及到纵向约束的距离来计算减速速率分布,以在纵向约束之前使AV停止。
图14~16是根据本发明的实现的确定动态边界的示例1400、1500和1600。也就是说,图14~16是如针对图8的操作850所述的针对动态对象调整可驾驶区域的示例。也就是说,示例1400、1500和1600示出沿着AV的粗驾驶线确定参考动态对象可以驾驶AV的位置。
各动态对象可被分类为多个可用类中至少之一。在示例中,可用类包括“横向约束”、“纵向约束”、“迎面而来的横向约束”和“迎面而来的纵向约束”。可使用其它类。
被分类为“横向约束”的动态对象影响AV的路径、但不影响速率。例如,动态对象可以正在一般与AV的方向正交的方向上移动。也就是说,动态对象可以正从AV的左侧或右侧移动,而不会阻碍(即,妨碍)AV的路径。正因如此,诸如图5的轨迹规划器500等的轨迹规划器可能需要调整AV的轨迹以避开动态对象。也就是说,AV可能需要移动(在左侧或在右侧)以避免与动态对象碰撞。
被分类为“纵向约束”的动态对象影响AV的速率、但不影响路径。例如,动态对象可以正在一般与AV相同的方向上移动,并且可以在AV的路径中。也就是说,在AV的当前速率下,纵向约束对象阻碍(即,妨碍)AV的路径。正因如此,AV的轨迹规划器可能无需调整AV的轨迹,但可能需要(诸如通过轨迹规划器的离散时间速率规划模块528来)调整AV的速率以避免与动态对象碰撞。纵向约束的示例是图9的动态运载工具916。也就是说,纵向约束对象可以是在AV前面并且正以比AV慢的速率移动的运载工具。正因如此,AV将减慢,以避免追尾动态对象。
迎面而来的横向约束对象与横向约束对象类似,其区别在于迎面而来的横向约束对象在与AV的方向相反的方向上移动。图9中的迎面而来的动态运载工具918是迎面而来的横向约束对象的示例。在这种情况下,AV可以移动(诸如针对图9的轨迹962所述)而无需减慢。
迎面而来的纵向约束对象与纵向约束对象类似,其区别在于迎面而来的纵向约束对象在与AV的方向相反的方向上移动。在这种情况下,并且如针对图16进一步所述,AV停止。
正因如此,图5的对象避开层506的模块532基于动态对象的分类来约束(即,施加约束至)AV的离散速率规划。例如,阻塞AV的轨迹的迎面而来的动态对象可被视为车道内(即,在与AV相同的车道中)的静态对象。例如,领先动态对象(即,在AV的前面并正在与AV相同的方向上移动的动态对象)可被视为离散时间速率规划中的纵向约束。例如,靠近AV的规划驾驶线的动态对象可被视为横向约束。
在图14的示例1400中,AV 1402正沿着粗驾驶线1403移动。未发现静态对象。因此,作为如关于图10~12所述的针对静态对象调整可驾驶区域的计算边界的左边界1417和右边界1418与可驾驶区域的边界重合。
运载工具1404被预测为从道路的右路肩(或从包括AV 1402的车道右侧的车道)沿着路径1420移动到AV的路径中。正因如此,运载工具1404最初被分类为横向约束。运载工具1404的预测路径是粗驾驶线1403附近(例如,与粗驾驶线1403相邻)的路径1420。正因如此,模块532继续将运载工具1404分类为横向约束。
模块532可以确定(例如,预测)AV 1402在不同离散时间点的位置。也就是说,模块532确定在不同时间点沿着粗驾驶线1403的到达位置。例如,在时间t处(例如,在一秒内),AV 1402被预测为处于位置1406处;在时间t+1处(例如,在两秒内),AV 1402被预测为处于位置1408处;并且在时间t+2处(例如,在3秒内),AV 1402被预测为处于位置1410处。
虽然针对示例1400、1500和1600示出未来3秒(即,3秒的时间窗)处的位置,但是在给定预定时间窗的情况下,可以确定(例如,预测、计算等)更多或更少的位置。在示例中,时间窗为6秒。预测位置的频率也可能不同。在示例中,时间窗可以是6秒,并且可以每半秒确定位置。正因如此,预测了12个位置。
如上所述,轨迹规划器的第二实例可以是跟踪运载工具1404(例如,预测运载工具1404的轨迹)。正因如此,第二轨迹规划器的模块532可以确定(例如,预测)运载工具1404的位置。例如,在时间t处(例如,在一秒内),运载工具1404被确定为处于位置1412处;在时间t+1处(例如,在两秒内),运载工具1404被确定为处于位置1414处;并且在时间t+2时(例如,在3秒内),运载工具1404被确定为处于位置1416处。在示例中,相同的时间窗和预测频率对于AV的所有实例化轨迹规划器可以是相同的。然而,无需是这种情况。时间窗和频率可以取决于动态对象的类型(例如,自行车、行人、跑车、轿车、大卡车等)。调整AV 1402的可驾驶区域,以去除与运载工具1404的位置相对应的那些区域。
在图14的示例1400中,判断为运载工具1404和AV 1402在相同时间大致处于相同位置。正因如此,诸如通过设置与路径1422相对应的分箱的边界(在本示例中为右边界),从AV 1402的可驾驶区域切出与路径1422相对应的部分。如针对图12的距离1212所述,如果距离1424使得AV 1402可以适合通过距离1424所定义的间隙,则AV 1402的驾驶线被调整通过该间隙(即,AV 1402被推送至左侧)。
在图15的示例1500中,AV 1502正沿着粗驾驶线1503移动。未发现静态对象。因此,不针对静态对象调整可驾驶区域的左边界1517和右边界1518。然而,运载工具1504被预测为沿着路径1520从道路的右路肩(或从包括AV 1502的车道右侧的车道)移动到AV 1502的路径中。
最初,例如,当运载工具1504被首次检测到时,其可被分类为横向约束。正因如此,如针对图14的运载工具1404所述,可以针对运载工具1504施加横向约束。
如针对图15所述,AV 1502在时间t、t+1和t+2处的位置被分别预测为位置1506、1508和1510;并且运载工具1504在时间t、t+1和t+2处的位置被分别预测为1512、1514和1516。正因如此,运载工具1504的轨迹(即,路径1520)被预测为与AV 1502的粗驾驶线1503重叠。因此,运载工具1504然后被分类为纵向约束。正因如此,运载工具1504的分类从“横向约束”改变为“纵向约束”。正因如此,轨迹规划器无需改变AV 1502的轨迹以使得AV 1502向左移动(如上文针对图14所述);相反,离散时间速率规划模块528可以对AV 1502的粗驾驶线1503施加纵向约束。也就是说,离散时间速率规划模块528使用运载工具1504作为领先运载工具来计算离散时间速率规划。离散时间速率规划模块528可以设置“跟随”的跟踪模式,使得AV 1502跟随在运载工具1504之后。离散时间速率规划模块528还可以确定离散时间速率规划,以例如使AV 1502减速,使得AV 1502不会在运载工具1504之前到达位置1506。
在图16的示例1600中,AV 1602正沿着粗驾驶线1603向东移动,而运载工具1604正向西移动。运载工具1604被预测为遵循路径1609,以避开停泊的运载工具1606。AV 1602沿粗驾驶线1603在时间t、t+1和t+2处的位置被分别预测为位置1610、1612和1614。运载工具1604沿路径1609在时间t、t+1和t+2处的位置被分别预测为1616、1618和1620。
轨迹规划器判断为,AV 1602和运载工具1604被预测为在相同时间(即,在时间t+2处)大致处于相同位置(即,与位置1612、1618相对应的交叉位置)。正因如此,如果AV 1602继续沿着粗驾驶线1603,其最可能与运载工具1604碰撞。
尽管在图16中未示出,但如针对图9的视图950中的切口956所述,调整(即,切出)示例1600的可驾驶区域。也就是说,调整AV 1602的可驾驶区域,以诸如通过设置与路径1609相对应(即重叠)的分箱的边界(在本示例中为左边界)来去除与运载工具1604的位置相对应的那些区域。
在交叉位置(即,1612、1618)处,轨迹规划器可以评价交叉点与可驾驶区域的边缘之间的可驾驶区域的宽度。也就是说,轨迹规划器评价距离1622以判断距离1622所定义的间隙是否足够大以使得AV 1602可以通过。如上所述,距离1622是包括交叉点的分箱1608的计算边界之间的距离。
在距离1622被判断为不够大(即,间隙太小)的情况下,轨迹规划器确定AV 1602可以通过运载工具1604的位置。在示例中,对于AV 1602的至少一些预测位置,从交叉点(例如,时间t+X处的位置,其中X是正整数)开始并在时间上回溯(例如,时间t+X-1、t+X-2、...、t-1、t处的至少一些位置),轨迹规划器判断在该位置处,AV 1602是否可以通过运载工具1604。在示例1600中,轨迹规划器判断为在位置1610处AV 1602可以通过运载工具1604。
在另一示例中,对于运载工具1604的至少一些预测位置,从交叉点(例如,时间t+X处的位置,其中X是正整数)开始并在时间上向前(例如,时间t+X+1、t+X+2、...、t+X+n处的至少一些位置),轨迹规划器判断在该位置处,AV 1602是否可以通过运载工具1604。
轨迹规划器判断为,当运载工具1604处于位置1620时,AV 1602可以通过运载工具1604。正因如此,轨迹规划器(更具体地,模块530)在位置1624处设置静态阻塞。然后,轨迹规划器(更具体地,离散时间速率规划模块528)确定速率和/或减速度分布,以使AV 1602在位置1624处停止。正因如此,AV 1602在位置1624处停止,直到运载工具1604到达位置1624为止,此时AV 1602可以沿着粗驾驶线1603前进。
在距离1622被判断为足够大的情况下,轨迹规划器可以调整粗驾驶线1603,使得AV 1602向左移动以在交叉位置处避开运载工具1604,诸如如针对图9的视图960中的轨迹962所示。
正因如此,在示例中,对象避开层506系统地处理对象。如果对象不是约束,则对象避开层506可以忽略该对象。
如果对象是静态对象并且调整后的可驾驶区域是可通过的(例如,AV可以视情况通过可驾驶区域或调整后的可驾驶区域中的一个或多个间隙),则模块530可以施加静态约束(例如,横向约束)来确定调整后的可驾驶区域,如例如针对图12的距离1212所述。
如果对象是静态对象并且可驾驶区域(或调整后的可驾驶区域)是不可通过的,则离散时间速率规划模块528可以调整离散时间速率分布,如例如针对图11的位置1122所述。
如果对象是动态对象并且对象是横向约束,则模块532可以调整可驾驶区域(或调整后的可驾驶区域),如例如针对图15所述。
如果对象是动态对象并且该对象是纵向约束,则离散时间速率规划模块528可以调整离散时间速率分布,如例如针对图16所述。在给定约束的情况下,离散时间速率规划模块528可以生成针对未来窗的离散时间速率规划(例如,针对未来6秒的速率规划)。
返回图5,轨迹优化层508进行诸如约束操作等的优化操作,以基于约束来确定AV的最优轨迹。轨迹优化层508可以使用(即,作为优化操作的输入)AV的运动模型(例如,运动学运动模型)、粗驾驶线(例如,图10的粗驾驶线1004、图11的粗驾驶线1103、图14的粗驾驶线1403等)和/或沿粗驾驶线的分箱的中心点(例如,中心点1006)以及调整后的可驾驶区域(例如,调整后的可驾驶区域的左边界和右边界),以计算(例如,确定、生成等)AV的最优轨迹。正因如此,最优轨迹考虑了粗驾驶线以及沿粗驾驶线(在给定静态对象和动态对象的情况下)的左边界和右边界。
图17示出根据本发明的实现的轨迹规划的附加示例1700。在以下的各示例中,诸如图5的轨迹规划器500等的一个或多个轨迹规划器可以在自主运载工具内执行。轨迹规划器的第一实例确定自主运载工具本身的轨迹。第二轨迹规划器实例预测至少一个外部动态对象的相应参考驾驶线。为了简化解释,这里使用“轨迹规划器”来指代第一实例和/或第二实例。
在第一示例中,AV 1702的轨迹规划器预测到,迎面而来的运载工具1704将遵循轨迹1706以避开静态对象1705。轨迹规划器进一步判断为,如针对图16所述,AV 1702不能在迎面而来的运载工具1704的轨迹和可驾驶区域的右边界之间的间隙中通过。正因如此,轨迹规划器确定如下的速率规划,该速率规划使AV 1702在静态阻塞1708处停止,直到迎面而来的运载工具1704经过静态阻塞1708为止。
在第二示例中,AV 1710判断为(即,通过AV的轨迹规划器判断为)动态对象1712将遵循路径1714。轨迹规划器判断为AV 1710不能在没有跨越道路的中心线的情况下通过动态对象1712,其中中心线可以是可驾驶区域的左硬边界(如针对图9的可驾驶区域932所述)。正因如此,AV 1710的轨迹规划器确定使AV 1710在静态阻塞1716处停止的速率规划。在另一示例中,AV 1710没有停止在静态阻塞1716处;相反,AV 1710减慢到足以允许动态对象1712通过。
在第三示例中,AV 1720判断为迎面而来的动态对象1722将遵循轨迹1724。AV1720进一步确定AV 1720的轨迹1730,使得AV 1720沿着轨迹1730导航至第一静态对象1726和第二静态对象1728之间,其中AV 1720将在静态阻塞1732处等待计算出的秒数,然后前进。计算出的秒数是足够用于迎面而来的动态对象1722通过静态阻塞1732的位置的时间,诸如针对图16的位置1624所述。
在第四示例中,AV 1734判断为大的动态对象1736正在右转弯。AV 1734的轨迹规划器使用大的动态对象1736的运动模型确定为大的动态对象1736需要大的转弯半径,正因如此,大的动态对象1736将遵循轨迹1738。因此,确定(例如,计算、生成等)AV 1734的速率规划,使得AV 1734在静态阻塞1740处停止,直到大的动态对象1736通过AV 1734的路径为止。
总之,根据本发明的轨迹规划器(例如,轨迹规划器的驾驶线数据层)可以确定(例如,生成、计算、选择等)参考(即,粗)驾驶线。轨迹规划器可以将多个输入数据融合在一起,以确定粗驾驶线。正因如此,粗驾驶线可被称为多源的(即,来自多种类型的输入数据)。输入数据可以包括HD地图数据、遥操作数据、记录路径数据、在前运载工具数据、停泊场数据和局部感知数据。轨迹规划器可以使用更少、更多或其它的输入。
轨迹规划器(例如,轨迹规划器的粗驾驶线级联层)可以生成(例如,确定、计算等)沿粗驾驶线的包括特定速率值的策略性速率规划。轨迹规划器可以使用道路曲率、道路mu、运载工具速率和/或加速度限制、最小巡航时间、邻域类型以及更多、更少或其它的输入中至少之一来生成策略性速率规划。
轨迹规划器(例如,轨迹规划器的粗驾驶线级联层)基于硬边界(其基于静态和/或动态对象而设置)、软边界(例如,车道标记)、滤波后的横向限制、多假设跟踪、可扩展可驾驶区域检查和动态对象分类(例如,将对象分类为迎面而来的运载工具、领先运载工具或横向约束)中的至少一个或多个,来确定AV的调整后的可驾驶区域。
轨迹规划器(例如,轨迹规划器的离散时间速率规划模块)使用例如自然加速度分布(例如,AV的运动模型)、领先运载工具加速度分布以及限制纵向约束的判断来确定(例如,计算)离散时间速率规划。
轨迹规划器(例如,轨迹规划器的优化期望轨迹层)使用例如约束优化操作来生成(例如,计算、确定等)AV的优化轨迹。在示例中,优化操作可以基于或可以包括二次罚函数。在示例中,优化操作可以基于或可以包括对数障碍函数。例如,二次罚函数可以与软约束一起使用。例如,对数障碍函数可以与硬约束一起使用。
图18是根据本发明的用于对象避开的处理1800的流程图。处理1800可以由轨迹规划器(诸如图5的轨迹规划器500)执行。
在操作1810处,处理1800检测沿着AV的可驾驶区域的粗驾驶线的第一对象。在示例中,检测第一对象可以意味着检测与对象相对应的边界点,诸如图10的边界点1008。在示例中,检测对象可以意味着(例如,通过询问)从世界模型(诸如针对图4的世界模型模块402所述)接收对象。粗驾驶线可以例如如针对图10的粗驾驶线1004、图11的粗驾驶线1103和图12的粗驾驶线1203等所述。可驾驶区域可以如针对图9的可驾驶区域932所述。
在操作1820处,处理1800接收第一对象的预测路径。在示例中,处理1800基于第一对象的分类和第一对象的运动模型来确定第一对象的预测路径。在另一示例中,处理1800从预测第一对象的路径的轨迹规划器接收第一对象的预测路径。预测路径可以如针对图3的轨迹336、轨迹346、轨迹354和轨迹364、图14的路径1420、图15的路径1520以及图16的路径1609所述。
在操作1830处,处理1800基于第一对象的预测路径来确定调整后的可驾驶区域。在示例中,并且如上所述,可以从可驾驶区域中切出部分以生成调整后的可驾驶区域。在另一示例中,诸如在第一对象既不是横向约束也不是纵向约束的情况下,如上所述,调整后的可驾驶区域可以与可驾驶区域相同。
在操作1840处,处理1800确定AV通过调整后的可驾驶区域的轨迹。轨迹可以如针对图5的轨迹优化层508所述地确定。
在示例中,基于第一对象的预测路径确定调整后的可驾驶区域可以包括将粗驾驶线的至少一部分分割为分箱,将第一对象分配给分箱中的一个分箱,以及基于该一个分箱来确定调整后的可驾驶区域。分箱可以例如如针对图10所述。基于该一个分箱确定调整后的可驾驶区域可以包括确定(例如,计算)至少针对该一个分箱的边界,诸如上文所述。
在示例中,基于第一对象的预测路径确定调整后的可驾驶区域可以包括确定第一对象在离散时间间隔处的相应对象位置,确定AV在离散时间间隔处的相应AV位置,以及基于相应对象位置和相应AV位置来确定调整后的可驾驶区域。第一对象的相应对象位置、AV位置以及确定调整后的可驾驶区域可以如针对图14~16所述。
在示例中,处理1800可以包括对第一对象进行分类。在另一示例中,处理1800可以诸如从世界模型模块402等接收对第一对象的分类。在第一对象被分类为迎面而来的纵向约束的情况下,确定AV通过调整后的可驾驶区域的轨迹可以包括使AV停止直到第一对象的对象位置与AV的AV位置相遇的第一时间之后的第二时间为止,诸如针对图16所述。
在第一对象被分类为纵向约束的情况下,确定AV通过调整后的可驾驶区域的轨迹可以包括使AV减慢以在第一对象后驾驶,诸如针对图15所述。
在示例中,处理1800还可以包括将第一对象分类为横向约束、纵向约束、迎面而来的横向约束或迎面而来的纵向约束。
在示例中,确定AV通过调整后的可驾驶区域的轨迹可以包括判断为第一对象是静态阻塞并且使AV停止,诸如针对图16所述。
图19是根据本发明的实现的针对现实世界对象的假设的示例1900的图。示例1900包括示例1910、1930、1940、1950和1960,其中预测观察到的现实世界对象的假设(即,意图)。
示例1910示出AV 1912。AV 1912(更具体地,AV 1912的世界模型模块)检测到迎面而来的动态对象1914。AV 1912预测到,迎面而来的动态对象1914可以遵循路径1918或路径1920以使得迎面而来的动态对象1914可以避开停泊运载工具1916。正因如此,AV 1912可以将第一假设(例如,与路径1918相对应的“停止”)和第二假设(例如,与路径1920相对应的“从左侧绕过”)与迎面而来的动态对象1914相关联。第一假设表示,迎面而来的动态对象1914要在停泊运载工具1916之后停止。第二假设表示,迎面而来的动态对象1914阻碍AV1912的轨迹。正因如此,如果如上所述,轨迹规划器接收路径1920作为迎面而来的动态对象1914的预测路径,则轨迹规划器将迎面而来的动态对象1914分类为迎面而来的纵向约束。
AV 1912可以将可能性与路径1918、1920中的每一个相关联。在示例中,可以向路径1918分配0.2的可能性,并且可以向路径1920分配0.8的可能性。正因如此,迎面而来的动态对象1914有20%的几率将继续向前直行并在到达停泊运载工具1916之前停止和/或减慢;并且迎面而来的动态对象1914有80%的几率将绕过停泊运载工具1916。
示例1930示出AV 1932。AV 1932(更具体地,AV 1932的世界模型模块)检测相邻对象1933。相邻对象1933可被分类为大卡车。使用地图数据(如下文进一步所述),AV 1932判断为在位置1934处存在道路交叉。正因如此,AV 1932可以将第一假设(例如,与路径1938相对应的“直行”)和第二假设(例如,与路径1936相对应的“右转弯”)与相邻对象1933相关联。如下文进一步所述,可以使用正在右转弯的大卡车的处理模型(例如,运动模型)来预测路径1936的轨迹。
AV 1932可以将可能性与第一假设和第二假设中的每一个相关联。在示例中,可以向第一假设分配0.6的可能性,并且可以向第二假设分配0.4的可能性。正因如此,卡车有60%的几率在交叉处继续向前移动,并且卡车有40%的几率在交叉处右转弯。如下文进一步解释,各假设的可能性可以基于状态信息来确定。在简单的示例中,如果相邻对象1933似乎没有随时间减慢,则第二假设(即,“右转弯”)的可能性降低。
示例1940示出AV 1942。AV 1942检测到自行车1946。也就是说,AV 1942检测到被分类为“自行车”的对象。AV 1942还检测到停泊运载工具1944。正因如此,AV 1932可以将第一假设(例如,与路径1948相对应的“绕过”)与自行车1946相关联。正因如此,如上所述,自行车1946可以由轨迹规划器分类为横向约束或纵向约束。由于仅一个假设与自行车1946相关联,因此可以向该一个假设分配1(例如,100%)的可能性。
示例1950示出AV 1952。AV 1952检测到运载工具1954。也就是说,AV 1952检测到被分类为“运载工具”的对象。AV 1952可以(例如,基于地图数据)判断为道路包括两个车道(即,车道1953A和车道1953B)。正因如此,AV 1932可以将第一假设(例如,与路径1958相对应的“直行”,使得运载工具1954留在车道1953B)和第二假设(例如,与路径1956相对应的“变换为左车道”,使得运载工具1954移动到车道1953A)相关联。
AV 1952可以将可能性与第一假设和第二假设中的每一个相关联。在示例中,可以向第一假设分配0.3的可能性,并且可以向第二假设分配0.7的可能性。正因如此,运载工具1954有30%的几率留在车道1953B中,并且运载工具1953有70%的几率将移动到车道1953A。如下文进一步解释,各假设的可能性可以基于状态信息来确定。
示例1960示出AV 1962。AV 1962检测到运载工具1964。也就是说,AV 1962检测到被分类为“运载工具”的对象。AV 1962可以(例如,使用地图数据)将第一假设(例如,与运载工具1964右转弯到车道1963A上以遵循路径1966相对应的“右转弯”)和第二假设(例如,与运载工具1964左转弯到车道1963B上以遵循路径1968相对应的“左转弯”)与运载工具1964相关联。在示例中,第一假设可被分配0.2的可能性,并且第二假设可被分配0.8的可能性。正因如此,运载工具1964有20%的几率将右转弯,并且运载工具1964有80%的几率将左转弯。
图20包括根据本发明的用于世界建模的处理2000的流程图。处理2000包括后述的操作2002~2012。处理2000可以由世界模型模块(诸如图4的世界模型模块402)实现。处理2000可被存储在存储器(诸如图1的存储器122)中,作为可由AV(诸如图1的运载工具100)的处理器(诸如图1的处理器120)执行的指令。
处理2000维持针对现实世界对象(诸如上述的动态对象)的一个或多个假设。处理2000可以使至少一些现实世界对象的至少一些假设维持在相应状态(例如,与相应状态相关联)。在给定先前测量(例如,接收到的传感器观察)的情况下,针对各假设,处理2000估计相关现实世界对象的状态并预测未来对象状态。处理2000维持(例如,计算、确定或以其它方式维持)各假设的可能性,并在接收到新的传感器观察时更新该可能性。处理2000可以将一个或多个假设、所检测到的对象和相关状态维持在数据存储部(诸如数据存储部2014)中。数据存储部2014可以存储在存储器(诸如图1的存储器122)中。数据存储部2014可以例如是诸如关系数据库等的数据库、文件存储部或任何适当的数据存储部。可以在新的传感器测量可用时、按调度(诸如每几毫秒)、这两者的组合的方式、或在其它条件下执行处理2000。
可以使用基于粒子滤波的算法、作为基于粒子滤波的算法或作为基于粒子滤波的算法的步骤来实现处理2000中的一些步骤。粒子滤波是用于基于对象状态的观察来跟踪(例如,预测)对象状态的技术。在示例中,可以使用Rao-Blackwellized粒子滤波器(RBPF)方法。
处理2000可以使用粒子来表示假设。RBPF使用被分配给粒子的权重。正因如此,假设的可能性可以用作表示假设的粒子的权重。正因如此,由于多个假设可以与现实世界对象相关联,因此现实世界对象可以由一组加权粒子组成(各加权粒子对应于现实世界对象的假设)。
处理2000可以接收输入2001。输入2001可以包括传感器数据(即,传感器观察),诸如来自一个或多个传感器126的测量。传感器数据可用于检测现实世界对象。也就是说,例如,传感器数据可用于判断为在AV的视野内存在现实世界对象。
在示例中,处理2000使用传感器数据来确定所检测到的对象的姿势和速度。处理2000可以使用传感器数据来确定(例如,分配)对所检测到的对象的分类。处理2000可以使用传感器数据来确定(例如,计算、估计)所检测到的对象的几何形状。
在示例中,可以使用来自一个或多个照相机的数据来确定所检测到的对象的类。类的非限制性示例包括“汽车”、“跑车”、“轿车”、“大卡车”、“行人”和“自行车”。在另一示例中,可以基于随时间的运动或随时间的LiDAR数据(例如,LiDAR点云)来分配分类。在示例中,神经网络(诸如卷积神经网络)可以用于所检测到的对象的对象识别(例如,分类)。其它方法可用于确定与对象相关联的传感器数据的分类。
注意,不同的传感器数据可以提供不同的对象分类。例如,可以基于LiDAR数据来确定第一分类“自行车”,并且可以基于照相机数据来确定第二分类“慢跑者”。因此,可以概率性地确定对象的分类(例如,第一分类和第二分类中的哪一分类更有可能)。正因如此,将不同传感器数据融合在一起以确定分类。由于分类是概率性的,因此对象的分类可以随时间改变。在一些实现中,处理2000可以针对至少一些可能分类维持假设。
在实现中,处理2000接收所检测到的对象的姿势和速度作为输入。在实现中,处理2000接收所检测到的对象的几何形状和分类中的一个或多个作为附加输入。正因如此,分类可以作为输入被接收到,而不是由处理2000确定。
输入2001也可以包括地图信息。地图信息可以是HD地图数据(诸如针对图5的HD地图数据510所述)、感知路径数据(诸如针对图5的感知路径数据520所述)、其它地图信息或其组合。
地图信息可以包括地图车道结构(这里也称为道路结构)。给定车道的地图车道结构可以包括后继车道信息、前导车道信息和同辈车道信息。图19现用于提供说明性示例。车道1953A和车道1953B是同辈车道。车道1963A和车道1963B是车道1970的可能后继车道。正因如此,地图车道结构包括与道路的车道如何连接有关的信息。地图车道结构可用于确定所检测到的对象可采取(例如,遵循)的可能车道组合。也就是说,地图车道结构可用于确定所检测到的对象的可能路径。
输入2001还可以包括环境信息。环境信息可以包括与AV正行进的运载工具运输网络的不可导航区域有关的信息。例如,环境信息可以包括停泊场的位置,诸如针对图5的停泊场数据518所述。环境信息可用于为所检测到的对象添加(例如,创建)一个或多个假设。例如,如果停泊场在所检测到的对象的预定距离内,则可以为所检测到的对象添加“进入停泊场”假设。
如上所述,处理2000针对假设维持相应的状态信息。也就是说,例如,对于各所观察到的(例如,所检测到的)对象(例如,运载工具、自行车),处理2000维持针对对象状态的一个或多个假设。对于各假设,处理2000可以维持对象状态(即,基于历史测量的当前状态)以及对未来对象状态的预测。
如上所述,对象状态可以包括离散对象状态信息和连续对象状态信息。离散对象状态信息可以包括分类(例如,“汽车”、“自行车”、“行人”等)和意图(例如,“向右”、“左转弯”等)。离散对象状态信息可以包括更多、更少或附加的信息。连续对象状态信息在给定先前测量的情况下提供连续状态的估计。连续对象状态信息可以包括与作为动态(例如,速度、加速度)、运动学(例如,姿势、位置、取向)、几何形状(例如,对象的界定框的长度、宽度和/或高度)或外观状态的更多、更少或其它的连续状态相关的估计。外观可以包含对象的颜色。在示例中,如果当前颜色被确定为黑色并且稍后接收到的传感器观察指示红色,则这样的信息可用于判断传感器观察是否与对象相关联。诸如“红色”等的颜色可以作为标记来跟踪。颜色可以作为诸如红色、绿色和蓝色(RGB)值等的一组颜色值来跟踪。在示例中,当前外观状态可以指示颜色值(255,0,0),该颜色值(255,0,0)基于接收到的传感器观察而被更新为(254.37,0,0)。正因如此,外观是连续变量。
可以针对指定结束时间提供对未来对象状态的预测。例如,处理2000可以针对各假设预测与假设相关联的对象的相应轨迹,并预测对象沿着该轨迹在直到指定结束时间的离散时间点处的状态。预测状态包括预测位置、预测速度、预测航向等。然而,为了便于解释,描述了预测位置。例如,指定结束时间可以是6秒,并且处理2000可以预测对象在直到6秒的每0.5秒增量处的位置。正因如此,可以预测对象的12个位置。在示例中,位置可以由对象的(x,y)坐标定义。该位置可以相对于AV的当前位置。
如上所述,处理2000可以为各假设分配(例如,计算、确定或以其它方式分配)可能性。
为了说明上述情况,现在给出由处理2000针对汽车(即,被分类为“汽车”的所检测到的对象)维持的假设的示例。假设包括假设1和假设2。
假设1包括离散对象状态信息:分类=“汽车”和意图=“在下一个交叉路口直行”。连续对象状态信息包括位置=(10,25)(即,AV前方10米和右侧25米)以及速度=65MPH。假设1还可以包括针对汽车在接下来的N秒(即,指定结束时间)内的位置的预测。正因如此,假设1包括从t=T(即,当前时间)到t=T+N的对象状态。另外,汽车有60%的可能性将遵循假设1的意图(即,“在下一个交叉路口直行”)。
假设2包括离散对象状态信息:分类=“汽车”和意图=“在下一个交叉路口右转弯”。连续对象状态信息包括位置=(10,25)和速度=45MPH。假设2还可以包括对汽车在接下来的N秒(即,指定结束时间)内的位置的预测。正因如此,假设2包括从t=T(即,当前时间)到t=T+N的对象状态。另外,汽车有40%的可能性将遵循假设2的意图(即,“在下一个交叉路口右转弯”)。注意,当对象被首次创建时,为对象创建的任何假设可以具有相同的初始位置和速度。然而,当跟踪对象(例如,更新与对象相关联的假设的状态)时,与不同假设相关联的位置和/或速度可能不同。
在操作2002处,处理2000创建并维持针对至少一些检测到的现实世界对象的假设。这些假设可以维持在数据存储部2014中。由于现实世界对象的位置变化(例如,如下文针对接收到的传感器观察进一步所述),因此与现实世界对象相关联的一个或多个假设可能变化。例如,一些假设可能变得无效(例如,不可能或具有非常低的可能性)。例如,如果现实世界对象左转弯(或几乎肯定左转弯),则与意图“在下一个交叉路口右转弯”相关联的假设变为无效。一些附加假设可能需要基于现实世界对象左转弯来创建。如上所述,使用地图信息(例如,HD地图数据、感知地图数据等)、环境信息数据和/或其它地图信息来创建和维持假设。
图21是根据本发明的创建和维持假设的示例2100。示例2100描绘了运载工具2102(即,由执行处理2000的AV检测到的现实世界对象)穿过运载工具运输网络的一部分、即道路2104。
视图2110示出运载工具2102在时间t=0处的位置。在t=0处,运载工具2102在道路2104的岔口2112之前。正因如此,使用从地图信息中获得的地图车道结构,处理2000可以判断为,一旦运载工具2102到达岔口2112,运载工具2102就可以“向左”(对应于标记为“1”的路径)、“直行”(对应于标记为“2”的路径)或“向右”(对应于标记为“3”的路径)。正因如此,处理2000可以(诸如在数据存储部2014中)为运载工具2102创建三个假设;即分别对应于标记为1、2和3的路径的假设1、假设2和假设3。如上所述,针对各假设确定(例如,计算、设置或以其它方式确定)状态信息。
视图2120示出运载工具2102在时间t=1处的位置。在t=1处,由于运载工具2102不能再“向左”,因此假设1(诸如从数据存储部2014中)去除。如果AV遵循“直行”意图(即,假设2),则处理2000可以使用地图信息判断为运载工具2102可以“直行”(对应于标记为“4”的路径)或“向右”(对应于标记为“5”的路径)。正因如此,在运载工具2102到达岔口2122处之后,处理2000将假设2替换为分别对应于标记为“4”和“5”的路径的假设4和假设5。
如果AV遵循“向右”意图(即,假设3),则处理2000可以使用地图信息判断为运载工具2102在到达岔口2124后可以“向左”(对应于标记为“6”的路径)、“直行”(对应于标记为“7”的路径)或“向右”(对应于标记为“8”的路径)。正因如此,处理2000将假设3替换为分别对应于标记为“6”、“7”和“8”的路径的假设6、假设7和假设8。
在示例中,处理2000可以基于包括运载工具2102的姿势、速度和位置的因素判断为运载工具2102的假设不再可行(或以可忽略不计的可能性可行)。可忽略的可能性可以是低于阈值可能性的可能性。可以使用更多、更少或其它的因素来确定假设的可行性。在示例中,阈值可能性可以是小于10%的阈值。例如,在t=t1处,由于运载工具2102的取向被估计为一般向东北,并且可能正以45MPH的估计速度行进,因此运载工具2102仍然可以遵循假设1的意图的可能性可忽略不计。
视图2130示出运载工具2102在时间t=2处的位置。在t=2处,由于运载工具2102不能再遵循假设4和5的意图,因此假设4和5(诸如从数据存储部2014中)去除。去除假设可以意味着从数据存储部2014中删除该假设。去除假设可以意味着将该假设设置为非活动状态以使得该假设不再被处理2000的操作使用。维持假设6、7和8。维持假设可以包括更新假设的可能性。在简单的示例中,如果假设4、5、6、7和8是同样可能的,则假设4、5、6、7和8中的每一个将具有20%的可能性。假定假设6、7和8在假设4和5被去除后仍然同样有可能,则假设6、7和8中的每一个将具有33%的可能性。
再次参考图20,在操作2004处,处理2000预测现实世界对象的轨迹。也就是说,处理2000针对现实世界对象的各假设预测相关轨迹。在操作2004处,处理2000可以确定(例如,从数据存储部2014中读取或提取)现实世界对象的假设,针对各假设生成(或使用)参考驾驶线,并针对各参考驾驶线生成预测轨迹。轨迹规划器的一个或多个实例(诸如图5的轨迹规划器500)可用于生成参考驾驶线。针对图22进一步描述操作2004。
如上所述,与现实世界对象相关联的假设包括意图和状态信息,其中状态信息包括分类。在示例中,基于对象的分类的运动模型可用于预测意图的轨迹。
图22是根据本发明的轨迹预测的示例。示例2200示出操作2004。示例2200示出运载工具2202(即,现实世界对象)。处理2000(诸如在数据存储部2014中)维持针对运载工具2202的两个假设,即假设1(即,与“直行”意图相对应的假设2204)和假设2(即,与“右转弯”意图相对应的假设2206)。
对于至少一些假设,处理2000(在操作2004处)可以首先确定参考驾驶线。例如,在可以无需参考驾驶线而预测轨迹的情况下,可以不针对假设确定参考驾驶线。例如,在参考驾驶线生成器(例如,轨迹规划器或某个其它参考驾驶线生成器)不可用的情况下,可以不针对参考驾驶线确定参考驾驶线。各假设的参考驾驶线可以例如是与假设的意图相对应的车道中心。正因如此,针对运载工具2202的假设1预测参考驾驶线2208,并且针对运载工具2202的假设2预测参考驾驶线2210。
对于各参考驾驶线,处理2000确定(例如,计算、预测)轨迹(例如,诸如针对图5的轨迹规划器500所述的平滑轨迹)。与假设相关联的状态可用于确定该假设的轨迹。正因如此,轨迹2212被预测为使得运载工具2202预期从其当前位置导航到参考驾驶线2208上(例如,与参考驾驶线2208合并),以使运载工具2202遵循参考驾驶线2208;并且轨迹2214被预测为使得运载工具2202预期从其当前位置导航到参考驾驶线2210上,以使运载工具2202遵循参考驾驶线2210。
在另一示例中,操作2004可以使用操作2016所生成的参考驾驶线。在这种情况下,操作2004使用操作2016所生成的参考驾驶线来确定轨迹。操作2016可以是与处理2000分开执行的异步处理。
再次参考图20,在操作2004处,处理2000将接收到的传感器观察与现实世界对象相关联。处理2000接收新的传感器观察。传感器观察可以例如与从多个传感器读数融合的数据相对应。传感器观察可以指示所观察到的对象的位置。处理2000判断传感器观察与维持(诸如在数据存储部2014中)的哪个现实世界对象(如果存在的话)相对应。如果传感器观察被判断为不与任何维持的现实世界对象相对应,则处理2000可以(例如,在数据存储部2014中)创建与传感器观察相对应的新的现实世界对象,如下文针对操作2012进一步所述。
处理2000可以通过以下步骤将接收到的传感器观察与现实世界对象相关联:定义各观察周围的门控(gating)区域;计算测量可能性矩阵;以及确定对象状态与测量的关联(或等效地,假设与测量的关联)。针对图23进一步描述操作2004。
图23是根据本发明的将传感器观察与现实世界对象相关联的示例2300。视图2310示出,在时间t=T处,处理2000接收传感器观察2320、2322和2324。观察是对物理世界的新测量。在操作2004处,处理2000尝试针对各观察回答以下问题:观察与哪个现实世界对象相对应(即,观察与哪个现实世界对象相关联)?如上所述,处理2000预测各假设的未来状态(包括位置)。当处理2000接收到传感器观察时,处理2000基于从物理世界接收到的观察来更新预测。可以通过根据预测状态和传感器观察计算(例如,测算)更新状态来更新预测。
下表I示出与视图2310相对应并由处理2000在t=T(即,处理2000接收到传感器数据的时间)处维持的假设。在时间t=T处,处理2000维持了四个假设,即假设1、2、3和4。为了便于参考,表I的假设按顺序编号。然而,例如将假设2读取为“与对象2相关联的第一假设”并将假设3读取为“与对象2相关联的第二假设”可以更加准确。
现实世界对象 |
假设 |
意图 |
预测位置 |
对象1 |
假设1 |
“直行” |
2312 |
对象2 |
假设2 |
“直行” |
2314 |
对象2 |
假设3 |
“右转弯” |
2316 |
对象3 |
假设4 |
“直行” |
2318 |
表I
假设1与“对象1”(例如,汽车)的“直行”意图相对应,其预测为对象1在时间t=T时处于位置2312。假设2和3是针对同一对象“对象2”(例如,摩托车)维持的两个假设。假设2与“对象2”的“直行”意图相对应,其预测为对象2在时间t=T时处于位置2314。假设3与“对象2”的“右转弯”意图相对应,其预测为对象2在时间t=T时处于位置2318。假设4与“对象3”(例如,卡车)的“直行”意图相对应,其预测为对象3在时间t=T时处于位置2318。
示例2300的视图2330示出定义门控区域。为了减少图23中的杂乱,在视图2330中省略了视图2310和2330的同位图形实体(即,位置和传感器观察)的数字。
在示例中,门控区域是所接收到的各观察周围的门控区域。观察周围的门控区域定义了传感器观察附近(即,近端)的现实世界对象的搜索区域。更具体地,观察周围的门控区域定义了如下的搜索区域,该搜索区域包括现实世界对象的预测位置。也就是说,观察周围的门控区域定义了如下的区域,该区域可以包括基于预测位置的现实世界对象(例如,数据存储部2014中所维持的对象)并且可能与观察相关联。门控区域用作用以滤除(即,排除)由于距离传感器观察太远因而不太可能与传感器观察相关联的对象(或更具体地,假设)的第一通道。
对于与传感器观察相关联的对象,对象(即,对象的预测位置)预期接近传感器观察。在示例中,观察周围的门控区域可以是圆形。正因如此,视图示出以传感器观察2320为中心的门控区域2332、以传感器观察2324为中心的门控区域2334、以及以传感器观察2322为中心的门控区域2336。在示例中,门控圆的半径可以是10米。
视图2330示出,对象1和对象3很可能与传感器观察2320相关联,因为对象1和对象3在时间t=T处的预测位置被门控区域2332包含;对象2的假设2和3与对象3很可能与传感器观察2324相关联,因为假设2和3下的对象2的预测位置被门控区域2334包含;并且对象2(即,假设2和3)也很可能与传感器观察2322相关联,因为对象2(在假设2和3下)的预测位置被门控区域2336包含。
在另一示例中,可以在现实世界对象的预测位置周围、而不是在观察周围绘制(未示出)门控区域。预测位置周围的门控区域的大小(例如,半径)可以取决于现实世界对象的状态。例如,假设下的对象状态的速度和位置(例如,连续状态信息)可用于确定半径。例如,半径可以基于从时间t=T-1(例如,接收先前传感器观察的时间)到t=T(例如,当前时间)的最大可能行进距离来设置。
操作2006现在可以计算传感器观察与现实世界对象之间的关联的可能性。操作2006可以确定可能关联的可能性值。现实世界对象的动力学可以用来计算可能性。例如,可以使用与速度、位置、姿势、行进方向和几何形状相比更多、更少或不同的动力学(例如,对象状态信息)。例如,如果对象在假设下被分类为“汽车”、并且传感器观察指示相关对象是大对象(例如,指示卡车),则观察不太可能与该对象相关联。例如,如果对于给定假设,对象状态包括对象正以65MPH的速率“直行”,则在对象的预测位置之后20米处的传感器观察不太可能与给定假设相关联。
在示例中,操作2006计算测量可能性矩阵。表II示出测量可能性矩阵的示例。表II中的值是对象的假设和传感器观察之间的可能性的加权和。例如,假定(对象2的)假设2的权重为0.75并且(对象2的)假设3的权重为0.25,并且进一步假定假设2和传感器观察2322之间的测量可能性(如下文所述地计算)为0.1并且假设3和传感器观察2322之间的测量可能性为0.3,则对象2和传感器观察2322之间的测量可能性值可被计算为(0.1×0.25)+(0.3×0.75)=0.25。也就是说,对象2和传感器观察2322之间的测量可能性等于(假设2和传感器观察2322之间的测量可能性)×(假设2的权重)+(假设3和传感器观察2322之间的测量可能性)×(假设3的权重))。
|
传感器观察2320 |
传感器观察2322 |
传感器观察2324 |
对象1 |
0.6 |
|
|
对象2 |
|
0.25 |
0.7 |
对象3 |
0.3 |
|
0.15 |
表II
如上所述,使用门控区域,确定五个有可能(可能)的关联。正因如此,表II包括每个可能的关联的相应可能性。然而,也如上文所指示的,基于对现实世界对象的预测或估计动力学,一些可能性可能不会被计算或可能设置为零。
表II示出,对象1有0.6的可能性与传感器观察2320相关联;对象2有0.25的可能性与传感器观察2322相关联;对象2有0.7的可能性与传感器观察2324相关联;对象3有0.3的可能性与传感器观察2320相关联;并且对象3有0.15的可能性与传感器观察2324相关联。
如下文进一步解释,由于噪声,因此传感器观察和预测状态(例如,预测位置)可能不准确。如上所述,预测状态包括预测位置、预测速度、预测航向等。但是,为了便于解释,描述了预测位置。正因如此,传感器观察位置(xo,yo)和预测位置(xp,yp)可以各自被绘制为高斯分布。传感器观察可被建模为在(xo,yo)处具有不确定性和均值的高斯分布(即,观察分布)。与传感器测量相关联的不确定性可被给出为测量模型(例如,由测量模型定义)。传感器的测量模型对从传感器接收到的测量的特性(例如,噪声)进行建模。传感器观察可被建模为在(xp,yp)处具有不确定性和均值的高斯分布(即,预测分布)。两个高斯分布可以组合,以确定预测位置是观察位置的可能性。
在示例中,可以基于最高可能性来判断关联。正因如此,对象1被判断为与传感器观察2320相关联(如关联2338所示);并且对象2被判断为与传感器观察2324相关联(分别如针对假设2和假设3的关联2340和关联2342所示)。正因如此,对象3不与任何传感器观察相关联,并且传感器观察2322不与处理2000所维持的任何现实世界对象相关联。
可以使用式(1)来计算测量可能性:
在式(1)中,μx是预测分布的均值,σx是预测分布的标准偏差,μm是观察分布的均值,以及σm是观察分布的标准偏差。
再次参考图20,在操作2008处,处理2000更新一些假设的可能性。处理2000更新在操作2006处被发现为与接收到的传感器观察相关联的假设(或等效地,对象)的可能性。也就是说,处理2000基于与对象相关联的新传感器观察来判断对象是更可能还是较不可能遵循假设的意图。
如针对表II所述的测量可能性可用于在操作2008处更新假设的可能性。也就是说,测量可能性可用于更新粒子的权重。如前所述,粒子的权重与粒子所表示的假设的可能性相对应。粒子的权重可以使用式(2)来计算:
P(p,t=T+dt)=(t=T+dt处的测量可能性)*P(p,t=T) (2)
也就是说,通过使时间T+dt处的测量可能性(即,传感器观察与时间T+dt处的粒子/假设相关联的可能性)与假设的最后计算概率(即,前一时间t=T处的假设的可能性)相乘,来给出时间T+dt(即,接收到新传感器观察的时间)处的粒子p(即,假设)的概率(即,可能性)。
然后,可以使时间t=T+dt处的各对象的假设的计算概率归一化,使其相加为1。例如,假定2个粒子与现实世界对象相关联,并且这2个粒子在时间t=T处具有相应概率0.5和0.5。进一步假定在t=T+dt处,使用式(2),概率被分别计算为0.4和0.3。在计算时间t=T+dt处的概率后,概率被分别归一化为(0.4/(0.4+0.3))和(0.3/(0.4+0.3))、或0.57和0.43。
在操作2010处,处理2000更新与在操作2006处被发现为与接收到的传感器观察相关联的那些假设相关联的状态。
虽然可以使用RBPF作为处理2000中的用以维持粒子的步骤的一般框架,但RBPF没有具体说明粒子例如如何移动(例如,在操作2004处)或粒子的状态如何更新(例如,在操作2010处)。扩展卡尔曼滤波器(EKF)可用于预测(即,操作2004的预测)和更新(即,操作2010的更新)。
如上所述,在给定意图的情况下,对象的运动模型可用于预测对象的未来状态。也就是说,例如,运动模型可用于预测粒子(即,假设)如何从时间t演变到时间t+1。运动模型根据分类和其它状态参数(例如,速度、姿势)来对对象的动力学进行建模。当接收到(即,在操作2010处接收到)指示对象位置的新传感器测量时,可以使用(即,在操作2010处使用)EKF以将使用运动模型生成的预测状态与新测量融合(例如,组合、调和、合并或以其它方式融合)以生成(例如,计算、确定或以其它方式生成)更新状态。
式(3)可用于更新对象状态。
在式(3)中,x′
t为时间t处的预测状态,y
t为时间t处的传感器观察状态,
为时间t处的更新状态,P′
t为时间t处的预测状态的协方差,J
h为测量模型的雅可比矩阵(Jacobian),R
t为测量模型的测量噪声协方差,以及
为时间t处的更新状态的协方差。
重申一下,处理2000可以启动RBPF以跟踪对象(例如,现实世界对象)。处理2000跟踪和预测数据存储部2014中的至少一些对象的轨迹。正因如此,处理2000可以运行RBPF的集合来跟踪和预测对象。RBPF用于预测相应对象的连续状态,更新相应对象的连续状态,以及更新相应粒子的权重。
图24是根据本发明的更新假设的状态的示例2400。示例2400示出操作2008和2010。如上所述,根据与对象相关联的假设的对象的位置是假设(或等效地,对象)的状态的一部分。根据假设1的对象1的位置2312被更新为位置2402,根据假设2的对象2的位置2314被更新为位置2404,并且根据假设3的对象2的位置2316被更新为位置2406。
在示例中,位置被更新为与观察的位置重合。也就是说,例如,对象1的假设1的状态位置在时间t=T处被更新为传感器观察2320的位置,而不是位置2312;对象2的假设2的状态位置在时间t=T处被更新为传感器观察2324的位置,而不是位置2314;并且对象3的假设3的状态位置在时间t=T处被更新为传感器观察2324的位置,而不是位置2316。
在示例中,考虑预测位置中的噪声(例如,不确定性)以及与传感器测量相关联的噪声来更新位置。
预测位置(例如,位置2312~2318)是基于预测路径计算(例如,生成、预测、估计或以其它方式计算)的。预测路径是使用与对象分类相关联的运动模型生成的。正因如此,一些噪声(例如,不确定性)可能与预测路径相关联。类似地,噪声(例如,不确定性)也可能与传感器观察相关联。例如,传感器观察可以指示对象处于某个位置处,而实际上,对象在左侧2米处。
正因如此,处理2000可以将噪声预测与噪声传感器观察合并,以生成更新位置。在示例中,更新位置可以是传感器观察与相关预测位置之间的中点。正因如此,位置2402在传感器观察2320和位置2312的中间;位置2404在传感器观察2324和位置2314的中间;以及位置2406在传感器观察2324和位置2316的中间。
使用测量可能性(参见上面的表II)、姿势、速度、位置、更少、更多或其它的状态信息,处理2000可以更新假设的可能性。例如,由于假设1是与对象1相关联的唯一假设,因此假设1的可能性可以维持不变(例如,1.0)。例如,由于传感器观察2324距离假设3的预测状态(即,位置2316)比距离假设2的预测状态(即,位置2314)更近,因此假设3的可能性增加(例如,从0.5增加到0.8),并且假设2的可能性减少(例如,从0.5减少至0.2)。
再次参考图20,在操作2012处,处理2000创建新对象。例如,如上所述,没有假设(或等效地,对象)与传感器观察2322相关联。正因如此,传感器观察2322可以与处理2000先前未维持的新对象相对应。正因如此,处理2000可以创建新对象以与传感器观察2322相对应。处理2000还可以如上所述为新对象分配(例如,创建)一个或多个假设。
在示例中,在基于传感器观察创建新对象之前,新传感器观察必须满足特定标准。如果传感器观察不满足标准,则处理2000可以忽略传感器观察,并且不创建对象。在示例中,标准可以与传感器观察的大小(例如,界定框、几何形状等)相关。例如,如果传感器观察被判断为与各尺寸为0.25米的对象相对应,则该对象被认为太小,并且忽略传感器观察。在这种情况下,传感器观察可能是由于传感器测量中的噪声。
操作2002修改(即,通过创建和维持来修改)粒子。操作2002可以添加和/或去除粒子。例如,在时间t=0时,操作2002可以创建与图21的视图2110的“向左”、“直行”和“向右”假设相对应的三个粒子。
如上所述,对象的状态(表示为X)可以分为离散状态信息(表示为Xd)和连续状态信息(表示为Xc)。正因如此,X={Xc,Xd}。如上所述,离散状态信息Xd和连续状态信息Xc各自可以包括一个或多个量。
离散状态信息Xd可用于确定(例如,选择、使用或以其它方式确定)对象的运动模型。运动模型也可被称为状态过渡模型或处理模型。运动模型(例如,作为数学、算法或其它模型)描述了在给定特定标准的情况下对象如何移动、机动、或表现等。例如,在给定“右转弯”的意图的情况下,被分类为“汽车”的对象的运动模型可以指示汽车在转弯之前减慢,并且被分类为“卡车”的对象的运动模型可以指示卡车减慢并进行大范围的右转弯。作为另一示例,在给定“直行”的意图的情况下,被分类为“汽车”的对象的运动模型可以指示汽车保持其当前速度(如连续状态信息Xc中所指示)。运动模型可以通过对象分类获得。对象分类可以包括驾驶风格。例如,分类可以是“激进型驾驶汽车”和“悠闲型驾驶汽车”。在示例中,驾驶风格可以与分类分开。也就是说,驾驶风格可被维持为与分类分开的状态变量。正因如此,运动模型可以基于多个状态变量。
对于离散状态值的各组合,可以生成一个粒子,以使用与离散状态值的组合相关联的运动模型来估计连续状态。也就是说,运动模型定义(并且可用于确定)对于给定假设,对象的当前状态如何改变为未来状态。对于离散的未来时间点(例如,在接下来的6秒内每0.5秒),使用运动模型预测未来状态。
操作2004对应于回答如下问题:粒子去往哪里?更具体地,操作2004回答如下问题:基于假设的意图以及与假设相关联的当前已知和/或预测状态,假设的现实世界对象被预测为在哪里?如上文所述,操作2004通过预测粒子的轨迹来回答该问题。对于至少一些所维持的假设中的各假设,操作2004预测轨迹。
粒子(即,表示假设)也可以在操作2006处用于确定传感器观察和假设之间的关联的可能性。
粒子也可以在操作2008处用于更新假设的可能性。也就是说,新的传感器观察用于更新粒子(即,假设)的可能性。在操作2010处,处理2000估计(例如,计算)接收到的传感器观察时的粒子的状态(例如,位置)。
数据存储部2014中所维持的传感器观察和现实世界对象之间的关联不是先验已知的。如上文针对图23~24所述,传感器观察和现实世界对象之间的关联是推导出的。
图20还包括根据本发明的使用世界模型的处理2050的流程图。如图4的系统400所示,决策模块406和轨迹规划器408使用来自世界模型模块402的数据和/或决策作为输入。正因如此,可以响应于例如来自决策模块406、轨迹规划器408、系统400的其它模块或运载工具100的使用现实世界模型的其它模块的查询而执行处理2050。
响应于查询,在操作2052处,处理2050从数据存储部2014提取(例如,获取、检索、读取或以其它方式提取)现实世界对象。在操作2054处,处理2000预测(或更新)直到某个未来时间范围(例如,6秒)的提取对象的轨迹。在操作2056处,处理2050向请求模块提供现实世界对象和预测轨迹。
图25是根据本发明的用于自主运载工具对世界对象跟踪和预测的处理2500的流程图。世界对象如上文针对现实世界对象所述。处理2500的一些或所有方面可以在运载工具(包括图1所示的运载工具100和图2所示的运载工具202)中实现,或者在计算设备(包括图2所示的控制器设备232)中实现。在实现中,处理2500的一些或所有方面可以在结合本发明中所描述的一些或所有特征的系统中实现。例如,处理2500可以由图4的世界模型模块402利用。
在操作2502处,处理2500从AV的传感器接收第一观察数据(即,第一传感器观察)。第一观察数据可以如针对图20的操作2006所述地接收。在操作2504处,处理2500将第一观察数据与第一世界对象相关联。第一观察数据可以与如针对图20的操作2006所述的第一世界对象相关联。在操作2506处,处理2500确定第一世界对象的假设。假设与第一世界对象的意图相对应。在示例中,假设可以附加地或替代地与第一世界对象的分类相对应。意图可以与第一世界对象的可能路径相对应。假设可以例如如针对图20的操作2002所述地确定。
在操作2508处,处理2500确定各假设的相应假设可能性。假设可能性指示第一世界对象遵循意图(例如,按照意图前进)的可能性。假设可能性可以例如如针对图20的操作2008所述地确定。在操作2510处,处理2500针对假设中的至少一个假设确定相应状态。状态包括第一世界对象的预测位置。状态可以例如如针对图20的操作2010所述地确定。
在示例中,状态可以包括与估计当前位置、速度和几何形状以及相关不确定性(例如,可能性)相比更多、更少和不同的信息。在该上下文中,术语“当前”意味着“最后更新”。例如,如果第一对象在时间t=T0处最后更新(例如,当接收到传感器观察时),则第一对象的最新状态(例如,位置)是在时间t=T0处确定的状态,并且第一对象的预测状态在时间t=T0+dt处开始;如果第二对象在时间t=T1处最后更新,则第二对象的最新状态是在时间t=T1处确定的状态,并且第二对象的预测状态在时间t=T1+dt处开始。基于传感器观察和预测状态序列来确定(例如,更新、预测或以其它方式确定)状态。预测状态可以包括预测位置、预测速度、预测几何形状及其相关联的预测不确定性(例如,可能性)。
在操作2512处,处理2500响应于查询基于各假设的相应假设可能性来提供假设中的一个假设。处理2500可以如针对图20的处理2050所述提供假设。
在示例中,可以使用诸如HD地图数据、感知地图数据或其它类型的地图数据等的地图信息来确定假设中的一个假设。
在示例中,处理2500可以包括从AV的传感器接收第二观察数据,将第二观察数据与第一世界对象相关联,并基于第二观察数据来更新状态。在示例中,可以使用扩展卡尔曼滤波来进行状态更新。
在示例中,处理2500可以包括基于第一世界对象的运动模型来预测至少一些假设的相应轨迹。在示例中,预测假设的相应轨迹可以进一步基于与假设的分类、意图和参考驾驶线相比更多、更少或不同的因素。如上文针对图20的操作2004所述,可以预测相应轨迹。在示例中,预测相应轨迹可以包括确定第一世界对象的参考驾驶线,以及基于运动模型预测相应轨迹,使得第一世界对象的当前预测路径与参考驾驶线重合,如例如针对图22所述。
在示例中,处理2500可以包括从AV的传感器接收第二观察数据,并将第二观察数据与第一世界对象和第二世界对象其中之一相关联。将第二观察数据与第一世界对象和第二世界对象其中之一相关联可以如针对图23所述。正因如此,将第二观察数据与第一世界对象和第二世界对象其中之一相关联可以包括使用与第二观察数据有关的门控区域来确定门控区域内的世界对象;并且在第一世界对象在门控区域内的情况下,确定第二观察数据与第一世界对象相对应的关联可能性。
在示例中,处理2500还包括:基于关联可能性来更新各假设的相应假设可能性(例如,如针对式(2)所述),以及更新第一世界对象的状态(例如,如针对EKF所述)。
在示例中,处理2500还包括从AV的传感器接收第二观察数据;在第二观察数据满足标准的条件下,将第二观察数据与第二世界对象相关联;以及在第二观察数据不满足标准的条件下,忽略第二观察数据。
图26是根据本发明的预测轨迹的示例2600。示例2600示出图20的操作2004的示例。示例2600包括现实世界对象2602。现实世界对象2602可以是图22的运载工具2202。现实世界对象2602示出运载工具2202在时间t=T0(例如,要确定轨迹的时间)处的位置。
示例2600还包括沿着参考驾驶线(诸如图22的参考驾驶线2208)的参考位置(诸如参考位置2604)。示例2600还包括沿着预测轨迹(诸如图22的轨迹2212)的位置(诸如预测位置2606)。预测轨迹由未来时间点(例如,时间戳)处的预测对象状态和协方差的序列组成。预测状态包括未来时间点处的相应预测位置。示例2600示出以下时间处的四个预测状态(包括位置):时间t=T0+Δt处的预测状态、时间t=T0+2Δt处的预测状态、时间t=T0+3Δt处的预测状态和时间t=T0+4Δt处的预测状态(即,预测位置2606)。Δt表示时间步长(例如,半秒、一秒等)。沿着预测轨迹的预测位置被示出为具有不同的大小和形状。大小和形状示出预测状态的位置(例如,(x,y)坐标)协方差。如上所述,预测状态可以包括示例2600中未示出的速度和几何形状。
图27是根据本发明的用于预测轨迹的处理2700的流程图。处理2700可以通过图20的操作2004实现。使用起始状态(即,时间t=T0处的现实世界对象2602的状态)和参考驾驶线(即,沿参考驾驶线的参考位置,诸如参考位置2604),处理2700确定(例如,测算、计算或以其它方式确定)收敛于参考驾驶线的预测轨迹(诸如图22的轨迹2212)。
处理2700接收(例如,使用)参考驾驶线作为输入。参考驾驶线由对象(即,现实世界对象)的参考状态组成,这些参考状态指示对象在指定时间戳(即,未来时间点)处的期望状态。处理2700可以使用时间长度(例如,接收时间长度作为输入、使用默认时间长度或以其它方式使用时间长度)来进行预测。如上所述,预测轨迹由特定时间戳(即,未来时间点)处的预测状态组成。处理2700迭代,直到计算出(各自在相应的时间戳处的)所有预测状态为止。在处理2700的第一次迭代时,起始状态被设置为时间t=T0处的状态。
在操作2702处,在给定起始状态的情况下,处理2700从参考驾驶线中查找(例如,计算、测算或以其它方式查找)参考状态。
在操作2704处,处理2700使用起始状态和参考状态来确定(例如,计算、测算等)预测状态。操作2704可以使用式(4)来确定预测状态。
在式(4)中,
是时间t处的起始状态,
是时间t处的参考状态,Δt是预测步长大小,x′
t+Δt是时间t+Δt处的预测状态,
是时间t处的起始状态的协方差,J
f是正在预测轨迹的对象的运动模型的Jacobian,Q
t是运动模型噪声协方差,以及P′
t+Δt是时间t+Δt处的预测状态的协方差。
在操作2706处,处理2700判断是否满足预测长度。也就是说,处理2700判断是否已计算出针对所有期望未来时间点的相应预测状态。如果已计算出针对所有期望未来时间点的相应预测状态,则处理2700在2708处终止;否则进入操作2710。在操作2710处,处理2700将起始状态设置为操作2704处的预测状态。然后,处理2700进入操作2702以预测下一状态。
为了简化解释,处理800、1300、1800、2000、2050、2500和2700分别被描绘和描述为一系列操作。然而,根据本发明的操作可以以各种顺序和/或同时地发生。另外,可以使用这里未介绍和描述的其它步骤或操作。此外,可能并非需要所有图示操作来实现根据所公开的主题的技术。
如这里所使用的,术语“驾驶员”或“操作员”可以互换使用。如这里所使用的,术语“制动”或“减速”可以互换使用。如这里所使用的,术语“计算机”或“计算装置”包括能够进行这里所公开的任何方法或其任何部分的任何单元或单元组合。
如这里所使用的,术语“指令”可以包括用于进行这里所公开的任何方法或其任何部分的指导或表示,并且可以在硬件、软件或其任何组合中实现。例如,指令可被实现为存储器中所存储的诸如计算机程序等的信息,该信息可以由处理器执行以进行如这里所述的相应方法、算法、方面或其组合中的任一个。在一些实现中,指令或其一部分可被实现为专用处理器或电路,该专用处理器或电路可以包括用于执行如这里所述的方法、算法、方面或其组合中的任一个的专用硬件。在一些实现中,指令的一部分可以跨单个装置或者可直接地或跨诸如局域网、广域网、因特网或其组合等的网络进行通信的多个装置上的多个处理器分布。
如这里所使用的,术语“示例”、“实施例”、“实现”、“方面”、“特征”或“元素”表示用作示例、实例或例示。除非明确指示,否则任何示例、实施例、实现、方面、特征或元素是彼此独立的示例、实施例、实现、方面、特征或元素,并且可以与任何其它示例、实施例、实现、方面、特征或元素结合使用。
如这里所使用的,术语“确定”和“识别”或其任何变形包括无论如何以任何方式使用这里所示和所述的一个或多个装置选择、查明、计算、查找、接收、确定、建立、获得或者以其它方式识别或确定。
如这里所使用的,术语“或”意指包容性“或”而不是排他性“或”。也就是说,除非另有规定或者上下文另有明确指示,否则“X包括A或B”意在指示其自然包容性排列中的任一个。如果X包括A;X包括B;或者X包括A和B这两者,则在上述任何情况下,都满足“X包括A或B”。另外,除非另有规定或者根据上下文清楚知道针对单数形式,否则本申请和所附权利要求中所使用的冠词“a”和“an”一般应被理解为“一个或多个”。
此外,为了简化解释,尽管这里的图和描述可以包括操作或阶段的序列或一系列操作或阶段,但是这里所公开的方法的元素可以以不同的顺序或同时地出现。另外,这里公开的方法的元素可以与这里没有明确呈现和描述的其它元素一起发生。此外,可能并非需要这里描述的方法的所有元素来实现根据本发明的方法。尽管这里以特定组合描述了方面、特征和元素,但是各方面、特征或元素可以单独使用,或者可以以具有或不具有其它方面、特征和/或元素的各种组合使用。
虽然已经结合某些实施例描述了本发明,但是应当理解,本发明不限于所公开的实施例,而是意在涵盖所附权利要求的范围内所包括的各种修改和等同布置,该范围应被给予法律所允许的最广泛解释,以包含所有这类修改和等同布置。