规划自动驾驶车辆的停止位置的制作方法

文档序号:17929465发布日期:2019-06-15 00:42阅读:174来源:国知局
规划自动驾驶车辆的停止位置的制作方法
本申请是2016年10月14日提交的美国专利申请第15/293,503号的继续申请,其公开内容通过引用结合于此。
背景技术
:自动驾驶车辆(autonomousvehicle),例如不需要人类驾驶员的车辆,可用于帮助将乘客或物品从一个位置运输到另一个位置。这种车辆可以在全自动模式下操作,其中乘客可以提供一些初始输入,例如上车(pickup)位置或目的地位置,并且车辆自己操纵(maneuver)到该位置。这种车辆通常配备有各种类型的传感器,以便检测周围环境中的物体。例如,自动驾驶车辆可包括激光器、声纳、雷达、相机、以及从车辆的周围环境扫描和记录数据的其他设备。来自这些设备中的一个或多个的传感器数据可以用于检测物体及其各自的特性(位置、形状、航向、速度等)。这些特性可用于预测物体在未来的一定短暂的时间段内可能做的事情,这可以用于控制车辆以规避这些物体。因此,检测、识别和预测是自动驾驶车辆的安全操作的关键功能。技术实现要素:本公开的各方面提供了一种在自动驾驶模式下操纵车辆的方法。该方法包括由一个或多个处理器在自动驾驶模式下沿着使用预先存储的地图信息的路线操纵车辆,该预先存储的地图信息识别多个禁停(keepclear)区域,在所述多个禁停区域中车辆在自动驾驶模式下不应停止但能够行驶通过。多个禁停区域中的每个禁停区域与优先级值相关联。该方法还包括由一个或多个处理器基于路线识别多个禁停区域的子集;由一个或多个处理器基于与多个禁停区域的子集中的禁停区域相关联的优先级值来生成用于停止车辆的速度规划(speedplan),其中速度规划识别用于停止车辆的位置;以及由一个或多个处理器使用速度规划来停止车辆。在一个示例中,确定速度规划包括:调整多个禁停区域的子集中的给定禁停区域的默认最小间隙值,给定禁停区域具有多个禁停区域的子集中的所有禁停区域中的最低优先级值,并且默认最小间隙值定义了与给定禁停区域的可接受的重叠量。在另一示例中,确定速度规划包括:调整多个禁停区域的子集中的给定禁停区域,并且给定禁停区域具有多个禁停区域的子集中的所有禁停区域中的最低优先级值。在另一示例中,速度规划避免在多个禁停区域的子集中的特定禁停区域内停止,特定禁停区域与多个禁停区域的子集中的所有禁停区域中的最高优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于活动人行横道,而多个禁停区域的子集中的至少一个对应于非活动人行横道,并且与非活动人行横道相比,活动人行横道与更高的优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于活动人行横道,而多个禁停区域的子集中的至少一个对应于交叉路口,并且与交叉路口相比,活动人行横道与更高的优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于非活动人行横道,而多个禁停区域的子集中的至少一个对应于交叉路口,并且与非活动人行横道相比,交叉路口与更高的优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于跨越交通车道的区域。在另一示例中,多个禁停区域的子集中的至少一个对应于标出的“禁停”或“不要堵塞”区域。在另一示例中,多个禁停区域中的至少一个对应于铁路道口。本公开的另一方面提供了一种用于在自动驾驶模式下操纵车辆的系统。该系统包括一个或多个处理器,其被配置为:在自动驾驶模式下沿着使用预先存储的地图信息的路线操纵车辆,该预先存储的地图信息识别多个禁停区域,在所述多个禁停区域中车辆在自动驾驶模式下不应停止但能够行驶通过。多个禁停区域中的每个禁停区域与优先级值相关联。一个或多个处理器还被配置为基于路线识别多个禁停区域的子集,基于与多个禁停区域的子集中的禁停区域相关联的优先级值生成用于停止车辆的速度规划,其中速度规划识别用于停止车辆的位置,并且使用速度规划来停止车辆。在一个示例中,确定速度规划包括:调整多个禁停区域的子集中的给定禁停区域的默认最小间隙值,给定禁停区域具有多个禁停区域的子集中的所有禁停区域中的最低优先级值,并且默认最小间隙值定义了与给定禁停区域的可接受的重叠量。在另一示例中,确定速度规划包括:调整多个禁停区域的子集中的给定禁停区域,其中给定禁停区域具有多个禁停区域的子集中的所有禁停区域中的最低优先级值。在另一示例中,速度规划避免在多个禁停区域的子集中的特定禁停区域内停止,特定禁停区域与多个禁停区域的子集中的所有禁停区域中的最高优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于活动人行横道,多个禁停区域的子集中的至少一个对应于非活动人行横道,并且与非活动人行横道相比,活动人行横道与更高的优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于活动人行横道,多个禁停区域的子集中的至少一个对应于交叉路口,并且与交叉路口相比,活动人行横道与更高的优先级值相关联。在另一示例中,多个禁停区域的子集中的至少一个对应于非活动人行横道,多个禁停区域的子集中的至少一个对应于交叉路口,并且与非活动人行横道相比,交叉路口与更高的优先级值相关联。在另一示例中,系统还包括车辆。本公开的另一方面提供了一种其上存储有指令的非暂时性计算机可读介质。所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行在自动驾驶模式下操纵车辆的方法。该方法包括:在自动驾驶模式下沿着使用预先存储的地图信息的路线操纵车辆,该预先存储的地图信息识别多个禁停区域,在所述多个禁停区域中车辆在自动驾驶模式下不应停止但能够行驶通过。多个禁停区域中的每个禁停区域与优先级值相关联。该方法还包括:基于路线识别多个禁停区域的子集,基于与多个禁停区域的子集中的禁停区域相关联的优先级值生成用于停止车辆的速度规划,其中速度规划识别用于停止车辆的位置,以及使用速度规划来停止车辆。在一个示例中,确定速度规划包括调整多个禁停区域的子集中的给定禁停区域,并且给定禁停区域具有多个禁停区域的子集中的所有禁停区域中的最低优先级值。附图说明图1是根据示例性实施例的示例车辆的功能图。图2是根据示例性实施例的地图信息的图。图3a-图3d是根据本公开的方面的车辆的示例外部视图。图4是根据本公开的方面的系统的示意图。图5是根据本公开的方面的图4的系统的功能图。图6是根据本公开的方面的道路区段(sectionofroadway)的视图。图7是根据本公开的方面的具有禁停区域多边形的道路区段的视图。图8a和图8b是根据本公开的方面的具有禁停区域多边形的道路区段的视图。图9是根据本公开的方面的流程图。具体实施方式概述技术的各方面涉及控制自动驾驶车辆以及确定在需要时最佳地停止这些车辆的位置。例如,存在车辆不应停止的某些“禁停”区域,例如铁路道口、人行横道、交叉路口、跨越交通车道,以及专门指定为禁止停止区域(nostoppingzone)的区域(用“不要堵塞(don’tblockthebox)”或“禁停(keepclear)”标志或指示符指定的区域)。虽然车辆可以安全地行驶通过这些区域,但在这些区域停止延长的时间段不仅可能是非法的,而且可能使其他道路使用者(例如,其他车辆的乘客或司机、行人或骑行者)的安全和舒适性受到危害。为了规避这些位置,车辆的计算设备可以访问预先存储的地图信息。因此,预先存储的地图信息可以包括车辆的预期环境(车道线、交通信号、停止标志等)的高度详细的地图以及识别禁停区域的形状和位置的信息。替选地,通过检测标志或指示符(例如道路上的标记)并确定这些标志和指示符对应于附加的禁停区域,可以实时地检测一些区域。除了预先存储的地图信息之外,计算设备还可以依赖于由车辆的感知系统检测到的信息。例如,车辆的传感器可以检测和识别在车辆的环境中的各种物体以及诸如位置、速度、朝向、状态(即交通信号的颜色)等信息。当沿着到目的地的路线操纵车辆时,计算设备可以组合地图信息和来自感知系统的信息以连续地制定速度规划(speedplan)。例如,可以基于多个约束(例如,保持与其他车辆的间隔距离、确保在时间和空间上与其他物体的投射位置(projectedlocation)没有重叠等)来生成速度规划。作为速度规划的一部分,计算设备可以确定在车辆到达某个特定的空间区域或时间点之前在未来的一定短时间段内或者沿着路线的一定距离内车辆能够停止的理想位置,而不在地图中识别的任何禁停区域中停止。速度规划还可以包括用于控制车辆的减速的信息(即,车辆必须如何突然地停止)以便到达该理想位置。如果计算设备确定车辆需要(或很可能需要)停止,则计算设备可以确定并使用速度规划来控制车辆,以便将车辆停止在速度规划的理想位置。由于其他车辆、道路中的物体或碎片、交通信号灯、行人等,停止可能是必须的。在一些情况下,存在车辆沿着路线可能在短时间段或短距离内到达的许多不同的相关禁停区域。在此示例中,禁停区域可以基于类型被赋予优先级(prioritize)。该信息也可以关于每个区域存储在详细地图信息中。为了生成存在多个禁停区域的速度规划,计算设备可以识别与车辆的路径和当前位置相关的禁停区域的子集。对于每个相关的禁停区域,计算设备可以生成相应的约束,例如,车辆不能在该禁停区域中停止。计算设备可以尝试生成解决所有禁停约束的速度规划。如果这不可能,则计算设备可以放宽最低优先级的约束并再次尝试。这可以根据需要重复多次,直到生成可行的速度规划。在某些情况下,即使在放宽约束的情况下,可行的速度规划也是不可能的。在这种情况下,如果堵塞更高优先级区域是不可避免的,则计算设备可以采取某种类型的妥协(reconciliation)动作,例如改变车道、反向移动(movinginreverse)、挪动(moveover)、寻求帮助等。本文描述的特征通过避免在车辆允许行驶通过的区域中停止来促进自动驾驶模式下的车辆的安全操作。此外,通过为禁停区域赋予优先级,计算设备可以避免需要进行更加紧张刺激(dramatic)的操纵(刹车或在最后一刻改变车道),这些操纵本是不必要的。这可以减少乘客的不适以及其他车辆中的人的不适,这是由于车辆停止在不应当停的地方的感觉而引起的,无论在给定情况下是否存在任何实际风险。此外,通过考虑最大允许制动曲线(brakingprofile)以便在每种类型的禁停区域之外停止,车辆可以通过放宽某些约束来最小化与尾随车辆的追尾碰撞的风险。另外,通过使用考虑到有价值的停止位置的速度规划,在车辆发生故障的情况下,车辆不太可能位于不适当或危险的位置。示例系统如图1所示,根据本公开的一个方面的车辆100包括各种部件。虽然本公开的某些方面对于特定类型的车辆特别有用,但是车辆可以是任何类型的车辆,包括但不限于,汽车、卡车、摩托车、公共汽车、游艺车等。车辆可以具有一个或多个计算设备,例如,包含一个或多个处理器120、存储器130和通常出现在通用计算设备中的其他部件的计算设备110。存储器130存储由一个或多个处理器120可访问的信息,包括可由处理器120执行或由处理器120使用的指令132和数据134。存储器130可以是能够存储可由处理器访问的任何类型,包括计算设备可读介质,或存储可借助于电子设备读取的数据的其他介质,例如硬盘驱动器、存储卡、rom、ram、dvd或其他光盘,以及其他可写和只读存储器。系统和方法可以包括前述的不同组合,由此指令和数据的不同部分被存储在不同类型的介质上。指令132可以是由处理器直接(例如机器代码)或间接(例如脚本)执行的任何指令集。例如,指令可以作为计算设备代码存储在计算设备可读介质上。在这方面,术语“指令”和“程序”在本文中可以互换使用。指令可以以目标代码格式存储,以便由处理器直接处理,或者以任何其他计算设备语言存储,包括按需解释或预先编译的独立源代码模块的脚本或集合。下面更详细地解释指令的功能、方法和例程。处理器120可以根据指令132来检索、存储或修改数据134。例如,尽管所要求保护的主题不受任何特定数据结构的限制,但是数据可以存储在计算设备寄存器中,作为具有多个不同字段和记录的表格、xml文档或平面文件(flatfile)存储在关系数据库中。数据还可以以任何计算设备可读的格式格式化。一个或多个处理器120可以是任何传统处理器,例如商用cpu。替选地,一个或多个处理器可以是专用设备,例如asic或其他基于硬件的处理器。尽管图1在功能上将处理器、存储器和计算设备110的其他元件示出为在同一块内,但是本领域普通技术人员将理解,处理器、计算设备或存储器实际上可以包括可存放在同一物理外壳内或不可存放在同一物理外壳内的多个处理器、计算设备或存储器。例如,存储器可以是位于与计算设备110的外壳不同的外壳中的硬盘驱动器或其他存储介质。因此,对处理器或计算设备的引用将被理解为包括对可以并行运行或不可以并行运行的处理器或计算设备或存储器的集合的引用。计算设备110可以诸如上述处理器和存储器的通常与计算设备结合使用的所有部件、以及用户输入150(例如,鼠标、键盘、触摸屏和/或麦克风)和各种电子显示器(例如,具有屏幕的监视器或可操作以显示信息的任何其他电气设备)。在该示例中,车辆包括内部电子显示器152以及一个或多个扬声器154,以提供信息或视听体验。在这方面,内部电子显示器152可以位于车辆100的座舱内,并且可以由计算设备110使用以向车辆100内的乘客提供信息。计算设备110还可以包括一个或多个无线网络连接156,以便于与其他计算设备(例如下面详细描述的客户端计算设备和服务器计算设备)通信。无线网络连接可以包括短程通信协议(例如蓝牙、低功耗蓝牙(le)、蜂窝连接)、以及各种配置和协议(包括因特网、万维网、内联网、虚拟专用网、广域网、本地网络、使用一个或多个公司专有的通信协议的专用网络、以太网、wifi和http,以及前述的各种组合)。在一个示例中,计算设备110可以是并入车辆100中的自动驾驶计算系统。自动驾驶计算系统可能够与车辆的各种部件通信。例如,返回图1,计算设备110可以与车辆100的各种系统(例如,减速系统160、加速系统162、转向系统164、信号系统166、导航系统168、定位系统170、感知系统172和动力系统174)通信,以便根据存储器130的指令132控制车辆100的运动、速度等。再者,尽管这些系统被示为在计算设备110的外部,但实际上,这些系统也可以并入计算设备110中,又作为用于控制车辆100的自动驾驶计算系统。作为示例,计算设备110可以与减速系统160、加速系统162和/或动力系统174(诸如燃气引擎或电力引擎)交互,以便控制车辆的速度。类似地,转向系统164可以由计算设备110使用,以便控制车辆100的方向。例如,如果车辆100被配置用于在道路上使用,诸如汽车或卡车,则转向系统可以包括控制车轮角度以使车辆转向的部件。信号系统166可以由计算设备110使用,以便例如通过在需要时点亮转向信号或刹车灯,来将车辆的意图用信号通知给其他驾驶员或车辆。导航系统168可以由计算设备110使用,以便确定并跟随到位置的路线。在这方面,导航系统168和/或数据134可以存储详细的地图信息,例如,识别道路的形状和高度(elevation)、车道线、交叉路口、人行横道、限速、交通信号、建筑物、标志、实时交通信息、植被、或其他此类物体和信息的高度详细的地图。换句话说,这个详细的地图信息可以定义车辆的预期环境的几何形状,包括道路以及这些道路的速度限制(法定限速)。图2是用于包括交叉路口202和由多边形204识别的禁停区域的道路区段(section)的地图信息200的示例。在该示例中,地图信息200包括识别道路特征(如车道线210、212、214、216,人行横道220、222、224,人行道240和停止标志250、252)的形状、位置和其他特性的信息。虽然未示出,但是地图信息还可以识别限定了道路内可以驾驶车辆的位置的道路路段(segment)或轨道(rail)。作为示例,轨道可以位于两条车道线之间或接近交通车道的中间,并且遵循(follow)交通车道的形状和朝向(交通方向)。然后,这些轨道可以由计算设备链接在一起,以便形成到目的地的路径。除了道路特征之外,地图信息可以识别禁停区域和相关的类型。这些特征可以限定车辆100能够驾驶通过、但是车辆不应停止的区域。每个禁停区域可以在地图信息中被限定为具有相关类型的三个边或更多个边的多边形。例如,交叉路口202可以与由多边形260识别的禁停区域相关联,多边形260对应于交叉路口202的形状。在这方面,多边形260可以与禁停区域类型“交叉路口”相关联。人行横道220、222和224中的每一个可以分别与由对应于每个人行横道的矩形形状的多边形270、272和274识别的禁停区域相关联,因此也与“人行横道”的禁停区域类型相关联。如上所述,禁停区域由多边形204识别,多边形204可以与禁停区域类型“禁停区域”相关联。可以基于车辆正在跟随的路线来识别其他禁停区域,例如车辆越过交通车道以到达另一车道的地方(参见下面关于图8a和图8b的讨论)。替选地,可以通过检测标志或指示符(例如道路上的标记)并确定这些标志和指示符对应于附加的禁停区域,来实时地检测一些区域。在一些情况下,禁停区域可以与关于其配置的甚至更详细的信息相关联。例如,多边形204可以表示地图信息200中的“禁停”区域。然而,参考图6,描绘了对应于地图信息200的道路区段的鸟瞰图,文字的朝向以及所绘制的停止线表示这样的意图,即,如果前方的其他车辆停止,则在a点朝b点移动的车辆不应堵塞禁停区域,但是从c点向d点移动并进入禁停区域的第二车辆则不需要遵守这一限制,因为诸如第二车辆的车辆是“禁停”区域存在的根本原因。在这方面,多边形204可以与以下信息相关联,该信息识别需要遵守禁停区域204的交通方向以及不需要遵守禁停区域204的交通方向。在一些情况下,可以基于类型为禁停区域赋予优先级。换句话说,地图信息的每个禁停区域可以与类型相关联。当然,一些类型(例如活动人行横道和非活动人行横道)可以基于来自地图信息的信息(将禁停区域多边形识别为人行横道)和来自感知系统的信息(识别人行横道上或人行横道附近是否有行人)来实时确定,以便区分活动多边形和非活动多边形(例如活动人行横道和非活动人行横道)。在这方面,活动人行横道可以包括以下人行横道:其包括在地图信息中,并且其中来自感知系统172的信息向计算设备110指示存在行人、在人行横道的短距离内的行人、或者展示出会表明行人将进入人行横道的某种行为(从给定距离接近人行横道)的行人。类似地,非活动人行横道可以包括以下人行横道:其包括在地图信息中,并且其中来自感知系统172的信息向计算设备110指示在人行横道上或者在人行横道的短距离内没有行人。数据134还可以存储表格或其他组织方案,其将类型与优先级值相关联,该优先级值识别该类型的禁停区域相对于其他类型的禁停区域的重要性或优先级。表1是不同类型的禁停区域的优先级值的示例,这里以0.1-0.7的范围示出。当然,也可以使用不同的值和/或范围(scale)。表1禁停区域类型优先级值铁路道口0.7活动人行横道0.6交叉路口0.5跨越交通车道0.4标出的“禁停”区域0.3标出的“不要堵塞”区域0.2非活动人行横道0.1例如,铁路道口可以具有比活动人行横道更高的优先级值。活动人行横道可以具有比跨越交通车道更高的优先级值,其中该跨越交通车道在车辆当前行驶的交通车道上具有通行权,交叉路口可以具有比跨越交通车道更高的优先级值,跨越交通车道可以具有比标出的“禁停”或“不要堵塞”区域更高的优先级值,标出的“禁停”或“不要堵塞”区域可以具有比非活动人行横道更高的优先级值,并且非活动人行横道可以具有所有当中最低的优先级值。尽管这里将地图信息描绘为基于图像的地图,但是地图信息不需要完全基于图像(例如,栅格)。例如,地图信息可以包括例如道路、交通车道、交叉路口、以及这些特征之间的连接的信息的一个或多个道路图(roadgraph)或者图形网络。每个特征可以存储为图形数据,并且可以与诸如地理位置以及其是否链接到其他相关特征(例如,停止标志可以链接到道路和交叉路口等)的信息相关联。在一些示例中,相关联的数据可以包括道路图的基于网格的索引,以允许有效地查找某些道路图特征。定位系统170可以由计算设备110使用,以便确定车辆在地图上或地球上的相对或绝对位置。例如,定位系统170可以包括gps接收器以确定设备的纬度、经度和/或高度位置。诸如基于激光的定位系统、惯性辅助gps或基于相机的定位的其他定位系统也可用于识别车辆的位置。车辆的位置可以包括例如纬度、经度和高度的绝对地理位置,以及相对位置信息,例如相对于紧邻其周围的其他汽车的位置,其通常可以以比绝对地理位置更小的噪声来确定。定位系统170还可以包括与计算设备110通信的其他设备,例如加速计、陀螺仪或其他方向/速度检测设备,以确定车辆的方向和速度或者它们的改变。仅作为示例,加速设备可以确定其相对于重力方向或与其垂直的平面的俯仰、偏转或滚动(或其改变)。该设备还可以跟踪速度的增加或减少以及这种变化的方向。如本文所述的设备提供的位置和朝向数据可以被自动提供给计算设备110、其他计算设备以及前述的组合。感知系统172还包括用于检测车辆外部的物体的一个或多个部件,车辆外部的物体例如为其他车辆、道路中的障碍物、交通信号、标志、树木等。例如,感知系统172可包括激光器、声纳、雷达、相机和/或记录可由计算设备110处理的数据的任何其他检测设备。在车辆是诸如汽车的小型乘用车的情况下,汽车可以包括安装在车顶或其他方便的位置的激光器或其他传感器。例如,车辆的感知系统可以使用各种传感器,例如lidar(激光雷达)、声纳、雷达、相机等,以检测物体及其特性,例如位置、朝向、尺寸、形状、类型、移动的方向和速度等。来自传感器的原始数据和/或前述特性可以被量化或布置成描述性函数或矢量以供计算设备110处理。如下面进一步详细讨论的,计算设备110可以使用定位系统170以确定车辆的位置,以及使用感知系统172来在需要时检测物体并对物体做出响应以安全到达该位置。图3a至图3d是车辆100的外部视图的示例。可以看出,车辆100包括典型车辆的许多特征,例如前灯302、挡风玻璃303、尾灯/转向信号灯304、后挡风玻璃305、车门306、侧视镜308、轮胎和车轮310、以及转向信号灯/停车灯312。前灯302、尾灯/转向信号灯304和转向信号灯/停车灯312可以与信号系统166相关联。灯条307也可以与信号系统166相关联。车辆100还包括感知系统172的传感器。例如,外壳314可包括用于具有360度或更窄视场的一个或多个激光设备以及一个或多个相机设备。外壳316和318可包括例如一个或多个雷达和/或声纳设备。感知系统172的设备也可以结合到典型的车辆部件中,例如尾灯/转向信号灯304和/或侧视镜308。这些雷达、相机和激光设备中的每一个可以与处理部件相关联,这些处理部件作为感知系统172的一部分处理来自这些设备的数据,并将传感器数据提供给计算设备110。数据134可以存储各种行为时间模型(behavior-timemodel),用于预测对象在预定时间段内(例如接下来的10秒或更长或更短)的未来行为。在一个示例中,行为时间模型可以被配置为使用从感知系统172接收的对象的数据,特别是另一个道路使用者,包括道路使用者的特性以及下面进一步详细讨论的附加上下文信息。作为示例,给定来自感知系统172的数据中包括的位置、航向(heading)、速度和其他特性,行为时间模型可以提供一组关于对象在预定时间段内可以如何表现的一个或多个预测以及每个预测的相应似然值(likelihoodvalue)。预测可以包括轨迹,例如,定义一组预期对象在未来的对应于预定时间段的不同时间的未来位置。似然值可以指示哪些预测更可能发生(相对于彼此)。在这方面,具有最大似然值的预测最可能发生,而具有较低似然值的预测则较少可能发生。因此,行为时间模型可以被配置为针对特定道路使用者将在特定地平线或预定时间段(例如10秒)内做什么生成一组可能的假设以及每个假设的相对可能性。这些模型可以使用关于在该位置处观察到的对象在过去如何表现、直觉等数据来训练,并且还可以针对特定类型的对象(例如车辆、行人、摩托车、骑脚踏车者等)专门指定这些模型。然后,计算设备110可以推断出(reason)与车辆轨迹相互作用并且具有值得考虑的足够可能性的假设。计算设备110可以通过控制各种部件来控制车辆的方向和速度。作为示例,计算设备110可以使用来自详细地图信息和导航系统168的数据,完全自动地将车辆导航到目的地位置。为了操纵车辆,计算设备110可以使车辆加速(例如,通过由加速系统162增加提供给动力系统174的引擎的燃料或其他能量)、减速(例如,通过由减速系统160减少供应到动力系统174的引擎的燃料、改变档位、和/或通过施加制动)、改变方向(例如,通过由转向系统164转动车辆100的前轮或后轮)、以及用信号通知这种变化(例如,通过点亮信号系统166的转向信号)。因此,加速系统162和减速系统160可以是动力传动系统(drivetrain)的一部分,其包括在车辆的引擎和车辆的车轮之间的各种部件。再者,通过控制这些系统,计算设备110还可以控制车辆的动力传动系统,以便自动地操纵车辆。车辆100的一个或多个计算设备110还可以从其他计算设备接收信息或向其他计算设备传送信息。图4和图5分别是示例系统400的示意图和功能图,示例系统400包括经由网络460连接的多个计算设备410、420、430、440和存储系统450。系统400还包括车辆100、以及可以与车辆100类似地配置的车辆100a。尽管为了简单起见,仅描绘了几辆车辆和计算设备,但是典型的系统可以包括明显更多车辆和计算设备。如图4所示,计算设备410、420、430、440中的每一个可以包括一个或多个处理器、存储器、数据和指令。这样的处理器、存储器、数据和指令可以与计算设备110的一个或多个处理器120、存储器130、数据134和指令132类似地配置。网络460和中间节点可以包括各种配置和协议,包括短程通信协议,例如蓝牙、蓝牙le、因特网、万维网、内联网、虚拟专用网络、广域网、本地网络、使用一个或多个公司专有的通信协议专用网、以太网、wifi和http,以及前述的各种组合。任何能够向其他计算设备发送数据和从其他计算设备数据的设备(例如调制解调器和无线接口)可以促进这种通信。在一个示例中,一个或多个计算设备410可以包括具有多个计算设备的服务器,例如,负载平衡服务器群,其与网络的不同节点交换信息,以用于从其他计算设备接收数据、处理数据、以及向其他计算设备发送数据。例如,一个或多个计算设备410可以包括一个或多个服务器计算设备,它们能够经由网络460与车辆100的一个或多个计算设备110或车辆100a的类似计算设备以及客户端计算设备420、430、440通信。例如,车辆100和100a可以是车辆车队的一部分,它们可以由服务器计算设备派遣(dispatch)到各个位置。在这方面,车队的车辆可以周期性地向服务器计算设备发送由车辆的相应定位系统提供的位置信息,并且一个或多个服务器计算设备可以跟踪车辆的位置。另外,服务器计算设备410可以使用网络460在显示器(如计算设备420、430、440的显示器424、434、444)上向用户(例如用户422、432、442)发送和呈现信息。在这方面,计算设备420、430、440可以被认为是客户端计算设备。如图5所示,每个客户端计算设备420、430、440可以是旨在由用户422、432、442使用的个人计算设备,并且具有通常与个人计算设备结合使用的所有部件,所述个人计算设备包括一个或多个处理器(例如,中央处理单元(cpu))、存储数据和指令的存储器(例如,ram和内部硬盘驱动器)、诸如显示器424、434、444的显示器(例如,具有屏幕的监视器、触摸屏、投影仪、电视机或可操作以显示信息的其他设备)、以及用户输入设备426、436、446(例如,鼠标、键盘、触摸屏或麦克风)。客户端计算设备还可以包括用于记录视频流的相机、扬声器、网络接口设备、以及用于将这些元件彼此连接的所有部件。虽然客户端计算设备420、430和440中的每一个可以包括全尺寸的个人计算设备,但是它们可以替代地包括能够通过诸如因特网的网络与服务器无线地交换数据的移动计算设备。仅作为示例,客户端计算设备420可以是移动电话或诸如支持无线的pda、平板pc、可穿戴计算设备或系统、膝上型计算机、或能够经由因特网或其他网络获得信息的上网本的设备。在另一示例中,客户端计算设备430可以是可穿戴计算设备,诸如图4中所示的“智能手表”。作为示例,用户可以使用键盘、小键盘、多功能输入按钮、麦克风、利用相机或其他传感器的视觉信号(例如,手或其他手势)、触摸屏等来输入信息。在一些示例中,客户端计算设备440可以是由管理员用来向诸如用户422和432的用户提供礼宾服务(conciergeservice)的礼宾工作站。例如,用户442可以是使用礼宾工作站440通过它们各自的客户端计算设备或车辆100或100a、经由与用户的电话呼叫或音频连接进行通信的礼宾员(concierge),以确保车辆100和100a的安全操作以及用户的安全,如下面进一步详细描述的。尽管在图4和图5中仅示出了单个礼宾工作站440,但是在典型系统中可以包括任何数量的这种工作站。存储系统450可以存储各种类型的信息。该信息可以由服务器计算设备(例如一个或多个服务器计算设备410)检索或访问,以便执行本文描述的一些或所有特征。例如,该信息可以包括诸如能够用于向一个或多个服务器计算设备识别用户的凭证(credential)的用户账户信息(例如,在传统的单因素认证的情况下的用户名和口令,以及典型地在多因素认证中使用的其他类型的凭证,诸如随机识别符、生物测定等)。用户账户信息还可以包括个人信息,诸如用户的姓名、联系信息、用户的客户端计算设备的识别信息(或者如果多个设备与同一个用户账户一起使用,则为多个客户端计算设备)、以及用户的一个或多个唯一信号。与存储器130一样,存储系统450可以是能够存储服务器计算设备410可访问的信息的任何类型的计算机化存储器,例如硬盘驱动器、存储卡、rom、ram、dvd、cd-rom、可写和只读存储器。另外,存储系统450可以包括分布式存储系统,其中数据存储在多个不同的存储设备上,这些存储设备可以物理地位于相同或不同的地理位置。存储系统450可以经由网络460连接到计算设备,如图4所示,和/或可以直接连接到或者并入任何计算设备110、410、420、430、440等。示例方法除了上面描述的以及在附图中示出的操作之外,现在将描述各种操作。应理解,不必以下面描述的精确顺序执行以下操作。反而,可以以不同的顺序或同时处理各个步骤,并且还可以添加或省略步骤。在一个方面,用户可以将用于请求车辆的应用下载到客户端计算设备。例如,用户422和432可以经由电子邮件中的链接、直接从网站或应用商店将应用下载到客户端计算设备420和430。例如,客户端计算设备可以通过网络例如向一个或多个服务器计算设备410发送对应用的请求,并且作为响应,接收应用。应用可以本地安装在客户端计算设备上。然后,用户可以使用他或她的客户端计算设备来访问应用并请求车辆。作为示例,诸如用户432的用户可以使用客户端计算设备430向一个或多个服务器计算设备410发送对车辆的请求。该请求可以包括识别上车(pickup)位置或区域和/或目的地位置或区域的信息。作为响应,一个或多个服务器计算设备410可以例如基于可用性和位置来识别并派遣车辆到上车位置。该派遣可以涉及向识别用户(和/或用户的客户端设备)的车辆发送信息以便将车辆分配给用户(和/或用户的客户端计算设备)、上车位置、以及目的地位置或区域。一旦车辆100接收到派遣车辆的信息,车辆的一个或多个计算设备110可以使用上述各种特征将车辆操纵到上车位置。一旦用户(现在是乘客)安全地处于车辆中,计算设备110可以启动必要的系统以沿着到目的地位置的路线自动地控制车辆。例如,导航系统168可以使用数据134的地图信息来确定到目的地位置的、跟随地图信息200的一组连接的轨道的路径或路线。然后,计算设备110可以如上所述沿着朝向目的地的路线,自动地(或在自动驾驶模式下)操纵车辆。如上所述,图6描绘了对应于图2的地图信息200的道路区段的道路区段的示例视图600。在这方面,交叉路口602对应于交叉路口202,车道线610、612、614和616对应于车道线210、212、214和216,人行横道620、622和624对应于人行横道220、222和224,人行道640对应于人行道240,并且停止标志650和652对应于停止标志250和252。在该示例中,车辆100跟随到目的地(未示出)的路线660。当车辆沿着到目的地的路线被操纵时,计算设备可以组合地图信息和来自车辆的感知系统的信息以连续地制定速度规划。如上所述,速度规划可以提供关于如何控制车辆的加速的信息,以便在未来的一定短暂的时间段内(例如,接下来的15秒或更长或更短)跟随该路线。在一些情况下,速度规划可以识别位置,例如用于停止车辆的物理位置和时间点。当然,当用于控制车辆时,车辆实际停止的精确位置可能略有不同,甚至可以为了乘坐的平稳性、舒适性等而被进一步优化。作为示例,可以基于多个约束(例如,保持与其他车辆的间隔距离,确保在时间和空间上没有与其他对象的投射位置重叠等)来生成速度规划。在一些情况下,作为该速度规划的一部分,计算设备可以确定车辆能够在未来的一定短时间段内或沿着路线的一定短距离内停止的理想位置。例如,参考图6,车辆的计算设备可以周期性地确定用于沿着路线660操纵车辆100的速度规划。为了这样做,来自感知系统172的信息(包括识别行人670和停止的车辆672的信息)可以被提供给计算设备110。在生成速度规划时,计算设备可以确定如何控制车辆而不停止在地图信息中识别的任何禁停区域中。例如,计算设备110可以首先识别与车辆的路径和当前位置相关的禁停区域的子集。这可以包括沿着路线在一定距离内的、与车辆的路线相交的禁停区域。换句话说,考虑距离车辆太远或与车辆的当前路径无关的禁停区域可能是低效的。图7是图6的示例600与地图信息200的禁停区域重叠的视图。在该示例中,禁停区域由多边形260、270、272、274和204识别。计算设备110可以使用该信息来识别与路线660相关的地图信息200的禁停区域的子集。例如,路线660与多边形260、270、272和204的禁停区域相交。此外,因为车辆100将通过由多边形204识别的禁停区域从点c操纵到点d,所以由多边形204识别的禁停区域与路线660无关。因此,对于在跟随路线660的示例600中的车辆100的位置,计算设备110可以识别禁停区域的子集,其包括由多边形260、270和272识别的禁停区域。对于子集中的每个相关禁停区域,计算设备可以生成相应的约束,例如,车辆不能停止在该禁停区域中。因此,计算设备110可以生成车辆不能停止在由多边形260、270和272识别的任何禁停区域中的约束。计算设备可以尝试生成解决所有禁停约束以及任何其他约束(诸如上面讨论的那些约束)的速度规划。例如,计算设备可以首先尝试找到遵循(obey)禁停区域的子集的所有约束的可行的(或者更确切地说,没有太多加速或减速的对于乘客而言既安全又舒适的)速度规划。返回到图7,换句话说,车辆的计算设备可以确定如何控制车辆100以规避停止的车辆672,同时还满足车辆不能停止在由多边形260、270和272识别的任何禁停区域中的约束。假设车辆100以在该车辆到达人行横道620之前该车辆能够停止的速度行驶,则速度规划可以包括将车辆停止在点e处。如果这不可能,则计算设备可以放宽最低优先级的约束并再次尝试。这样忽略子集的最低优先级值的禁停区域可以根据需要重复多次,直到生成可行的速度规划。如上所述,在地图信息中识别的每个禁停区域可以与优先级值相关联。这些优先级值可以识别关于地图信息的其他禁停区域的重要性或优先级。换句话说,对于车辆而言,避免停止在具有最高优先级值的区域或与具有更低优先级值的区域相比具有更高优先级值的区域中会是更重要的。当不能避免更低优先级的禁停区域时,计算设备可以简单地忽略该禁停区域的约束(或者更确切地说,将该区域包括在速度规划中作为用于停止车辆的可能位置)。返回到图7的示例,子集包括由多边形260、270和272识别的禁停区域。多边形260对应于交叉路口202和602,多边形270对应于人行横道220和620,并且多边形270对应于人行横道220和620。这里,人行横道620是非活动的,而人行横道622是活动的,由于行人670正从人行道640接近人行横道622。在这方面,计算设备可将人行横道620识别为非活动人行横道,因为在例如1米或更长或更短的第一距离内没有行人,在人行横道上没有行人,或者在例如3米或更长或更短的第二距离内没有行人接近人行横道620。类似地,计算设备110可基于行人670从人行道640接近人行横道622的识别,将人行横道622识别为活动人行横道。如上所述,因为它是活动人行横道,所以人行横道622可以具有比交叉路口602和非活动的人行横道620更高的优先级值。另外,交叉路口602可以具有比人行横道620更高的优先级值。在该示例中,当计算设备不能确定满足子集的所有禁停区域的约束的速度规划时,对应于人行横道220和620的多边形272的约束可以被忽略,因为与多边形272对应的禁停区域具有最低优先级值。因此,计算设备110可以尝试确定避免在多边形260和270中停止但是可以在多边形272内停止的可行的速度规划。换句话说,计算设备会更可能突然使车辆减速以规避活动人行横道(人行横道620)或交叉路口(交叉路口602),而不规避非活动人行横道(人行横道622)。因此,在该示例中,计算设备可以生成包括在人行横道620内的点f处停止车辆100的速度规划。再次,这样忽略子集的最低优先级值的禁停区域可以根据需要重复多次,直到生成可行的速度规划。换句话说,可以重复该过程直到子集为空。然而,在一些情况下,可能没有可行的速度规划。换句话说,返回到图7的示例,即使计算设备忽略子集的所有禁停区域(即,忽略了由多边形260、270和272识别的所有禁停区域),计算设备也可能无法生成能够在到达停止的车辆672之前安全地停止车辆100的速度规划。在这种情况下,如果堵塞更高优先级的区域是不可避免的,则计算设备可以生成涉及采取某种类型的妥协动作(例如,在交通车道之间改变、转弯、反向移动、挪动或靠边停车、寻求帮助等)的速度规划。计算设备可以使用速度规划来控制车辆。再次,这可能涉及控制车辆的加速或减速。如上所述,在一些情况下,速度规划可以包括在速度规划中定义的位置(空间上和/或时间上)停止车辆。当然,当使用速度规划来控制车辆时,车辆实际停止的精确位置可能与速度规划的位置略有不同,甚至可以为了乘坐的平稳性、舒适性等而被进一步优化。由于任何数量的不同原因,停止可能是必须的,所述不同原因例如包括:其他物体(例如示例600中停止的车辆672、道路中的物体或碎片、交通信号灯、行人等)、预测的物体位置(例如,另一车辆很可能停止的位置)、拥塞(occlusion)(例如计算设备110不能排除出现一个物体在另一个物体后面的情况)、车辆必须停止的区域(例如建筑区域、地图信息的边缘、如收费站的政策区域、铁路道口等)、车辆故障或其他系统问题、停止车辆的乘客或远程请求或命令等。可以周期性地生成速度规划,例如,每秒几次、或者每隔数秒或更长或更短时间。在这方面,计算设备可以根据最近生成的速度规划来控制车辆,在这样的停止是按照最新的速度规划的情况下停止车辆。在一些示例中,需要停止车辆,因为其他车辆正在停止并且物理地“拥堵(stacking)”在车辆前方。为了避免停止在禁停区域之一中,作为确定速度规划的一部分,计算设备可以观察其他车辆的行为并且预测如果那些其他车辆突然停止时它们可能的结果。除了确定每个车辆将停止的位置之外,车辆的计算设备还可以基于预测模型考虑在车辆前方的每个其他车辆(或其他车辆前方的再一车辆)将停止的可能性(如果那些其他车辆尚未停止的话)。如果可能性非常低,则计算设备可以选择忽略停止车辆(astoppingvehicle),例如在前方没有特征或没有观察到意味着其他车辆将要停止的减速的情况下。为了进行预测,计算设备可以使用提供了给定拥堵车辆后部的实际观察到的形状和尺寸的车辆的估计长度的模型,来估计每个拥堵车辆将单独占据的距离以及拥堵车辆之间将有多少空间未被占用。然后可以使用这些预测来尝试根据任何相关的禁停区域的优先级来找到用于停止的适当位置,或者如果需要的话,则采取妥协动作。在更进一步的示例中,计算设备可以实际调整对禁停区域的默认响应而不是简单地忽略与那些区域相关联的约束。例如,当在禁停区域处或附近停止时,可以存在默认的最小间隙值或允许的可接受的重叠量。该值的范围可以从一些负距离(一些重叠)到正距离(与车辆和区域之间的一些缓冲不重叠)。还可以调整该值以便生成可行的停止规划(stoppingplan)。作为示例,可以调整最小间隙值以允许车辆穿过多边形低优先级禁停区域。替选地或另外地,计算设备可以调整车辆与另一车辆之间的间隔距离,以便减少与更高优先级禁停区域的重叠量。通过调整默认响应,车辆可以更好地“适应”在两个禁停区域之间,而无需可能是危险的妥协动作。例如,在具有分割中值(dividedmedian)的左转弯的情况下,可能要求车辆停止在两个区域之间以避免跨越交通车道停止。当然,区域的形状可以意味着它们之间的区域不足以使车辆停止而不与一个区域或全部两个区域重叠。例如,如图8a的示例800所示,车辆100尝试进行未受保护的、跨越几条交通车道的左转。为此,车辆必须穿过由多边形840、842和844识别的禁停区域,它们分别对应于跨越交通车道830、832和834停止。在该示例中,因此子集可以包括由多边形840、842和844识别的禁停区域。然后可以使用这些多边形中的每一个来生成约束并如上所述生成速度规划。在一些情况下,车辆可能必须在完成转弯之前停止,以便等待从交通车道834接近车辆110的交通。为了避免车辆不停止并且可能导致与另一车辆或物体的碰撞,计算设备可以简单地以小增量调整每个多边形,并且同时以小增量改变车辆相对于路线的朝向,直到车辆能够尽可能地适应在两个多边形之间。例如,计算设备可以调整多边形842和844的形状并操纵车辆100,如图8b的示例860所示。在该示例中,在多边形840和842之间操纵车辆重新定向(reoriented),以便尽可能地适应在调整后的多边形842'和844'之间。为了清楚,在图8b中,多边形842和844的原始尺寸和形状以虚线示出。因此,车辆100的路线810被略微改变为路线870。图9是根据示例流程图900,其可以由车辆的一个或多个计算设备(诸如车辆100的计算设备110)执行,以便在自动驾驶模式下操纵车辆100。在块910,可以沿着使用预先存储的地图信息的路线在自动驾驶模式下操纵车辆。该预先存储的地图信息识别车辆在自动驾驶模式下不应停止但可以行驶通过的多个禁停区域。另外,多个禁停区域中的每个禁停区域与优先级值相关联。在块920,基于路线识别多个禁停区域的子集。在块930,基于与多个禁停区域的子集中的禁停区域相关联的优先级值生成用于沿着停止车辆的速度规划,其中速度规划识别用于停止车辆的位置。在块940,使用速度规划将车辆停止在位置处。除非另有说明,否则前述替代示例不是相互排斥的,而是可以以各种组合来实现,以达成独特的优点。由于可以在不脱离由权利要求限定的主题的情况下利用上述特征的这些和其他变型和组合,因此前述实施例的描述应当是为了说明,而不是为了限制由权利要求所限定的主题。另外,提供这里描述的示例,以及如“诸如”、“包括”等的短语不应被解释为将权利要求的主题限制到具体的示例;反而,这些示例仅旨在说明许多可能的实施例之一。此外,不同附图中的相同附图标记可以识别相同或相似的要素。工业适用性本文描述的技术享有广泛的工业实用性,例如像用于自动驾驶车辆的速度规划。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1