感知防撞的制作方法

文档序号:25598881发布日期:2021-06-22 17:18阅读:111来源:国知局
感知防撞的制作方法

本专利申请要求享受2018年11月13日提交的美国申请no.16/189,726的优先权,该美国专利申请在本申请中全文引用。



背景技术:

车辆中的乘客以及靠近车辆的其他人的安全是最重要的。这种安全通常取决于对潜在碰撞的准确检测并及时部署安全措施。尽管自动驾驶车辆使用具有高效碰撞检测系统的系统来实现,但这些系统在极少数情况下也可能无法操作或失效。例如,车辆上系统组件的电力可能会中断,从而导致该组件或系统立即关闭或关闭持续更长的时间周期。在另一个实例中,在用于上述系统的相对较长的处理流水线上任意数量点上引入误差。由于这些问题,系统或许无法按所希望的那样有效地操作,进而会导致不安全的行为。

附图说明

参照附图描述具体实施方式。附图中,附图标记的最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同的附图标记表示相似或相同的组件或特征。

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

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

图3示出了用于确定是否使车辆减速的示例性过程的流程图。

图4示出了用于确定是否使车辆减速的另一示例性过程的流程图。

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

具体实施方式

本申请涉及一种车辆,该车辆包括:用于控制车辆的主系统;以及在车辆上操作以验证主系统的操作并控制车辆以避免碰撞的辅助系统。例如,当辅助系统检测到潜在的碰撞(例如,主系统错过的碰撞)、主系统发生误差(错误)/出错(例如,电源故障、硬件故障或软件故障等)或发生类似情况时,辅助系统可以独立于主系统操作以从主系统接管车辆的控制。在示例中,与主系统相比,辅助系统可具有更高的完整性(例如,更可验证的)和/或更不复杂的系统。在示例中,当存在诸如碰撞之类的事件的相对较高的确定性程度(例如,高于阈值)时,辅助系统可以接管主系统的控制。辅助系统可以独立于主系统操作,以增强车辆中和/或靠近车辆的其他人员的安全性。例如,在主系统发生故障或确定即将发生碰撞时,辅助系统可以控制车辆沿轨迹减速或执行另一次操纵。在至少一些示例中,辅助系统可以(例如,通过向主系统发送关于潜在碰撞的信息)与主系统交换信息。

在一些示例中,辅助系统可以以至少两种模式操作,其中,当辅助系统确定即将碰撞时,辅助系统的第一模式验证由主系统生成的轨迹及介入(例如,承担对车辆的控制)。当确定主系统故障(例如,硬件故障)时,辅助系统进入第二模式,并操作以控制车辆沿着轨迹减速以安全地使车辆停止。

主系统通常可以执行处理以控制车辆如何在环境中操纵。主系统可实施诸如机器学习的各种人工智能(ai)技术,以了解车辆周围的环境和/或指示车辆在该环境内移动。例如,主系统可以实施ai技术来对车辆进行定位、检测车辆周围的对象、分割传感器数据、确定对象的分类、预测对象踪迹、为车辆生成轨迹等等。在示例中,主系统处理来自车辆上诸如光检测和测距(lidar)传感器、radar传感器、图像传感器、深度传感器(飞行时间传感器、结构光传感器等)等多种类型传感器的数据。

辅助系统可以验证主系统的操作并可在主系统出现问题时从主系统接管车辆。辅助系统可以实施基于车辆和/或车辆周围对象的定位、速度、加速度等的概率技术。例如,辅助系统可以实施一种或多种概率技术来独立地定位车辆(例如,定位到本地环境)、检测车辆周围的对象、分割传感器数据、识别对象的分类、预测对象踪迹、为车辆生成轨迹等操作。在示例中,辅助系统处理来自一些传感器的数据,例如由主系统处理的传感器数据的子集。为了进行说明,主系统可以处理lidar数据、radar数据、图像数据、深度数据等,而辅助系统可以仅处理lidar数据和/或radar数据(和/或飞行时间数据)。但在其他示例中,辅助系统可以处理来自任何数量的传感器的传感器数据,例如来自每个传感器的数据,来自与主系统相同数量的传感器的数据,等等。

在示例中,当辅助系统检测到由主系统错过的潜在碰撞时,辅助系统可以接管车辆的控制。为了进行说明,辅助系统可以从主系统接收车辆的轨迹。辅助系统可以分析传感器数据,借以识别车辆周围的对象的当前位置并预测对象的未来位置。然后,辅助系统可以确定车辆的轨迹是否可能与对象的当前位置或预测位置相交。如果这样,则这可能表明主系统未检测到与对象的潜在碰撞。在此,辅助系统可以使车辆减速、停止或进行另一次操纵(例如,改变车道、转弯等),以避免与对象发生碰撞。例如,辅助系统可以指示车辆进行急停(例如,包括尽可能快地制动的急停操纵)。在示例中,当检测到即将发生碰撞(例如,将在相对短的时间内发生碰撞)时和/或当所检测到的碰撞具有相对较高的置信度(例如,高于阈值)时,辅助系统可使车辆减速或停止。

附加地或替代地,当主系统发生误差时,辅助系统可以接管车辆的控制。为了进行说明,辅助系统可以确定主系统处于脱机状态(例如,主系统经历了硬件故障或软件故障、向主系统的供电中断等),确定主系统提供的轨迹确实存在不满足一个或多个条件(例如,该轨迹不同于先前的轨迹,该轨迹与车辆的形态不兼容,该轨迹与车辆的性能不兼容,该轨迹控制在被分类为不可驱动表面上操纵车辆等)。响应于这种确定,辅助系统可以使车辆减速、停止或执行其他操纵。举例而言,辅助系统可以指示车辆缓停(例如,包括以特定速率制动的缓停操纵)。这可在主系统操作不正常之后避免与任何对象发生碰撞。在示例中,在车辆即将缓停时辅助系统可以继续监测潜在的碰撞,从而如果检测到潜在的碰撞,则辅助系统可以指示车辆执行急停以避免碰撞。

如上所述,本文讨论的技术和/或系统可以提高车辆中的乘客和/或车辆附近的其他个人的安全性。例如,通过使用辅助系统,车辆可以在主系统发生问题时安全地减速和/或停车以避免碰撞。在示例中,辅助系统可以相对独立于主系统操作,从而发生另一种形式的评估以避免碰撞。例如,辅助系统可以基于对传感器数据的分析来独立地检测车辆附近的对象,对主系统的轨迹进行评估,等等。此外,在示例中,通过使辅助系统专注于诸如检测主系统问题的特定任务,可以将辅助系统设计为相对较高的完整性系统和/或具有较小的处理复杂性。例如,辅助系统可以被设计为处理较少的数据,包括:比主系统短的处理流水线,根据比主系统的技术更容易验证的技术进行操作,等等。

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

图1示出了其中可以实施本文所讨论的技术的示例环境100。示例环境100示出了自动驾驶车辆102,这种自动驾驶车辆包括:传感器104、主系统106、辅助系统108和系统控制器110。主系统106和/或辅助系统108可以对来自传感器104的传感器数据进行处理。主系统106通常可以实施人工智能,即ai技术112,以控制自动驾驶车辆102。而当主系统106存在问题时,辅助系统108可以接管对自动驾驶车辆102的控制。辅助系统108通常可以实施与主系统106不同的技术。在示例中,辅助系统108可以实施基于自动驾驶车辆102和/或车辆周围对象的位置、速度、加速度等的技术(例如,贝叶斯滤波,诸如卡尔曼滤波、扩展卡尔曼滤波器等)。正如下文所进一步描述的,辅助系统108可以将信号发送到系统控制器110以控制自动驾驶车辆102。虽然图1示出了辅助系统108向系统控制器110发送信号,主系统106可附加地或是可替代地向系统控制器110发送信号以控制自动驾驶车辆102。

传感器104可以包括各种传感器,例如光检测和测距(lidar)传感器、radar传感器、超声换能器、声纳传感器、位置传感器(例如,全球导航卫星系统(gnss)(包括全球定位系统(gps)、指南针等)、惯性传感器(例如,惯性测量单元(imu)、加速度计、磁力计、陀螺仪等)、相机(例如红绿蓝(rgb)相机、红外(ir)相机、强度相机、深度相机等)、飞行时间、麦克风、车轮编码器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)等。

主系统106可以在正常操作期间控制车辆。在许多示例中,主系统106可以是自动驾驶车辆102上的主计算系统。主系统106可以实施ai技术112以理解自动驾驶车辆102周围的环境和/或指示自动驾驶车辆102在环境中移动。ai技术112可以包括机器学习(通常,也称为机器学习模型),例如一个或多个神经网络。主系统106可以使用ai技术112处理从传感器104接收的传感器数据114。传感器数据114可以包括各种各样的数据,例如位置数据、惯性数据、lidar数据、radar数据、图像数据、音频数据、环境数据、深度数据等。例如,主系统106可以分析传感器数据114以定位自动驾驶车辆102、检测自动驾驶车辆102周围的对象、分割传感器数据114、确定对象分类、预测对象踪迹、为自动驾驶车辆102生成轨迹116等。在示例中,轨迹116包括用于对自动驾驶车辆102的转向角和/或加速度的控制。例如,轨迹116可以控制自动驾驶车辆102将占据时间窗的路径(例如,一微秒、半秒、两秒、十秒等)。轨迹116可以随着时间连续地更新以控制自动驾驶车辆102的运动。如图所示,主系统106可以将轨迹116发送到辅助系统108。

当主系统106存在问题时,辅助系统108可以接管对自动驾驶车辆102的控制。辅助系统108可以实施基于自动驾驶车辆102和/或自动驾驶车辆102周围的对象的位置、速度、加速度等的辅助技术(例如,概率技术,不同于ai技术112的技术等)。例如,辅助系统108可以实施卡尔曼滤波、扩展卡尔曼滤波(ekg)、粒子滤波和/或追踪算法来处理传感器数据、分割传感器数据、识别对象的分类、预测对象的轨迹等。在示例中,辅助系统108可以不执行任何形式的ai技术。在一些示例中,ai技术112可以使用神经网络,而辅助系统108可以避免使用这样的神经网络。在其他示例中,辅助系统108可以执行ai技术,例如实施与主系统106实施的机器学习模型不同(或在某些情况下相同)的机器学习模型。

在示例中,辅助系统108处理来自传感器104的传感器数据118和/或来自主系统106的轨迹116。在一些示例中,传感器数据118包括通过主系统106处理的传感器数据114的子集。为了进行说明,传感器数据118可以包括特定类型的数据(例如,lidar数据、radar数据、飞行时间数据等)。在其他示例中,传感器数据118包括与传感器数据114相同或更多的数据,例如位置数据、惯性数据、lidar数据、radar数据、图像数据、音频数据、环境数据和/或深度数据中的一个或多个数据。

在一些示例中,当辅助系统108检测到由主系统106错过的预测碰撞120时,辅助系统108接管对自动驾驶车辆102的控制。在示例中,辅助系统108可以处理传感器数据118以检测自动驾驶车辆102周围的对象和/或随时间追踪对象。此外,在示例中,辅助系统108可以从主系统106接收指示由主系统106检测到的对象的踪迹和/或对象的预测轨迹的信息。对象的踪迹可以包括该对象行进的路径。对象的踪迹可以表示(或基于)在一段时间(例如5秒)内对象的当前或先前位置、速度、加速度、定向和/或前进方向。辅助系统108可以为在自动驾驶车辆102周围检测到的每个对象保留踪迹。

辅助系统108可以分析自动驾驶车辆102的轨迹116、对象的踪迹和/或对象的轨迹,以确定自动驾驶车辆102的轨迹116和对象的轨迹是否相交。在示例中,辅助系统108可以使用直线近似来预测对象的轨迹。如果检测到交叉,则辅助系统108可以检测由主系统106所错过的预测碰撞120。换句话说,如果自动驾驶车辆102沿着轨迹116继续(例如,继续遵循轨迹116),则辅助系统108可以确定自动驾驶车辆102将与对象碰撞。在图1所示的示例中,辅助系统108可以确定对象124的轨迹122与自动驾驶车辆102的轨迹116相交(例如,如果自动驾驶车辆102沿着轨迹116继续行驶,则自动驾驶车辆102将与对象124碰撞)。在此,对象124表示人,尽管对象124可以表示任何类型的对象,例如另一车辆、结构(例如建筑物等)、动物、标志等。

如果辅助系统108检测到预测碰撞120,则辅助系统108可以发送变化轨迹信号126,以使自动驾驶车辆102减速、停止或执行其他操作(例如,改变车道、突然转向、路边停车等)。例如,辅助系统108可以将变化轨迹信号126发送到系统控制器110,以执行急停操纵。急停操纵可包括:以诸如预定速率的特定速率进行制动,以大于阈值的速率(例如,最大制动速率)进行制动,以及以多个可用速率中的最大速率进行制动等。在一个示例中,急停操纵可以包括:以每秒15或20英尺的速率减速,直到自动驾驶车辆102停止为止。在示例中,变化轨迹信号126可以指示系统控制器110控制自动驾驶车辆102沿着轨迹116减速。

此外,在一些示例中,当存在主系统误差128时,辅助系统108接管对自动驾驶车辆102的控制。在一个示例中,当主系统106脱机(例如,主系统106经历了硬件或软件故障,主系统106的电力中断等)时,辅助系统108可以检测到主系统误差128。这种检测可基于来自主系统106的信号,来自主系统106的组件的信号和/或来自指示硬件或软件故障的服务提供商(例如,远程装置)的信号。附加地或替代地,这种检测可基于在来自自动驾驶车辆102的电池的信号或与供电相关的其他组件的信号上,指示是否正在向主系统106(或主系统106的组件)供电。在另一示例中,当轨迹116不满足一个或多个标准时,例如,当轨迹116与先前轨迹相差特定量时、当轨迹116与自动驾驶车辆102的形态不兼容时、当轨迹116与自动驾驶车辆102的性能不兼容时、当轨迹116控制自动驾驶车辆102在分类为不可驾驶的表面上操纵时等,辅助系统108可以确定主系统误差128。这种处理的示例在下面进一步详细讨论。

如果辅助系统108检测到主系统误差128,则辅助系统108可以发送变化轨迹信号126,以使自动驾驶车辆102减速、停止或进行另一操纵。例如,辅助系统108可以将变化轨迹信号126发送到系统控制器110以执行缓停操纵。缓停操纵可包括:以特定速率进行制动,例如以预定速率进行制动、以小于第一速率(例如,最大制动速率)且大于第二速率(例如,最小制动速率)的速率进行制动、以多个可用速率中基本处于中间的一个速率(例如,从五个速率中选择第三个速率)的速率进行制动等。减速速率可以指的是一段时间内的测量单位,例如每秒米或英尺的数量。在一个示例中,缓停操纵可以包括以每秒5或10英尺的速度减速直到自动驾驶车辆102停止。在示例中,变化轨迹信号126可以与轨迹116相关。例如,变化轨迹信号126可以指示系统控制器110沿着轨迹116减速(例如,沿着相同的路线减速)。也就是说,辅助系统108可以在修改与轨迹116相关联的加速度参数以使自动驾驶车辆102停止的同时使用与轨迹116相关联的转向控制。

在一些示例中,辅助系统108可以等待发送变化轨迹信号126,直到最后可能的时间为止。为了进行说明,在上午11:30:40,辅助系统108可以确定如果维持轨迹116则自动驾驶车辆102将在五秒内(上午11:30:45)与对象碰撞。辅助系统108还可以将停止自动驾驶车辆102(例如,采用急停操纵)并避免与对象碰撞所需的时间确定为三秒(例如,基于车辆的速度和/或对象的速度)。辅助系统108可以使用这样的信息来确定自动驾驶车辆102需要发起急停操纵以避免碰撞的最后可能时间(也称为到最后一秒制动的时间(ttlsb))。在此示例中,最后一秒制动的时间为上午11:30:42。在此,辅助系统108可以等待两秒钟,并在上午11:30:42确定主系统106是否调节了自动驾驶车辆102的轨迹116或自动驾驶车辆102是否仍在行驶中而与对象产生碰撞。若自动驾驶车辆102仍在行驶中而与对象产生碰撞,则辅助系统108可以发送变化轨迹信号126以执行急停操纵。

在一些示例中,如果没有采取行动,则辅助系统108可以向主系统106提供其将介入的报警信号。这会使主系统106重新调节轨迹。例如,辅助系统108可以向主系统106发送报警信号,该报警信号指示潜在的碰撞将在四秒内发生,并指示如果不调节轨迹则辅助系统108将在两秒内介入。在至少一些示例中,这样的报警信号还可以包括发送如辅助系统108所确定的这种检测到的对象、所预测的对象轨迹和所预测到的碰撞。

如果辅助系统108没有检测到预测碰撞120和/或主系统误差128,则辅助系统108可以将轨迹116发送到系统控制器110。换句话说,辅助系统108可使自动驾驶车辆102沿着由主系统106生成的轨迹116前进。

在一些示例中,主系统106可以生成多个轨迹,例如主轨迹以及一个或多个可能发生的轨迹。在示例中,当检测到预测碰撞120和/或主系统误差128时,辅助系统108可以调节主轨迹和/或可能发生的轨迹。下面,将对示意性技术作出进一步讨论。

尽管图1的示例讨论了在检测到预测碰撞120时使用急停操纵并且在检测到主系统误差128时使用缓停操纵,而这些操纵可以在任何类型的情况下使用。例如,当检测到预测碰撞120时可使用缓停操作(只要避免碰撞),和/或当检测到主系统误差128时可使用急停操作。此外,可以使用其他类型的操纵,例如使自动驾驶车辆102以任何速率减速、停到路边、转向或做出另一个方向改变的操纵等。在示例中,辅助系统108可以产生使自动驾驶车辆102执行操纵的新轨迹。

在一些情况下,自动驾驶车辆102可以根据不同的参数进行操作,借以对预测碰撞120和主系统误差128进行检测。在示例中,辅助系统108可以根据第一组参数操作从而以相对较高的准确度对预测碰撞120进行检测。为了进行说明,当对lidar和radar数据的分析都指示碰撞、对象轨道已经存在超过一个时间段、检测的协方差低于阈值等时,辅助系统108可以检测到预测碰撞120。此外,在示例中,辅助系统108可以根据第二组参数操作从而以相对较低的准确度对主系统误差128进行检测。这样,当以相对较高的置信度检测到碰撞时,辅助系统108可以启动急停操纵,并且当以较低的置信度检测到主系统106的误差时,可以启动缓停操纵。

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

在该示例中,主系统106包括:定位组件202、感知组件204、预测组件206和规划组件208。定位组件202、感知组件204、预测组件206和/或规划组件208可以共同和/或单独地包括处理流水线(processingpipeline),该处理流水线实施诸如神经网络的一个或多个完成各种功能的机器学习模型。每个处理流水线可以接收数据并提供输出。在一个实例中,感知组件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)、萨蒙映射、多维标度(mds)、投影追踪、线性判别分析(lda)、混合判别分析(mda)、二次判别分析(qda)、灵活判别分析(fda)、集成算法(例如增强、自举聚合(袋装)、adaboost、堆叠泛化(混合)、梯度增强机(gbm)、梯度增强回归树(gbrt)、随机森林)、svm(支持向量机)、监督学习、无监督学习、半监督学习等。体系结构的其他示例包括神经网络,例如resnet60、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以生成轨迹,如在下面讨论。在其他示例中,定位组件可以将自动驾驶车辆102的形态提供给自动驾驶车辆102的其他组件,例如感知组件204和/或预测组件206。

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

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

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

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

在一些示例中,感知组件204和/或预测组件206可以实施2017年6月14日提交的题为“voxelbasedgroundplaneestimationandobjectsegmentation”的申请号为15/622,905的美国专利申请、2017年12月6日提交的题为“trajectorypredictionofthird-partyobjectsusingtemporallogicandtreesearch”的申请号为15/833,715的美国专利申请以及2017年11月21日提交的题为“sensordatasegmentation”的申请号为15/820,245的美国专利申请,上述专利文献在本申请中全文引用。

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

在一些示例中,根据滚动时域技术和/或至少部分基于来自主系统106的其他组件的数据,规划组件208可以基本上同时地(例如,在技术公差内)生成多个轨迹。在一些情况下,规划组件208可以在多个轨迹上进行基于成本的搜索(或用于识别用于控制自动驾驶车辆102的运动的合适轨迹的任何其他合适算法),以识别单个轨迹以传输到辅助系统108。在一些情况下,规划组件208可以额外地生成多个潜在(contingent)轨迹,并选择潜在轨迹之一以传输到辅助系统108。在一些情况下,潜在轨迹可不同于(主要)轨迹。例如,轨迹会使自动驾驶车辆102进行车道改变,而潜在轨迹会使自动驾驶车辆102停留在相同车道中。在另一个示例中,轨迹会使自动驾驶车辆102保持当前速度和转向角,而潜在轨迹会使自动驾驶车辆102停靠到路肩上。

虽然在彼此可以提供输出的上下文中对定位组件202、感知组件204和预测组件206(或主系统106的其他组件)进行了讨论,但在一些示例中,这些组件中的任何一个都可以向辅助系统108提供输出。

如图所示,辅助系统108包括:估计和验证组件210、数据处理组件212、定位组件214、感知/预测组件216、轨迹验证组件218、轨迹修改组件220和轨迹选择组件222。在示例中,估计和验证组件210、数据处理组件212、定位组件214、感知/预测组件216、轨迹验证组件218、轨迹修改组件220和/或轨迹选择组件222可以实施基于物理和/或统计学的模型。在一些示例中,这样的模型可以合并概率模型。举例而言,辅助系统108可以实施卡尔曼滤波(也称为线性二次估计(lqe))(例如,扩展卡尔曼滤波(ekf)、无迹卡尔曼滤波(ukf)等)、粒子滤波等。为了进行说明,感知/预测组件216可以实施卡尔曼滤波或粒子滤波。在一些示例中,与主系统106相比,辅助系统108可以以排除机器学习模型的使用或减少机器学习模型的数量的方式配置。在其他示例中,辅助系统108可以包括与主系统106的模型不同(或相似或相同)的一个或多个机器学习模型。在一些示例中,辅助系统108可以使用与主系统106不同的硬件(例如,处理器和存储器)。

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

估计和验证组件210可以确定自动驾驶车辆102的运动方向、自动驾驶车辆102的速度、自动驾驶车辆102的加速度、自动驾驶车辆102的偏航率、偏航加速度和/或自动驾驶车辆102的转向角。在示例中,这样的信息可以基于来自系统控制器110、驱动系统等的信号。估计和验证组件210可以生成提示这种信息中一个或多个信息并将这些数据提供给辅助系统108的各个组件,例如定位组件214、感知/预测组件216、轨迹验证组件218、轨迹修改组件220等。在示例中,估计和验证组件210可以将数据提供给主系统106。

定位组件214可以从传感器104(或数据处理组件212)接收传感器数据118,借以确定自动驾驶车辆102的位置和/或定向(一起称之为形态)中的一个或多个。此处,位置和/或定向可以相对于自动驾驶车辆102所处的环境中的点(一个或多个)和/或对象(一个或多个)。在示例中,定向可以包括自动驾驶车辆102相对于参考平面和/或相对于所述点(一个或多个)和/或对象(一个或多个)的偏航、侧倾和/或俯仰的指示。在示例中,与主系统106的定位组件202相比,定位组件214可以执行更少的处理(例如,更高级的本地化)。例如,定位组件214可以不确定自动驾驶车辆102相对于地图的形态,而仅确定自动驾驶车辆102相对于在自动驾驶车辆102周围检测到的对象和/或表面(例如,本地位置而不是全球位置)的形态。这样的位置和/或定向可以例如使用诸如使用一些或全部传感器数据的贝叶斯滤波(卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波等)的概率滤波技术进行确定。

定位组件214可以将自动驾驶车辆102的位置和/或定向提供给辅助系统108的各种组件,例如感知/预测组件216、轨迹验证组件218和/或轨迹修改组件220。

数据处理组件212可以处理从传感器104(图2中未示出)接收的传感器数据118,以确定经处理的传感器数据。例如,数据处理组件212可以分析传感器数据118以去除传感器数据118中的噪声。在一些示例中,数据处理组件212可以包括多个组件,每个组件处理不同类型的数据。例如,可以实施第一数据处理组件来处理lidar数据,而可以实施第二数据处理组件来处理radar数据。不同的数据处理组件可以根据不同的算法进行操作。在一些示例中,传感器数据118(处于经处理状态或未处理状态)可以指示(例如,在地面上或上方检测到的)对象的返回。这样的返回可由传感器104确定。数据处理组件212可以将传感器数据118(处于经处理状态或未处理状态)发送到诸如感知/预测组件216的辅助系统108的其他组件。

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

尽管在图2中示出了数据处理组件212,在一些示例中,传感器数据118可以被传递到辅助系统108的各个组件,而不通过数据处理组件212。例如,可以原始格式将传感器数据118传递给辅助系统108的各个组件。

感知/预测组件216可以包括执行对象检测、对象分割、对象分类、踪迹确定和/或预测每个对象的一个或多个轨迹(例如,包括不确定性)等的功能。在一些示例中,感知/预测组件216可以从数据处理组件212(以经处理的格式或未处理的格式)接收传感器数据118作为输入数据、从定位组件214接收自动驾驶车辆102的形态作为输入数据和/或从主系统106接收轨迹作为输入数据。附加地或替代地,感知/预测组件216可以从估计和验证组件210接收指示自动驾驶车辆102的运动方向、自动驾驶车辆102的速度、自动驾驶车辆102的加速度、自动驾驶车辆102的偏航率、偏航加速度和/或自动驾驶车辆102的转向角的数据以作为输入数据。此外,在一些示例中,感知/预测组件216可以接收来自主系统106的数据,诸如来自感知组件204的主对象列表和/或自动驾驶车辆102的形态,以作为输入数据。这样的数据在一些情况下可在主系统106处于在线时被接收。如上所述,来自主系统106的对象列表可以包括:主感知数据、经处理的传感器数据、关于对象踪迹的数据等。在至少一些示例中,主系统106可以将对象的踪迹信息发送给辅助系统108。在这样的示例中,感知/预测组件216可以执行数据关联(例如,通过使用概率滤波、聚类、最近点分析等),以将传感器数据与所提供的踪迹关联。

感知/预测组件216可以处理输入数据,以确定辅助感知数据。辅助感知数据可以指示与自动驾驶车辆102接近的对象的存在、与该对象相关联的特征等。在此,与对象相关联的特征可以包括:对象相对于自动驾驶车辆102的位置、对象相对于自动驾驶车辆102的定向、对象的速度、对象的加速度、对象的范围(对象的尺寸)、对象的大小等。在许多示例中,辅助感知数据中包括的特征不包括对象的分类(例如,语义标签)。尽管在一些示例中,辅助感知数据可以指示分类。

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

感知/预测组件216还可处理输入数据以确定对象的一个或多个预测轨迹。例如,基于对象的当前位置和对象在几秒钟的时间内的速度,感知/预测组件216可以预测对象将在接下来的几秒钟内移动的路径。在一些示例中,这样的预测路径可以包括在给定位置、定向、速度和/或定向的情况下使用运动的线性假设。在其他示例中,这样的预测路径可以包括更复杂的分析。

在一些示例中,感知/预测组件216可以确定诊断数据。诊断数据可以指示传送到感知/预测组件216的输入数据的状态(例如,指示从传感器104接收传感器数据118的定时,例如传感器数据118早于阈值时间)。此外,诊断数据可以指示接收输入数据的频率(例如,间隔若干毫秒)、输入数据的等待时间(例如,传感器104在环境内发送信号并接收返回信号的延迟)、主回路和输出频率、和/或计算使用情况。

感知/预测组件216可以将辅助感知数据、关于对象(例如,踪迹、轨迹等)的数据和/或诊断数据输出到轨迹验证组件218、轨迹修改组件220和/或辅助系统108的其他组件中。在示例中,辅助感知数据和/或对象的数据体现于辅助对象列表中。例如,对象列表可以针对每个对象指示该对象的特征和/或该对象的踪迹/轨迹。在示例中,感知/预测组件216可以将辅助感知数据,关于对象的数据和/或诊断数据输出到主系统106。

为了便于说明,用单个框示出了感知/预测组件216(以及主系统106和辅助系统108的其他组件)。然而,感知/预测组件216(和/或主系统106和辅助系统108的其他组件)可以被作为为任何数量的方框实施。

轨迹验证组件218可以验证从主系统106接收的自动驾驶车辆102的轨迹。例如,轨迹验证组件218可以确定该轨迹是否无碰撞。在此,轨迹验证组件218可以将自动驾驶车辆102的轨迹(例如,如果自动驾驶车辆102保持轨迹的情况下为预计路径)与从感知/预测组件216接收的数据(例如,辅助感知数据、有关对象踪迹的数据等)进行比较。如果比较结果表明自动驾驶车辆102的轨迹与对象的踪迹或预测的轨迹相交(或相交的概率高于阈值),则轨迹验证组件218可以确定该轨迹无效。

在自动驾驶车辆102的轨迹与对象的踪迹或预测轨迹相交的一些示例中,轨迹验证组件218可以确定到对象的最后一秒制动(ttlsb)的时间。如上所述,最后一秒制动的时间是当自动驾驶车辆102需要发起急停操纵以避免与对象碰撞时的最后可能时间。如果至最后一秒制动的时间在阈值时间量内,则轨迹验证组件218可以确定自动驾驶车辆102的轨迹是无效的。为了进行说明,如果针对对象的最后一秒制动的时间是十毫秒,则轨迹验证组件218可以确定自动驾驶车辆102的轨迹是无效的。在示例中,轨迹验证组件218可以针对对象列表中的每个对象评估到最后一秒制动的时间。

在示例中,轨迹验证组件218可以通过确定轨迹与先前轨迹的差异是否大于特定量来验证自动驾驶车辆102的轨迹。为了进行说明,轨迹验证组件218可以确定轨迹从上一次轨迹改变方向的变化量是否已经超过阈值量(例如,超过航向/角度改变的阈值量)。如果超过变化的阈值量,则轨迹验证组件218可以确定轨迹无效。在另一个示例中,轨迹验证组件218可以在轨迹的加速度与先前轨迹的变化量超过阈值量时确定轨迹无效。在一些情况下,可以将轨迹与多个先前的轨迹(诸如最后三个轨迹)进行比较,以确定与每个先前的轨迹相比是否存在超过阈值的变化量。轨迹验证组件218可以存储随时间变化的轨迹,从而可以参考一个或多个先前的轨迹。

在示例中,轨迹验证组件218可以通过确定轨迹是否与自动驾驶车辆102的形态兼容来验证自动驾驶车辆102的轨迹。为了进行说明,轨迹验证组件218可以分析从定位组件214接收到的形态。如果轨迹要求自动驾驶车辆102改变与自动驾驶车辆102的当前定向不兼容的自动驾驶车辆102的定向,例如要求自动驾驶车辆102侧倾到颠倒位置,轨迹验证组件218可以确定轨迹无效。

在示例中,轨迹验证组件218可以通过确定轨迹是否与自动驾驶车辆102的性能兼容来验证自动驾驶车辆102的轨迹。这些性能可以基于自动驾驶车辆102的硬件组件和/或软件组件和/或这些组件的限制。为了进行说明,轨迹验证组件218可以参考自动驾驶车辆102的性能,例如最大转向角、从一个转向角改变为另一转向角的时间量等。如果轨迹要求改变超过最大转向角和/或轨迹要求转向改变得比进行转向角调节所需的时间快,则轨迹验证组件218可以确定轨迹无效。

在示例中,轨迹验证组件218可以通过确定轨迹是否控制自动驾驶车辆102在分类为不可驾驶的表面上操纵来验证自动驾驶车辆102的轨迹。为了进行说明,轨迹验证组件218可以从感知/预测组件216接收数据(例如,辅助感知数据等)。这样的数据可以指示表面的平滑度如何。如果轨迹验证组件218确定表面具有低于或高于平滑度阈值的平滑度特性,则轨迹验证组件218可以将表面归类为不可驾驶。在替代性示例中,这种确定可以由感知/预测组件216做出。在任何情况下,如果轨迹验证组件218确定轨迹是沿着不可驾驶的表面,则轨迹验证组件218可以确定轨迹无效。

如果轨迹验证组件218确定自动驾驶车辆102的轨迹是无效的,则轨迹验证组件218可以将信号发送到轨迹修改组件220,以指示轨迹修改组件220控制自动驾驶车辆102减速、停止或执行其他操纵。在示例中,信号可以指示轨迹为何无效(例如,指示无效类型)。可替代地,如果轨迹验证组件218在上述一个或多个确定期间未检测到轨迹问题(例如,轨迹并非无效),则轨迹验证组件218可以确定轨迹是有效的。在此,轨迹确认组件218可以将指示轨迹有效的信号发送到轨迹选择组件222,并使用该轨迹来控制自动驾驶车辆102。

在一些示例中,轨迹验证组件218可以评估自动驾驶车辆102的主轨迹,并且如果主轨迹无效,则评估自动驾驶车辆102的潜在/可能发生的轨迹。例如,在使用本文讨论的任何技术确定主轨迹无效时,轨迹验证组件218可以确定潜在轨迹是否有效。如果潜在轨迹是有效的,则轨迹修改组件220可以将信号发送到轨迹选择组件222以使用潜在轨迹。如果潜在轨迹是无效的,则轨迹修改组件220可以将信号发送到轨迹修改组件220以修改主轨迹(或潜在轨迹)。

在一些示例中,即使轨迹是无效的,轨迹验证组件218也可以使自动驾驶车辆102沿着轨迹前进。例如,如果轨迹验证组件218确定对象的尺寸小于预定尺寸(或者,如果此类信息可用,则被分类为特定类型的对象),轨迹验证组件218可以将信号发送至轨迹选择组件222,借以沿着轨迹前进。为了进行说明,轨迹验证组件218可以确定轨迹将与对象的踪迹相交,但是对象具有棒球尺寸。在此,沿着轨道继续前进比减速会更安全,因为自动驾驶车辆102可能会在没有任何碰撞的情况下越过对象。

此外,在示例中,轨迹验证组件218可以确定主系统106是否离线。例如,轨迹验证组件218可以周期性地、连续地或是在任何时间从主系统106、主系统106的组件和/或服务提供商(例如,远程装置)接收指示主系统106的硬件和/或软件状态的信号。如果信号指示主系统106的硬件和/或软件发生故障,则轨迹验证组件218可以确定主系统106离线。附加地或可替代地,轨迹验证组件218可以周期性地、连续地或在任何时间从自动驾驶车辆102的电池或与供能相关的其他组件接收指示是否正在向主系统106(或主系统106的组件)供能的信号。如果该信号指示没有向主系统106(或主系统106的组件)供能,则轨迹验证组件218可以确定主系统106处于离线状态。

如果主系统106处于离线状态,则轨迹验证组件218可以向轨迹修改组件220发送信号,指示轨迹修改组件220控制自动驾驶车辆102减速、停止或执行另一次操纵。在示例中,由于主系统106当前很可能无法输出轨迹,所以轨迹验证组件218可以将先前轨迹发送到轨迹修改组件220(例如,最后存储的轨迹)。可替代地,如果主系统106在线(并且没有检测到碰撞或其他问题),则轨迹验证组件218可以向轨迹选择组件222发送信号,借以沿着轨迹前进。

轨迹修改组件220可以修改从主系统106接收的轨迹。例如,轨迹修改组件220可以接收来自定位组件214的数据,接收来自感知/预测组件216的数据(例如,辅助感知数据,指示一个或多个对象的踪迹的数据等),和/或接收来自估计和验证组件210的数据。如果轨迹修改组件220从轨迹验证组件218接收信号以减速或停止(或以其他方式更改轨迹),则轨迹修改组件220可以处理该数据以确定沿轨迹的减速率。轨迹修改组件220然后可以将信号发送到轨迹选择组件222以沿着轨迹(例如,修改的轨迹)减速。在一些示例中,这样的轨迹修改还可以包括调节转向角和/或其他控件以进一步调节轨迹。在至少一些示例中,这样的修改可以是针对从主系统106接收的主轨迹和/或潜在轨迹的修改。

在一个示例中,如果主系统106离线,则轨迹修改组件220可以向轨迹选择组件222发送信号以执行缓停操纵。在此,轨迹修改部件220可以基于自动驾驶车辆102的当前速度来确定减速率以执行缓停操纵。在另一示例中,如果轨迹由于碰撞以外的原因而无效,则轨迹修改组件218可以将信号发送到轨迹选择组件222以执行缓停操纵。在又一示例中,如果由于检测到的碰撞而使轨迹无效,则轨迹修改组件220可以向轨迹选择组件222发送信号以执行急停操纵(例如,以可为最大速率的特定速率停止)。在此,轨迹修改组件220可以基于自动驾驶车辆102的当前速度和/或到对象的距离来确定减速率。减速率可以使自动驾驶车辆102在与对象碰撞之前停止。在又一示例中,如果由于检测到的碰撞而使轨迹无效,并且到最后停止制动的时间足够远(例如,在时间窗之外),则轨迹修改组件220可以将信号发送给轨迹选择组件222,借以减速和/或向检测到的碰撞的主系统106发出报警信号(可能包括检测到的对象,对象的位置等)。

在一些示例中,急停操纵可比其他类型的操纵具有更高的优先级。例如,如果检测到潜在的碰撞并且启动了急停操纵,则急停操纵可以比任何其他操纵(例如,已经开始的缓停操纵)优先。为了进行说明,假设启动了缓停操纵,并且在实施缓停操纵的同时,检测到即将发生的碰撞。在此,轨迹修改组件220可以启动超越缓停操纵的急停操纵。

在一些示例中,轨迹修改组件220可以生成用于自动驾驶车辆102的新轨迹。例如,基于自动驾驶车辆102的形态、感知数据等,轨迹修改组件220可以生成轨迹,所述轨迹会使自动驾驶车辆102停靠道路一侧,借以改变车道等。

在示例中,轨迹选择组件222可以选择要发送到系统控制器110上的轨迹。在一个示例中,如果轨迹验证组件218向轨迹选择组件222发送信号以指示使用来自主系统106的轨迹(或发送轨迹),则轨迹选择组件222可以向系统控制器110发送信号(或轨迹),进而使用该轨迹。在另一示例中,如果轨迹修改组件220向轨迹选择组件222发送信号以使用修改的轨迹(或发送修改的轨迹),则轨迹选择组件222可以向系统控制器110发送信号(或修改的轨迹),借以使用修改后的轨迹。修改后的轨迹可以表示沿着由主系统106提供的轨迹(例如,主轨迹或潜在轨迹)的减速和/或表示另一种操纵。在又一示例中,轨迹选择组件222可以向系统控制器110发送信号以使用由轨迹验证组件218和/或轨迹修改组件220指示或提供的另一轨迹。

在示例中,轨迹选择组件222可以向主系统106发送信号或轨迹。例如,轨迹选择组件222可以发送指示选择了修改后的轨迹的信号。这可以通知主系统106该主系统存在问题(例如,无效轨迹等)。此外,这可以协助主系统106调节自动驾驶车辆102的路线(例如,在使用修改的轨迹来减速而不是完全停止的情况下)。

系统控制器110可以控制自动驾驶车辆102的转向系统、推进系统、制动系统、安全系统、发射器系统、通信系统和/或其他系统。系统控制器110可以与驱动系统的相应系统和/或自动驾驶车辆102的其他组件进行通讯和/或对其控制。在一些情况下,系统控制器110可以将轨迹转换成驱动系统可用的指令,借以使自动驾驶车辆102遍历轨迹。

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

主系统106和/或辅助系统108的组件可以代表硬件和/或软件组件。在软件的上下文中,一个或多个组件可以包括可由一个或多个处理器执行的指令。在硬件的上下文中,一个或多个组件可以实施为集成电路(例如,专用集成电路(asic)等)、门阵列(例如,现场可编程门阵列(fpga)等)以及类似电路。在至少一些示例中,主系统106和辅助系统108的硬件和软件两者可以不同。

图3和图4示出了用于执行本文讨论的技术的示例过程300和400。过程300和400被示为逻辑流程图,其每个操作表示可以以硬件、软件或其组合来实施的一系列操作。在软件的上下文中,这些操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所叙述的操作。通常,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序并不期望被解读为限制,并且,可以按任何顺序和/或并行地组合任意数量的所描述的操作以实施处理。过程300和/或400可以由任何装置或组件执行,例如自动驾驶车辆102、服务提供商(例如,服务提供商的计算装置)或任何其他装置。

图3示出了用于确定是否使车辆减速的示例过程300的流程图。为了便于说明,过程300被描述为由第一系统302和第二系统304执行。例如,第一系统302可以包括图1和图2所示的主系统106,而第二系统304可以包括图1和图2所示的辅助系统108。

在示例中,第一系统302可以实施第一技术,例如,机器学习模型以执行第一对象检测、第一对象分割、第一对象分类和/或第一对象追踪/预测。在示例中,第二系统304可以实施第二技术,例如概率模型以执行第二对象检测、第二对象分割、第二对象分类和/或第二对象追踪/预测。在一些情况下,第二技术实施卡尔曼滤波和/或粒子滤波。

在操作306处,第一系统302可以接收第一传感器数据。例如,第一系统302可以从车辆的传感器接收lidar数据、radar数据、图像数据、深度数据(飞行时间、结构光等)中的一个或多个。

在操作308处,第一系统302可以确定用于控制车辆的轨迹。例如,第一系统302可以分析第一传感器数据以产生用于控制车辆的轨迹。在示例中,第一系统302可以执行定位操作、感知操作和/或预测操作以生成轨迹(其可以包括标称轨迹和潜在轨迹两者)。

在操作310处,第一系统302可以将所述轨迹(或多个轨迹)发送给第二系统304。

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

在操作314处,第二系统304可以从第一系统302接收所述轨迹(或多个轨迹)。

在操作316处,第二系统304可以确定车辆将与对象碰撞的概率。例如,基于轨迹和/或第二传感器数据,第二系统304可以确定自动驾驶车辆的轨迹将与对象的踪迹/轨迹相交的概率。如上所述,这样的确定可以例如基于由辅助系统检测到的对象的直线(或更复杂)的物理模型。

在操作318处,第二系统304可以确定概率是否达到或超过概率阈值。如果第二系统304确定概率达到或超过概率阈值(例如,“是”路径),则过程300可以进行到操作320。可替代地,如果第二系统304确定概率未达到或超过该概率阈值(例如,“否”路径),过程300可以进行到操作322。在一些示例中,操作318可能根本无法确定概率。在这样的示例中,操作318可以确定遵循轨迹的车辆是否进入任何检测到的对象的阈值距离之内。

在操作322处,第二系统304可以确定第一系统302是否发生误差。例如,第二系统304可以通过确定超过阈值时间量后仍未从第一系统302接收到信号、确定第一系统302的硬件故障和/或软件故障、和/或确定第一系统302的电力中断来确定第一系统302发生误差。附加地或可替代地,第二系统304可以通过确定该轨迹与先前的轨迹相差超过阈值量、确定该轨迹与车辆的形态不兼容、确定该轨迹与车辆的性能不兼容、和/或确定该轨迹控制车辆在分类为不可驾驶的表面上操纵来确定第一系统302发生误差。

如果第二系统304确定第一系统302发生误差(例如,“是”路径),则过程300可以进行到操作320。可替代地,如果第二系统304确定第一系统302未发生误差(例如,“否”路径),则过程300可以进行到操作324。

在操作320处,第二系统304可以使车辆执行诸如减速、停止、改变车道、靠边停车、转弯或以其他方式改变轨迹的操纵。例如,第二系统304可以向系统控制器发送信号,以使车辆沿着轨迹(例如,修改的轨迹)减速。在一些示例中,如果第二系统304在操作318处确定概率达到或超过阈值,则第二系统304可以使车辆根据急停操纵(例如,以最大减速率)减速。此外,在一些示例中,如果第二系统304在操作322处确定第一系统302发生误差,则第二系统304可以使车辆根据缓停操纵(例如,以小于最大减速率的速率)减速。在一些示例中,可以在进行操作324之前修改轨迹(标称轨迹或潜在轨迹)。

在操作324处,第二系统302可以使车辆沿着轨迹前进。例如,第二系统302可以向系统控制器发送信号以使车辆沿着轨迹移动(例如,不对轨迹进行任何修改)。

图4示出了用于确定是否使车辆减速的示例过程400的流程图。为了便于说明,过程400将被讨论为由第一系统402和第二系统404执行。例如,第一系统402可包括图1和图2的主系统106,而第二系统404可以包括图1和图2的辅助系统108。

在操作406处,第一系统402可以接收第一传感器数据。例如,第一系统402可以从车辆的传感器接收lidar数据、radar数据、图像数据、深度数据(飞行时间,结构光等)中的一个或多个。

在操作408处,第一系统402可以对第一传感器数据执行第一处理。例如,第一系统402可以实施诸如机器学习模型(例如,神经网络)的第一技术,借以执行第一对象检测以检测对象、执行第一对象分割以分割第一传感器数据、执行第一对象分类以对对象进行分类、和/或执行第一对象追踪/预测以确定对象的当前和/或预测轨迹。这样,第一系统402可以确定对象的第一检测。

在操作410处,第一系统402可以确定用于控制车辆的轨迹。例如,第一系统402可以基于第一传感器数据和/或第一处理来生成用于控制车辆的轨迹。

在操作412处,第一系统402可以将轨迹发送到第二系统404。

在操作414处,第二系统404可以接收第二传感器数据。例如,第二系统404可以从车辆的传感器接收lidar数据、radar数据、图像数据、车轮编码器数据、imu数据、gps数据、深度数据(飞行时间,结构光等)中的一个或多个数据。在一些示例中,第二传感器可以包括第一传感器数据的子集。在其他示例中,第二传感器数据可以与第一传感器数据相同或相比于第一传感器数据包括更多数据。

在操作416处,第二系统404可以过滤第二传感器数据。在一个示例中,第二系统404可以从第二传感器数据中去除特定范围之外的数据。这可以基于车辆的速度或加速度、对象的踪迹和/或预测轨迹、对象的速度或加速度等。在另一个示例中,第二系统404可以基于车辆所处环境的类型从第二传感器去除数据。这样,第二系统404可以过滤第二传感器数据以确定第二传感器数据的子集。

在操作418处,第二系统404可以对第二传感器数据(例如,采用过滤格式或未过滤的格式的数据)执行第二处理。例如,第二系统404可以实施诸如卡尔曼滤波和/或粒子滤波的第二技术,借以执行第二对象检测以检测对象、执行第二对象分割以分割第二传感器数据、执行第二对象分类以对所述对象分类、和/或执行第二对象追踪/预测以确定对象的当前和/或预测踪迹。这样,第二系统404可以确定对象的第二检测。在示例中,在操作418处,第二系统404可以确定对象的速度、对象的加速度、对象的尺寸、对象的定向等等。

在操作420处,第二系统404可以从第一系统402接收轨迹。

在操作422处,第二系统404可以确定第一系统402是否发生误差和/或是否存在潜在碰撞(例如,第一系统402因失误而未检测到碰撞)。这样,在操作422处,第二系统404可以确定是否发生误差。可以基于第二传感器数据、轨迹和/或第二处理进行操作422。如果第二系统404确定第一系统发生误差和/或潜在碰撞(“是”路径),则过程400可以进行到操作424。可替代地,如果第二系统404确定第一系统未发生误差和/或不存在潜在碰撞(“否”路径),则过程400可以进行到操作426。

在操作424处,第二系统404可以确定对象的最后一秒制动(ttlsb)的时间是否在阈值时间量内。如上所述,最后一秒制动时间是车辆需要启动急停操纵以避免碰撞时的最后可能时间。如果第二系统404确定最后一秒制动时间在阈值时间量内(例如,距当前时间数秒、毫秒等)(“是”路径),则过程400可以进行到操作428。可替代地,如果第二系统404确定到最后一秒制动时间不在阈值时间量内(“否”路径),则过程400可以进行到操作430。

尽管在图4中图示了操作424,但是在一些示例中,可以不执行操作424。例如,过程400可以沿着“是”路径从操作422进行到操作428。

在操作428处,第二系统404可以使车辆执行操纵,例如减速、停止、改变车道、靠边停车、转弯或以其他方式改变轨迹。例如,第二系统404可以向系统控制器发送信号,以使车辆沿着轨迹(例如,修改的轨迹)减速。在一些示例中,如果第二系统404在操作422处确定潜在的碰撞,则第二系统404可以使车辆根据急停操纵而减速。此外,在一些示例中,如果第二系统404在操作422处确定第一系统402发生误差,则第二系统404可以使车辆根据缓停操纵来减速。在示例中,第二系统404可以使车辆以基于从车辆到对象的距离的速率减速。

在操作430处,第二系统404可以向第一系统402发送信号。该信号可以指示如果当前轨迹没有被修改,则第二系统404将发起减速或其他操纵。在示例中,该信号可以指示何时为最后一秒制动时间。

在操作426处,第二系统404可以使车辆沿着轨迹前进。例如,第二系统404可以向系统控制器发送信号,以使车辆沿着轨迹移动(例如,不对轨迹进行任何修改)。

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

车辆502可包括:第一系统504(例如,第一计算装置)、第二系统506(例如,第二计算装置)、一个或多个传感器508、一个或多个发射器510、一个或多个通信连接512、一个或多个驱动系统514和/或方向连接516(例如,用于物理上耦接车辆502,借以交换数据和/或供能)。

在一些情况下,传感器508可以包括:光检测和测距(lidar)传感器、radar传感器、超声换能器、声纳传感器、位置传感器(例如,全球定位系统(gps)、指南针等)、惯性传感器(例如惯性测量单元(imu)、加速度计、磁力计、陀螺仪等)、摄像头(例如红-绿-蓝(rgb)摄像头、红外(ir)摄像头、强度摄像头、深度摄像头、飞行时间摄像头等)、麦克风、车轮编码器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)。传感器508可以包括这些传感器或其他类型传感器中每个传感器的多个实例。例如,lidar传感器可以包括位于车辆502的拐角、前面、后面、侧面和/或顶部的单独的lidar传感器。作为另一个示例,摄像机可以包括多台摄像机,这些摄像机布置在围绕车辆的外部和/或内部的各个位置。传感器508可以向第一系统504和/或第二系统506提供输入。

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

车辆502还可以包括使车辆502与一个或多个其他本地或远程计算装置之间进行通信的通信连接512。例如,一个或多个通信连接512可促使与车辆502和/或一个或多个驱动系统514上的其他本地计算装置进行通信。此外,一个或多个通信连接512可以附加地或可替代地使车辆能够与其他附近的计算装置(例如,其他附近的车辆、交通信号灯等)进行通信。通信连接512可以附加地或替代地使车辆502能够与计算装置518通信。

通信连接512可以包括用于将第一系统504和/或第二系统506连接到另一个计算装置或诸如网络520的网络的物理和/或逻辑接口。例如,通信连接512可以启用基于wi-fi的通信,例如通过ieee802.11标准定义的频率、短距离无线频率(例如)、蜂窝通信(例如2g、3g、4g、4glte、5g等)或者任何可使各计算装置与其他计算装置对接的合适的有线或无线通信协议。在一些情况下,在经过预定时间段之后,以近实时等方式,第一系统504、第二系统506和/或传感器508可以按特定的频率经由网络520将传感器数据发送到计算装置518。

在一些情况下,车辆502可以包括驱动系统514。在一些情况下,车辆502可以具有单个驱动系统514。在一些情况下,驱动系统514可以包括一个或多个传感器,借以检测驱动系统514的状况和/或车辆502的周围环境。作为示例而非限制,驱动系统514的传感器可以包括:用于感应驱动模块的车轮旋转的一个或多个车轮编码器(例如旋转编码器)、用于测量驱动模块的定向与加速度的惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)、摄像机或其他图像传感器、以声学方式检测驱动模块周围环境中对象的超声波传感器、lidar传感器、radar传感器等。一些传感器(例如,车轮编码器)可能是驱动系统514特有的。在一些情况下,驱动系统514上的传感器可以与车辆502的相应系统(例如传感器508)重叠或补充。

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

第一系统504可以包括:一个或多个处理器522和与一个或多个处理器522通信耦接的存储器524。第二系统506可以包括:一个或多个处理器526和与一个或多个处理器526通信耦接的存储器528。计算装置518还可以包括处理器530和/或与处理器530通信耦接的存储器532。处理器522、处理器526和/或处理器530可以是能够执行指令以处理数据并执行本文所述操作的任何适合的处理器。作为示例而非限制,处理器522、处理器526和/或处理器530可包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)、集成电路(例如,专用集成电路(asic)等)、门阵列(例如,现场可编程门阵列(fpga)等)和/或处理电子数据以将该电子数据转换为可以存储在寄存器和/或存储器中的其他电子数据的任何其他装置或装置的一部分。

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

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

在示例中,第二系统506的存储器528可以存储一个或多个组件536。例如,第二系统506可以对应于图1和图2中的辅助系统108,并存储估计和验证组件210、数据处理组件212、定位组件214、感知/预测组件216、轨迹验证组件218、轨迹修改组件220和/或轨迹选择组件222。处理器526可执行一个或多个组件536,借以使第二系统506执行本文讨论的各种动作。

虽然图5中为了进行说明而示出了组件驻留在存储器524和/或存储器528中,但可以预见的是,组件534和/或组件536可附加地或是可替代地由计算装置518(如,存储于远端的计算装置)进行访问。例如,存储器532可以存储对应于组件534的至少一部分的第一系统组件538和/或对应于组件536的至少一部分的第二系统组件540。附加地或可替代地,存储器532可以存储一个或多个地图542。

在至少一个示例中,第一系统504和/或第二系统506可以包括一个或多个系统控制器544,上述系统控制器可以被配置为控制车辆502的转向、推进、制动、安全、发射器、通信和其他系统。在示例中,系统控制器544可以存储在存储器524和/或存储器528中。系统控制器544可以与驱动系统514和/或车辆502的其他组件进行通讯和/或控制。在一些情况下,系统控制器544可以将由第一系统504生成、由第二系统506生成和/或由第二系统506选择的轨迹转换成指令,所述指令可由驱动系统514使用以使车辆502穿越该轨迹。

在一些情况下,第一系统504、第二系统506、(一个或多个)系统控制器544和/或其任何组件可以处理上述传感器数据并可以(例如以特定频率,在经过预定时间段之后,以近实时等方式)通过网络520将它们各自的输出送往计算装置518。

第一系统504和/或第二系统506可以储存一个或多个地图546,所述地图可以被车辆502用来在环境中进行导航。出于讨论的目的,地图可以是以二维、三维或n维建模的任意数量的数据结构,这些数据结构能够提供有关环境的信息,例如但不限于拓扑(例如交叉路口)、街道、山脉、道路、地形和一般环境。在一些情况下,地图可以包括但不限于:纹理信息(例如颜色信息(例如,rgb颜色信息、lab颜色信息、hsv/hsl颜色信息)等信息)、强度信息(例如,lidar信息、radar信息等);空间信息(例如,投影到网格上的图像数据,独立的“面元”(例如,与独立的颜色和/或强度相关联的多边形))、反射率信息(例如,镜面反射率信息、回射率信息、brdf信息、bssrdf信息等)。在一个示例中,地图可以包括环境的三维网格。在一些情况下,可以以图块格式(tiledformat)存储地图,以使图的各个图块代表环境的离散部分,并可以根据需要加载到工作存储器中。在一些情况下,地图可以包括占用网格、点图、地标图和/或形态约束图。在一些情况下,可以至少部分地基于地图546来控制车辆502。也就是说,地图546可以与第一系统504的定位组件(和/或在一些示例中第二系统506的定位组件)以确定车辆502的位置,识别环境中的对象和/或生成在环境中导航的路线和/或轨迹。

在一些情况下,本文讨论的一些或所有组件的各方面可以包括任何模型、算法和/或机器学习算法。例如,存储器524(和/或存储器528或532)中的组件534可以被实施为神经网络。

应该注意的是,虽然图5所示的是分布式系统,但是在替代示例中,车辆502的组件可以与计算装置518相关联和/或计算装置518的组件可以与车辆502相关联。也就是说,车辆502可以执行与计算装置518相关联的一个或多个功能,反之亦然。

示例性条款

a.一种示例性车辆系统,包括:一个或多个传感器;第一系统,包括一个或多个第一处理器和一个或多个第一存储器,所述一个或多个第一存储器包括指令,当由所述一个或多个第一处理器执行指令时,使所述第一处理器:从所述一个或多个传感器的第一子集接收第一传感器数据;以及至少部分地基于所述第一传感器数据,确定用于控制所述自动驾驶车辆的轨迹;以及第二系统,包括一个或多个第二处理器和一个或多个第二存储器,所述一个或多个第二存储器包括指令,当由一个或多个第二处理器执行指令时,使一个或多个第二处理器:从所述第一系统接收轨迹;从一个或多个传感器的第二子集接收第二传感器数据;至少部分地基于轨迹和第二传感器数据,确定自动驾驶车辆将与对象碰撞的概率;确定第一系统发生误差或者概率达到或超过概率阈值的至少之一;并且至少部分地基于确定第一系统发生误差或概率达到或超过概率阈值的至少之一,使自动驾驶车辆沿着轨迹减速。

b.示例a的车辆系统,其中:第一系统实施机器学习模型以执行第一对象检测、第一对象分割、第一对象分类或第一对象追踪中的至少之一,并且第二系统实施一种概率模型,以执行第二对象检测、第二对象分割、第二对象分类或第二对象追踪中的至少之一。

c.示例a或b的车辆系统,其中:确定第一系统发生误差或者概率达到或超过概率阈值中的至少之一包括:确定概率达到或超过概率阈值;并且使自动驾驶车辆减速包括:根据最大减速率使自动驾驶车辆减速。

d.示例a至c中任一项所述的车辆系统,其中:确定第一系统发生误差或者概率达到或超过概率阈值中的至少之一包括:确定第一系统发生误差;并且使自动驾驶车辆减速包括使自动驾驶车辆以小于最大减速率而减速。

e.根据示例a至d中任一项所述的车辆系统,其中确定第一系统发生误差或者概率达到或超过概率阈值中的至少之一包括:通过以下至少一项确定所述第一系统发生误差:确定超过阈值时间量未从第一系统接收到信号;确定第一系统的硬件故障或软件故障中的至少之一;或者确定对第一系统的供电中断。

f.示例a至e中的任一个的车辆系统,其中确定第一系统发生误差或者概率达到或超过概率阈值中的至少之一包括:通过以下至少之一确定第一系统发生误差:确定所述轨迹与先前轨迹的差异超过阈值量;确定所述轨迹与所述自动驾驶车辆的形态不兼容,确定所述轨迹与所述自动驾驶车辆的性能不兼容,或确定轨迹控制自动驾驶车辆在分类为不可驾驶的表面上操纵。

g.一种示例性方法,包括:从传感器以及在与车辆相关联的第一系统处接收传感器数据;至少部分地基于传感器数据并且由第一系统确定在车辆附近的环境中的对象的第一检测;至少部分地基于传感器数据的子集并通过与车辆相关联的第二系统确定对象的第二检测;确定第一系统出错或与对象的潜在碰撞中的至少之一;以及至少部分地基于确定第一系统出错或与对象的潜在碰撞中的至少之一,通过第二系统使车辆沿着轨迹减速。

h.示例g的方法,其中:第一系统实施机器学习模型以执行第一对象检测、第一对象分割、第一对象分类或第一对象追踪中的至少之一,并且第二系统实施概率模型以执行第二对象检测、第二对象分割、第二对象分类或第二对象追踪中的至少之一。

i.示例g或h的方法,其中第二系统实施卡尔曼滤波或粒子滤波中的至少之一。

j.示例g至i中的任一个的方法,其中,传感器数据的子集包括lidar数据或radar数据中的至少之一。

k.根据示例g至j中的任一个的方法,其中:确定所述对象的第二检测包括:确定所述对象的速度、所述对象的加速度、所述对象的尺寸或对象的定向中的至少之一,并且基于对象的速度、对象的加速度、对象的尺寸或对象的定向中的至少之一确定第一系统出错或与对象的潜在碰撞中的至少之一。

l.示例g至示例k中的任一个的方法,其中:确定对象的第二检测包括:确定对象的当前轨迹或预测轨迹,以及至少部分地基于对象的预测轨迹来确定第一系统出错或与对象的潜在碰撞中的至少之一。

m.示例g至l中任一个的方法,其中:确定第一系统出错或与对象的潜在碰撞中的至少之一包括:确定与对象的潜在碰撞;并且使车辆减速包括:根据最大减速度使车辆减速。

n.示例g至m中的任一个的方法,其中:确定第一系统出错或与对象的碰撞中的至少之一包括:确定第一系统出错;以及使车辆减速包括:使车辆根据小于最大减速度的减速度减速。

o.一种或多种示例性非暂时性计算机可读介质存储指令,这些指令在被执行时使第二系统的一个或多个处理器执行动作,包括:从与车辆相关联的传感器接收传感器数据;从与车辆相关联的第一系统接收轨迹;至少部分地基于传感器数据,检测在车辆附近的环境中的对象;确定第一系统出错或与对象的潜在碰撞中的至少之一;以及至少部分地基于确定第一系统出错或与对象的潜在碰撞中的至少之一使车辆执行操纵。

p.示例o的一个或多个非暂时性计算机可读介质,其中:第一系统实施神经网络以执行第一对象检测、第一对象分割、第一对象分类或第一对象追踪中的至少之一,并且第二系统执行第二对象检测、第二对象分割、第二对象分类或第二对象追踪中的至少之一。

q.示例o或p的一种或多种非暂时性计算机可读介质,其中:确定第一系统出错或与与对象的潜在碰撞中的至少之一包括:确定与对象的潜在碰撞;以及使车辆执行操纵包括使车辆根据最大减速度减速。

r.示例o至q中的任一的一种或多种非暂时性计算机可读介质,其中:确定第一系统出错或与对象的潜在碰撞中的至少之一包括:确定第一系统出错;以及使车辆执行操纵包括使车辆根据小于最大减速度的减速度减速。

s.示例o至r中的任一的一种或多种非暂时性计算机可读介质,其中,所述动作进一步包括:基于对象的速度、对象的加速度、车辆的速度或车辆的加速度中的至少之一,对传感器数据进行过滤,以确定传感器数据的子集,其中,检测所述对象是至少部分地基于传感器数据的子集。

t.示例o至示例s中的任一的一种或多种非暂时性计算机可读介质,其中,使车辆执行操纵包括:使车辆以至少部分基于车辆到对象的距离的速率进行减速。

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

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

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

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

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

可以对上述示例进行许多变化和修改,这些示例的元素应被理解为是其他可接受的示例。所有这些修改和变型旨在被包含于本申请的范围内并由所附权利要求书保护。

结论

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

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

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