首页> 中国专利> 具有轨迹验证的碰撞避免系统

具有轨迹验证的碰撞避免系统

摘要

车辆可以包括主系统和辅助系统以验证主系统的操作并控制车辆以避免碰撞。例如,辅助系统可以从主系统接收多个轨迹,诸如主轨迹和辅助轨迹,与减速度或其他操纵相关联的临时轨迹。辅助系统可以确定轨迹是否与潜在碰撞相关联,该轨迹是否与当前或先前姿态一致,该轨迹是否与车辆的能力兼容等等。如果主轨迹有效,辅助系统可以选择主轨迹;如果主轨迹无效,则选择辅助轨迹;或者如果主轨迹和辅助轨迹均无效,则选择由辅助系统生成的另一轨迹。如果未确定有效轨迹,则车辆可以最大速率减速。

著录项

  • 公开/公告号CN113348462A

    专利类型发明专利

  • 公开/公告日2021-09-03

    原文格式PDF

  • 申请/专利权人 祖克斯有限公司;

    申请/专利号CN201980082242.0

  • 申请日2019-12-09

  • 分类号G06K9/00(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人王琼先

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:25:57

说明书

相关申请

该PCT国际申请是2018年12月12日提交的美国第16/218,182号申请的继续申请,并要求其优先权,其通过引用合并于此。

背景技术

车辆中的乘客以及车辆附近的其他人或物体的安全是最重要的。这种安全性通常以对潜在碰撞的准确检测以及安全措施的及时部署为基础。尽管自动驾驶车辆通常使用具有高效碰撞检测系统的系统来实现,但这些系统在极少数情况下可能无法操作或无效。例如,错误可能会引入到车辆上系统的相对长处理管线中,从而使系统生成与物体碰撞的轨迹和/或使车辆以在给定车辆的当前姿态和/或车辆的能力的情况下不可能或不可接受的方式进行操纵。这样,系统可能无法如期望的那样有效地操作,这可能导致不安全行为。

附图说明

参照附图描述详细描述。在附图中,参考标号的最左边的一个或多个数字标识其中参考标号首次出现的附图。在不同附图中使用相同的参考标号表示相似或相同的部件或特征。

图1示出了其中可以实现本文所讨论的技术的示例性环境。

图2描绘了车辆的主系统和辅助系统的示例性细节。

图3示出了确定车辆的轨迹是有效还是无效的示例性过程。

图4示出了确定车辆的轨迹是有效还是无效的示例性过程。

图5示出了确定车辆的轨迹是有效还是无效的示例性过程。

图6示出了可以由辅助系统实现的状态的示例性层次结构。

图7A-7B示出了执行本文讨论的技术的示例性过程。

图8描绘了用于实现本文描述的技术的示例性系统的框图。

具体实施方式

本公开涉及一种车辆,其包括用于控制车辆的主系统以及在车辆上操作以验证主系统的操作并控制车辆以避免碰撞的辅助系统。例如,辅助系统可以从主系统接收多个轨迹,诸如主轨迹和辅助轨迹(例如,与减速度或其他操纵相关的临时轨迹)。辅助系统可以验证每个轨迹(例如,确定是否存在错误)。例如,辅助系统可以确定由主系统生成的轨迹是否与潜在碰撞相关联,该轨迹是否与车辆的当前或先前姿态一致,该轨迹是否与车辆的能力兼容等。如果主轨迹有效,则辅助系统可以根据主轨迹来控制车辆。如果主轨迹是无效的,并且辅助轨迹是有效的,则辅助系统可以根据辅助轨迹来控制车辆。如果主轨迹和辅助轨迹均无效,则辅助系统可以使用另一轨迹来控制车辆,诸如沿着辅助轨迹减速或执行另一操纵的轨迹。在示例中,如果辅助系统检测到主轨迹将来将导致碰撞,则辅助系统可以向主系统发送指示这种情况的消息。这可以为主系统提供调整主轨迹的机会,以避免任何此类预测碰撞。

主系统通常可以执行处理以控制车辆如何在环境中进行操纵。主系统可以实施各种人工智能(AI)技术,诸如机器学习,以了解车辆周围的环境和/或指示车辆在该环境内移动。例如,主系统可以实施AI技术来定位车辆,检测车辆周围的物体,分割传感器数据,确定物体的分类,预测物体轨迹,生成车辆的轨迹等。在一个示例中,主系统产生用于控制车辆的主轨迹以及用于控制车辆的辅助临时轨迹,并将主轨迹和辅助轨迹提供给辅助系统。临时轨迹可以控制车辆停止和/或执行另一操纵(例如,变道等)。

辅助系统通常可以使用对主系统可用的数据(例如,传感器数据)的至少一个子集来评估主系统。例如,辅助系统可以通过确定车辆相对于车辆所处环境中的点和/或物体的位置和/或定向(一起称为姿态)来独立地定位车辆。辅助系统还可以独立地检测车辆周围的物体和/或预测该物体的轨迹。辅助系统可以使用车辆的姿态和/或物体的预测轨迹来评估由主系统提供的车辆的轨迹并确定是否应使用该轨迹来控制车辆。这样的定位和/或检测可以使用与在主系统中使用的类似技术以便验证其输出和/或使用不同的技术来确保这些输出的一致性和可验证性。

为了评估车辆的轨迹,辅助系统可以执行一个或多个操作以评估(或验证)该轨迹。例如,该辅助系统可以检查以查看是否在少于阈值时间量之前生成了轨迹、该轨迹是否与车辆的当前或先前姿态一致(例如,轨迹控制车辆定位在对于车辆的当前姿态的情况下可能的位置处)、轨迹是否与车辆的能力(例如,转向限制,加速度限制等)兼容等等。此外,辅助系统可以检查以查看轨迹是否与碰撞相关联。例如,辅助系统可以检查以查看由主系统提供的车辆的轨迹是否与由辅助系统确定的物体的轨迹相交以及物体和车辆是否在相同时间(或时间窗口)在交点处相遇。即,如果车辆沿着由主系统提供的轨迹进行保持,则辅助系统可以确定车辆是否将与物体碰撞。这样的碰撞检查可以基于如由一种或多种其他技术确定的直接行驶运动学假设和/或运动预测中的一项或多项。

在示例中,辅助系统可以评估车辆的由主系统提供的每个轨迹。例如,辅助系统可以评估由主系统生成的主轨迹(例如,最高级别轨迹)和由主系统生成的辅助轨迹(例如,次最高级别轨迹)。辅助轨迹可以是临时轨迹,其可以在主轨迹无效的情况下使用。此外,在示例中,辅助系统可以生成用于车辆的第三轨迹(例如,次最高级别轨迹)并评估第三轨迹。第三轨迹可以是另外的临时轨迹,其可以在主轨迹和辅助轨迹均无效的情况下使用。第三轨迹可以使车辆沿着辅助轨迹(或在一些情况下沿着主轨迹)停止或进行另一操纵(例如,变道,转弯等)。在一些示例中,可以至少部分地基于对辅助轨迹的最小修改(对纵向加速度,转向角度,横向加速度等的修改)来确定第三轨迹。

辅助系统可以基于对轨迹的评估来确定用于控制车辆的轨迹。例如,如果主轨迹的状态指示该主轨迹是无碰撞的或者与“遥远”未来的碰撞相关联(例如,主轨迹是暂时有效),则辅助系统可以选择由该主系统提供的主轨迹。此外,如果主轨迹与指示即将发生碰撞的状态相关联并且辅助轨迹与指示辅助轨迹无碰撞的状态相关联,则辅助系统可以选择由主系统提供的辅助轨迹。此外,如果主轨迹与指示碰撞即将发生的状态相关联并且辅助轨迹与指示碰撞的状态相关联,则辅助系统可以选择由辅助系统生成的第三轨迹。一旦选择轨迹,则辅助系统可以将信号发送到系统控制器以基于该轨迹来控制车辆。在至少一些示例中,在没有轨迹无碰撞的情况下,辅助系统可以使车辆执行一项或多项操作,例如,诸如接合紧急制动器和/或预紧安全带等。

在示例中,辅助系统可以基于所选择的轨迹维持对车辆的控制直到接收到信号以从所选择的轨迹释放控制为止。例如,如果需要,辅助系统可以在任何时候过渡到更低级别轨迹,并且避免过渡回到更高级别轨迹,直到接收到信号以将控制释放到更高级别轨迹为止。为了说明,如果辅助系统由于主轨迹与碰撞相关联而选择辅助轨迹,则可以沿着辅助轨迹(或甚至更低级别轨迹)维持对车辆的控制,直到从远程操作系统(例如,与操作员关联的系统)接收到信号以将控制释放到更高级别轨迹为止。通过这样做,车辆可以避免轨迹之间的频繁变化。

此外,在示例中,辅助系统可以向主系统提供指示由主系统提供的轨迹有错误的消息。例如,如果辅助系统确定碰撞被估计为在如果车辆沿着由主系统提供的主轨迹行驶但车辆不需要立即制动(例如,远离超过阈值时间量)的足够远的将来发生,则辅助系统可以向主系统发送消息以警告主系统。这可以允许主系统在发生碰撞之前调整主轨迹。

在示例中,本文讨论的技术和/或系统可以增强车辆中的乘客和/或车辆附近的其他个人的安全性。例如,辅助系统可以检测由主系统提供的轨迹中的错误并且控制车辆以安全地减速,停止和/或执行另一操纵以避免碰撞。在示例中,辅助系统可以相对于主系统相对独立地操作,使得发生另一种形式的评估以避免冲突。例如,辅助系统可以独立地检测车辆附近的物体和/或评估由主系统产生的轨迹。此外,在示例中,辅助系统可以是比主系统具有更高完整性(例如,可验证性更高)和/或更简单系统。例如,辅助系统可以被设计为处理更少的数据,包括比主系统更短的处理管线,根据比主系统的技术更容易验证的技术进行操作,等等。

在示例中,本文讨论的技术可以实现在2018年11月11日提交的标题为“感知碰撞预防”的美国专利第16/189,726号申请中讨论的技术,其全部内容通过引用合并于此。

本文描述的方法、设备和系统可以以多种方式来实现。下面参考以下附图提供示例性实施方式。尽管在自动驾驶车辆的背景中进行了讨论,但是在一些示例中,本文描述的方法、设备和系统可以应用于各种系统。在另一个示例中,可以在航空或航海环境中利用方法、设备和系统。另外地或可替代地,本文描述的技术可以利用真实数据(例如,使用一个或多个传感器捕获的)、模拟数据(例如,由模拟器生成的)或其任意组合进行使用。

图1示出了其中可以实现本文所讨论的技术的示例性环境100。示例性环境100示出了自动驾驶车辆102,其包括一个或多个传感器104,主系统106,辅助系统108以及一个或多个系统控制器110。主系统106通常可以实现人工智能(例如,AI技术112)以执行各种操作,并且如果需要,辅助系统108通常可以实施不同的技术来评估主系统106并接管控制。例如,主系统106处理来自一个或多个传感器104的传感器数据114以产生主轨迹116和辅助轨迹118。主系统106可将主轨迹116和辅助轨迹118发送至辅助系统108。辅助系统108可以处理来自一个或多个传感器104的传感器数据120以评估主轨迹116和/或辅助轨迹118。如上所述,由辅助系统108执行的技术可以包括与由主系统106采用的技术类似的技术并且可以比较结果以确定相似性。在一些示例中,辅助系统108可以使用与主系统106中的技术不同的技术,使得相似的结果可以指示两个系统的正确功能。基于评估,辅助系统108可以选择输出轨迹122并且将输出轨迹122发送到一个或多个系统控制器110以控制自动驾驶车辆102。输出轨迹122可以包括主轨迹116,辅助轨迹118,和/或另一轨迹,诸如由辅助系统108生成的轨迹,如下面详细讨论的。

尽管在辅助系统108向一个或多个系统控制器110发送信号(例如,发送输出轨迹122)的背景中讨论了许多技术,但是在一些情况下,主系统106可以可替代地或另外地发送向一个或多个系统控制器110发送信号。

一个或多个传感器104可以包括各种传感器,诸如光检测和测距(LIDAR)传感器,RADAR传感器、超声换能器、声纳传感器、位置传感器(例如,全球导航卫星系统(GNSS)(包括全球定位系统(GPS))、指南针等)、惯性传感器(例如惯性测量单位(IMU)、加速度计、磁力计、陀螺仪等)、相机(例如红绿蓝(RGB)、红外(IR)、强度、深度等)、飞行时间传感器、麦克风、车轮编码器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)等。

如上所述,主系统106通常可以处理传感器数据114,并且辅助系统108可以处理传感器数据120。在一些示例中,传感器数据120包括传感器数据114的子集。为了说明,传感器数据114可以包括来自广泛各种传感器104的数据,诸如位置数据,惯性数据,LIDAR数据,RADAR数据,图像数据,音频数据,环境数据,深度数据等。同时,传感器数据120可以包括来自一个或多个传感器104的更有限集的数据,诸如LIDAR数据,RADAR数据和/或飞行时间数据。在其他示例中,传感器数据120包括与传感器数据114相同或更多的数据,诸如位置数据,惯性数据,LIDAR数据,RADAR数据,图像数据,音频数据,环境数据和/或深度数据中的一个或多个。

主系统106可以在正常操作期间控制车辆。在许多示例中,主系统106可以是自动驾驶车辆102上的主计算系统。主系统106可以实施AI技术112以了解自动驾驶车辆102周围的环境和/或指示自动驾驶车辆102在环境内移动。AI技术112可以包括机器学习(通常也称为机器学习模型),诸如一个或多个神经网络。例如,主系统106可以分析传感器数据114以定位自动驾驶车辆102,检测自动驾驶车辆102周围的物体,分割传感器数据114,确定物体的分类,预测物体径迹,产生自动驾驶车辆102的主轨迹116和/或辅助轨迹118等。在图1的示例中,主系统106产生主轨迹116以控制自动驾驶车辆102,并且生成辅助轨迹118作为临时(例如,备用)轨迹以在主轨迹116无效或以其他方式不可接受的情况下代替主轨迹进行使用或者在硬件或软件故障的情况下以其他方式进行执行。在示例中,辅助轨迹118可以控制自动驾驶车辆102减速至停止(例如,与小于自动驾驶汽车102可能的最大减速度率的一定减速度率相关联的平缓停止)。

在示例中,轨迹包括用于自动驾驶车辆102的转向角度和/或加速度的一个或多个控制。此外,轨迹可以包括代表自动驾驶车辆102的估计未来路径的时间的序列和车辆状态(例如,姿态)。例如,轨迹可以控制自动驾驶车辆102将在时间窗口(例如,一毫秒,半秒,两秒,十秒等)内采用的路径。轨迹可以随着时间连续地更新以控制自动驾驶车辆102的运动。

当主系统106存在问题时,辅助系统108可以评估主系统106并接管对自动驾驶车辆102的控制。辅助系统108可以实施基于自动驾驶车辆102和/或自动驾驶车辆102周围的物体的位置、速度、加速度等的辅助技术(例如,概率技术,与AI技术112不同的技术)。例如,辅助系统108可以实施卡尔曼滤波器,扩展卡尔曼滤波器(EKG)、粒子滤波器和/或跟踪算法来处理传感器数据、分割传感器数据、识别物体的分类、预测物体轨迹等。在示例中,辅助系统108可以不执行任何形式的AI技术。在一些示例中,AI技术112可以使用神经网络,而辅助系统108可以避免使用此类神经网络。在其他示例中,辅助系统108可以执行AI技术,诸如实现与由主系统106实现的机器学习模型不同(或在一些情况下相同)的机器学习模型。虽然示出了单个辅助系统108,在示例中,辅助系统108可以被实现为多个系统,诸如多个硬件/软件系统。

在示例中,为了评估主系统106,辅助系统108可以处理传感器数据120以确定自动驾驶车辆102相对于环境中的点和/或物体的位置和/或定向(一起称为姿态)。此外,辅助系统108可以处理传感器数据120以检测自动驾驶车辆102周围的物体、随时间跟踪物体和/或预测物体的轨迹。在一些示例中,辅助系统108可以从主系统106接收信息,该信息指示由主系统106检测到的物体的径迹和/或物体的预测轨迹。物体的径迹可以包括该物体行进的路径。物体的径迹可以表示(或基于)在一段时间(例如5秒)内物体的当前或先前位置、速度、加速度、定向和/或朝向。辅助系统108可以针对自动驾驶车辆102周围检测到的每个物体维护径迹和/或预测轨迹。如图1所示,辅助系统108估计物体126的轨迹124。这里,物体126表示人,尽管物体126可以表示任何类型的物体,例如另一车辆,结构(例如建筑物等),动物,标志等。

辅助系统108可以使用姿态、径迹和/或预测轨迹来评估主轨迹116和/或辅助轨迹118。如图所示,辅助系统108可以包括轨迹管理部件128以执行一个或多个验证操作,以验证主轨迹116、辅助轨迹118和/或由辅助系统108生成的轨迹,例如碰撞避免轨迹(例如,使自动驾驶车辆102减速到停止的轨迹,其可以是主轨迹116或辅助轨迹118的修改版本)。在示例中,轨迹管理部件128可以验证主轨迹116,辅助轨迹118和/或由辅助系统108并行生成的轨迹中的一个或多个(例如,碰撞避免轨迹)。尽管任何这样的轨迹可以以串联或其他方式来验证。

在示例中,轨迹管理部件128可以执行一个或多个验证操作以确定轨迹是否是相对新的,是否与自动驾驶车辆102的状态一致,和/或是否在自动驾驶车辆102的限制下可行。例如,轨迹管理部件128可以确定轨迹是否在小于阈值时间量之前生成(例如,指示轨迹是相对新的并且应该被使用),轨迹是否与车辆的当前或先前姿态一致(例如,轨迹控制自动驾驶车辆102被定位于自动驾驶车辆102的当前姿势情况下可能的位置处),轨迹是否与自动驾驶车辆102的能力兼容(例如,转向极限,加速度极限等)等。

此外,在示例中,轨迹管理部件128可以执行一个或多个验证操作以确定轨迹是否与诸如图1所示的碰撞130的碰撞相关联。例如,轨迹管理部件128可以确定由主系统106提供的轨迹是否与由辅助系统108确定的物体的轨迹相交。也就是说,轨迹管理部件128可以确定如果自动驾驶车辆102沿着该轨迹继续行驶,自动驾驶车辆102是否将与物体碰撞,(例如,检测由主系统106可能错过的碰撞)。在示例中,轨迹管理部件128可以使用近似直线来预测物体的轨迹。

基于一个或多个验证操作,轨迹管理部件128可以确定轨迹的状态。例如,如果轨迹是在小于阈值时间量之前生成的,如果轨迹与自动驾驶车辆102的当前或先前姿态一致,则如果该轨迹与自动驾驶车辆102的能力兼容,和/或如果该轨迹无碰撞或在超过阈值时间量后与碰撞相关联,则轨迹管理部件128可以确定轨迹的有效状态。此外,如果轨迹是在多于阈值时间量之前生成的,如果轨迹与自动驾驶车辆102的当前或先前姿态不一致,如果该轨迹与自动驾驶车辆102的能力不兼容,和/或如果该轨迹与碰撞相关联,则轨迹管理部件128可以确定轨迹的无效状态。

轨迹管理部件128然后可以基于轨迹的状态确定输出轨迹122以提供给一个或多个系统控制器110。例如,轨迹管理部件128通常可以在主轨迹116有效时寻求选择主轨迹116(例如,主轨迹116与最高级别相关联)作为输出轨迹122。如果主轨迹116无效,则轨迹管理部件128可以选择辅助轨迹118(例如,辅助轨迹118与次最高级别相关联)作为输出轨迹122。如果主轨迹116和辅助轨迹118均无效,则轨迹管理部件128可以选择由辅助系统108生成的轨迹(诸如使自动驾驶汽车102沿着主轨迹116或辅助轨迹118的修改版本停止的碰撞避免轨迹(例如,避免潜在的碰撞))作为输出轨迹122。例如,轨迹管理部件128可以使用与主轨迹116或辅助轨迹118相关的转向控制,同时修改与主轨迹116或辅助轨迹118相关的加速度参数以使自动驾驶车辆102停止。

在一些示例中,如果轨迹管理部件128无法选择或生成避免碰撞的轨迹,则轨迹管理部件128(或另一个部件,诸如驱动器管理部件)可以生成最大减速度轨迹,该最大减速度轨迹使自动驾驶车辆102以自动驾驶车辆102可用的最大减速度率(例如,可用的多个可减速度率中的最大减速度率)停止。这可以帮助减轻潜在碰撞的损害。

在示例中,轨迹管理部件128可以基于输出轨迹122维持对自动驾驶车辆102的控制,直到接收到信号以从输出轨迹122释放控制为止。例如,如果需要,轨迹管理部件128可以随时过渡到更低级别轨迹,并避免过渡回更高级别轨迹直到接收到信号以将控制释放到更高级别轨迹为止。为了说明,如果轨迹管理部件128由于主轨迹116无效而选择辅助轨迹118,则可以沿辅助轨迹118(或甚至更低级别轨迹)维持对自动驾驶车辆102的控制直到从远程操作系统(例如,与操作员相关的系统)接收到信号以将控制释放给更高级别轨迹。通过这样做,自动驾驶车辆102可以避免轨迹之间的频繁改变。

此外,在示例中,轨迹管理部件128可以向主系统106提供指示主系统提供的轨迹有错误的消息。例如,如果轨迹管理部件128确定对于主估计116而言碰撞被估计为发生在足够远的未来(例如,超过阈值时间量远离)使得自动驾驶车辆102不需要立即制动,则轨迹管理部件128可以向主系统106发送消息132以警告主系统106。如果自动驾驶车辆102基于主轨迹116被维持,则消息132可以指示主轨迹116与碰撞相关联和/或自动驾驶车辆102的控制将由辅助系统108接管。这可以允许主系统106在发生碰撞之前调整主轨迹116。

一个或多个系统控制器110可以控制自动驾驶车辆102的转向、推进、制动、安全,发射器、通信和/或其他系统。一个或多个系统控制器110可以与自动驾驶车辆102的一个或多个驱动系统和/或其他部件的对应系统通信和/或控制驾驶车辆102的一个或多个驱动系统和/或其他部件的对应系统。在一些情况下,一个或多个系统控制器110可以将选择的轨迹过渡成一个或多个驱动系统可以使用的指令以引起自动驾驶车辆102经历该轨迹。

图2描绘了图1的自动驾驶车辆102的主系统106和辅助系统108的示例性细节。

在此示例中,主系统106包括定位部件202,感知部件204,预测部件206和规划部件208。定位部件202、感知部件204,预测部件206和/或规划部件208可以集体和/或单独地包括处理管线,该处理管线实现完成各种功能的一个或多个机器学习模型,诸如神经网络。每个处理管线可以接收数据并提供输出。在一个示例中,感知部件204除了(或替代地)确定这种检测到的物体的预测运动之外还在处理管线中实现一个或多个神经网络以执行物体检测、分割和/或分类。管线中的每个阶段可以提供感知的一些方面(例如,物体检测、分类、边界框生成等),其可以馈入管线的另一阶段。在示例中,主系统106实施使用数千或数十万小时的车辆训练数据来训练的多个神经网络。此外,多个神经网络可以被配置为感知无数复杂场景并且鉴于那些场景来控制自动驾驶车辆102。在示例中,主系统106使用并行计算(例如,在GPU中),而辅助系统108不是。在其他示例中,在主系统106和/或辅助系统108中使用并行计算。

如本文所述,示例性性神经网络是生物学启发算法,其使输入数据通过一系列连接层以产生输出。神经网络中的每一层还可以包含其他神经网络,或者可以包含任意数量的层(无论是否卷积)。如在本公开的上下文中可以理解的,神经网络可以利用机器学习,机器学习可以指的是广泛的这类算法,其中基于学习参数生成输出。

尽管在神经网络的上下文中进行了讨论,可以使用与本公开内容一致的任何类型的机器学习。例如,机器学习算法可以包括但不限于回归算法(例如,普通最小二乘回归(OLSR)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(MARS)、局部估计散点图平滑化(LOESS)、基于实例算的法(例如,岭回归、最小绝对收缩和选择算子(LASSO)、弹性网,最小角度回归(LARS)),决策树算法(例如,分类和回归树(CART),迭代二分法器3(ID3),卡方自动交互检测(CHAID),决策树桩,条件决策树),贝叶斯算法(例如朴素贝叶斯,高斯朴素贝叶斯,多项式朴素贝叶斯,平均一依赖估计器(AODE),贝叶斯信念网络(BNN),贝叶斯网络),聚类算法(例如,k均值,k中位数,期望最大化(EM),分层聚类),关联规则学习算法(例如,感知算法,反向传播,霍普菲尔德网络,径向基函数网络(RBFN),深度学习算法(例如,深玻尔兹曼机(DBM),深度信念网络(DBN),卷积神经网络(CNN),堆叠式自动编码器),降维算法(例如,主成分分析(PCA),主成分回归(PCR),偏最小二乘回归(PLSR),Sammon映射,多维标度(MDS),投影追踪,线性判别分析(LDA),混合物判别分析(MDA),二次判别分析(QDA),灵活判别分析(FDA)),集成算法(例如,提升算法,自举聚合(袋装),AdaBoost,堆叠泛化(混合),梯度增强机(GBM),梯度增强回归树(GBRT),随机森林),SVM(支持向量机),监督学习,无监督学习,半监督学习等。架构的其他示例包括神经网络,诸如ResNet50,ResNet101,VGG,DenseNet,PointNet等。

定位部件202可以包括从一个或多个传感器104(图2中未示出)接收传感器数据114以确定自动驾驶车辆102的姿态(例如,位置和/或定向)和/或自动驾驶车辆102周围的环境地图。例如,定位部件202可以确定和/或接收环境的地图并且可以连续地确定自动驾驶车辆102在地图内的位置。该地图可以包括拓扑图,占用网格,点地图,地标图,网格,姿态约束图和/或任何其他合适的地图。在一些情况下,定位部件202可以利用SLAM(同时定位和映射)或CLAMS(同时校准,定位和映射)来接收图像数据,LIDAR数据,RADAR数据,IMU数据,GPS数据,车轮编码器数据和/或类似数据以精确地确定自动驾驶车辆102的位置/姿态。自动驾驶车辆102的位置可以包括姿态,该姿态包括自动驾驶车辆102相对于地图中的一个或多个点和/或物体的位置和/或定向、本地坐标和/或全局坐标(例如GPS坐标)。在另外的或替代的实例中,定向可以包括自动驾驶车辆102相对于参考平面和/或相对于地图中的一个或多个点和/或物体的偏航,侧倾和/或俯仰的指示。位置和/或定向一起可以描述为“姿态”。

在一些情况下,定位部件202可以将数据提供给自动驾驶车辆102的各个部件。例如,定位部件202可以将自动驾驶车辆102的姿态提供给规划部件208以生成轨迹,如在下面讨论。在其他示例中,定位部件202可以将自动驾驶车辆102的姿态提供给自动驾驶车辆102的其他部件,诸如感知部件204和/或预测部件206。

感知部件204可以包括执行物体检测、分割和/或分类的功能。在一些示例中,感知部件204可以接收传感器数据114作为输入并输出表示接近自动驾驶车辆102反物体的存在和/或该物体作为物体类型的分类(例如,语义标签,诸如车辆,行人,骑行者,建筑物,树木,路面,路缘石,人行道,未知物体等)的主感知数据。另外地或可替代地,感知部件204可以提供经处理传感器数据,该经处理传感器数据指示与检测到的物体和/或物体所处的环境相关的一个或多个特征。在一些示例中,与物体相关联的特征可以包括但不限于x位置(例如,全局位置,相对位置等),y位置(例如,全局位置,相对位置等),z位置(例如,全局位置,相对位置等),定向,物体类型(例如,分类),物体的速度,物体的范围(大小)等。在一些示例中,可以根据RADAR处理和/或其他技术来确定物体的速度。与环境相关联的特征可以包括但不限于环境中另一个物体的存在、环境中另一个物体的状态、一天中的时间、一周中的一天、季节、天气状况、指示黑暗/明亮等。

在一些情况下,感知部件204可以将主感知数据和/或经处理传感器数据提供给自动驾驶车辆102的各个部件。例如,感知部件204可以将主感知数据和/或经处理传感器数据提供给规划部件208和/或预测部件206。在其他示例中,感知部件204可将主感知数据和/或经处理传感器数据提供给自动驾驶车辆102的其他部件,诸如定位部件202。在示例中,主要感知数据和/或经处理传感器数据可以采用主物体列表的形式,该主物体列表包括物体列表和/或每个物体的特征。

预测部件206可以将径迹与检测到的物体相关联和/或预测物体轨迹。物体的径迹可以包括历史物体位置、速度、加速度和/或定向。在一些情况下,预测部件206可以确定是否将历史物体径迹与感知部件204最近检测到的物体相关联。例如,预测部件206可以确定最近检测到的物体是否处于与历史径迹相关联的物体的先前位置的阈值距离内,与历史径迹相关联的物体的先前速度的阈值速度内等等。在一些示例中,预测部件206可以包括机器学习模型以基于照明状态(例如,眨眼检测)、物体速度/加速度、地图数据(例如,指示合理的驾驶行为的车道信息)和/或学习到的物体行为来预测物体在环境中的行为。在一些示例中,预测部件206可以例如基于物体的历史、当前和/或预测的位置、速度、加速度和/或定向的概率确定或多模态分布来预测由感知部件204检测到的特定物体的一个或多个预测物体轨迹。

在一些情况下,预测部件206可以向自动驾驶车辆102的各个部件提供关于物体径迹、预测物体轨迹(例如,一个或多个轨迹和相关的不确定性)和/或其他数据。例如,预测部件206可以将此类数据提供给规划部件208。在一些示例中,预测部件206可以生成与物体的预测运动相关联的热图并且可以将这种热图提供给规划部件208。在其他示例中,预测部件206可以将与物体有关的数据提供给自动驾驶车辆102的其他部件,诸如定位部件202和/或感知部件204。此外,在一些示例中,可以将与物体有关的数据提供给辅助系统108。在示例中,关于物体的数据可以存储在主物体列表中。

在一些示例中,感知部件204和/或预测部件206可以实现于2017年6月14日提交的标题为“基于体素的地平面估计和物体分割”的美国专利申请第15/622,905号申请、于2017年12月6日提交的标题为“使用时间逻辑和树搜索的第三方物体的轨迹预测”的美国专利第15/833,715号申请和/或于2017年11月21日提交的标题为“传感器数据分割”的美国专利第15/820,245号申请中讨论的技术,其全部内容通过引用合并于此。

规划部件208可以确定自动驾驶车辆102要遵循以通过环境的路径和/或轨迹。例如,规划部件208可以确定各种路线和/或轨迹以及各种细节水平。例如,规划部件208可以确定从第一位置(例如,当前位置)到第二位置(例如,目标位置)行驶的路线。在示例中,路线可以是在两个位置之间行驶的一系列路点。作为非限制性示例性,路点包括街道,十字路口,全球定位系统(GPS)坐标等。此外,规划部件208可以生成用于沿着从第一位置到第二位置的路线的至少一部分引导自动驾驶车辆102的指令。在至少一个示例中,规划部件208可以确定如何将自动驾驶车辆102从路点序列中的第一路点引导到路点序列中的第二路标。在一些示例中,指令可以包括轨迹或轨迹的一部分。

在示例中,规划部件208可以生成主轨迹116和/或将主轨迹116发送到辅助系统108。例如,规划部件208可以根据滚动时域技术和/或至少部分基于从主系统106的其他部件接收的数据基本上同时(例如,在技术公差内)生成多个轨迹。在一些情况下,规划部件208可以在多个轨迹上进行基于成本的搜索(或用于识别控制自动驾驶车辆102的运动的合适的轨迹的其他任何合适算法)以识别主轨迹116以传输到辅助系统108。

在示例中,规划部件208可以生成辅助轨迹118和/或将辅助轨迹118发送给辅助系统108。例如,规划部件208可以生成多个临时轨迹并将临时轨迹中的一个选择为辅助轨迹118。辅助轨迹118可以表示备用轨迹,该备用轨迹在主轨迹116无效或以其他方式不可接受的情况下使用。辅助轨迹118可以与主轨迹116不同。在一个示例中,主轨迹116可以使自动驾驶车辆102加速或维持特定速度,而辅助轨迹118可以使自动驾驶车辆102减速至停止,诸如平缓停止(如下所述)。在另一个示例中,主轨迹116可以使自动驾驶车辆102做出车道改变,而辅助轨迹118可以使自动驾驶车辆102保持在同一车道中。在又一个示例中,主轨迹116可以使自动驾驶车辆102保持当前速度和转向角度,而辅助轨迹118可以使自动驾驶车辆102靠边停车到道路路肩上。

在示例中,平缓停止可以包括以特定速率制动,诸如以预定速率,小于第一速率(例如,最大制动速率)的速率,大于第二速率(例如,最小制动速率)的速率,多个可用速率中基本上位于中间的速率(例如,五个速率中的第三速率),多个速率中的最小速率等。减速度率可以指的随时间的测量单位,例如每平方秒米或英尺。在一个示例中,平缓停止可以包括以每平方秒5或10英尺的速率减速直到自动驾驶车辆102停止。

尽管在许多示例中将定位部件202、感知部件204和预测部件206讨论为彼此(或向主系统106的其他部件)提供输出,但是,在一些示例中,这些部件中的任何部件都可以向辅助系统108提供输出。

如所示,辅助系统108包括定位部件210,感知/预测部件212,轨迹管理部件128和监测部件214。在示例中,定位部件210,感知/预测部件212,轨迹管理部件128和/或监测部件214可以实现基于物理和/或统计(例如,自动驾驶车辆102和/或车辆周围物体的定位、速度、加速度等)的模型。在一些示例中,这种模型可以合并概率模型。例如,辅助系统108可以实现卡尔曼滤波器(也称为线性二次估计(LQE))(例如,扩展卡尔曼滤波器(EKF),无迹卡尔曼滤波器(UKF)等),粒子滤波器,贝叶斯过滤器等。为了说明,感知/预测部件212可以实现卡尔曼滤波器或粒子滤波器。在一些示例中,与主系统106相反,辅助系统108可以以这种方式进行配置以排除机器学习模型的使用或减少机器学习模型的数量。在其他示例中,辅助系统108可以包括与主系统106的那些模型(相似或相同模型)不同的一个或多个机器学习模型。在一些示例中,辅助系统108可以使用与主系统106不同的硬件(例如,处理器和存储器)。

在示例中,辅助系统108可以被设计为减轻计算负担和/或以更高完整性水平操作。例如,通过依赖更少的传感器数据,辅助系统108的处理管线可以更简单,包括更简单管线部件,总体上包括更少管线部件,输出更少数据,和/或排除和/或限制对机器学习模型的使用。在一些情况下,辅助系统108可以通过实现严格操作公差而是“高完整性”系统和/或具有被检查(验证)的能力。在示例中,与主系统106相比,辅助系统108可以具有更高级别可靠性和/或可验证性。例如,辅助系统108的子部件的输出可以被认证为以完全准确或接近完全准确(例如,场景中的99.99%或更高)进行操作。在一些示例中,辅助系统108可以包括车辆安全完整性等级(ASIL)D认证。

定位部件210可以处理来自一个或多个传感器104的传感器数据120以确定自动驾驶车辆102的位置和/或定位(统称为姿态)中的一个或多个。本文中,位置和/或定位可以是相对于自动驾驶车辆102所处的环境中的一个或多个点和/或物体的。在示例中,定向可以包括自动驾驶车辆102相对于参考平面和/或相对于一个或多个点和/或物体的偏航、侧倾和/或俯仰的指示。在示例中,定位部件210可以执行比主系统106的定位部件202更少的处理(例如,更高级别本地化)。例如,定位部件210可以不确定自动驾驶车辆102相对于地图的姿态,而仅确定自动驾驶车辆102相对于在自动驾驶车辆102周围检测到的物体和/或表面的自动驾驶车辆102的姿态(例如,本地位置而不是全局位置)和/或相对于自动驾驶车辆102的先前姿态的姿态。可以利用传感器数据120中的一些或全部通过例如使用概率滤波技术,例如,诸如贝叶斯滤波器(卡尔曼滤波器,扩展卡尔曼滤波器,无迹卡尔曼滤波器等)来确定这种位置和/或定向。

定位部件210可以将自动驾驶车辆102的位置和/或定向提供给辅助系统108的各个部件,诸如感知/预测部件212,轨迹管理部件128等。

感知/预测部件212可以包括执行物体检测、物体分割、物体分类、径迹确定和/或预测每个物体的一个或多个轨迹(例如,包括不确定性)等的功能。在一些示例中,感知/预测部件212可以将来自一个或多个传感器104中的一个或多个的传感器数据120,来自定位部件210的自动驾驶车辆102的姿态,指示自动驾驶车辆102的运动方向的数据,指示自动驾驶车辆102的速度的数据,指示自动驾驶车辆102的加速度的数据,指示自动驾驶车辆102的偏航角速率的数据,指示偏航加速表的数据和/或表示自动驾驶车辆102的转向角度的数据接收作为输入数据。此外,在一些示例中,感知/预测部件212可以将来自主系统106数据接收作为输入数据,诸如来自感知部件204的主物体列表,自动驾驶车辆102的姿态,由主系统106确定的一个或多个物体径迹等。如上所述,来自主系统106的物体列表可以包括主感知数据,经处理传感器数据,关于物体的径迹/轨迹的数据等。在这种示例中,感知/预测部件212可以执行数据关联(例如,通过使用概率滤波器,聚类,最近点分析等)以将传感器数据与径迹相关联。

感知/预测部件212可以处理输入数据以确定辅助感知数据。辅助感知数据可以指示自动驾驶车辆102附近的物体的存在,与物体关联的一个或多个特征等。在此,与物体相关的一个或多个特征可以包括物体相对于自动驾驶车辆102的位置,物体相对于自动驾驶车辆102的定向、物体的速度、物体的加速度、物体的范围(物体的大小)等。在许多示例中,辅助感知数据中包括的特征不包括物体的分类(例如,语义标签)。但是在一些示例中,辅助感知数据可以指示分类。

感知/预测部件212还可以处理输入数据以确定物体的一个或多个径迹。如上所述,物体的径迹可以包括历史位置、速度、加速度和/或定向等。在一个示例中,感知/预测部件212可以确定在第一时间环境中的物体,确定在第二时间环境中的物体,确定在第一时间和第二时间物体的重叠,并生成物体的径迹。在另一个示例中,感知/预测部件212可以确定在第一时间物体的速度,将物体的预测运动与在第二时间物体的捕获数据进行比较,确定重叠,并生成该物体的径迹。感知/预测部件212可以确定在自动驾驶车辆102周围检测到的每个物体的径迹。在一些示例中,感知/预测部件212可以独立于从主系统106接收的数据来确定物体的径迹(例如,将不使用从主系统106接收的主物体列表和/或自动驾驶车辆102的姿态)。但在其他示例中,感知/预测部件212可以使用从主系统106接收的数据。

感知/预测部件212还可处理输入数据以确定物体的一个或多个预测轨迹。例如,基于物体的当前位置和物体在几秒钟的时间段内的速度,感知/预测部件212可以预测物体将在接下来的几秒钟内移动的路径。在一些示例中,这种预测路径可包括使用给定位置、定向、速度和/或定向的运动的线性假设,例如使用直线近似。在其他示例中,这种预测路径可以包含更复杂的分析,例如使用扩展卡尔曼滤波器(EKF)传播,物体行为模型或其他预测技术。

感知/预测部件212可以将辅助感知数据和/或关于物体(例如,径迹,轨迹等)的数据输出到轨迹管理部件128和/或辅助系统108的任何其他部件。在示例中,辅助感知数据和/或物体的数据在辅助物体列表中表示。例如,物体列表可以针对每个物体指示物体的一个或多个特征和/或物体的径迹/轨迹。在示例中,感知/预测部件212可以将辅助感知数据和/或关于物体的数据输出到主系统106。

为了便于说明,用单个框示出了感知/预测部件212(以及主系统106和辅助系统108的其他部件)。然而,感知/预测部件212(和/或主系统106和辅助系统108的其他部件)可以被实现为任意数量的块,每个块位于一个或多个系统或子系统中。

轨迹管理部件128可以评估主系统106并且如果检测到问题则接管对自动驾驶车辆102的控制。例如,轨迹管理部件128可以评估主轨迹116和/或辅助轨迹118以确定是否应当使用主轨迹116和/或辅助轨迹118,或者应当使用其他轨迹。如图所示,轨迹管理部件128可以包括碰撞检测部件216(1)-(2),轨迹验证部件218(1)-(3),轨迹选择部件220以及释放部件222。

碰撞检测部件216可以评估主轨迹116和辅助轨迹118以检测潜在的碰撞。例如,碰撞检测部件216(1)可以确定主轨迹116是否与物体的预测轨迹相交(例如,由感知/预测部件212确定)以及物体和自动驾驶车辆102是否会在同一时间(或某个时间段)在交点处相遇。可以针对检测到的任意数量的物体重复这些确定。此外,这种确定可以附加地或替代地包括关于自动驾驶车辆102的轨迹中一个或多个的不确定性的信息以及物体的轨迹中的一个或多个的不确定性的信息。碰撞检测部件216(2)可以确定辅助轨迹118是否与一个或多个物体的预测轨迹相交(例如,由感知/预测部件212确定)(和/或达到或超过碰撞阈值确定性),以及物体和自动驾驶车辆102是否会在同一时间(或时间窗口)在交点处相遇。

碰撞检测部件216可以检测自动驾驶车辆102的轨迹是否与自动驾驶车辆102检测到的任意数量的物体在当前或未来的时间相交。在一些情况下,这可以包括确定预测物体轨迹是否与车辆轨迹相交和/或处于彼此的阈值距离内(例如,接近位置),确定沿预测物体轨迹的物体和沿车辆轨迹的自动驾驶车辆102是否会在同一时间或在时间窗口内在任意交点或接近位置处相遇,和/或确定物体的边界框是否与自动驾驶车辆102的边界框在任何交点或接近位置处重叠。此外,在示例中,可以利用每个边界框(例如,表示已被放大特定量的边界框的安全边界框,诸如通过调整边界框的长度/宽度/高度)周围的安全裕度执行相同过程。边界框可以表示物体的空间位置、定向和/或大小(例如,范围)。例如,边界框可以是由八个角(例如,长方体)定义的并且具有位置,定向,长度,宽度和/或高度的物体的表示。在示例中,边界框可以是包围物体的最小体积的长方体。

碰撞检测部件216可以将指示碰撞的一个或多个检测的数据提供给轨迹验证部件218。此外,如图所示,碰撞检测部件216(1)可以将主轨迹116(显示为“PT 116”)传递到轨迹验证部件218(1)。碰撞检测部件216(2)可以将辅助轨迹118(显示为“ST 118”)传递到轨迹验证部件218(2)和轨迹验证部件218(3)。

尽管在图2中示出了两个碰撞检测部件216,但是可以实现任何数量的碰撞检测部件216,例如单个碰撞检测部件216,多于两个碰撞检测部件216(例如,用于其他主/辅助轨迹)等。

在示例中,轨迹验证部件218可以执行一个或多个验证操作以确定轨迹是否有效。在一些示例中,轨迹验证部件218(1)可以通过执行下面参考图3讨论的一个或多个验证操作来确定主轨迹116是否有效。此外,在一些示例中,轨迹验证部件218(2)可以通过执行下面参考图4讨论的一个或多个验证操作来确定辅助轨迹118是否有效。

此外,在一些示例中,轨迹验证部件218(3)可以确定辅助轨迹118是否有效。如果辅助轨迹118是无效的,则轨迹验证部件218(3)可以生成另一轨迹并确定另一轨迹是否有效。由轨迹验证部件218(3)生成的轨迹可包括碰撞避免轨迹,该碰撞避免轨迹使自动驾驶车辆102减速至停止以试图避免或减轻潜在的碰撞。例如,碰撞避免轨迹可以包括沿着辅助轨迹118(在一些情况下,或者沿着主轨迹116)的减速。在一些示例中,碰撞避免轨迹可以包括对辅助轨迹118的扰动以便减轻在辅助轨迹118中检测到的任何潜在的碰撞。轨迹验证部件218(3)可以基于关于自动驾驶车辆102的姿态的信息(例如,由定位部件210提供)、关于一个或多个物体的信息(例如,由感知/预测部件212提供的径迹或轨迹信息)、由主系统106提供的信息和/或辅助系统108可用的任何其他信息来生成碰撞避免轨迹。在一些示例中,轨迹验证部件218(3)可以执行下面参考图5讨论的验证操作中的一个或多个。

轨迹验证部件218可以将指示轨迹的有效性的数据输出到轨迹选择部件220。例如,轨迹验证部件218(1)可以确定表示主轨迹116是有效还是无效的主轨迹116的状态并将该状态输出到轨迹选择部件220。此外,轨迹验证部件218(2)可以确定指示辅助轨迹118是有效还是无效的辅助轨迹118的状态并将该状态输出到轨迹选择部件220。此外,轨迹验证部件218(3)可以确定碰撞避免轨迹(例如,修改后的辅助轨迹118或辅助轨迹118)的状态并将该状态输出到轨迹选择部件220。

尽管在图2中示出了三个轨迹验证部件218,但是,可以实现任何数量的轨迹验证部件218,诸如单个轨迹验证部件218,多于三个轨迹验证部件218(例如,用于其他轨迹)等。

在示例中,轨迹管理部件128可以向规划部件208(或主系统106的另一部件)提供指示轨迹的状态(例如,有效或无效)的消息。例如,轨迹验证部件218中的一个或多个可以向规划部件208发送指示轨迹是有效还是无效的消息。在示例中,消息可以指示碰撞时间,与潜在碰撞相关的物体的范围,物体的速度,物体的位置或碰撞点(例如,检测到碰撞的位置)中的一个或多个。

轨迹选择部件220可以确定输出轨迹以发送给一个或多个系统控制器110。轨迹选择部件220通常可以选择主轨迹116、辅助轨迹118、碰撞避免轨迹(或由辅助系统108提供的另一轨迹)和/或最大减速轨迹。这种选择可以基于由轨迹验证部件218提供的一个或多个轨迹的一个或多个状态。主轨迹116可以具有比辅助轨迹118更高的级别,辅助轨迹118可以具有比碰撞避免轨迹更高的级别,并且碰撞避免轨迹可以具有比最大减速轨迹更高的级别。在许多示例中,与更高级别的轨迹相比,更低级别的轨迹可以与更高减速度率相关联。例如,相比于辅助轨迹118,碰撞避免轨迹可以与更高减速度率(例如,每秒更多英尺)相关联。轨迹选择部件220通常可以选择有效的最高级别轨迹。这可以允许自动驾驶车辆102以最小的减速度量减速以避免碰撞并且为乘客提供相对舒适的乘坐。

在示例中,最大减速轨迹(也称为硬停止或紧急停止)可以包括以特定速率进行制动,诸如,预定速率、大于阈值(例如,最大制动速率)的速率,多个可用速率中的最大速率的速率等。在一个示例中,最大减速轨迹可以包括以每秒15或20英尺的速率减速直到自动驾驶车辆102停止。

在示例中,当主轨迹116有效时,轨迹选择部件220可以选择主轨迹116作为输出轨迹。如果主轨迹116是无效的,则轨迹选择部件220可以选择辅助轨迹118作为输出轨迹。如果主轨迹116和辅助轨迹118都无效,则轨迹选择部件220可以选择碰撞避免轨迹作为输出轨迹。如果主轨迹116,辅助轨迹118和碰撞避免轨迹均无效,则轨迹选择部件220可以选择最大减速轨迹。一旦轨迹选择部件220选择了轨迹,则轨迹选择部件220就可以向驱动器管理部件224(或图1的一个或多个系统控制器110)发送指示该轨迹用于控制自动驾驶车辆102的信号。

在示例中,如果输出轨迹与减速度相关联,则轨迹选择部件220可以将信号发送到自动驾驶车辆102的另一部件以为这种减速度做准备。例如,如果由于可能的碰撞而选择了最大减速轨迹,则轨迹选择部件220可以输出信号以警告其他部件,使得其他部件可以为碰撞作准备(例如,预张紧安全带、准备展开安全气囊等)。

在示例中,轨迹选择部件220维持指示所选轨迹(例如,输出轨迹)的数据。例如,轨迹选择部件220可以维持在分别与轨迹相关联的状态之间进行过渡的状态机。下面参考图6讨论可以由轨迹选择部件220实现的示例性状态。在示例中,轨迹选择部件220可以过渡到更低级别状态并且可以不过渡到更高级别状态直到接收到信号以从更低级别状态释放控制位置。

释放部件222可将信号发送到轨迹选择部件220以从当前状态释放控制(例如,从轨迹释放控制)。在一个示例中,远程系统可以向辅助系统108提供信号以从当前状态释放控制,并且作为响应,释放部件222可以向轨迹选择部件220发送信号以从当前状态释放控制。远程系统可以包括自动化系统,与操作员(例如,用户)相关联的远程操作系统和/或另一实体。当出现诸如自动驾驶车辆102的行驶中断(例如,意外停止)的问题时,操作员可以帮助管理自动驾驶车辆102。在一个说明中,在过渡到与除主轨迹116以外的轨迹相关联的状态时,操作员可以与自动驾驶车辆102中的乘客通信,分析与自动驾驶车辆102相关联的数据等,以确定自动驾驶车辆102是否畅通以恢复正常操作(或过渡到不同状态)。在此,当操作者确定自动驾驶车辆102畅通以恢复正常操作(或过渡为不同状态)时,操作者可以使信号被发送到辅助系统108以从当前状态释放控制。在另一示例中,自动驾驶车辆102的部件可以执行处理以确定自动驾驶车辆102是畅通以恢复正常操作(或过渡到不同状态)并且向释放部件222发送信号以从当前状态释放控制。

监测部件214可以监测自动驾驶车辆102的主系统106、辅助系统108和/或其他部件,以确定是否存在错误。在许多示例中,监测部件214可以比轨迹管理部件128更全局地监测主系统106(例如,监测全局车辆状态信息而不只是轨迹)。在示例中,如果主系统106、辅助系统108和/或其他部件存在硬件和/或软件故障(例如,自动驾驶车辆102的一个或多个传感器104、致动器或任何其他部件的故障),如果对主系统106,辅助系统108和/或另一个部件的供能中断,如果一段时间未从主系统106,辅助系统108和/或另一个部件接收到信号(例如,长于一段时间,指示主要系统106发生问题)等,则监测部件214可以确定已经发生了错误。这种确定可以基于来自主系统106的信号,来自主系统106/辅助系统108的部件的信号,来自驱动器管理部件224(或致动器(刹车、转向等),其可以与驱动器管理器部件224通信)的信号,和/或来自服务提供商(例如,远程设备)的指示硬件或软件故障的信号(例如,诊断信息)。另外地或可替代地,这种确定可以基于来自自动驾驶车辆102的电池或与提供电力相关的其他部件的信号,该信号指示是否正在向主系统106/辅助系统108(或主系统106/辅助系统108的部件)提供电力。如图2所示,监测部件214可以从驱动器管理器部件224接收信号。这种信号可以指示驱动器管理器部件224和/或与驱动器管理器部件224通信的部件(例如,致动器)的错误。此外,监测部件214可以与规划部件208通信以接收指示规划部件208发生错误的信号和/或发送关于监测的信息(例如,自动驾驶车辆102的指示发生了错误的状态)。

如果监测部件214确定主系统106错误,则监测部件214可以将指示这种错误的信号发送到轨迹管理部件128(例如,轨迹选择部件220)。如果自动驾驶车辆102尚未由与减速度相关的轨迹(例如,辅助轨迹118,碰撞避免轨迹或最大减速轨迹)控制,则轨迹选择部件220可以选择与减速度相关的轨迹并向系统控制器110发送信号以控制自动驾驶车辆102(例如,停止)。

驱动器管理部件224可以接收轨迹(例如,来自轨迹选择部件220)和/或生成命令/指令以控制自动驾驶车辆102。例如,驱动器管理部件224可以控制自动驾驶车辆102的转向,推进,制动,安全性,发射器,通信和/或其他系统。在一些情况下,驱动器管理部件224可以将所选轨迹过渡为一个或多个驱动系统可用的指令以使自动驾驶车辆102穿越该轨迹。在示例中,驱动器管理部件224代替或协同一个或多个系统控制器110而实现。此外,在示例中,驱动器管理部件224可以由一个或多个系统控制器110代替。在示例中,驱动器管理部件224从定位部件210接收姿态信息。此外,驱动器管理器部件224可以向监测器部件214提供数据,诸如指示致动器错误的致动器诊断数据。

在一些示例中,辅助系统108或另一系统对传感器数据120执行地面去除技术。这可以在辅助系统108的部件使用传感器数据120之前发生。例如,辅助系统108可以分析LIDAR数据或与LIDAR数据关联的体素数据,以确定LIDAR数据或体素是否代表地面。在一些情况下,地面可以对应于车辆可行驶的表面。在一些示例中,辅助系统108可以确定在携带LIDAR系统的设备的高度维度上的矢量(例如,参考方向)与法向矢量(例如可基于据每个体素的特征值分解来确定)之间的内积,这些矢量以通用坐标系表示。在这样的示例中,例如,内积达到或超过大约15度的阈值可以指示体素不包括地面。而内积小于阈值,则可表明体素包含地面。此外,在一些示例中,辅助系统108可以将被确定为局部平坦体素的体素进行聚集以生长与地面相对应的表面。在示例中,一旦在传感器数据中识别出地面,就可以从传感器数据移除与地面相关的数据并且可以处理剩余的数据(例如,物体检测、分割、分类等)。在一些示例中,主系统106,辅助系统108和/或另一个系统可以执行美国专利申请于2017年6月14日提交的题为“基于体素的地平面估计和物体分割”的美国专利第15/622,905号中讨论的地面去除技术,其全部内容通过引用合并于此。

主系统106和/或辅助系统108的部件可以代表硬件和/或软件部件。在软件的背景中,一个或多个部件可以包括可由一个或多个处理器执行的指令。在硬件的背景中,一个或多个部件可以被实现为集成电路(例如,专用集成电路(ASIC)等),门阵列(例如,现场可编程门阵列(FPGA)等)等。在至少一些示例中,主系统106和辅助系统108的硬件和软件两者可以不同。

图3、4和5示出了用于执行一个或多个验证操作的示例性过程300、400和500。过程300、400和500被示为逻辑流程图,其每个操作表示可以以硬件,软件或其组合来实现的操作序列。在软件的背景中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程,程序,物体,部件,数据结构等。描述操作的顺序不旨在被理解为限制并且可以以任何顺序和/或并行地组合任意数量的所述操作以实现处理。过程300、400和/或500可以由任何装置或部件执行,诸如自动驾驶车辆102,服务提供商(例如,服务提供商的计算设备)或任何其他装置。

图3示出了确定车辆的轨迹是有效还是无效的示例性过程300。在一些示例中,可以针对主轨迹执行过程300。例如,过程300可以由图2的轨迹验证部件218(1)执行。在其他示例中,可以针对其他轨迹(诸如,辅助轨迹,碰撞避免轨迹和/或任何其他轨迹)执行过程300。

在操作302中,系统可以确定车辆的轨迹是否在小于阈值时间量(例如,从当前时间起阈值时间量)之前生成。例如,系统可以参考当前时间和生成轨迹的时间(例如,根据与轨迹相关的数据和/或根据数据存储中的数据)。如果系统确定轨迹在小于阈值时间量之前产生(例如,指示轨迹不旧),则过程300可以进行到操作304。可替换地,如果系统确定轨迹并非在短于阈值时间量之前生成(例如,表明轨迹是旧的),则过程300可以进行到操作306。

在操作304,系统可以确定轨迹是否与车辆的当前或先前姿态一致。例如,系统可以确定轨迹是否会对当前姿态和/或一个或多个先前姿态引发大于改变阈值量(例如,大于定向,位置,航向等改变阈值量)。在一些情况下,可以将轨迹与多个先前轨迹(例如最后三个轨迹)进行比较,以确定与每个先前轨迹相比是否存在大于改变阈值量。该系统可以随着时间存储轨迹,使得可以参考一个或多个先前轨迹。如果系统确定轨迹与车辆的当前或先前姿态一致,则过程300可以进行到操作308。可替代地,如果系统确定轨迹与车辆的当前或先前姿态不一致,则过程300可以进行到操作306。

在操作308中,系统可以确定轨迹是否与车辆的一个或多个能力兼容。车辆的能力可以基于自动驾驶车辆102的硬件和/或软件部件和/或那些部件的限制。在一个示例中,系统可以识别自动驾驶车辆102的能力,诸如最大转向角度,从一个转向角改变为另一转向角的时间量,最大加速度等等。如果轨迹需要超过最大转向角度的变化,要求转向的变化快于进行转向角度调整所需的时间量和/或要求加速度大于最大加速度,则系统可以确定轨迹与车辆的能力不兼容。如果系统确定该轨迹与车辆的一个或多个能力兼容,则过程300可以进行到操作310。可替代地,如果系统确定该轨迹与车辆的一个或多个能力不兼容,则该过程300可以进行到操作306。

在操作310中,系统可以确定轨迹是否没有碰撞。例如,系统可以确定沿着车辆轨迹移动的车辆是否将与沿着物体轨迹移动的物体碰撞。如果是,则该轨迹与碰撞相关联。在一些示例中,系统可以确定车辆与物体碰撞的概率并确定该概率是否达到或超过概率阈值。如果概率达到或超过概率阈值,则系统可以确定车辆将与物体碰撞。在示例中,可以对在车辆周围检测到的每个物体执行操作310(例如,以检查一个或多个碰撞)。

如果系统确定轨迹是无碰撞的,则过程300可以进行到操作312。可替代地,如果系统确定轨迹不是无碰撞的(例如,与碰撞相关联),则过程300可以进行到操作314。

在操作314,系统可以确定碰撞是否会在超过阈值时间量内发生。例如,系统可以确定与物体碰撞之前的最后一秒制动(TTLSB)的时间。最后一秒制动的时间可能是车辆需要启动最大减速度轨迹以避免与物体碰撞的最后可能时间。如果最后一秒制动的时间在将来相对较远(例如,超过阈值时间量),则车辆可能会有时间校正轨迹并避免启动最大减速轨迹。也就是说,系统还不需要启动最大减速轨迹。为了说明,如果到物体的最后一秒制动的时间是十毫秒,则系统可以确定碰撞将在小于阈值时间量内发生。相反,如果到最后一秒制动的时间是两秒钟,则系统可以确定碰撞将在超过阈值时间量内发生。在示例中,系统可以评估与车辆周围的每个物体(例如,物体列表中的每个物体)的潜在碰撞。

如果系统确定碰撞将在大于阈值时间量内发生(例如,在最后一秒制动的时间之前还有时间),则过程300可以进行到操作316。可替代地,如果系统确定碰撞将在阈值时间量或小于阈值时间量内发生,则过程300可以进行到操作306。

在操作306中,系统可以确定轨迹无效。在示例中,系统可以更新轨迹的状态以指示轨迹无效。在一些情况下,状态可以指示为什么轨迹无效(例如,与碰撞相关,发生碰撞的时间,与车辆的当前/先前姿态不一致,与车辆的能力不兼容等等)。

在一些示例中,过程300可以在执行操作306之后进行到操作318。在操作318中,系统可以发送指示轨迹无效的消息。例如,该系统可以是辅助系统并且将该消息发送到主系统以通知该主系统由该主系统生成的轨迹是无效的。在示例中,消息可以指示为什么轨迹无效。

在操作316中,系统可以发送指示轨迹与碰撞相关联的消息。例如,该系统可以是辅助系统并且将该消息发送到主系统以通知主系统由主系统生成的轨迹将来与碰撞相关联。在示例中,消息可以指示碰撞时间、与潜在碰撞相关联的物体的范围、物体的速度、物体的位置或碰撞点(例如,检测到碰撞的位置)中的一个或多个。

在操作312中,系统可以确定轨迹是有效的和/或可以存储轨迹。在示例中,系统可以更新轨迹的状态以指示轨迹是有效的(例如,无碰撞等)。

在一个示例中,在11:30:40AM处,如果使用正在评估的轨迹,则系统可以确定车辆将在五秒内(在11:30:45AM处)与物体碰撞。系统还可确定停止车辆(例如,以最大减速轨迹)并避免与物体碰撞所需的时间为三秒(例如,基于车辆和/或物体的速度)。系统可以使用这种信息来确定车辆需要启动最大减速轨迹以避免碰撞的最后可能时间(也称为最后一秒制动时间(TTLSB))。在此示例中,最后一秒制动时间为11:30:42AM。在此,系统可以确定碰撞将在超过阈值时间量内发生,发送指示这种情况的消息,并将该轨迹指定为当前有效。在11:30:42AM(未来两秒),系统可以确定车辆是否存在潜在的碰撞(例如,基于轨迹或新轨迹,车辆仍在与物体发生碰撞的行程中)。如果检测到潜在的碰撞,则系统可以启动最大减速轨迹(或其他操纵)以避免碰撞。

图4示出了确定车辆的轨迹是有效还是无效的示例性过程400。在一些示例中,过程400可以通过图2的轨迹验证部件218(2)执行。在其他示例中,过程400可以由其他部件和/或针对其他轨迹执行。

在操作402中,系统可以确定是否车辆的辅助轨迹在小于阈值时间量之前生成。例如,系统可以确定当前由主系统输出的辅助轨迹是否在小于阈值时间量之前生成。如果系统确定辅助轨迹在小于阈值时间量之前生成,则过程400可以进行到操作404。可替代地,如果系统确定辅助轨迹不是在小于阈值时间量之前生成,过程400可以进行到操作406。

在操作404中,系统可以选择要评估的轨迹。在一个示例中,如果当前正在使用主轨迹来控制车辆,则系统可以选择在操作402处通过评估的辅助轨迹(例如,辅助轨迹在小于阈值时间量之前生成)。在另一示例中,如果正在使用的当前轨迹具有比主轨迹低的级别(例如,辅助轨迹,碰撞避免轨迹或任何其他更低级别轨迹)并且已经接收到释放信号以将控制释放至主轨迹,则系统可以选择在操作402处通过评估的辅助轨迹。在又一示例中,如果尚未接收到释放信号以从先前辅助轨迹释放控制,则系统可以选择先前辅助轨迹。

这样,在操作404中,系统可以选择先前存储的辅助轨迹或当前从主系统输出的辅助轨迹。为此,系统可以确定所选状态(例如,主轨迹状态,辅助轨迹状态,碰撞避免轨迹状态等)并确定是否已经接收到释放信号以将控制释放到更高级别轨迹。例如,如果先前未将另一辅助轨迹锁存或已经接收到释放信号,则可以选择当前由主系统正在输出的辅助轨迹。此外,如果这种辅助轨迹已经被锁存并且尚未接收到释放信号,则可以选择先前由主系统输出的辅助轨迹。

在操作408中,系统可以确定所选轨迹是否与车辆的当前或先前姿态一致。如果系统确定所选轨迹与车辆的当前或先前姿态一致,则过程400可以进行到操作410。可替代地,如果系统确定轨迹与车辆的当前或先前姿态不一致,则过程400可以进行到操作406。

在操作410中,系统可以确定所选轨迹是否与车辆的一个或多个能力兼容。如果系统确定所选轨迹与车辆的一个或多个能力兼容,则过程400可以进行到操作412。可替代地,如果系统确定所选轨迹与车辆的一个或多个能力不兼容,则过程400可以进行到操作406。

在操作412中,系统可以确定轨迹是否没有碰撞。如果系统确定轨迹是无碰撞的,则过程400可以进行到操作414。可替代地,如果系统确定轨迹不是无碰撞的(例如,与碰撞相关联),则过程400可以进行到操作416。

在操作416中,系统可以确定碰撞是否将在超过阈值时间量内发生。如果系统确定碰撞将在超过阈值时间量内发生(例如,在距离最后一秒制动时间之前还有时间),则过程400可以进行到操作414。在一些示例中,当沿着路线进行到操作414时,类似于图3中的操作316,系统可以发送指示轨迹与碰撞相关联的消息。可替代地,如果系统确定碰撞将在阈值时间量内或小于阈值时间量内发生,则过程400可以进行到操作406。

在操作406中,系统可以确定所选轨迹是无效的。在示例中,系统可以更新所选轨迹的状态以指示所选轨迹是无效的。在一些情况下,状态可以指示为什么所选轨迹无效。

在一些示例中,过程400可以在执行操作406之后进行到操作418。在操作418中,系统可以发送指示轨迹无效的消息。例如,该系统可以是辅助系统并将消息发送到主系统以通知主系统由主系统生成的轨迹无效。在示例中,消息可以指示为什么轨迹无效。

在操作414,系统可以确定所选轨迹是有效的和/或可以存储所选轨迹。在示例中,系统可以更新所选轨迹的状态以指示所选轨迹是有效的。在至少一些示例中,还可以将指示辅助轨迹有效的这种确定发送到主系统。

图5示出了确定车辆的轨迹是有效还是无效的示例性过程500。在一些示例中,过程500可以由图2的轨迹验证部件218(3)执行。在其他示例中,过程500可以由其他部件和/或针对其他轨迹执行。

在操作502中,系统可以确定车辆的辅助轨迹是否在小于阈值时间量之前生成。例如,系统可以确定当前由主系统输出的辅助轨迹是否在小于阈值时间量之前生成。如果系统确定辅助轨迹在小于阈值时间量之前生成,则过程500可以进行到操作504。可选地,如果系统确定辅助轨迹不是在小于阈值时间量之前生成,则过程500可以进行到操作506。

在操作504,系统可以选择要评估的轨迹。在一个示例中,如果当前正在使用主轨迹来控制车辆,则系统可以选择在操作502处通过评估的辅助轨迹(例如,辅助轨迹在小于阈值时间量之前产生)。在另一示例中,如果正在使用的当前轨迹具有比主轨迹更低的级别(例如,辅助轨迹,碰撞避免轨迹或任何其他更低级别的轨迹)并且已经接收到释放信号以将控制释放至主轨迹,则系统可以选择在操作502处通过评估的辅助轨迹。在又一示例中,如果尚未接收到释放信号以从先前碰撞避免轨迹释放控制,则系统可以选择先前碰撞避免轨迹。

这样,在操作504中,系统可以选择先前存储的碰撞避免轨迹或当前从主系统输出的辅助轨迹。为此,系统可以确定所选状态(例如,主轨迹状态,辅助轨迹状态,碰撞避免轨迹状态等)并确定是否已接收到释放信号以将控制释放到更高级别轨迹。例如,如果先前未将另一辅助轨迹锁存,已接收到释放信号,或者系统以其他方式确定应忽略其他更新(例如,系统可能无法验证其他辅助轨迹的完整性),则可以选择主系统当前正在输出的辅助轨迹。进一步地,如果这种碰撞避免轨迹已经被锁存并且尚未接收到释放信号,则可以选择先前碰撞避免轨迹。在一些示例中,碰撞避免轨迹(由过程500确定/输出,如下文所讨论)可以是辅助轨迹。在其他示例中,碰撞避免轨迹(由过程500确定/输出)可以是修改的辅助轨迹。

在操作508中,系统可以确定所选轨迹是否与车辆的当前或先前姿态一致。如果系统确定所选轨迹与车辆的当前或先前姿态一致,则过程500可以进行到操作510。可替代地,如果系统确定轨迹与车辆的当前或先前姿态不一致,则过程500可以进行到操作506。

在操作510中,系统可以确定所选轨迹是否与车辆的一个或多个能力兼容。如果系统确定所选轨迹与车辆的一个或多个能力兼容,则过程500可以进行到操作512。可替代地,如果系统确定所选轨迹与车辆的一个或多个能力不兼容,则过程500可以进行到操作506。

在操作512中,系统可以确定轨迹是否没有碰撞。如果系统确定轨迹是无碰撞的,则过程500可以进行到操作514。可替代地,如果系统确定轨迹不是无碰撞的(例如,与碰撞相关联),则过程500可以进行到操作516。

在操作516中,系统可以确定碰撞是否将在超过阈值时间量内发生。如果系统确定碰撞将在超过阈值时间量内发生(例如,在距离最后一秒制动的时间之前还有时间),则过程500可以进行到操作514。可替代地,如果系统确定碰撞将在阈值时间量或小于阈值时间量内发生,则过程500可进行到操作506。

尽管在图5中示出,但是在一些示例中,可以不执行操作516。例如,如果轨迹与碰撞相关联,则过程500可以进行到操作506。

在操作514中,系统可以确定所选轨迹是有效的和/或可以存储所选轨迹。在示例中,系统可以更新所选轨迹的状态以指示所选轨迹是有效的。

在操作506中,系统可以确定是否满足迭代极限(有时称为极限)。可以使用迭代极限,使得如果系统在多次迭代中无法确定可接受碰撞避免轨迹,则将碰撞避免轨迹视为无效。这可以限制尝试找到可接受碰撞避免轨迹所花费的时间量。在示例中,迭代极限可以基于最后一秒制动的时间(例如,设置为在到最后一秒制动的时间之前可以达到的迭代数量)。在示例中,在每次迭代中,执行操作520。

如果系统确定满足迭代极限,则过程500可以进行到操作518。可替代地,如果系统确定不满足迭代极限,则过程500可以进行到操作520。

在操作520,系统可以修改所选轨迹并返回以执行操作508等。在一些示例中,系统可以增加使车辆在与物体碰撞之前停止所需的减速度量。这可以基于车辆的当前速度、物体的预测轨迹和/或物体的当前或预测速度。可替代地或附加地,系统可以以另一种方式来修改所选轨迹,诸如通过改变转向角度、增加加速度等。这也可以避免与物体的碰撞。在示例中,修改所选轨迹可以创建碰撞避免轨迹。

在操作518中,系统可以确定所选轨迹是无效的。在示例中,系统可以更新所选轨迹的状态以指示所选轨迹是无效的。在一些情况下,状态可以指示为什么所选轨迹无效。

在一些示例中,过程500可以在执行操作518之后进行到操作522。在操作522中,系统可以发送指示所选轨迹无效的消息。例如,该系统可以是辅助系统并且将该消息发送到主系统以通知主系统轨迹无效。在示例中,消息可以指示为什么轨迹无效。

在示例中,在操作514处被确定为有效的轨迹可以是辅助轨迹,而没有在操作520处施加任何减速度(或其他修改)。例如,如果由于辅助轨迹在操作508、510和512处通过了检查而不需要修改在操作504处选择的辅助轨迹,则辅助轨迹可以由过程500确定/输出。在其他示例中,在操作514处被确定为有效的轨迹可以是应用了减速度(或其他修改)辅助轨迹。在示例中,通过执行过程500确定/输出(和/或存储以供将来参考)的任何一种轨迹都可以被称为碰撞避免轨迹。

在示例中,如果将最大减速度/修改量应用于所选轨迹(例如,鉴于车辆的能力并通过执行操作520一次或多次)并且所选轨迹仍与碰撞相关联,则系统可以无视检测到的碰撞并且进行到在操作514处确定所选轨迹是有效的。这可以允许使用修改轨迹(其是具有最大减速度/修改量的碰撞避免轨迹)。在示例中,这比将修改轨迹指定为无效并启动最大减速轨迹(例如紧急停止轨迹)可能更为有益,这是因为最大减速轨迹可能锁定车辆的转向角度,而碰撞避免轨迹可以保持横向变迹(例如,使车辆沿着碰撞避免轨迹继续行驶)。在示例中,如果选择使用施加最大减速度/修改量的碰撞避免轨迹(例如,从过程500确定/输出),则可以将信号发送到车辆的一个或多个部件以预张紧安全带,准备展开安全气囊等。

图6示出了可由辅助系统(诸如通过轨迹选择部件220)实现的状态602-608的示例性层次结构600。例如,当选择主轨迹控制车辆时,主轨迹状态602可激活;当选择辅助轨迹时,辅助轨迹状态604可激活;当选择碰撞避免轨迹时,碰撞避免轨迹状态606可激活;并且当选择最大减速轨迹(例如,紧急停止轨迹)时,最大减速轨迹状态608可被激活。在图6中,层次结构600按级别排序,最高级别状态在顶部(主轨迹状态602),并且最低级别状态在底部(最大减速轨迹状态608)。

当发现更高级别状态无效时,辅助系统通常可以过渡到更低级别状态。辅助系统可以从当前状态过渡到任何更低状态,如下降的线所示。在至少一些示例中,当前状态可以与下方没有无效状态的最高有效状态相关联(例如,如果辅助轨迹状态604无效,碰撞避免轨迹状态也无效,则这种系统可以默认为最大减速轨迹状态608)。此外,在示例中,为了向上过渡层次结构600,辅助系统可以等待接收信号以从更低级别状态释放控制。例如,如果辅助系统当前正在基于碰撞避免轨迹来控制车辆,并且因此,辅助系统正在碰撞避免轨迹状态606下操作,则当接收到信号以将控制释放回主轨迹状态602(其中基于主轨迹控制车辆)时,辅助系统可以过渡回主轨迹状态602。

图7A-7B示出了执行本文讨论的技术的示例性过程700。过程700被示为逻辑流程图,其每个操作表示可以以硬件,软件或其组合来实现的一系列操作。在软件的背景中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、物体,部件、数据结构等。描述操作的顺序不旨在被理解为限制,并且可以以任何顺序和/或并行地组合任意数量的所述操作以实现过程。过程700可以由任何装置或部件执行,诸如自动驾驶车辆102、服务提供商(例如,服务提供商的计算装置)或任何其他装置。

为了便于说明,过程700将被讨论为由第一系统702(有时称为第一部件)和第二系统704(有时称为第二部件)执行。例如,第一系统702可以包括图1和图2的主系统106,而第二系统704可以包括图1和图2的辅助系统108。

在图7A中,在操作706中,第一系统702可以接收第一传感器数据。例如,第一系统702可以从车辆的一个或多个传感器接收LIDAR数据、RADAR数据、图像数据、深度数据(飞行时间,结构光等)、车轮编码器数据、IMU数据等中的一个或多个。

在操作708,第一系统702可以确定车辆的第一轨迹和车辆的第二轨迹。例如,第一系统702可以分析第一传感器数据以产生第一和第二轨迹。在示例中,第一系统702可以执行定位、感知、预测和/或规划操作以生成第一和第二轨迹。在示例中,第二轨迹可以是第一轨迹的临时轨迹。

在操作710中,第一系统702可以将第一和第二轨迹发送到第二系统704。

在操作712中,第二系统704可以接收第二传感器数据。例如,第二系统704可以从车辆的一个或多个传感器接收LIDAR数据、RADAR数据、图像数据、车轮编码器数据、IMU数据、深度数据(飞行时间,结构光等)中的一个或多个。在一些示例中,第二传感器可以包括第一传感器数据的子集,诸如LIDAR数据、RADAR数据、车轮编码器数据、IMU数据、GPS数据和/或飞行时间数据。在其他示例中,第二传感器数据可以与第一传感器数据相同或包括更多数据。

在操作714中,第二系统704可以从第一系统702接收第一和第二轨迹。

在操作716中,第二系统704可以确定环境中的物体和/或确定该物体的物体轨迹。例如,第二系统704可以基于第二传感器数据来检测物体和/或预测物体的物体轨迹。

在操作中718,第二系统704可以对第一轨迹执行一个或多个第一验证操作。例如,第二系统704可以对车辆的第一轨迹和物体的物体轨迹来执行一个或多个第一验证操作,以确定与第一轨迹相关的第一状态。在示例中,一个或多个第一验证操作包括确定第一轨迹是否在小于阈值时间量之前生成,确定第一轨迹是否与车辆的当前或先前姿态一致,确定第一轨迹是否与车辆的能力兼容,和/或确定沿第一轨迹移动的车辆是否将与沿物体轨迹移动的物体碰撞(例如,执行第一碰撞检测)。在示例中,第一状态指示第一轨迹是有效的、第一轨迹是无效的、或者第一迹由于在超过阈值时间量内发生的估计碰撞而将是无效的。在示例中,第二系统704可以评估在环境中检测到的每个物体的第一轨迹(例如,确定检测到的每个物体是否存在潜在的碰撞)。在此,如果没有碰撞,则第一轨迹可以是有效的,并且如果只有一个碰撞,则第一轨迹可以是无效的。在至少一些示例中,可以从最接近(即,最接近潜在的碰撞)到最远的顺序确定选择用于碰撞检测的物体。

在操作720中,第二系统704可以对第二轨迹执行一个或多个第二验证操作。例如,第二系统704可以对车辆的第二轨迹和物体的物体轨迹来执行一个或多个第二验证操作,以确定与第二轨迹相关的第二状态。在示例中,一个或多个第二验证操作包括确定第二轨迹是否在小于阈值时间量之前生成,确定第二轨迹是否与车辆的当前或先前姿态一致,确定第二轨迹是否与车辆的能力兼容,和/或确定沿第二轨迹移动的车辆是否会与沿物体轨迹移动的物体碰撞(例如,执行第二碰撞检测)。在示例中,第二状态指示第二轨迹是有效的,第二轨迹是无效的,或者第二轨迹由于将在超过阈值时间量内发生估计碰撞而将是无效的。在示例中,第二系统704可以评估环境中检测到的每个物体的第二轨迹。

在操作722中,第二系统704可以为车辆产生第三轨迹。例如,第二系统704可以基于第二轨迹(在一些情况下,为第一轨迹)来生成第三轨迹。第三轨迹可以包括沿着第二轨迹的减速度或其他修改或任何其他操纵(例如,碰撞避免轨迹)。在示例中,第二系统704可以基于迭代极限对第二轨迹施加任意次数的减速度/修改和/或应用减速度/修改直至可应用的最大减速度/修改量。

在操作724中,第二系统704可以对第三轨迹执行一个或多个第三验证操作。例如,第二系统704可以对车辆的第三轨迹和物体的物体轨迹来执行一个或多个第三验证操作,以确定与第三轨迹相关的第三状态。在示例中,一个或多个第三验证操作包括确定第三轨迹是否在小于阈值时间量之前生成,确定第三轨迹是否与车辆的当前或先前姿态一致,确定第三轨迹是否与车辆的能力兼容,和/或确定沿第三轨迹运动的车辆是否将与沿物体轨迹运动的物体碰撞(例如,执行第三碰撞检测)。在示例中,第二状态指示第三轨迹是有效的,第三轨迹是无效的,或者第三轨迹由于在超过阈值时间量内发生的估计碰撞而将是无效的。

在示例中,一个或多个第一验证操作,一个或多个第二验证操作和/或一个或多个第三验证操作中的任何数目可以是相同的。在其他示例中,任何数量的验证操作可以是不同的。

在操作726处,第二系统704可以监测第一系统702、第二系统704和/或车辆的部件。根据监测,第二系统704可以确定第一系统702,第二系统704和/或车辆的部件的错误。

在操作728中,第二系统704可以确定车辆的第四轨迹。例如,第二系统704可以基于第一状态,第二状态和/或第三状态,将第一轨迹,第二轨迹,第三轨迹或第五轨迹(例如最大减速轨迹)选择为第四轨迹。

在示例中,当第一状态指示主轨迹有效时,第二系统704可以选择第一轨迹。此外,在示例中,第二系统704可以在以下情况下选择第二轨迹:当(i)第一状态指示第一轨迹无效(例如,与在小于阈值时间量内发生估计碰撞相关联)并且第二状态指示第二轨迹有效时;或者(ii)第一系统702,第二系统704和/或车辆的部件检测到错误并且第二状态指示辅助轨迹是有效的。

此外,在示例中,在下述情况下,第二系统704可以在以下情况下选择第三轨迹:当(i)第一状态指示第一轨迹无效,第二状态指示第二轨迹无效,并且第三状态指示第三轨迹有效;(ii)第一系统702,第二系统704和/或车辆的部件检测到错误,第二状态指示第二轨迹无效,并且第三状态指示第三轨迹有效;或者(iii)第一状态指示第一轨迹无效,第二状态指示第二轨迹无效,第三轨迹与碰撞相关联,第三轨迹与最大减速度/修改量相关联,并且在将减速度/修改应用于第三轨迹时未满足迭代极限。这样,在一些示例中,第二系统704可以确定是否已经应用最大减速度/修改量来生成第三轨迹和/或是否已经满足迭代极限。

此外,在示例中,如果未如上所述选择第一轨迹,第二轨迹或第三轨迹(例如,第一轨迹是无效的,第二轨迹是无效的且第三轨迹是无效的),则第二系统704可以选择最大减速轨迹(例如,紧急停止轨迹)。如上所述,由于在对第三轨迹施加减速度/修改时满足迭代极限,因此第三轨迹可是无效的。

在图7B中,在操作730中,第二系统704可以向第一系统702发送消息(例如,如果轨迹无效)。该消息可以指示轨迹是无效的和/或如果基于该轨迹维持车辆的控制,则第二系统704将进行干预。在一些示例中,该消息可以不被发送(例如,在选择第一轨迹的情况下)。在至少一些示例中,这种消息数据可以包括例如碰撞时间、碰撞点、关于潜在碰撞物体的信息(例如,物体范围、物体标识符、物体位置、物体速度中的任何一个或多个)等。

附加地或可替代地,在示例中,如果在操作728中选择了最大减速轨迹或碰撞避免轨迹(应用了最大减速度/修改量),则可以将消息或信号发送到车辆的一个或多个部件以预张紧安全带,准备展开安全气囊等。

在操作732中,第一系统702可以从第二系统704接收消息。在示例中,第一系统702可以基于该消息来调整轨迹,例如主轨迹。

在操作734中,第二系统704可以基于第四轨迹来控制车辆。例如,第二系统704可以将信号发送至驱动器管理部件,一个或多个系统控制器等,从而基于第四轨迹来指导对车辆的控制。

在操作736中,第二系统704可以基于第四轨迹来维持对车辆的控制。例如,第二系统704可以将第二系统704保持在锁存在第二轨迹,第三轨迹和/或最大减速轨迹上的状态,这可以包括继续向一个或多个系统控制器发送信号。

在操作738中,第二系统704可以接收信号以从第四轨迹释放对车辆的控制。在示例中,可以从远程操作系统或另一系统接收信号。该信号可以指示车辆没有碰撞或者以其他方式畅通以返回正常操作。例如,如果第四轨迹由于潜在的碰撞导致车辆停止,则该信号可以指示其对于车辆再次移动是安全的。

在操作740中,第一系统702可以产生第六轨迹。第六轨迹可以包括主轨迹/主要轨迹。

在操作742中,第一系统702可以将第六轨迹发送到第二系统704。

在操作744中,第二系统704可以从第一系统702接收第六轨迹。

在操作746中,第二系统704返回操作716以评估第六轨迹,并且如果第六轨迹有效,则基于第六轨迹来控制车辆。

图8描绘了用于实现本文描述的技术的示例性系统800的框图。在一些情况下,系统800可以包括车辆802,其可以对应于图1中的自动驾驶车辆102。在一些情况下,车辆802可以是配置为根据美国国家公路交通安全管理局发布的5级分类运行的自动驾驶车辆,该分类描述了一种能够在整个行程中执行所有对安全至关重要的功能的车辆,不期望驾驶员(或乘员)在任何时间控制车辆。然而,在其他示例中,自动驾驶车辆802可以是具有任何其他级别或分类的完全或部分自动驾驶车辆。此外,在一些情况下,本文所述的技术也可以由非自动驾驶车辆使用。

车辆802可以包括第一系统804(例如,第一计算设备),第二系统806(例如,第二计算设备),一个或多个传感器808,一个或多个发射器810,一个或多个通信连接812,一个或多个驱动系统814和/或直接连接816(例如,用于物理地联接车辆802以交换数据和/或提供动力)。

在一些情况下,一个或多个传感器808可以包括光检测和测距(LIDAR)传感器,RADAR传感器,超声换能器,声纳传感器,位置传感器(例如,全球定位系统(GPS),指南针等),惯性传感器(例如惯性测量单位(IMU),加速度计,磁力计,陀螺仪等),相机(例如红绿蓝(RGB),红外(IR),强度,深度,飞行时间等),麦克风,车轮编码器,环境传感器(例如,温度传感器,湿度传感器,光传感器,压力传感器等)等。一个或多个传感器808可以包括这些或其他类型的传感器中的每一个的多个实例。例如,LIDAR传感器可以包括位于车辆802的拐角,前方,后部,侧面和/或顶部的单独LIDAR传感器。作为另一个示例,摄像机可以包括多个摄像机,这些摄像机布置在车辆802的外部和/或内部周围的各个位置处。一个或多个传感器808可以向第一系统804和/或第二系统806提供输入。

如上所述,车辆802还可包括用于发射光和/或声音的一个或多个发射器810。在该示例中的一个或多个发射器810可以包括一个或多个内部音频和视觉发射器以与车辆802的乘客进行通信。作为示例而非限制,一个或多个内部发射器可以包括扬声器,灯,标志,显示屏,触摸屏,一个或多个触觉发射器(例如,振动和/或力反馈),机械致动器(例如,安全带拉紧器,座椅定位器,头枕定位器等)等。在该示例中,一个或多个发射器810还可包括一个或多个外部发射器。作为示例而非限制,在此示例中,一个或多个外部发射器包括用于发出行驶方向或车辆动作的其他指示的信号的灯(例如,指示灯,标志,灯阵列等),以及一个或多个音频发射器(例如,扬声器,扬声器阵列,喇叭等)以与行人或其他附近的车辆进行听觉通信,这些外部发射器中的一个或多个包含声束转向技术。

车辆802还可包括一个或多个通信连接812,其使得能够在车辆802与一个或多个其他本地或远程计算设备之间实现通信。例如,一个或多个通信连接812可以促进与车辆802上的一个或多个其他本地计算设备和/或一个或多个驱动系统814的通信。而且,一个或多个通信连接812可以附加地或可替代地允许车辆802与一个或多个其他附近计算设备(例如,其他附近的车辆,交通信号等)进行通信。一个或多个通信连接812可以附加地或替代地使车辆802能够与计算装置818通信。

一个或多个通信连接812可以包括物理和/或逻辑接口,用于将第一系统804和/或第二系统806连接到另一个计算装置或网络,诸如一个或多个网络820。例如,一个或多个通信连接812可以启用诸如经由IEEE 800.11标准定义的频率的基于Wi-Fi的通信,诸如

在一些情况下,车辆802可以包括一个或多个驱动系统814。在一些情况下,车辆802可以具有单个驱动系统814。在一些情况下,一个或多个驱动系统814可以包括一个或多个传感器来检测一个或多个驱动系统814和/或车辆802的周围的检测。作为示例而非限制,一个或多个驱动系统814的一个或多个传感器可以包括一个或多个车轮编码器(例如旋转编码器)以感测驱动模块的车轮旋转,惯性传感器(例如惯性测量单元,加速度计,陀螺仪,磁力计等)以测量驱动模块的定向和加速度,相机或其他图像传感器,超声传感器以声学方式检测驱动模块周围的物体,LIDAR传感器,RADAR传感器等。一些传感器(诸如车轮编码器)可能对一个或多个驱动系统814唯一。在一些情况下,一个或多个驱动系统814上的一个或多个传感器可重叠或补充车辆802的对应系统(例如,一个或多个传感器808)。

一个或多个驱动系统814可以包括许多车辆系统,包括高压电池,用于驱动车辆的电动机,用于将来自电池的直流电转变成交流电以供其他车辆系统使用的逆变器,包括转向马达和转向齿条(可以是电动的)的转向系统,包括液压或电动致动器的制动系统,包括液压和/或气动部件的悬架系统,用于分配制动力以减轻牵引力损失并保持控制的稳定性控制系统,HVAC系统,照明设备(例如,诸如前灯/尾灯的照明设备以照亮车辆的外部环境)以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统,其他电气部件(诸如DC/DC过渡器、高压结、高压电缆、充电系统、充电端口等))。另外,一个或多个驱动系统814可以包括驱动系统控制器,该驱动系统控制器可以接收和预处理来自一个或多个传感器的数据并控制各种车辆系统的操作。在一些情况下,驱动系统控制器可以包括一个或多个处理器以及与该一个或多个处理器通信联接的存储器。存储器可以存储一个或多个模块以执行一个或多个驱动系统814的各种功能。此外,一个或多个驱动系统814也可以包括一个或多个通信连接,该一个或多个通信连接使相应的驱动系统能够与一个或多个其他本地或远程计算设备进行通信。

第一系统804可以包括一个或多个处理器822以及与一个或多个处理器822通信联接的存储器。第二系统806可以包括一个或多个处理器826以及与一个或多个处理器826通信联接的存储器828。一个或多个计算装置818还可以包括一个或多个处理器830和/或与一个或多个处理器830通信联接的存储器832。一个或多个处理器822、826和/或830可以是能够执行如本文所述的指令以处理数据并执行操作的任何合适的处理器。作为示例而非限制,一个或多个处理器822、826和/或830可包括一个或多个中央处理单元(CPU),图形处理单元(GPU),集成电路(例如,专用集成电路(ASIC)等),门阵列(例如,现场可编程门阵列(FPGA)等)和/或处理电子数据以将该电子数据转换为可以存储在寄存器和/或存储器中的其他电子数据的任何其他装置或装置的一部分。

存储器824、828和/或832可以是非暂时性计算机可读介质的示例。存储器824、828和/或832可以存储操作系统和一个或多个软件应用,指令,程序和/或数据以实现本文描述的方法和归于各种系统的功能。在各个实施方式中,可以使用任何适当的存储器技术来实现存储器,诸如静态随机存取存储器(SRAM),同步动态RAM(SDRAM),非易失性/闪存类型的存储器或能够存储信息的任何其他类型的存储器。本文描述的架构,系统和单个元件可以包括许多其他逻辑部件,程序部件和物理部件,附图中示出的那些仅仅是与本文的讨论有关的示例。

在示例中,第一系统804的存储器824可以存储一个或多个部件834。例如,第一系统804可以对应于图1和图2的主系统106并且存储定位部件202,感知部件204,预测部件206和/或规划部件208。处理器822可以执行一个或多个部件834以使第一系统804执行本文讨论的各种动作。

在示例中,第二系统806的存储器828可以存储一个或多个部件836。例如,第二系统806可以对应于图1和图2的辅助系统108并且存储定位部件210,感知/预测部件212,轨迹管理部件128,监测器部件214和/或驱动器管理部件224。处理器826可以执行一个或多个部件836以使第二系统806执行本文讨论的各种动作。

出于说明性目的,尽管在图8中描述为驻留在存储器824和/或存储器828中,可以设想一个或多个部件834和/或一个或多个部件836可以附加地或可替代地可由一个或多个计算装置818访问(例如,远程存储)。例如,存储器832可以存储对应于一个或多个部件834中的至少一部分的一个或多个第一系统部件838和/或存储对应于一个或多个部件836中的至少一部分的一个或多个第二系统部件840。另外地或可替代地,存储器832可以存储一个或多个地图842。

在至少一个示例中,第一系统804和/或第二系统806可以包括一个或多个系统控制器844,其可以被配置为控制车辆802的转向,推进,制动,安全,发射器,通信和其他系统。在示例中,一个或多个系统控制器844可以存储在存储器824和/或存储器828中。一个或多个系统控制器844可以与一个或多个驱动系统814的对应系统和/或车辆802的其他部件通信和/或对其进行控制。在一些情况下,一个或多个系统控制器844可以将由第一系统804生成,由第二系统806生成和/或由第二系统806选择的轨迹转变成可由驱动系统814使用的指令以使车辆802穿过该轨迹。

在一些情况下,第一系统804,第二系统806,一个或多个系统控制器844和/或其任何部件可以如上所述处理传感器数据,并可以通过一个或多个网络820将其相应输出发送到一个或多个计算装置818(例如,在预定时间段之后(接近实时等)以特定频率发送)。

第一系统804和/或第二系统806可以存储一个或多个地图846,其可以被车辆802用来在环境内进行导航。为了便于讨论,地图可以是能够以二维,三维或N维建模的能够提供有关环境的信息的任意数量数据特征,例如但不限于拓扑(例如交叉路口),街道,山脉,道路,地形和一般环境。在一些情况下,地图可以包括但不限于:纹理信息(例如颜色信息(例如RGB颜色信息,Lab颜色信息,HSV/HSL颜色信息)等),强度信息(例如LIDAR信息,RADAR信息等);空间信息(例如,投影到网格上的图像数据,单独“面元”(例如,与单独颜色和/或强度相关的多边形)),反射率信息(例如,镜面反射信息,逆反射信息,BRDF信息,BSSRDF信息等)。在一个示例中,地图可以包括环境的三维网格。在一些情况下,可以以分块格式存储地图,以使地图的各个分块代表环境的离散部分,并可以根据需要加载到工作存储器中。在一些情况下,地图可以包括占用网格,点图,地标图和/或姿态约束图。在一些情况下,可以至少部分地基于一个或多个地图846来控制车辆802。也就是说,一个或多个地图846可以与第一系统804的定位部件(和/或在一些示例中是第二系统806的定位部件)结合使用以确定车辆802的位置,识别环境中的物体和/或生成在环境中导航的路线和/或轨迹。

在一些情况下,本文讨论的部件中的一些或全部的方面可以包括任何模型,算法和/或机器学习算法。例如,存储器824(和/或存储器828或832)中的一个或多个部件834可以被实现为神经网络。

应该注意的是尽管图8被图示为分布式系统,但是在替代示例中,车辆802的部件可以与一个或多个计算装置818相关联和/或一个或多个计算装置818的部件可以与车辆802相关联。即,车辆802可以执行与一个或多个计算装置818相关联的一个或多个功能,或者反之亦然。

在一些示例中,一个或多个部件836(和/或一个或多个部件834)包括估计和验证部件以确定车辆802的运动方向,车辆802的速度,车辆802的加速度,车辆802的偏航率、偏航加速度、和/或车辆802的转向角度。在示例中,这样的信息可以基于来自一个或多个系统控制器844,一个或多个驱动系统814等的信号。估计和验证部件可以生成指示这样的信息中的一个或多个的数据并将数据提供给第二系统806和/或第一系统804的各个部件。

此外,在一些示例中,一个或多个部件836(和/或一个或多个部件834)可包括一个或多个数据处理部件以过滤传感器数据以生成减少量数据。在一个示例中,一个或多个数据处理部件可以从传感器数据中移除特定范围之外的数据。这可以基于车辆802的速度或加速度,物体的轨迹,物体的速度或加速度等(例如,当相对慢速行驶时移除大量数据,而相对快速行驶时删除更少数据)。为了说明,如果车辆802以每小时15英里的速度行驶,并且没有车辆朝自动驾驶车辆102行驶,则一个或多个数据处理部件可以移除200英尺外的数据,因为该数据可能不需要评估轨迹或识别潜在的即将发生的碰撞。在另一个示例中,一个或多个数据处理部件可以基于车辆802所处的环境类型从传感器数据中移除数据。例如,如果车辆802位于具有多个车辆、道路、道路交叉路口等的市区中,则一个或多个数据处理部件可以不从传感器数据中移除数据(或去除有限量)。然而,如果车辆802位于具有相对少的车辆,道路,道路交叉口等的农村地区或城市环境的稀疏区域中,则一个或多个数据处理部件可以从传感器数据中移除更多数据。在示例中,减少传感器数据的量可以允许第二系统806可以处理减少的传感器数据以更快地操作(例如,处理更少数据,从而减少计算时间)。

示例条款

A.一种车辆系统,包括:第一系统,其包括一个或多个第一处理器以及一个或多个第一存储器,该一个或多个第一存储器包括指令,当由一个或多个第一处理器执行时,这些指令使一个或多个第一处理器:接收来自一个或多个传感器的数据;并至少部分地基于传感器数据生成用于自动驾驶车辆的第一轨迹以及用于自动驾驶车辆的第二轨迹;以及第二系统,其包括一个或多个第二处理器以及一个或多个第二存储器,该一个或多个第二存储器包括指令,当由一个或多个第二处理器执行时,这些指令使一个或多个第二处理器:接收来自第一系统的第一轨迹和第二轨迹;接收传感器数据的至少一部分;至少部分地基于传感器数据的至少一部分来确定环境中的物体;确定物体的物体轨迹;对第一轨迹和物体轨迹进行第一碰撞检测以确定与第一轨迹相关联的第一状态;对第二轨迹和物体轨迹进行第二碰撞检测以确定与第二轨迹相关联的第二状态;至少部分地基于第一状态和第二状态确定用于自动驾驶车辆的第三轨迹,第三轨迹包括第一轨迹,第二轨迹或由第二系统产生的第四轨迹中的至少一个;以及至少部分地基于第三轨迹来控制自动驾驶车辆。

B.如示例A的车辆系统,其中:第一碰撞检测包括至少部分基于第一轨迹和物体轨迹来确定车辆是否将与物体碰撞;以及第二碰撞检测包括至少部分基于第二轨迹和物体轨迹来确定车辆是否将与物体碰撞。

C如示例A或B的车辆系统,其中:第一状态指示第一轨迹与估计碰撞相关联;并且第二系统的一个或多个第二存储器还包括指令,当由一个或多个第二处理器执行时,这些指令使一个或多个第二处理器:至少部分地基于第一系统将知识碰撞时间,物体的范围,物体的速度,物体的位置或碰撞点中的一个或多个的消息发送至第一系统。

D.如示例A至C中任一个的车辆系统,其中:第一状态中的至少一个指示第一轨迹与第一估计碰撞相关联,或者第二状态指示第二轨迹与第二估计碰撞相关联;第三轨迹包括第二轨迹或第四轨迹中的至少一个;并且第二系统的一个或多个第二存储器还包括指令,当由一个或多个第二处理器执行时,该这些指令使一个或多个第二处理器:至少部分地基于第三轨迹来维持对自动驾驶车辆的控制;接收信号以从第三轨迹释放对自动驾驶车辆的控制;从第一系统接收第五轨迹;并且至少部分地基于第五轨迹和信号来控制自动驾驶车辆。

E.一种方法,包括:从第一部件接收用于车辆的第一轨迹和用于车辆的第二轨迹;通过第二部件接收传感器数据的至少一部分;由第二部件并且至少部分地基于传感器数据的至少一部分来确定环境中的物体;通过第二部件并且至少部分地基于传感器数据的至少一部分来识别物体的物体轨迹;由第二部件对第一轨迹执行一个或多个第一验证操作以确定与第一轨迹相关联的第一状态;由第二部件对第二轨迹执行一个或多个第二验证操作以确定与第二轨迹相关联的第二状态;由第二部件并且至少部分地基于第一状态和第二状态确定用于车辆的第三轨迹,第三轨迹包括由第一轨迹,第二轨迹或由第二部件产生的第四轨迹中的至少一个;以及至少部分地基于第三轨迹来控制车辆。

F.如示例E的方法,其中,执行一个或多个第一验证操作包括以下至少一项:确定第一轨迹是否在距当前时间小于阈值时间量生成;确定第一轨迹是否与车辆的当前或先前姿态一致;确定第一轨迹是否与车辆的能力兼容;或者确定沿着第一轨迹运动的车辆是否会与沿着物体轨迹运动的物体碰撞。

G.如示例E或F的方法,其中,执行一个或多个第二验证操作包括以下至少之一:确定第二轨迹是否在距当前时间小于阈值时间量生成;确定第二轨迹是否与车辆的当前或先前姿态一致;确定第二轨迹是否与车辆的能力兼容;或者确定沿着第二轨迹运动的车辆是否会与沿着物体轨迹运动的物体碰撞。

H.如示例E至G中任一个的方法,其中,第一状态指示第一轨迹无效,并且第二状态指示第二轨迹无效,该方法进一步包括:由第二部件并且至少部分地基于第二轨迹生成第四轨迹,第四轨迹包括对第二轨迹的修改;以及由第二部件对第四轨迹和物体轨迹进行一个或多个第三验证操作以确定与第四轨迹相关联的第三状态,第三状态指示第四轨迹是有效的;其中,确定用于车辆的第三轨迹包括作为第三轨迹并且至少部分地基于第三状态确定第四轨迹。

I.如示例E至示例H中任何一个的方法,其中,第一状态指示第一轨迹无效,第二状态指示第二轨迹无效,该方法进一步包括:由第二部件并且至少部分地基于第二轨迹产生第五轨迹,第五轨迹包括对第二轨迹的修改;由第二部件对第五轨迹和物体轨迹进行一个或多个第三验证操作以确定与第五轨迹相关联的第三状态,第三状态指示第五轨迹无效;并且由第二部件生成第四轨迹,该第四轨迹与最大减速度率相关联,其中,确定第三轨迹包括作为第三轨迹并且至少部分地基于第三状态确定第四轨迹。

J.如示例E至I中任一个的方法,其中:生成第五轨迹包括将第二轨迹修改一次或多次直到极限以生成第五轨迹;并且执行一个或多个第三验证操作包括对经修改第五轨迹以小于一定次数执行一个或多个第三验证操作,并且该方法还包括:确定满足次数;其中产生第四轨迹至少部分地基于确定满足次数。

K.如示例E至J中任一个的方法,还包括:将信号发送至车辆的一个或多个部件以实施对安全带进行预张紧或准备展开安全气囊中的至少一个。

L.如示例E至K中任一个的方法,其中,第一状态指示第一轨迹无效,并且第二状态指示第二轨迹无效,该方法还包括:由第二部件并且少部分地基于第二轨迹通过对第二轨迹施加最大修改量来产生第四轨迹;由第二部件对第四轨迹和物体轨迹进行一个或多个第三验证操作以确定与第四轨迹相关联的第三状态,第三状态指示第四轨迹无效;以及确定指示第四轨迹无效的第三状态;其中确定第三轨迹包括作为第三轨迹并且至少部分地基于第三状态确定第四轨迹。

M.如示例E至L中任一个的方法,其中确定第三轨迹包括以下中的至少一个:当第一状态指示第一轨迹在超过阈值时间量内与估计碰撞相关联或没有碰撞时,选择第一轨迹作为第三轨迹;当第一状态指示第一轨迹在小于阈值时间量内与估计碰撞相关联并且第二状态指示第二轨迹无碰撞时,选择第二轨迹作为第三轨迹;或者当第一状态指示第一轨迹在小于阈值时间量内与第一估计碰撞相关联并且第二状态指示第二轨迹与第二估计碰撞相关联时,选择第四轨迹作为第三轨迹。

N.一个或多个非暂时性计算机可读介质,其存储指令,该指令在被执行时使一个或多个处理器执行动作,包括:从第一系统接收用于车辆的第一轨迹和用于车辆的第二轨迹;确定指示第一轨迹是否与第一碰撞相关联的第一状态;确定指示第二轨迹是否与第二碰撞相关联的第二状态;至少部分地基于第二轨迹和第二状态来确定车辆的第三轨迹;至少部分地基于第一状态和第二状态确定用于车辆的第四轨迹,第四轨迹包括第一轨迹,第二轨迹或第三轨迹中的至少一个;并且至少部分地基于第四轨迹来控制车辆。

O.如示例N的一个或多个非暂时性计算机可读介质,其中确定指示第一轨迹是否与第一碰撞相关联的第一状态包括确定第一轨迹与第一碰撞相关联,以及动作还包括:向第一系统发送消息,该消息包括包括碰撞时间,碰撞位置,与碰撞关联的物体位置,与碰撞关联的物体速度或与碰撞关联的物体尺寸中的一个或多个。

P.如示例N或O的一个或多个非暂时性计算机可读介质,其中,第四轨迹包括第二轨迹或第三轨迹中的至少一个,并且动作还包括:至少部分地基于第四轨迹维持对车辆的控制;接收信号以从第四轨迹释放对车辆的控制;接收第五轨迹;并且至少部分地基于第五轨迹和信号来控制车辆。

Q.如示例N至P中任一个的一个或多个非暂时性计算机可读介质,其中从远程操作系统或另一系统中的至少一个接收用于从第四轨迹释放对车辆的控制的信号。

R.如示例N至Q中任一个的一个或多个非暂时性计算机可读介质,其中:确定指示第一轨迹是否与第一碰撞相关联的第一状态包括确定第一轨迹与第一碰撞相关联;并且确定指示第二轨迹是否与第二碰撞相关联的第二状态包括确定第二轨迹与第二碰撞相关联,并且动作还包括:至少部分地基于第二轨迹生成第五轨迹,第五轨迹包括对第二轨迹的修改;确定第五轨迹与第一碰撞,第二碰撞或第三碰撞中的至少一个相关联;以及生成第三轨迹,第三轨迹与最大减速度率相关联,其中确定第四轨迹包括至少部分地基于确定第五轨迹与第一碰撞,第二次碰撞或第三次碰撞中的至少一个相关联将第三轨迹确定为第四轨迹。

S.如示例N至R中任一个的一个或多个非暂时性计算机可读介质,其中:生成第五轨迹包括将第二轨迹修改一次或多次直至极限以生成第五轨迹;并且至少部分地基于第五轨迹确定第五轨迹与第一碰撞,第二碰撞或第三碰撞中的至少一个相关联,并且动作还包括:确定满足该极限;其中产生第三轨迹至少部分地基于确定满足该极限。

T.如示例N至S中任一个的一个或多个非暂时性计算机可读介质,其中,动作还包括:监测第一系统或车辆部件中的一个或多个;至少部分地基于监测来确定已经发生了错误;其中确定第四轨迹包括至少部分地基于错误将第二轨迹或第三轨迹中的至少一个确定为第四轨迹。

尽管针对特定实现描述了上述示例条款,但是应当理解,在本文的背景中,示例条款的内容可以经由方法,装置,系统,计算机,可读介质和/或另一种实施方式实施。

结论

尽管已经描述了本文描述的技术的一个或多个示例,但是其各种变更,添加,置换和等同物也包括在本文描述的技术的范围内。

在示例的描述中,参考形成其一部分的附图,其通过说明的方式示出了所要求保护的主题的特定示例。应当理解,可以使用其他示例,并且可以进行诸如结构改变之类的改变或替换。这样的示例,改变或替换不一定相对于预期的所要求保护的主题偏离范围。尽管本文中的步骤可以以特定顺序呈现,但是在一些情况下,可以更改顺序,以便在不改变所描述的系统和方法的功能的情况下,可以以不同的时间或以不同的顺序提供特定的输入。所公开的过程也可以以不同的顺序执行。另外,这里不需要以所公开的顺序执行各种计算,并且可以容易地实现使用计算的替代顺序的其他示例。除了重新排序外,这些计算还可以分解为具有相同结果的子计算。

尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。

本文描述的部件表示可以代表可以存储在任何类型的计算机可读介质中并且可以以软件和/或硬件来实现的指令。上面描述的所有方法和过程可以体现在软件代码模块和/或计算机可执行指令中并且通过软件代码模块和/或计算机可执行指令完全自动化,软件代码模块和/或计算机可执行指令通过一个或多个计算机或处理器,硬件或它们的组合执行。这些方法中的一些或全部可以可替代地体现在专用计算机硬件中。

除非另外特别说明,在上下文中应理解条件语言,诸如“可能”,“可以”,“可”或“也许”,以表示一些特定示例包括,而其他示例不包括,特定特征,元件和/或步骤。因此,这种条件性语言通常不旨在暗示一个或多个示例以任何方式要求某些特征,元件和/或步骤,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下用于决定在任何特定示例中是否包括或将要执行某些特征,元件和/或步骤的逻辑。

除非另外特别说明,诸如短语“X,Y或Z中的至少一个”之类的结合语应理解为表示项目,术语等可以是X,Y或Z,或其任何组合,包括每个元素的多个。除非明确描述为单数,否则“一”表示单数和复数。

在此描述的和/或在附图中描绘的流程图中的任何例程描述,元件或框应该被理解为潜在地表示模块,代码段或代码的一部分,其包括用于实现特定逻辑功能的一个或多个计算机可执行指令或例程中的逻辑功能或例程中的元件。替代实施方式包括在本文描述的示例的范围内,其中,元件或功能可以删除或不按照所示出或讨论的顺序执行,包括基本同步,以相反的顺序,具有附加操作或省略操作,这取决于本领域技术人员将理解所涉及的功能。

可以对上述示例进行许多变型和修改,其元件应理解为其中可接受的示例。所有这些修改和变型旨在被包括在本公开的范围内,并由所附权利要求书保护。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号