一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

对于自主车辆的折线轮廓表示的制作方法

2022-03-31 11:31:10 来源:中国专利 TAG:

对于自主车辆的折线轮廓表示
1.相关申请的交叉引用
2.本技术是2019年11月19日提交的美国专利申请第16/687,974号的继续,该美国专利申请要求2019年8月21日提交的美国临时申请第62/889,698号的权益并与2019年11月19日提交的美国申请第16/688,017号相关,所有上述申请均以引用方式并入本文。


背景技术:

3.自主车辆,诸如在以自主驾驶模式操作时不需要人类驾驶员的车辆,可用于帮助将乘客或物品从一个位置运送到另一位置。自主车辆的重要组成部分是感知系统,其允许自主车辆使用各种传感器(诸如相机、雷达、激光器和其他类似设备)来感知和解释其周围环境。例如,自主车辆可以使用传感器来收集和解释有关其周围环境的图像和传感器数据,例如停放的汽车、树木、建筑物等。这些车辆可以使用来自感知系统的信息在自主车辆行驶时通过做出多种决策来对其周围环境做出反应,诸如加速、减速、停止、转弯等。
4.通常,在确定如何对其周围环境做出反应时,自主车辆的轮廓通常由矩形(当从上向下观察时)或三维矩形来建模,该矩形或三维矩形界定(bound)包括自主车辆的所有传感器和镜的自主车辆的所有物理方面。可以通过将自主车辆的规划路径或规划轨迹近似为相互连接的一系列连接框来确定自主车辆的扫掠体积,每个连接框表示自主车辆在不同时间的位置。然而,这种方法可能会引入误报碰撞,尤其是在自主车辆的拐角处,因为自主车辆本身并不是完美的矩形。同时,如果使用更复杂的多边形,则在分析与自主车辆的规划轨迹中的其他对象的潜在碰撞时,这样的表示可能计算量很大。


技术实现要素:

5.本公开的一个方面提供了一种控制具有自主驾驶模式的车辆的方法。该方法包括接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形;访问在半平面坐标系中表示不多于自主车辆的轮廓的一半的自主车辆的折线轮廓表示,该折线轮廓表示包括多个顶点和线段;将表示对象的多边形的坐标转换到半平面坐标系;使用转换的坐标确定折线轮廓表示和表示对象的多边形之间的碰撞位置;基于碰撞位置,在自主驾驶模式下控制自主车辆以避免与对象的碰撞。
6.在一个示例中,折线轮廓表示被定义为从自主车辆的前保险杠到自主车辆的后保险杠绘制的车辆宽度侧轮廓(profile)。在该示例中,折线轮廓表示具有最多两个具有最大y坐标的连续点,该最大y坐标是自主车辆的最大半宽度。此外,自主车辆的最大半宽度与在自主车辆的镜或横向传感器之间测量的自主车辆的宽度的一半对应。附加地或替代地,其中,折线轮廓表示上的y坐标值单调地增加到具有最大y坐标的点,然后单调减小,使得折线轮廓表示具有最多一个峰。在该示例中,确定折线轮廓表示和对象的表示之间的碰撞位置包括:当自主车辆向前移动时使用前防护折线轮廓表示,其中,前防护折线轮廓表示与折线轮廓表示在最大y坐标前面的部分对应。替代地,确定折线轮廓表示和对象的表示之间的碰撞位置包括:当自主车辆正在倒车移动时使用后防护折线轮廓表示,其中,后防护折线轮廓
表示与折线轮廓表示在最大y坐标后面的部分对应。
7.在另一示例中,确定碰撞位置包括:对于表示对象的多边形的线段,确定进入半平面坐标系的穿透点(d)。在该示例中,该方法还包括:确定d与折线轮廓表示的线段之间的距离。附加地或替代地,该方法还包括:在折线轮廓表示上的线段中找到具有与d相同的穿透深度的一个线段。在另一示例中,当在对象的表示与具有相同y坐标的折线轮廓表示之间存在多个碰撞位置时,确定碰撞位置还包括将第一碰撞位置的x坐标与第二碰撞位置的x坐标进行比较。在另一示例中,折线轮廓表示与沿着自主车辆的中心线的自主车辆的宽度侧轮廓对应。在另一示例中,半平面坐标系的原点位于与自主车辆的前保险杠上的最远x坐标和表示自主车辆的宽度尺寸的一半的最大y坐标对应的点处。在另一示例中,碰撞位置与多个顶点或线段之一对应。在另一示例中,该方法还包括确定折线轮廓表示和对象的表示之间的碰撞退出位置,并且其中,控制自主车辆还基于碰撞退出位置。
8.本公开的另一方面提供了一种用于控制具有自主驾驶模式的车辆的系统。该系统包括一个或多个处理器,该一个或多个处理器被配置为接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形;访问在半平面坐标系中表示不多于自主车辆的轮廓的一半的自主车辆的折线轮廓表示,该折线轮廓表示包括多个顶点和线段;将表示对象的多边形的坐标转换到半平面坐标系;使用转换的坐标确定折线轮廓表示和表示对象的多边形之间的碰撞位置;和基于碰撞位置,在自主驾驶模式下控制自主车辆以避免与对象的碰撞。
9.在一个示例中,确定碰撞位置包括:对于表示对象的多边形的线段,确定进入半平面坐标系的穿透点(d)。在该示例中,自主车辆的最大半宽度与在自主车辆的镜或横向传感器之间测量的自主车辆的宽度的一半对应。此外,折线轮廓表示被定义为从自主车辆的前保险杠到自主车辆的后保险杠绘制的车辆宽度侧轮廓。此外,折线轮廓表示具有最多两个具有最大y坐标的连续点,最大y坐标是自主车辆的最大半宽度。此外,折线轮廓表示上的y坐标值单调地增加到具有最大y坐标的点,然后单调减小,使得折线轮廓表示具有最多一个峰。附加地或替代地,该系统还包括自主车辆。
10.本公开的另一方面提供一种控制具有自主驾驶模式的车辆的方法。该方法包括通过一个或多个处理器接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形;通过一个或多个处理器基于对象的航向和对象在将来时间点的预期位置确定表示对象的多边形的前折线;通过一个或多个处理器将前折线的坐标转换到半平面坐标系;通过一个或多个处理器基于自主车辆的规划的将来位置并使用转换的坐标,确定前折线和表示对象的多边形之间的进入位置和退出位置;和通过一个或多个处理器基于进入位置和退出位置,在自主驾驶模式下控制自主车辆以避免与对象的碰撞。
11.在一个示例中,基于对象的航向和对象在将来时间点的规划的将来位置确定表示对象的多边形的后折线;将后折线的坐标转换到半平面坐标系,基于自主车辆在将来的规划的将来位置和转换的坐标确定后折线和表示对象的多边形之间的第二进入位置和第二退出位置,并且控制自主车辆还基于第二进入位置和第二退出位置。在该示例中,该方法还包括通过取进入位置和第二进入位置的x坐标值的最小值来确定第一距离,并且其中,控制自主车辆还基于第一距离。此外,该方法还包括通过取退出位置和第二退出位置的x坐标值的最大值来确定第二距离,并且其中,控制自主车辆还基于第一距离。此外,该方法还包括使用第一距离和第二距离来确定在将来时间点与对象重叠的概率,并且其中,控制自主车
辆还基于第一距离。此外,该方法还包括接收与对象的预期将来位置关联的不确定值,并且其中,确定重叠的概率还基于不确定值。附加地或替代地,该方法还包括接收与对象的预期将来位置关联的不确定性值的标准偏差,并使用该标准偏差将重叠的概率确定为累积分布函数。附加地或替代地,该方法还包括接收与对象的预期将来位置关联的不确定值的标准偏差,并且将重叠的概率确定为第一距离除以标准偏差和第二距离除以标准差之间的累积分布函数。在另一示例中,该方法还包括从由自主车辆的规划系统生成的轨迹确定自主车辆在将来时间点的规划的将来位置。在另一示例中,该方法还包括从自主车辆的行为建模系统确定对象在将来时间点的预期位置。
12.本公开的另一方面提供了一种用于控制具有自主驾驶模式的车辆的系统。该系统包括一个或多个处理器,该一个或多个处理器被配置为接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形;访问表示自主车辆的多边形;基于对象的航向和对象在将来时间点的预期位置确定表示对象的多边形的前折线;将前折线的坐标转换到半平面坐标系;基于自主车辆的规划的将来位置,确定前折线和表示对象的多边形之间的进入位置和退出位置;和基于进入位置和退出位置,在自主驾驶模式下控制自主车辆以避免与对象的碰撞。
13.在一个示例中,一个或多个处理器还被配置为基于对象的航向和对象在将来时间点的规划的将来位置确定表示对象的多边形的后折线;将后折线的坐标转换到半平面坐标系;基于自主车辆在将来的规划的将来位置确定后折线和表示对象的多边形之间的第二进入位置和第二退出位置,并且进一步基于第二进入位置和第二退出位置控制自主车辆。此外,其中,一个或多个处理器还被配置为通过取进入位置和第二进入位置的x坐标值的最小值来确定第一距离,并且进一步基于第一距离控制自主车辆。此外,一个或多个处理器还被配置为通过取退出位置和第二退出位置的x坐标值的最大值来确定第二距离,并进一步基于第一距离控制自主车辆。此外,一个或多个处理器还被配置为使用第一距离和第二距离来确定在将来时间点与对象重叠的概率,并进一步基于第一距离控制自主车辆。此外,一个或多个处理器还被配置为接收与对象的预期将来位置关联的不确定值,并进一步基于不确定值确定重叠的概率。附加地或替代地,一个或多个处理器还被配置为接收与对象的预期将来位置关联的不确定性值的标准偏差,并且使用标准偏差将重叠的概率确定为累积分布函数。附加地或替代地,一个或多个处理器还被配置为接收与对象的预期将来位置关联的不确定性值的标准偏差,并将重叠的概率确定为第一距离除以标准偏差和第二距离除以标准偏差之间的累积分布函数。在另一示例中,一个或多个处理器还被配置为从由自主车辆的规划系统生成的轨迹确定自主车辆在将来时间点的规划的将来位置,并从自主车辆的行为建模系统确定对象在将来时间点的预期位置。在另一示例中,该系统还包括自主车辆。
14.本公开的另一方面提供一种控制具有自主驾驶模式的车辆的方法。该方法包括通过一个或多个处理器接收表示第一对象的形状和位置的多边形;通过一个或多个处理器接收表示第二对象的形状和位置的多边形的一部分的折线轮廓表示,该折线轮廓表示在半平面坐标中并且包括多个顶点和线段;通过一个或多个处理器将表示第一对象的多边形的坐标转换到半平面坐标系;通过一个或多个处理器,使用转换的坐标确定折线轮廓表示和表示第一对象的多边形之间的碰撞位置;和通过一个或多个处理器基于碰撞位置,在自主驾驶模式下控制自主车辆以避免碰撞。
15.在一个示例中,第一对象是自主车辆,而第二对象是自主车辆的环境中的对象。在另一示例中,第二对象是自主车辆,而第一对象是在自主车辆的环境中的对象。在另一示例中,碰撞位置包括碰撞的进入位置。在另一示例中,碰撞位置包括碰撞的退出位置。
16.本公开的另一方面提供了用于控制具有自主驾驶模式的车辆的系统。该系统包括一个或多个处理器,该一个或多个处理器被配置为接收表示第一对象的形状和位置的多边形;接收表示第二对象的形状和位置的多边形的一部分的折线轮廓表示,该折线轮廓表示在半平面坐标中并且包括多个顶点和线段;将表示第一对象的多边形坐标转换到半平面坐标系;使用转换的坐标确定折线轮廓表示和表示第一对象的多边形之间的碰撞位置;和基于碰撞位置,在自主驾驶模式下控制自主车辆以避免碰撞。
17.在一个示例中,第一对象是自主车辆,而第二对象是自主车辆的环境中的对象。在另一示例中,第二对象是自主车辆,而第一对象是在自主车辆的环境中的对象。在另一示例中,碰撞位置包括碰撞的进入位置。在另一示例中,碰撞位置包括碰撞的退出位置。在另一示例中,该系统还包括自主车辆。
18.本公开的另一方面提供一种在其上存储指令的非暂时性记录介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行控制具有自动驾驶的车辆的方法模式。该方法包括接收表示第一对象的形状和位置的多边形;接收表示第二对象的形状和位置的多边形的一部分的折线轮廓表示,该折线轮廓表示在半平面坐标中并且包括多个顶点和线段;将表示第一对象的多边形的坐标转换到半平面坐标系;使用转换的坐标确定折线轮廓表示和表示第一对象的多边形之间的碰撞位置;和基于碰撞位置,在自主驾驶模式下控制自主车辆以避免碰撞。
19.在一个示例中,第一对象是自主车辆,而第二对象是自主车辆的环境中的对象。在另一示例中,第二对象是自主车辆,而第一对象是在自主车辆的环境中的对象。在另一示例中,碰撞位置包括碰撞的进入位置。在另一示例中,碰撞位置包括碰撞的退出位置。
附图说明
20.图1是根据示例性实施例的示例车辆的功能图。
21.图2是根据本公开的各方面的车辆的示例外部视图。
22.图3是根据本公开的各方面的车辆的折线轮廓表示。
23.图4是根据本公开的各方面的表示车辆的多边形。
24.图5a和5b是根据本公开的各方面的将车辆的折线轮廓表示转换为前防护折线轮廓表示和后防护折线轮廓表示的半平面坐标的示例表示。
25.图6是根据本公开的各方面的在世界坐标中表示对象的示例多边形。
26.图7是根据本公开的各方面的在半平面坐标中表示对象的示例多边形。
27.图8是根据本公开的各方面的车辆和在半平面坐标中表示对象的多边形的示例表示。
28.图9是根据本公开的各方面的将左前防护折线轮廓表示朝向在半平面坐标中表示对象的多边形移动的示例表示。
29.图10是根据本公开的各方面的左前防护折线轮廓表示和在半平面坐标中表示对象的多边形的示例表示。
30.图11是根据本公开的各方面的左后防护折线轮廓表示和在半平面坐标中表示对象的多边形的示例表示。
31.图12是根据本公开的各方面的右前防护折线轮廓表示和在半平面坐标中表示对象的多边形的示例表示。
32.图13是根据本公开的各方面的右后防护折线轮廓表示和在半平面坐标中表示对象的多边形的示例表示。
33.图14是根据本公开的各方面的将左前防护折线轮廓表示朝向在半平面坐标中表示对象的多边形移动的示例表示。
34.图15是根据本公开的各方面的左前和后防护折线轮廓表示和在不同时间点表示对象的多边形的示例表示。
35.图16a和16b是根据本公开的各方面的折线轮廓表示和表示对象的多边形的示例表示。
36.图17是根据本公开的各方面的示例流程图。
37.图18是根据本公开的各方面的表示对象的多边形相对于表示车辆的多边形和自主车辆的规划轨迹的横向不确定性的示例。
38.图19是根据本公开的各方面的表示对象的多边形的横向不确定性的另一示例。
39.图20是根据本公开的各方面的表示对象的示例多边形。
40.图21是根据本公开的各方面的对象的示例前折线表示。
41.图22是根据本公开的各方面的对象的示例后折线表示。
42.图23a是根据本公开的各方面的对象在半平面坐标中的前折线表示的示例。
43.图23b是根据本公开的各方面的对象在半平面坐标中的后折线表示的示例。
44.图24是根据本公开的各方面的用于确定包括进入和退出位置的碰撞位置的示例。
45.图25是根据本公开的各方面的示例流程图。
46.图26是根据本公开的各方面的示例流程图。
具体实施方式
47.概述
48.本技术涉及用于碰撞分析的对象的表示。在估计与其他对象的潜在碰撞时,目标通常是保守的,同时这样做以提高安全性。自主车辆的轮廓通常由矩形(当从上向下观察时)或三维矩形来建模,该矩形或三维矩形界定包括自主车辆的所有传感器和镜的自主车辆的所有物理方面。可以通过将自主车辆的规划路径或规划轨迹近似为相互连接的一系列连接框来确定自主车辆的扫掠体积,每个连接框表示自主车辆在不同时间的位置。然而,这种方法可能会引入误报碰撞,尤其是在自主车辆的拐角处,因为自主车辆本身并不是完美的矩形。同时,如果使用更复杂的多边形,则在分析与自主车辆的规划轨迹上或中的其他对象的潜在碰撞时,这样的表示可能计算量很大。
49.可以基于车辆的宽度侧轮廓来确定自主车辆的轮廓的折线轮廓表示,而不是使用矩形或多边形。可以针对由自主车辆的中心线分割的自主车辆的每一侧定义折线轮廓表示。由于大多数车辆沿着中心线左右对称,因此折线轮廓表示只需要实际定义自主车辆的一侧或一半,例如左侧或右侧。在这方面,如果需要自主车辆的另一半进行碰撞分析,则可
以简单地反转折线轮廓表示。
50.示例折线轮廓表示可以被定义为从自主车辆的前保险杠到自主车辆的后保险杠绘制的车辆宽度侧轮廓。折线轮廓表示具有一个或最多两个连续点,其最大y是自主车辆的最大半宽度。折线轮廓表示上的y坐标单调增加到y最大的点,然后单调减小,使得折线轮廓表示最多具有一个峰。当使用折线轮廓表示时,可以增加或减少针对折线轮廓表示选择的点的数量,以增加或减少碰撞分析的准确性。
51.当自主车辆向前移动时,对象只可能与峰之前的一半发生碰撞,而当自主车辆向后行驶时,对象只可能与峰之后的一半发生碰撞。因此,在执行碰撞分析时,当自主车辆正朝向对象向前移动时,只需要峰之前的折线轮廓表示的部分,而当自主车辆正在远离对象移动时,只需要峰之后的折线轮廓表示的部分。换言之,当确定车辆何时开始要与对象发生碰撞并且自主车辆正向前行驶时,可以忽略折线轮廓表示上在峰之后的点,而当自主车辆正在倒车行驶时,可以忽略折线轮廓表示上在峰之前的点。
52.折线轮廓表示可以被转换为折线轮廓表示的在峰之前和峰之后的每个部分的半平面坐标。例如,自主车辆可以放置在半平面的右侧。在推断自主车辆和对象之间的重叠时,前和后保险杠或防护折线轮廓表示可以沿着半平面向前和向后滑动。
53.当自主车辆四处行驶时,其感知系统可以检测和识别自主车辆的环境中对象的形状和位置。例如,感知系统可以提供位置信息和表示对象的形状和位置的多边形。表示对象的多边形可以在任何坐标系中,例如,纬度和经度或自主车辆或感知系统的传感器的坐标系。
54.当执行碰撞分析时,可以使用位置信息将表示对象的多边形转换为半平面坐标系。例如,这可以通过在半平面的前向和垂直方向上找到多边形的极值点来完成。然后可以提取多边形的四分之一并将该四分之一的多边形点转换为半平面坐标。
55.此后,可以确定用于对象的表示的碰撞位置。碰撞位置可以包括进入位置和退出位置。进入位置可以与折线轮廓表示的特定线段对应,在给定自主车辆的当前规划轨迹的情况下,该特定线段最初将与自主车辆发生碰撞。除了确定进入位置之外,还可以确定碰撞退出位置。虽然进入位置可以识别自主车辆将在哪里与对象发生碰撞,但退出位置可以识别自主车辆可以如何摆脱碰撞。当车辆的计算设备决定超越对象的路径时,这可能很有用。一旦确定进入位置和碰撞退出位置,自主车辆的计算设备就可以使用该信息来确定如何在自主驾驶模式下更好地控制自主车辆的速度(例如,更快或更慢地行驶)以避开对象。
56.如在上面的示例中,对象的轮廓通常由二维(2d)或三维(3d)多边形或表示对象的多边形来建模,其界定自主车辆的感知系统检测到的对象的所有点。对象的预测轨迹也可以由自主车辆的行为建模系统确定,例如使用各种行为建模技术以及来自感知系统的对于该对象、其他对象以及一般地自主车辆的环境的传感器数据。可以通过沿着预测轨迹移动表示对象的多边形来确定对象的2d或3d路径或规划轨迹。碰撞建模通常通过使用自主车辆的将来轨迹确定自主车辆的2d或3d路径并确定其是否会与对象的2d或3d路径相交来完成。
57.然而,由于来自感知系统以及行为建模系统的对象特性的不确定性,可能存在与对象行进方向相关的很大横向不确定性。因此,对象的预测轨迹可能相当不准确,当与自主车辆的规划轨迹比较时,可能导致碰撞确定不准确。
58.为了解决这些缺点,可以将对象的横向不确定性建模为具有来自行为建模系统输
出的不确定性的均值和标准偏差(sd)的正态分布。可以确定与自主车辆的规划轨迹重叠的概率。例如,可以通过计算对象与自主车辆的规划轨迹之间的进入和退出距离来确定对象与自主车辆的规划轨迹之间的距离。可以使用利用进入和退出距离及标准偏差的累积分布函数来确定重叠的概率。
59.为了确定进入和退出距离,或者更确切地说,当对象将可能进入和退出自主车辆的规划轨迹时表示对象的多边形的位置,可以将对象的多边形分解为前和后折线。为此,可以识别相对于对象的轨迹的最左侧和最右侧点。这可以使用已知技术来实现,这些技术可以包括也可以不包括将对象的坐标系转换为简化识别的坐标系。从这些最左侧和最右侧点,可以将多边形划分为前和后折线,该前和后折线实际上可以表示对象的前和后宽度侧轮廓。然后可以将前折线和后折线中的每一个转换为半平面坐标。
60.可以确定前和后折线中的每一个的碰撞位置,或者更确切地说,进入位置和退出位置。每个进入或退出位置可以与前或后折线的特定线段对应,在给定自主车辆的当前轨迹的情况下,该特定线段将与自主车辆发生碰撞。虽然进入位置可以识别自主车辆将在哪里与对象发生碰撞,但退出位置可以识别自主车辆可以如何摆脱与对象轨迹的碰撞。进入和/或退出位置可以与折线上的点或特定线段对应,在给定自主车辆的当前或将来轨迹的情况下,该点或特定线段将与自主车辆发生碰撞。然后可以从前和后半平面的进入和退出位置确定进入和退出距离。然后可以使用这些值来确定沿着自主车辆的规划轨迹在某个位置重叠(例如碰撞)的概率。
61.上述方法在自主车辆的多边形与对象的部分横向区域重叠的情况下也可能很有用。当车辆的计算设备决定避开甚至超越对象时,这可能很有用。一旦确定重叠的概率,自主车辆的计算设备就可以使用该信息来确定如何在自主驾驶模式下更好地控制自主车辆的速度,以避开对象。在某些情况下,自主车辆甚至可以生成新的轨迹。本文描述的特征可以提供高效、且真实的对象表示以用于碰撞分析。例如,本文描述的特征可以允许用于计算对象与自主车辆的轨迹之间的重叠的概率的高效且准确的方法。此外,在自主车辆的折线表示的情况下,由于自主车辆的表示没有被笼统到比自主车辆的实际尺寸更大的粗略二维矩形,因此这可以显著减小自主车辆的扫掠体积,这反过来又可以允许自主车辆通过更狭窄的通道并更靠近其他对象。如上所述,碰撞检测的目标最终是保守的并检测任何可能的碰撞。然而,使用折线表示可以允许计算自主车辆和其他对象之间的更大距离,而不会违背(compromise)保守估计的性质。
62.此外,由于折线轮廓表示仅需要与车辆的一半对应并且在执行碰撞分析时仅需要其中的一部分(在峰之前或之后),因此这也可以显著减少存储器和处理资源。如本文所述,折线轮廓表示还允许确定自主车辆的哪个部分将涉及碰撞(例如,与镜或保险杠碰撞),而不是简单地矩形上的可以或可以不实际上与自主车辆上的物理点对应的点。此外,由于折线轮廓表示的y坐标的单调性,因此一旦知道对象与自主车辆的轨迹重叠的深度,就可以快速确定用于碰撞分析的线段。
63.除了车辆和实时决策之外,本文描述的特征还可以用于包括对象的虚拟表示的除了车辆之外的对象,诸如包括测试环境的模拟以及视频游戏。例如,本文描述的特征可用于确定这些虚拟对象的碰撞位置,包括进入位置和退出位置,从而使模拟本身更高效。
64.当与实际车辆结合使用时,由于折线轮廓表示比表示车辆或车辆环境中的对象的
矩形多边形更加细微,因此本文描述的特征可以有效地增加自主车辆与其他对象之间的计算距离,这也可以降低与其他对象发生误报碰撞的可能性,降低车辆因被另一对象错误阻挡而陷入困境(无法继续行驶)的可能性,并减少由其他对象引起的遮挡,因为自主车辆可能能够更靠近或接近(nudge)对象。转而,所有这些益处可以使自主车辆能够更好地在对象周围进行调动(maneuver),在某些情况下,可以更快地行驶,并且还可以减少对规避性(或其他不舒适)调动的需要,这可以提高乘客整体驾驶舒适度。
65.示例系统
66.如图1所示,根据本公开的一个方面的车辆100包括各种部件。尽管本公开的某些方面对于特定类型的车辆特别有用,但自主车辆可以是任何类型的车辆,包括但不限于汽车、卡车、摩托车、公共汽车、休闲车等。自主车辆可以具有一个或多个计算设备,诸如包含一个或多个处理器120、存储器130和通常存在于通用计算设备中的其他部件的计算设备110。
67.存储器130存储可由一个或多个处理器120访问的信息,包括可由处理器120执行或以其他方式使用的指令132和数据134。存储器130可以是能够存储可由处理器120访问的信息的任何类型,包括计算设备可读介质,或存储可借助电子设备读取的数据的其他介质,诸如硬盘驱动器、存储卡、rom、ram、dvd或其他光盘,以及其他可写和只读存储器。系统和方法可以包括前述的不同组合,由此指令和数据的不同部分存储在不同类型的介质上。
68.指令132可以是由处理器直接执行(诸如机器代码)或间接执行(诸如脚本)的任何指令集。例如,指令可以作为计算设备代码存储在计算设备可读介质上。在这方面,术语“指令”和“程序”在本文中可以互换使用。指令可以以目标代码格式存储以供处理器直接处理,或者以任何其他计算设备语言存储,包括脚本或按需解释或预先编译的独立源代码模块的集合。下面更详细地解释功能、方法和指令例程。
69.数据134可以由处理器120根据指令132获取、存储或修改。例如,尽管要求保护的主题不受任何特定数据结构的限制,但数据可以存储在计算设备寄存器中,在关系数据库中作为具有多个不同字段和记录的表、在xml文档或平面文件中。数据也可以被格式化为任何计算设备可读格式。
70.一个或多个处理器120可以是任何常规处理器,诸如市售的cpu或gpu。替代地,一个或多个处理器可以是专用设备,诸如asic或其他基于硬件的处理器。尽管图1在功能上将计算设备110的处理器、存储器和其他元件示为在同一框内,但是本领域普通技术人员将理解,处理器、计算设备或存储器实际上可以包括多个处理器、计算设备或存储器,其可以或可以不存放在同一物理外壳内。例如,存储器可以是位于与计算设备110的外壳不同的外壳中的硬盘驱动器或其他存储介质。因此,对处理器或计算设备的引用将被理解为包括对可以或可以不并行操作的处理器或计算设备或存储器的集合的引用。
71.在一方面,计算设备110可以是能够与自主车辆的各种部件通信以在自主驾驶模式下控制自主车辆的自主控制系统的一部分。例如,返回图1,计算设备110可以与车辆100的各种系统通信,例如减速系统160、加速系统162、转向系统164、路由系统166、规划系统168、定位系统170、感知系统172、行为建模系统174和动力系统176,以在自主驾驶模式下根据存储器130的指令132控制车辆100的移动、速度等。
72.作为示例,计算设备110可以与减速系统160和加速系统162交互以控制自主车辆
的速度。类似地,转向系统164可以由计算设备110使用以控制车辆100的方向。例如,如果车辆100被配置为在道路上使用,诸如汽车或卡车,则转向系统可以包括用于控制车轮的角度来使自主车辆转弯的部件。
73.计算设备110可以使用规划系统168,以确定和沿循由路由系统166生成的路线到达某个位置。例如,路由系统166可以使用地图信息来确定从自主车辆的当前位置到下车位置的路线。规划系统168可以周期性地生成轨迹或短期规划,用于在到将来的某个时间段内控制自主车辆,以沿循路线(自主车辆的当前路线)到达目的地。在这方面,规划系统168、路由系统166和/或数据134可以存储详细的地图信息,例如识别道路的形状和高度、车道线、交叉口、人行横道、速度限制、交通信号、建筑物、标志、实时交通信息、植被或其他这样的对象和信息的高度详细的地图。
74.地图信息可以包括一个或多个道路图形或诸如道路、车道、交叉口以及可以由路段表示的这些特征之间的连接的信息的图形网络。每个特征可以被存储为图形数据,并且可以与诸如地理位置以及其是否与其他相关特征关联的信息关联,例如,停车标志可以与道路和交叉口关联等。在一些示例中,关联数据可以包括道路图形的基于网格的索引,以允许高效查找某些道路图形特征。
75.计算设备110可以使用定位系统170以确定自主车辆在地图上或地球上的相对或绝对位置。例如,定位系统170可以包括gps接收器以确定设备的纬度、经度和/或高度位置。其他定位系统,诸如基于激光的定位系统、惯性辅助gps或基于相机的定位,也可用于识别自主车辆的位置。自主车辆的位置可以包括绝对地理位置,诸如纬度、经度和高度,以及相对位置信息,诸如相对于紧邻其周围的其他汽车的位置,这通常可以用比绝对地理位置更小的噪声来确定。
76.定位系统170还可以包括与计算设备110的计算设备通信的其他设备,诸如加速度计、陀螺仪或其他方向/速度检测设备,以确定自主车辆的方向和速度或其变化。仅作为示例,加速设备可以确定其相对于重力方向或与其垂直的平面的俯仰、偏航或横滚(或其变化)。该设备还可以跟踪速度的增加或减少以及这样的变化的方向。可以自动向计算设备110、其他计算设备和前述的组合提供本文所述的设备提供的位置和取向数据的提供。
77.感知系统172还包括用于检测自主车辆外部的对象(诸如其他车辆、道路中障碍物、交通信号、标志、树木等)的一个或多个部件。例如,感知系统172可以包括激光器、声纳、雷达、相机和/或记录可由计算设备110的计算设备处理的数据的任何其他检测设备。在自主车辆是诸如厢式旅行车的乘用车的情况下,厢式旅行车可以包括安装在车顶或其他便利位置的激光或其他传感器。例如,图2是车辆100的示例外部视图。在该示例中,车顶顶部外壳210和圆顶外壳212可以包括lidar传感器以及各种相机和雷达单元。此外,位于车辆100的前端的外壳220和在自主车辆的驾驶员侧和乘客侧的外壳230、232可以各自存放lidar传感器。例如,外壳230位于驾驶员车门260的前面。车辆100还包括用于也位于车辆100的车顶上的雷达单元和/或相机的外壳240、242。附加的雷达单元和相机(未示出)可以位于在车辆100的前端和后端和/或沿着车顶或车顶顶部外壳210的其他位置上。
78.计算设备110可以能够与自主车辆的各种部件通信,以根据计算设备110的存储器的主车辆控制代码控制车辆100的移动。例如,返回图1,计算设备110可以包括与车辆100的各种系统通信的各种计算设备,该各种系统例如减速系统160、加速系统162、转向系统164、
路由系统166、规划系统168、定位系统170、感知系统172和动力系统176(即自主车辆的发动机或马达),以根据存储器130的指令132控制车辆100的移动、速度等。
79.自主车辆的各种系统可以使用自主车辆控制软件工作,以便确定如何控制自主车辆并控制自主车辆。作为示例,感知系统172的感知系统软件模块可以使用由自主车辆的一个或多个传感器(诸如相机、lidar传感器、雷达单元、声纳单元等)生成的传感器数据来检测和识别对象以及其特性。这些特性可以包括位置、类型、航向、取向、速度、加速度、加速度变化、大小、形状等。例如,感知系统172可以提供多边形,诸如2d或3d边界框,其表示对象的形状和尺寸。感知系统172还可以提供对象的每个特性(包括位置、类型、航向、取向、速度、加速度、加速度变化、大小、形状等)的不确定性。
80.在一些情况下,特性以及不确定性可以被输入行为建模系统174。例如,表示对象的多边形以及对象的特性的不确定性可以被输入行为建模系统174。行为建模系统174可以包括软件模块,其基于对象类型使用各种行为模型,在给定表示对象的多边形以及对象的特性的不确定性的情况下输出检测到的对象的预测将来行为。对象的预测将来行为可以包括表示对象的多个将来位置和特性的预测轨迹。由于特性的不确定性和行为预测中固有的不确定性,行为预测模型可能会提供随时间推移增加的轨迹的不确定性。换言之,与对象的预测位置和行进方向相关的不确定性可能会随着时间的推移增加。
81.在其他情况下,可以将特性输入一个或多个检测系统软件模块,诸如被配置为检测已知交通信号的状态的交通灯检测系统软件模块、被配置为从由自主车辆的一个或多个传感器生成的传感器数据检测施工区域的施工区域检测系统软件模块以及被配置为从由自主车辆的传感器生成的传感器数据检测紧急车辆的紧急车辆检测系统。这些检测系统软件模块中的每一个都可以使用各种模型来输出施工区域或对象是紧急车辆的可能性。
82.检测到的对象、预测的将来行为、来自检测系统软件模块的各种可能性、识别自主车辆的环境的地图信息、来自定位系统170的识别自主车辆的位置和取向的位置信息、自主车辆的目的地以及来自自主车辆的各种其他系统的反馈可以被输入规划系统168的规划系统软件模块。规划系统可以使用该输入基于路由系统166的路线选择模块生成的自主车辆的当前路线生成自主车辆的轨迹以沿循到将来的某个短暂时间段。计算设备110的控制系统软件模块可以被配置为控制自主车辆的移动,例如通过控制自主车辆的制动、加速和转向,以沿循轨迹。
83.计算设备110可以通过控制各种部件来在自主驾驶模式下控制自主车辆。例如,作为示例,计算设备110可以使用来自详细地图信息和规划系统168的数据完全自主地将自主车辆导航到目的地位置。计算设备110可以使用定位系统170来确定自主车辆的位置并使用感知系统172在需要安全到达该位置时检测和响应于对象。同样,为了这样做,计算设备110可以生成轨迹并使自主车辆沿循这些轨迹,例如,通过使自主车辆加速(例如,通过由加速系统162向发动机或动力系统176供应燃料或其他能量)、减速(例如,通过由减速系统160减少供应给发动机或动力系统176的燃料、换档和/或通过施加制动)、改变方向(例如,通过由转向系统164转动前轮或后轮)和用信号表示这样的变化(例如,通过点亮自主车辆的转弯信号)。因此,加速系统162和减速系统160可以是动力传动系统的一部分,该动力传动系统包括在自主车辆的发动机和自主车辆的车轮之间的各种部件。同样,通过控制这些系统,计算设备110还可以控制自主车辆的动力传动系统,以自主地操纵自主车辆。
84.示例方法
85.除了上面描述和附图中所示的操作之外,现在将描述各种操作。应当理解,以下操作不必按照下面描述的精确顺序执行。而是,可以以不同的顺序或同时地处理各个步骤,并且还可以添加或省略步骤。
86.如上所述,一般地,自主车辆的轮廓通常由矩形(当从上向下观察时)或三维矩形来建模,该矩形或三维矩形界定包括自主车辆的所有传感器和镜的自主车辆的所有物理方面。可以通过将路径或轨迹近似为相互连接的一系列连接框来确定自主车辆的扫掠体积,每个连接框表示自主车辆在不同时间的位置。然而,这种方法可能会引入误报碰撞,尤其是在自主车辆的拐角处,因为自主车辆本身并不是完美的矩形。同时,如果使用更复杂的多边形,则在分析与自主车辆的轨迹上或中的其他对象的潜在碰撞时,这样的表示可能计算量很大。
87.可以基于车辆的宽度侧轮廓或宽度尺寸来确定车辆的轮廓的折线轮廓表示(或折线轮廓表示),而不是使用矩形或多边形。可以针对由自主车辆的中心线分割的自主车辆的每一侧(左/右、驾驶员/乘客等)定义折线轮廓表示。由于大多数车辆沿着中心线左右对称,因此折线轮廓表示只需要实际定义自主车辆的一侧或一半,例如左侧或右侧。在这方面,如果需要自主车辆的另一半进行碰撞分析,可以简单地反转折线轮廓表示。图3是叠加在自主车辆100的轮廓线310上的示例折线轮廓表示300。沿着由规划系统168生成的轨迹移动该折线轮廓表示或表示自主车辆的多边形(例如,矩形)可以识别自主车辆100的扫掠体积,并且可以用于识别自主车辆的环境中的哪些对象可能与该扫掠体积相交。然后计算设备可以使用折线轮廓表示来识别潜在的碰撞位置。
88.为了简化碰撞分析所需的计算,自主车辆上的原点(0,0)位置可以出于不同目的定位在各种位置。例如,在确定自主车辆宽度侧轮廓的坐标时,可以使用自主车辆的后轴或某个其他位置作为原点,并将自主车辆的航向作为x轴。y轴可以指向车辆的左侧(例如驾驶员侧)。例如,原点320位于自主车辆的后轴处,在沿着自主车辆的长度的中心线350上的对称点处。当使用折线轮廓表示进行碰撞分析时,可以根据需要定位原点以简化计算,这在下面进一步讨论。
89.示例折线轮廓表示可以被定义为从自主车辆的前保险杠到自主车辆的后保险杠绘制的车辆宽度侧轮廓。折线轮廓表示300具有一个或最多两个具有最大y坐标的连续点,该最大y坐标是自主车辆的最大半宽度或最大值的一半。换言之,可以使用具有最大y坐标的最小数量的必要点(即两个或更少)来生成折线轮廓表示。在一般情况下,最大y坐标可以与在自主车辆的镜322、324(或横向传感器)处测量的自主车辆的宽度或其间的距离的一半对应,或者更确切地说,与自主车辆的沿着自主车辆的中心线350的最大宽度尺寸的一半对应。折线轮廓表示上的y坐标单调增加到y坐标最大的点,然后单调减小,使得折线轮廓表示最多具有一个峰(同样,与自主车辆的镜或横向传感器的宽度对应)。如图3所示,折线具有8个点,每个点用一个圆圈表示。虽然折线上的最前或最前向点和最后点用0的y坐标描绘(即,它们位于x轴上),但最前点和最后点的y坐标可以大于0。当使用折线轮廓表示时,可以增加或减少针对折线轮廓表示选择的点数,以提高或降低碰撞分析的准确性。例如,在该示例中,自主车辆的轮廓线310与折线轮廓表示300的最近部分之间的最大距离或距离r1不超过15cm。当然,使用的点数越多,执行碰撞分析时所需的处理力和资源的量就越大。
90.在一些情况下,如果自主车辆具有矩形宽度侧轮廓,则自主车辆的折线表示可以具有两个具有最大y坐标的连续点。例如,如果自主车辆的形状实际上像矩形,就像卡车的拖车一样,则折线轮廓表示可以包括表示折线表示中矩形的两个拐角的点。换言之,折线轮廓表示可以一般化到矩形。
91.图4是叠加在车辆100的轮廓线310上的表示车辆100的示例多边形400。在该示例中,多边形400是矩形。自主车辆的轮廓线310与表示自主车辆的多边形400的最近部分之间的最大距离,或距离r2,在自主车辆100的前部多达43厘米。在自主车辆后部的距离r3可以多达36.8厘米。表示自主车辆的多边形400的最大扫掠体积半径为6.961m,与折线轮廓表示的最大扫掠体积半径相比其仅为6.534m。因此,在折线轮廓表示300和表示自主车辆的多边形400之间,总的扫掠体积横向减少42.7cm。与折线轮廓表示相比,该插值可以在表示对象的多边形400的扫掠体积之间提供相当大的区别。因此,关于在对象周围行驶和避免碰撞使用折线轮廓表示可以比表示自主车辆的矩形多边形显著更准确。
92.参考折线轮廓表示,当自主车辆向前移动时,对象只会与在峰之前的一半发生碰撞,而当自主车辆向后行驶时,对象只会与在峰之后的一半发生碰撞。因此,在执行碰撞分析时,当自主车辆正朝向对象向前移动时,只需要折线轮廓表示的在峰之前的部分,而当自主车辆正远离对象移动时,只需要折线轮廓表示的在峰之后的部分。换言之,当自主车辆正向前行驶时,在确定自主车辆何时会与对象发生碰撞时,可以忽略折线轮廓表示上在峰之后的点,而当自主车辆正在倒车行驶时,可以忽略折线轮廓表示上在折线轮廓表示之前的点。
93.在这点上,折线轮廓表示可以被转换为折线轮廓表示的在自主车辆的左侧和在峰或最大y坐标(在下文中称为前防护折线轮廓表示510)前面(即,更靠近自主车辆的前保险杠)或在自主车辆的左侧和在峰或最大y坐标(在下文中称为后防护折线轮廓表示520)后面或之后(即,更靠近自主车辆的后保险杠)的部分中的每一个的半平面坐标。半平面本质上是平面或平面区域的“一半”,由无限直线一侧的所有点组成,而另一侧则没有点。该线可以与例如坐标系的轴对应。图5a表示左前和左后防护折线轮廓参考的这种转换。例如,自主车辆100可以放置在与折线轮廓表示300的最大y坐标的x坐标对应的半平面530的右侧。在转换之后,y坐标为宽度,其在半平面坐标中变为负,因为按照惯例,半平面的右侧始终为负。在这点上,峰的高度变为y=0。当推断自主车辆100和对象之间的重叠时,可以沿着半平面向前和向后“移动”左前和后防护折线轮廓表示510、520。因此,自主车辆保险杠折线轮廓表示的x坐标可以是相对数。为了计算方便,在右前防护折线轮廓表示510中,自主车辆的前保险杠上的最远或最右侧点可以被赋予为x=0.0,并且在后防护折线轮廓表示520中,后保险杠上的最远或最左侧点可以被赋予为x=0.0。左前防护折线轮廓表示510的半平面上的所有其余x坐标相对于最右侧点都是负数。左后防护折线轮廓表示520的半平面上的所有其余x坐标相对于最左侧点都是正数。
94.类似地,可以在折线轮廓表示的在自主车辆的右侧或在最小y坐标(在下文称为右前防护折线轮廓表示510)之前以及在最小值(在下文称为右后防护折线轮廓表示520)之后的部分中的每一个的半平面坐标中确定折线轮廓表示的反转版本。图5b表示右前和左后防护折线轮廓参考的这种转换。例如,自主车辆100可以放置在与折线轮廓表示300的最小坐标的x坐标对应的半平面532的右侧。在转换之后,y坐标为宽度,其在半平面坐标中变为正,
因为按照惯例,半平面的右侧始终为负。在这点上,最小值的高度变为y=0。当推断自主车辆100和对象之间的重叠时,可以沿着半平面向前和向后“移动”左前和后防护折线轮廓表示550、540。因此,自主车辆保险杠折线轮廓表示的x坐标可以是相对数。为了计算方便,在右前防护折线轮廓表示510中,自主车辆的前保险杠上的最远或最右侧点可以被赋予为x=0.0,并且在右后防护折线轮廓表示540中,后保险杠上的最远或最左侧点可以被赋予为x=0.0。右前防护折线轮廓表示510的半平面上的所有其余x坐标相对于最右侧点都是负数。右后防护折线轮廓表示520的半平面上的所有其余x坐标相对于最左侧点都是正数。
95.图17是根据本公开的各方面的示例流程图1700,其可以由一个或多个计算设备的一个或多个处理器执行,诸如计算设备110的处理器120,以操纵具有自主驾驶模式的车辆。例如,在框1710处,接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形。例如,当自主车辆100四处行驶时,感知系统172可以检测和识别自主车辆的环境中的对象的形状和位置。例如,感知系统可以提供位置信息以及表示每个检测到的对象的形状和位置的多边形。表示对象的多边形可以在任何坐标系中,例如,经度和纬度或自主车辆100或感知系统172的传感器的坐标系。
96.在框1720处,访问在半平面坐标系中表示不多于自主车辆的轮廓的一半的自主车辆的折线轮廓表示。可以访问、获取、接收或以其他方式识别折线轮廓表示。例如,防护折线轮廓表示510、520、540、550可以例如在通过网络从远程计算设备接收和/或直接下载到计算设备110之后被预存储在存储器130中。在这方面,可以根据需要从存储器访问或获取折线轮廓表示。如上所讨论的,折线轮廓表示,或防护折线轮廓表示510、520、540、550中的每一个包括多个顶点和线段。
97.在框1730处,将表示对象的多边形的坐标转换为半平面坐标系。例如,当执行碰撞分析时,可以使用位置信息将表示对象的多边形转换为半平面坐标系。例如,这可以通过在半平面的前向方向和垂直方向上找到多边形的极值点来完成。例如,图6提供了表示由感知系统172的传感器检测到的对象的多边形600的视图。在该示例中,相对于现实世界坐标系(例如纬度和经度)描绘半平面530。还描绘了相对于半平面530的法向方向和切向方向(由箭头表示)。极值点610、620表示多边形600相对于半平面530的最反切向点和最反法向线点。
98.然后,可以从表示对象的多边形确定或提取多边形600的全部或一部分。例如,对于凸多边形,多边形在给定方向的极值点可以使用o(log(n))时间复杂度来确定,其中,n是多边形的顶点数。在示例中,当自主车辆沿着半平面方向(即沿循其轨迹)行驶时,在检查碰撞时点610、620、630和640需要被转换,因为这些点相对于半平面的这些y坐标小于或等于折线的最大y坐标值。换言之,图6中640和610之间(在逆时针方向上)的点将不可能在点610(其为半平面方向上的最后点)之前与自主车辆(或更确切地说,折线600)发生碰撞。当多边形的所有y坐标(当在半平面坐标中)小于最大y坐标时,这也成立。可以将该部分的多边形点转换为半平面坐标。例如,如图7和图8所示(图8描绘了自主车辆100的相对位置),多边形600已被转换为半平面坐标。在该示例中,点610表示极值x坐标,并且点620表示极值(非常低的)y坐标。可以使用任何坐标转换算法,诸如涉及旋转和平移点的算法。
99.返回图17,在框1740处,使用转换的坐标,在折线轮廓表示和表示对象的多边形之间的碰撞位置。这可以涉及在数学上在一维(沿着半平面方向)中“滑动”或“移动”折线轮廓
表示,以定义自主车辆的扫掠体积并确定折线轮廓表示将与对象的表示相交的位置。在实践中,这可以涉及减去两个点(一个在折线轮廓表示上,一个在多边形上)之间的位置或x坐标,以确定折线轮廓表示(和/或对象的表示)须移动(或沿着半平面滑动)多远会发生碰撞。碰撞位置可以包括进入位置,该进入位置与在给定自主车辆的当前或将来轨迹(例如,由规划系统168生成)的情况下将与自主车辆发生碰撞的对象的折线轮廓表示上的点或其特定线段对应。
100.例如,转到图9,可以沿着自主车辆的规划轨迹朝向对象滑动或移动(向前或向后)折线轮廓表示(或者更确切地说,x坐标可以彼此相减)。在图9的示例中,前防护折线轮廓表示510被使用并在自主车辆100的规划轨迹的方向上移动。如果自主车辆正在倒车移动,则后防护折线轮廓表示将用于确定进入位置。可以确定表示对象的多边形的每个段(诸如一对顶点和它们之间的线段)的进入位置。这里,点620和630之间的线段910可以被识别为进入位置。
101.例如,对于每个线段,可以确定该线段进入半平面坐标系(d)的最深穿透点。转到图10,并且为了简单起见仅参考线段910,可以确定线段910的最深部分与前防护折线轮廓表示510之间的距离d。类似地,转到图11,并且为了简单起见仅参考线段910,可以确定线段910的最深部分与前防护折线轮廓表示510之间的距离d。可以针对对象的表示的该部分的其他线段重复该过程。
102.如果多边形在半平面的反切向方向上的极值点的深度低于前防护折线轮廓表示510的最低y坐标,则可以使用右前防护折线轮廓表示。例如,图12表示距表示对象的多边形1200的线段1210的最深穿透点的距离。在该示例中,使用了右前防护折线轮廓表示550的反转版本1220。
103.类似地,如果多边形在半平面的切向方向上的极值点的深度低于后防护折线轮廓表示520的最低y坐标,则可以使用左后防护折线轮廓表示(或者更确切地说,右侧)。图13表示距表示对象的多边形1200的线段1320(其在右后半平面坐标系内)的最深穿透点的距离。在该示例中,使用了右后防护折线轮廓表示540。
104.可以识别具有与d相同的穿透深度的前防护和后防护折线轮廓表示(或反转的折线轮廓表示)中的每一个上的折线轮廓表示线段。在图10、11、12和13的每个示例中,虚线箭头指向对应折线轮廓表示的相应线段1040、1140、1240、1340。找到距离d可以使计算设备能够确定多边形的哪个部分与确定进入位置相关。对于线段上的每个顶点,可以将该顶点投影到在相同深度的自主车辆折线轮廓表示上,以确定进入位置。例如,返回图9的线段910的示例,点620和630可以被投影到在对应深度的自主车辆折线轮廓表示上,以确定进入位置。替代地,对于车辆折线轮廓表示上的每个顶点,可以将该顶点投影到对应的多边形段上并确定进入位置。这些投影可以在半平面坐标中轻松完成,因为深度可以只是相应顶点的y坐标,或者更确切地说,是点620和630的y坐标。在投影之后,可以识别最右侧位置(折线轮廓表示可以滑动以与多边形碰撞的最右侧位置)或者更确切地说进入位置。例如,可以通过从最低深度(最低y坐标)朝向最高深度(最高y坐标)分析折线和多边形的顶点以检查碰撞来开始该过程,例如,通过使具有相同y坐标的点的x坐标相减。因此,计算设备110仅需要检查具有重叠y坐标范围的折线和多边形段。
105.除了确定碰撞位置的进入位置之外,还可以以类似的方式确定碰撞位置的退出位
置。这可以在自主车辆正向前移动时使用后防护折线轮廓表示和在自主车辆倒车移动时使用前防护折线轮廓表示来完成。这可以涉及识别多边形在左侧半平面坐标系的切向方向上或在右侧半平面坐标系的反切向方向上的最极值点(取决于车辆是向前还是向后移动)并确定折线何时会移动超出该最极值点以确定退出位置。
106.例如,转到图14(并使用与图9相同的示例),表示对象的多边形600的部分放置在相对于半平面坐标的深度的相同位置,但在自主车辆100之后,而不是在自主车辆之前。在这点上,不是在自主车辆100的轨迹方向上“滑动”或“移动”后防护折线轮廓表示,而是将后防护折线轮廓表示朝向表示对象的多边形600(或相关部分和/或线段)移动以,例如对于如上所述的点620和640之间的线段1410,在给定多边形在左侧半平面坐标系的切向方向上的最极值点(此处为640)的情况下确定退出位置。在实践中,这还可以涉及使两个点(一个在折线轮廓表示上,一个在多边形上)之间的位置或x坐标相减以确定后防护折线轮廓表示(和/或对象的表示)须移动(或沿着半平面滑动)多远会发生碰撞。与上面的示例一样,取决于最后点或最前点的距离d,可以使用后防护折线轮廓表示的反转版本(或右侧)。
107.在表示更复杂对象的更复杂多边形(例如可能存在多个碰撞位置(即多个进入和退出位置对)的凹多边形)的情况下,为了确定实际进入位置和退出位置,可以使用自主车辆的左侧和右侧或两个半平面的折线轮廓表示。换言之,可以使用由左前防护折线表示半平面和右前防护折线表示的半平面的对应y坐标界定的“通道(corridor)”。图16a和16b表示车辆100接近分别由凹多边形1620和1640表示的对象。计算设备110然后可以识别凸多边形和通道的边界之间的所有交点。例如,在图16a中,点1601-1606被识别,而在图16b中,点1631-1638被识别。然后计算设备可以分析交点以确定任何独立的重叠。如果存在在通道的同一侧彼此直接相邻的对象多边形的边将进入然后退出通道(例如,表示潜在的碰撞位置和潜在的退出位置)的两个邻近或相邻的交点,则这些点可以忽略。例如,在图16a中,交点1603和1604将被忽略,而在图16b中,任何交点都不会被忽略。
108.在其余点中,计算设备可以识别进入位置以及退出位置,以确定与对象重叠的碰撞位置和退出位置。对于自主车辆将进入多边形的进入点,计算设备可以识别具有最小x坐标值的进入点。对于自主车辆将退出多边形的退出位置,计算设备可以识别具有最大x坐标值的退出位置。
109.在图16a的示例中,进入位置1614位于交点1601和1602之间的线段上,并且进入位置的x坐标是左或右前防护折线(此处为左)在从点1601和1602之间的线段的x方向上具有最小距离的位置。类似地,退出位置1612在交点1605和1606之间的线段上,并且退出位置的x坐标是左或右后防护折线(此处为右)在1605和1606之间的线段的x方向上具有最大距离的位置。
110.在图16b的示例中,存在与多边形1640的两个重叠。第一重叠的进入位置1642位于交点1631和1632之间的线段上,并且进入位置的x坐标是左或右前防护折线在从点1631和1632之间的线段的x方向上具有最下距离的位置。类似地,第一重叠的退出位置1644位于交点1633和1634之间的线段上,并且退出位置的x坐标是左或右后防护折线在1633和1634之间的线段发热x方向上具有最大距离的位置。第二重叠的进入位置1646在交点1635和1636之间,并且进入位置的x坐标是左或右前防护折线在从点1635和1636之间的线段的x方向上具有最小距离的位置。类似地,第一重叠的退出位置1648在交点1637和1638之间,并且退出
位置的x坐标是左或右后防护折线在1637和1638之间的线段的x方向上具有最大距离的位置。在这些示例中,没有自主车辆可以安全地处于图16a的空间1612中的可能性,但是如果在交点1634和交点1635之间的x方向上的距离至少与自主车辆100的长度一样长,则存在自主车辆可以安全地处于图16b的空间1652中的可能性。
111.在框1750处,基于碰撞位置,在自主驾驶模式下控制自主车辆以避免与对象的碰撞。例如,一旦确定进入位置和碰撞退出位置,自主车辆的计算设备就可以使用该信息来确定如何在自主驾驶模式下更好地控制自主车辆的速度(例如更快或更慢地行驶),以便避开对象。虽然进入位置可以识别自主车辆将与对象发生碰撞的位置,但退出位置可以识别自主车辆可以如何摆脱碰撞。当车辆的计算设备决定超越对象的路径(前进到前面而不是让车)时,这可能很有用。例如,参考图15,图15描绘了在不同时间点的多边形600。多边形600在不同时间点的这种描绘实际上表示对象随时间推移的路径。图15还指示了对象的行进方向以及车辆100的行进方向。随着时间的推移(根据向右的箭头),预期对象将朝向图像的右下移动并穿越自主车辆的轨迹(或者更确切地说,自主车辆的行进方向)。假设自主车辆100最初可能在多边形600的阴影版本的位置处与对象发生碰撞,自主车辆100可以减速并让车于对象,而不是到对象在进入位置之前的路径。替代地,在对象到达多边形的阴影版本的位置之前,自主车辆100可以比多边形600的退出位置更快且更远地行驶。因此,退出位置与进入位置同等重要。
112.如在上述示例中,对象的轮廓通常由2d或3d多边形来建模,该2d或3d多边形界定由自主车辆的感知系统检测到的对象的所有点。图25是根据本公开的各方面的示例流程图2500,其可以由一个或多个计算设备的一个或多个处理器(诸如计算设备110的处理器120)执行,以操纵具有自主驾驶模式的车辆。例如,在框2510处,接收表示在自主车辆的环境中检测到的对象的形状和位置的多边形。例如,当自主车辆100四处行驶时,感知系统172可以检测和识别自主车辆的环境中的对象的形状和位置。例如,感知系统可以提供位置信息以及表示每个检测到的对象的形状和位置的多边形。表示对象的多边形可以在任何坐标系中,例如,纬度和经度或自主车辆100或感知系统172的传感器的坐标系。
113.对象的预测轨迹也可以由行为建模系统174确定,例如使用各种行为建模技术以及来自感知系统的对于该对象、其他对象以及一般地自主车辆的环境的传感器数据。可以通过沿着预测轨迹移动表示对象的多边形来确定对象的2d或3d路径。碰撞建模通常通过使用自主车辆的将来轨迹确定自主车辆的2d或3d路径并确定其是否会与对象的2d或3d路径相交来完成。
114.然而,由于来自感知系统以及行为建模系统174的表示对象的特性(大小、形状、位置、速度、加速度等)的不确定性,可能存在与对象行进方向相关的很大横向不确定性。因此,对象的2d或3d路径可能相当不准确,当与自主车辆的2d或3d路径比较时,可能导致碰撞确定不准确。
115.图18描绘了横向不确定性如何与2d中的碰撞分析相关的示例。在该示例中,表示对象a的多边形1820在以下3个不同时间被描绘:时间t0、t1、t2。这里,可以在时间t0在与表示对象a的多边形1820-t0的位置对应的位置处检测到对象a。行为建模系统174可以预测对象a将沿循轨迹1830,使得对象将在某个点位于多边形1820-t1和1820-t2的位置。多边形1840-l和1840-r表示对象a在时间t1的位置的横向不确定性限制。这些限制可以由操作员
设置,并且可以与横向不确定性大于不确定性的某个预定限制(例如99.9%或0.99或更多或更少)或不确定性的横向距离的某个预定限制(例如2米或更多或更少)对应。为了便于理解,没有描绘对象在时间t2的位置的不确定性。
116.此外,车辆100可能正在沿循规划轨迹,或者替代地,规划系统168可能已经生成了供自主车辆沿循的规划轨迹。区域1810可以表示车辆100在沿循规划轨迹时的扫掠体积,并且可以使用表示车辆100的多边形400或具有附加顶点的更复杂多边形来确定。可以看出,对象的横向不确定性可以意味着自主车辆可能在比多边形1820-t1的位置更宽的区域内与对象发生碰撞。这样的不确定性可能因此使得确定在时间t1处对象位置处的多边形1820的碰撞位置(包括进入和退出位置)相当不准确。
117.为了解决这些缺点,可以将对象的横向不确定性建模为具有来自行为建模系统174输出的不确定性的均值和标准偏差(sd)的正态分布。例如,可以由行为建模系统174提供对象位置(或者更确切地说,表示对象的多边形的位置)在沿着预测轨迹的不同点处的不确定性。参考图19,其表示对象a对于多边形1820-t1的位置的横向不确定性,横向不确定性从远离多边形1820-t1的位置朝向多边形1840-l的位置移动而增加,并且从远离多边形1840-l的位置朝向多边形1820-t1的位置移动而减小。类似地,横向不确定性从远离多边形1820-t1的位置朝向多边形1840-r的位置移动而增加,并且从远离多边形1840-r的位置朝向多边形1820-t1的位置移动而减小。在给定对象a在时间t1的位置的横向不确定性的限制的情况下,1840-l和1840-r的外边缘之间的距离可以定义横向不确定性的“长度”。曲线1920表示对象a在时间t2的横向位置概率曲线。曲线1920下的面积提供了对象在任何两个可能位置之间的概率。例如,在多边形1840-l和1940-l的左侧两个位置之间,概率为0.3。
118.可以确定与自主车辆100的路径重叠的概率。为了识别自主车辆的路径可能与对象相交的位置,计算设备110可以将自主车辆的规划轨迹转换为表示离散时间点的位置(例如,2d或3d路径)的一系列框。类似地,计算设备110可以将对象的预测轨迹转换为表示对象的扫掠路径(例如2d或3d路径)的一系列框。然后,计算设备110可以沿着自主车辆的路径进行搜索,以识别在距对象路径的预定距离(诸如10米或更多或更少)内的对象的框(表示预测位置)。在这点上,计算设备110可以识别自主车辆的规划的将来位置以及在彼此预定距离内的对象的对应的预测的将来位置(即,识别的框的位置)。
119.对象与自主车辆100的规划轨迹之间的距离可以通过计算对象与自主车辆在自主车辆的规划轨迹上对于自主车辆的识别的规划的将来位置的某个位置之间的进入和退出距离来确定。例如,d1可以表示对象进入与自主车辆的规划轨迹重叠时的距离,并且d2可以表示对象退出与自主车辆的规划轨迹重叠时的距离。重叠的概率可以从d1/sd和d2/sd之间的累积分布函数确定。在这点上,d1和d2与表示对象的多边形和自主车辆的路径之间的重叠区域的边界对应。
120.为了确定距离dl和d2,或者更确切地说,表示对象的在其将进入和退出自主车辆的规划轨迹时的多边形的位置,可以将对象的多边形分解为前和后折线。返回图25,在框2520处,基于对象的航向和轮廓确定表示对象的多边形的前折线。还可以基于对象的轮廓确定表示对象的多边形的后折线。为此,可以识别相对于对象航向的最左侧和最右侧点。这可以使用已知技术来实现,这些技术可以包括也可以不包括将对象的坐标系转换为简化识别的坐标系。例如,图20是表示在车辆的环境中检测到的对象b的示例多边形2000。图20也
根据对象b的预测轨迹识别对象的航向2010。从该航向,可以识别表示对象的前部2020和后部2022的多边形,以及最左侧点2030和最右侧点2032。
121.从这些最左侧和最右侧点,可以将多边形划分为前和后折线,如图21和22的示例所示。例如,前折线2110与在最左侧点2030和最右侧点2032之间并且包括该最左侧点2030和最右侧点2032的表示对象b的多边形2000的前部2020上的所有顶点对应。另外,后折线2210与在最左侧点2030和最右侧点2032之间并且包括该最左侧点2030和最右侧点2032的表示对象b的多边形2000的后部2022上的所有顶点对应。前折线2110和后折线2210中的每一个实际上可以表示表示对象的多边形的前宽度侧轮廓和后宽度侧轮廓。
122.返回图25,在框2530处,将前折线的坐标转换为半平面坐标系。此外,可以将后折线的坐标转换为半平面坐标系。换言之,可以随后将前和后折线中的每一个转换为半平面坐标。例如,这可以通过在相对于对象的航向的半平面的前向(“前”)和反向(“后”)中找到表示对象的极值点的多边形来完成。在图21的示例中,对象的最前点是点2120,在图22中,对象的最后点是点2022。转到图23a,前半平面2310可以被确定为垂直于通过点2120的航向2010的平面。转到图23b,后半平面2320可以被确定为垂直于通过点2220的航向2010的平面。此外,自主车辆的识别的规划的将来位置也可以被转换为对象的每个半平面坐标系,例如前和后。换言之,自主车辆的每个识别的规划的将来位置被转换为给定预期的对象多边形的前半平面坐标系和后半平面坐标系的坐标。
123.可以确定前折线和后折线中的每一个的碰撞位置,或者更确切地说,进入位置和退出位置。例如,返回图25,在框2540处,使用前和后折线的转换的坐标以及自主车辆的识别的规划的将来位置的转换的坐标确定前折线和表示对象的多边形之间的进入位置和退出位置。此外,后折线与表示对象的多边形之间的进入位置和退出位置基于自主车辆的规划的将来位置的转换的坐标并使用前和后折线的转换的坐标来确定。
124.每个进入或退出位置可以与前或后折线的特定线段对应,在给定自主车辆的当前的规划轨迹的情况下,该特定线段将与自主车辆(或者更确切地说,自主车辆的规划轨迹)发生碰撞。虽然进入位置可以识别自主车辆将与对象发生碰撞的位置,但退出位置可以识别自主车辆可以如何摆脱与对象轨迹的碰撞。确定进入和退出位置可以涉及在数学上沿着半平面方向“滑动”或“移动”前和后折线以确定前或后折线将与自主车辆的路径或至少某个将来的预测位置相交的位置,如下图所示。例如,如上所述,自主车辆的路径可以被认为是在不同位置表示自主车辆的多个离散框或多边形,而不是“扫掠”体积或区域。因此,在一些情况下,可以通过使用表示自主车辆的框或更复杂的多边形而不是路径来确定对于给定轨迹对象是否可能与自主车辆相交。
125.在实践中,这可以涉及使两个点(一个在折线上,一个在路径上)之间的位置或x坐标相减,以确定表示对象的折线(或对象)须移动(或沿着半平面滑动)多远会与自主车辆发生碰撞。进入位置可以与在给定自主车辆的当前或将来轨迹的情况下将与自主车辆发生碰撞的折线上的点或特定线段对应。退出位置可以与具有x最极值的在给定自主车辆的当前或将来轨迹的情况下将与自主车辆发生碰撞的折线上的点或特定线段对应。
126.转到图24的示例,表示车辆100的多边形400使用转换的坐标并相对于对象b的前半平面2310和后半平面2320沿着自主车辆的规划轨迹被描绘在自主车辆的识别的规划的将来位置处。在这方面,如上面示例中所述,在给定当车辆处于规划的将来位置时对象b的
位置的横向不确定性的限制的情况下,前和后半平面中的每一个的x=0值之间的距离或长度2410与横向不确定性的“长度”对应。同样,通过沿前半平面和后半平面(对于前和后半平面中的每一个从x=0开始)在数学上滑动前折线,可以确定进入位置。每个进入位置可以与表示对象的前或后折线最初将与表示车辆的多边形接触的前或后半平面上的线段或点对应。在图24的示例中,距离front_entry表示沿着前半平面2310的x=0与前折线2110上的前折线2110最初将与多边形400接触的线段或点之间的距离。距离rear_entry表示沿着后半平面2310的x=0与后折线2210上的后折线2210最初将与多边形400接触的线段或点之间的距离。
127.当确定退出位置时,不是使用前或后折线将不再与多边形接触的点,而是分别使用前或后半平面坐标系中车辆的最极值点或x坐标。在图24的示例中,距离front_exit表示沿着前半平面2310的x=0与前折线2110上的前折线2110将与在沿着后半平面在数学上滑动之后的前半平面坐标中的多边形400的x最极值坐标最后相交的线段或点之间的距离。距离rear exit表示沿着后半平面2310的x=0与后折线2210上的后折线2210将与在沿着后半平面在数学上滑动之后的前半平面坐标中的多边形400的x最极值坐标最后相交的线段或点之间的距离。
128.然后可以从前和后半平面的进入和退出位置确定距离d1和d2。例如,d1可以通过取前折线的进入位置的最小x坐标值和投影到前半平面的后折线的退出位置的x坐标值来确定。d2可以通过取前折线的退出位置的最大x坐标值和投影到前折线的后折线的进入位置的x坐标来确定。换言之,由于多边形和折线的坐标在半平面坐标系中,因此距离d1和d2可以使用以下等式确定:{d1=min(front_entry,length-rear_entry},d2=max(front_exit,length-rear_exit)},其中,front_entry表示前折线的进入位置的x坐标或距离,rear_entry表示后折线的进入位置的x坐标或距离,front_exit表示前折线的退出位置的x坐标或距离,rear_exit表示后折线退出位置的x坐标,并且length表示前面提到在给定当车辆处于规划的将来位置时对象的位置的横向不确定性的限制的情况下的横向不确定性的“长度”。这些值d1和d2然后可用于确定在给定位置的重叠(例如碰撞)概率,如上所述。
129.在本文描述的示例中,表示对象b的多边形400的特定位置是自主车辆100根据规划轨迹的自主车辆的规划轨迹和对象的预测轨迹重叠的离散位置。因此,如果存在规划和投影的轨迹将重叠的多个位置,则可以针对这样的多个位置执行碰撞位置和重叠的概率的前述确定。
130.返回图26,在框2650处,基于进入位置和退出位置,在自主驾驶模式下控制自主车辆以避免与对象发生碰撞。再一次,当车辆的计算设备决定避开甚至超越对象时,碰撞位置可能很有用。例如,距离d1和d2可用于确定如上所述的重叠的概率。一旦确定重叠的概率,自主车辆的计算设备就可以使用该信息来确定如何在自主驾驶模式中更好地控制自主车辆的速度(例如,更快或更慢地行驶),从而避开对象。在某些情况下,自主车辆甚至可以生成新轨迹。
131.尽管本文中的特征和示例涉及确定自主车辆的碰撞位置,但这样的特征也可用于非自主车辆,或仅以手动或半自主驾驶模式操作的车辆,或不在完全自主驾驶模式下操作的自主车辆。例如,在半自主或手动驾驶模式中,这种方法可以帮助评估或预测将来驾驶轨迹的概率风险,这还可以提高系统的安全性。
132.图26是根据本公开的各方面的另一示例流程图2800,其可以由一个或多个计算设备的一个或多个处理器(诸如计算设备110的处理器120)执行,以操纵具有自主驾驶模式的车辆。在框2610处,接收表示第一对象的形状和位置的多边形。在框2620处,接收表示第二对象的形状和位置的多边形的一部分的折线轮廓表示。折线轮廓表示在半平面坐标中并且包括多个顶点和线段。在框2630处,将表示第一对象的多边形的坐标转换为半平面坐标系。在框2640处,使用转换坐标确定折线轮廓表示和表示第一对象的多边形之间的碰撞位置。在框2650处,随后基于碰撞位置在自主驾驶模式下控制自主车辆以避免碰撞。在该示例中,第一对象可以是自主车辆,而第二对象是自主车辆的环境中的对象。替代地,第二对象可以是自主车辆,而第一对象是自主车辆的环境中的对象。此外,碰撞位置可以包括碰撞的进入位置以及碰撞的退出位置。
133.本文描述的特征可以提供高效、且真实的对象表示以用于碰撞分析。例如,本文描述的特征可以允许用于计算对象与自主车辆的轨迹之间的重叠的概率的高效且准确的方法。此外,在自主车辆的折线表示的情况下,由于自主车辆的表示没有被笼统到比自主车辆的实际尺寸更大的二维矩形,因此这可以显著减小自主车辆的扫掠体积,这反过来又可以允许自主车辆通过更狭窄的通道并更靠近其他对象。如上所述,碰撞检测的目标最终是保守的并检测任何可能的碰撞。然而,使用折线表示可以允许计算自主车辆和其他对象之间的更大距离,而不会违背保守估计的性质。
134.此外,由于折线轮廓表示仅需要与车辆的一半对应并且在执行碰撞分析时仅需要其中的一部分(在峰之前或之后),因此这也可以显著减少存储器和处理资源。如本文所述,折线轮廓表示还允许确定自主车辆的哪个部分将涉及碰撞(例如,与镜或保险杠碰撞),而不是简单地矩形上的可以或可以不实际上与自主车辆上的物理点对应的点。此外,由于折线轮廓表示的y坐标的单调性,因此一旦知道对象与自主车辆的轨迹重叠的深度,就可以快速确定用于碰撞分析的线段。除了车辆和实时决策之外,本文描述的特征还可以用于包括对象的虚拟表示的除了车辆之外的对象,诸如包括测试环境的模拟以及视频游戏。例如,本文描述的特征可用于确定这些虚拟对象的碰撞位置,包括进入位置和退出位置,从而使模拟本身更高效。
135.当与实际车辆结合使用时,由于折线轮廓表示比表示车辆或车辆环境中的对象的矩形多边形更加细微,因此本文描述的特征可以有效地增加自主车辆与其他对象之间的计算距离,这也可以降低与其他对象发生误报碰撞的可能性,降低车辆因被另一对象错误阻挡而陷入困境(无法继续行驶)的可能性,并减少由其他对象引起的遮挡,因为自主车辆可能能够更靠近或接近对象。转而,所有这些益处可以使自主车辆能够更好地在对象周围进行机动,在某些情况下,可以更快地行驶,并且还可以减少对规避性(或其他不舒适)机动的需要,这可以提高乘客整体驾驶舒适度。
136.除非另有说明,否则前述替代示例不是相互排斥的,而是可以以各种组合实施以实现独特的优势。由于可以在不背离权利要求限定的主题的情况下利用上述特征的这些和其他变化和组合,因此实施例的前述描述应当以说明的方式而非限制权利要求限定的主题的方式来理解。此外,本文所描述的示例的提供以及措辞为“诸如”、“包括”等的词句不应被解释为将权利要求的主题限制为特定示例;而是,这些示例旨在仅说明许多可能的实施例之一。此外,不同附图中相同的附图标记可以标识相同或相似的元件。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献