首页 / 专利分类库 / 控制;调节 / 非电变量的控制或调节系统 / 使用时空凸形走廊的运动规划

使用时空凸形走廊的运动规划

申请号 CN202180101686.1 申请日 2021-09-14 公开(公告)号 CN117916682A 公开(公告)日 2024-04-19
申请人 华为技术有限公司; 发明人 张卫泽; 佩曼·亚德梅拉特; 高志伟;
摘要 本 发明 提供了用于自动驾驶车辆的路径规划的系统、方法和计算机可读介质。所述方法包括:接收数据,其中,所述数据限定 时空 凸形走廊的上界和所述时空凸形走廊的下界;计算走廊开始时间和走廊结束时间内的多个控制点时间,其中,所述多个控制点时间至少包括开始控制点时间、结束控制点时间和介于所述开始控制点时间和所述结束控制点时间之间的中间控制点时间;为所述多个控制点时间确定多个控制点最大值和多个控制点最小值;根据所述多个控制点最大值和所述多个控制点最小值,为所述多个控制点时间计算多个控制点值,其中,所述多个控制点值限定在所述时空凸形走廊的所述上界和所述下界内的曲线段。
权利要求

1.一种用于自动驾驶车辆的运动规划的计算机实现方法,其特征在于,所述方法包括:
接收数据,其中,所述数据(i)将时空凸形走廊在第一空间维度上的第一维度上界限定为介于走廊开始时间和走廊结束时间之间的时间的凹函数,(ii)将所述时空凸形走廊在所述第一空间维度上的第一维度下界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凸函数,所述第一空间维度与第一时空平面对应;
计算所述走廊开始时间和所述走廊结束时间内的多个控制点时间,其中,所述多个控制点时间至少包括开始控制点时间、结束控制点时间和介于所述开始控制点时间和所述结束控制点时间之间的中间控制点时间;
为所述多个控制点时间中的每个控制点时间确定与所述第一维度上界在所述控制点时间处的值对应的各自的第一控制点最大值;
为所述多个控制点时间中的每个控制点时间确定与所述第一维度下界在所述控制点时间处的值对应的各自的第一控制点最小值;
根据各自的第一控制点最大值和各自的第一控制点最小值,为所述多个控制点时间中的每个控制点时间计算各自的第一维度控制点值,其中,所述第一维度控制点值限定在所述时空凸形走廊的所述第一维度上界和所述第一维度下界内的第一曲线段;
根据所述第一曲线段,输出用于控制所述自动驾驶车辆的运行的规划轨迹。
2.根据权利要求1所述的方法,其特征在于,计算所述第一维度控制点值是为了统一优化所述第一时空平面上的通过所述时空凸形走廊的所述第一曲线段的第一限定成本函数。
3.根据权利要求1或2所述的方法,其特征在于,所述第一空间维度与以下之一对应:
(i)沿道路的切向量的纵向距离和(ii)沿所述道路的法向量到所述道路的横向距离。
4.根据权利要求1或2所述的方法,其特征在于,所述第一空间维度与以时间为另一轴的三维笛卡尔坐标系中的距离轴对应。
5.根据权利要求1或2所述的计算机实现方法,其特征在于,
所述接收到的数据还(iii)将所述时空凸形走廊在第二空间维度上的第二维度上界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凹函数,(iv)将所述时空凸形走廊在所述第二空间维度上的第二维度下界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凸函数,所述第二空间维度在时间上与所述第一时空平面重合的第二时空平面对应;
所述方法包括:
为所述多个控制点时间中的每个控制时间点确定与所述第二维度上界在所述控制点时间处的值对应的各自的第二控制点最大值;
为所述多个控制点时间中的每个控制时间点确定与所述第二维度下界在所述控制点时间处的值对应的各自的第二控制点最小值;
根据各自的第二控制点最大值和各自的第二控制点最小值,为所述多个控制点时间中的每个控制时间点计算各自的第二维度控制点值,其中,所述第二维度控制点值限定在所述时空凸形走廊的所述第二维度上界和所述时空凸形走廊的所述第二维度上界内的第二曲线段;
所述规划轨迹根据所述第一曲线段和所述第二曲线段输出。
6.根据权利要求5所述的方法,其特征在于,计算所述第二维度控制点值是为了统一优化所述第二时空平面上的通过所述时空凸形走廊的所述第二曲线段的第二限定成本函数。
7.根据权利要求5或6所述的方法,其特征在于,所述第一空间维度与沿道路的切向量的纵向距离对应,所述第二空间维度与沿所述道路的法向量到所述道路的横向距离对应。
8.根据权利要求5或6所述的方法,其特征在于,所述第一空间维度和第二空间维度分别与以时间为第三轴的三维笛卡尔坐标系中的第一距离轴和第二距离轴对应。
9.根据权利要求1至8中任一项所述的方法,其特征在于,每个第一曲线段为n阶参数化曲线,所述多个控制点时间包括在时间上均匀间隔的n+1个控制点时间。
10.根据权利要求9所述的方法,其特征在于,每个第一曲线段为n阶贝塞尔(Bezier)曲线。
11.根据权利要求9所述的方法,其特征在于,每个第一曲线段为n阶B样条(B‑spline)曲线。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述接收到的数据为多个连续时空凸形走廊限定各自的第一维度上界和各自的第一维度下界;为所述连续时空凸形走廊中的每个时空凸形走廊生成各自的第一曲线段;所述自动驾驶车辆的所述规划轨迹穿过所述多个连续时空凸形走廊,并且根据所述各自的第一曲线段计算得到。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述方法包括:计算所述多个连续时空凸形走廊中的每个时空凸形走廊的多个第一空间维度控制点值的约束条件,以实现穿过所述多个连续时空凸形走廊的轨迹路径的连续性,其中,所述多个连续时空凸形走廊中的每个时空凸形走廊的所述多个第一空间维度控制点值也根据所述约束条件计算得到。
14.一种用于自动驾驶车辆的路径规划的系统,其特征在于,所述系统包括处理系统,所述处理系统通过指令配置以使得所述系统执行根据权利要求1至13中任一项所述的方法。
15.一种存储指令的非瞬时性计算机可读介质,其特征在于,所述指令在由处理系统执行时,使得所述处理系统执行根据权利要求1至13中任一项所述的方法。
16.一种包括计算机可读指令的计算机程序,其特征在于,所述计算机可读指令在由处理系统中的处理设备执行时,使得所述处理系统执行根据权利要求1至13中任一项所述的方法。

说明书全文

使用时空凸形走廊的运动规划

技术领域

[0001] 本发明涉及使用时空凸形走廊进行运动规划的系统、方法和计算机可读介质。

背景技术

[0002] 自动驾驶车辆(例如,自动驾驶汽车)是一种包括不同类型的传感器且能够在没有人类干预的情况下安全自主运行的车辆,其中的传感器用于感测车辆周围环境(例如,车辆附近的静止物体和动态物体的存在和状态)和车辆运行参数(例如,车速、加速度、位姿等)。自动驾驶车辆通常包括用于感知与预测、定位与地图构建以及规划与控制的各种软件系统。用于规划的软件系统(通常称为规划系统)根据目标目的地、车辆周围环境和车辆物理参数(例如,轴距、车宽、车长等)规划车辆行驶的轨迹。用于控制车辆的软件系统(例如,车辆控制系统)从规划系统接收轨迹,并且生成控制指令以控制车辆按照轨迹运行。
[0003] 规划系统可以包括按层次结构排列的多个规划器(也可以称为规划单元、规划子系统、规划模等)。规划系统通常包括任务规划器、行为规划器和运动规划器。运动规划器接收由行为规划器为自动驾驶车辆生成的行为决策、车辆状态信息(包括感测到的环境数据和车辆运行数据)和车辆行驶所在的道路网络信息作为输入,并且执行运动规划以生成自动驾驶车辆的轨迹。在本发明中,轨迹包括自动驾驶车辆在时空坐标系中的位置在多个时间步长上的序列。其它参数可以与轨迹相关联,包括车辆方位、车速、车辆加速度、车辆颠簸或其任意组合。
[0004] 运动规划系统用于在与车辆状态、行为决策和车辆行驶所在的道路网络对应的时空搜索空间内生成满足安全性、舒适性和移动性等标准的轨迹。当存在时间相关约束条件时,运动规划系统在实现自动驾驶车辆的安全局部运动规划方面可能会面临挑战。时间相关约束条件通常是由于其它车辆、行人和骑自行车的人等动态物体产生的,这些动态物体可能会随着时间的推移而改变可用时空搜索空间。从更广泛的意义上讲,周围环境的任何变化(由于移动物体、交通信号灯状态变化等)和/或行为决策的变化都可能导致时间相关约束条件。要将这一问题表述为优化问题,一种常见的方法是将可用搜索空间分解为多个跨时间的走廊(corridor)。每个走廊限定时空搜索空间中的一个可用范围。连续走廊在某个时间点上重叠,以保证存在解决方案。考虑到这些走廊,运动规划问题简化为查找每个走廊的轨迹段,并且在每个重叠点连接轨迹段,从而在可用搜索空间内生成一条从车辆的初始位置到目标位置的连续轨迹。车辆的初始位置可以是车辆的当前位置,也可以是前一时间轨迹上的一个点或与当前位置相距较远的一个点。
[0005] 例如,图1示出了道路上的示例性驾驶场景。虚线区域表示占用或不可驾驶区域11(例如,在道路边界区域之外),可驾驶区域由带轮廓的菱形图案13标示,走廊由白色矩形12显示。为了简单起见,假设这种场景是一种静态场景(所有物体都是静止的)。因此,在这种特定场景中无需考虑时间轴,搜索空间投影在SL平面上,其中,S和L是指弗勒内(Frenet)坐标系中的空间坐标。S坐标是沿道路切向量的纵向距离。L坐标是沿道路法向量到道路的横向距离。弗勒内坐标系的原点是一个移动参考,通常放置在驾驶区(例如,道路或道路上的车道)的中心线上距离车辆最近的点上。原点15的位置根据车辆在每个规划周期的位置而变化。在图1的场景中,在每个走廊矩形12内生成轨迹段16。第一轨迹段16从车辆的当前位置15开始,到第1个(当前)走廊和第2个(下一个)走廊之间的重叠边缘上的一个点结束。每个走廊都重复这个过程,以获得从开始位置14到目标位置17的轨迹。这个过程在动态环境中类似,不同之处在于,搜索空间是3D SLT空间(其中,T是指时间坐标),而在图1所示的静态环境中,搜索空间是2D SL空间。为了处理动态环境中的规划,现有方法将SLT搜索空间投影到ST平面和LT平面上。通常的做法是将可驾驶区域/自由空间(以下称为可用区域)分解为矩形ST和/或LT走廊(SLT空间中的立方体走廊)。由于矩形走廊只覆盖可用区域的一部分,因此生成的轨迹始终是一个次优解决方案。也就是说,如果每个走廊覆盖可用区域的更大一部分,则可能会找到更优化的轨迹。为此,Li,Jialun等人发表在arXiv预印本:2104.11655(2021年)中的“使用具有梯形走廊的贝塞尔多项式进行速度规划(Speed Planning Using Bezier Polynomials with Trapezoidal Corridors)”一文中描述了一种使用梯形走廊的最新方法,其静态示例如图2A所示投影在SL平面上。与矩形走廊相比,梯形走廊虽然仍有局限性,但在一些驾驶场景中可能会覆盖更大的区域。另一种方法是通过考虑较小的走廊和增加走廊数量来最大限度地扩大覆盖范围,图2B举例说明了这种方法。
然而,增加走廊数量可能会对优化执行时间产生负面影响,因为这会增加轨迹段的数量,并且可能产生非实时解决方案。此外,鉴于走廊的形状(几何形状)简单,无法保证增加矩形走廊或梯形走廊的数量就能扩大搜索空间覆盖范围。
[0006] 图2A中的梯形走廊是贝塞尔曲线轨迹生成的一个示例。在图2A的示例中,在安全通道(走廊21)内绘制多个控制点20,并且根据些点20生成贝塞尔曲线22。由于贝塞尔曲线的“凸包属性”,曲线22不会超出走廊21的外边界。请注意,两个轴(SL)都是空间维度。然而,在存在时间相关性的场景中,即在时空空间(例如,ST和LT时空平面)中进行规划时,在安全走廊内计算贝塞尔曲线可能会出现问题。
[0007] 因此,需要能够在安全走廊内生成曲线轨迹的系统和方法,以优化轨迹的可用搜索空间。

发明内容

[0008] 根据本发明的第一示例性方面,提供了一种用于自动驾驶车辆的运动规划的计算机实现方法。所述方法包括:接收数据,其中,所述数据(i)将时空凸形走廊在第一空间维度上的第一维度上界限定为介于走廊开始时间和走廊结束时间之间的时间的凹函数,(ii)将所述时空凸形走廊在所述第一空间维度上的第一维度下界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凸函数,所述第一空间维度与第一时空平面对应;计算所述走廊开始时间和所述走廊结束时间内的多个控制点时间,其中,所述多个控制点时间至少包括开始控制点时间、结束控制点时间和介于所述开始控制点时间和所述结束控制点时间之间的中间控制点时间;为所述多个控制点时间中的每个控制点时间确定与所述第一维度上界在所述控制点时间处的值对应的各自的第一控制点最大值;为所述多个控制点时间中的每个控制点时间确定与所述第一维度下界在所述控制点时间处的值对应的各自的第一控制点最小值;根据各自的第一控制点最大值和各自的第一控制点最小值,为所述多个控制点时间中的每个控制点时间计算各自的第一维度控制点值,其中,所述第一维度控制点值限定在所述时空凸形走廊的所述第一维度上界和所述第一维度下界内的第一曲线段;根据所述第一曲线段,输出用于控制所述自动驾驶车辆的运行的规划轨迹。
[0009] 在至少一些规划应用中,使用更加复杂的时空走廊形状可以扩大通过走廊提供的搜索空间覆盖范围。这可以最大限度地降低找到轨迹解决方案所需的计算成本(例如,优化CPU使用、执行时间和功耗),而且还可以通过使用需要较低加速度和/或颠簸的轨迹,使解决方案从车辆运行的度来看可能更高效、更舒适。
[0010] 在一些示例性方面中,计算所述第一维度控制点值是为了统一优化所述第一时空平面上的通过所述时空凸形走廊的所述第一曲线段的第一限定成本函数。
[0011] 在一个或多个上述方面中,所述第一空间维度与以下之一对应:(i)沿道路的切向量的纵向距离和(ii)沿所述道路的法向量到所述道路的横向距离。
[0012] 在一个或多个上述方面中,所述第一空间维度与以时间为另一轴的三维笛卡尔坐标系中的距离轴对应。
[0013] 在一个或多个上述方面中,所述接收到的数据还(iii)将所述时空凸形走廊在第二空间维度上的第二维度上界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凹函数,(iv)将所述时空凸形走廊在所述第二空间维度上的第二维度下界限定为介于所述走廊开始时间和所述走廊结束时间之间的时间的凸函数,所述第二空间维度在时间上与所述第一时空平面重合的第二时空平面对应。所述方法还包括:为所述多个控制点时间中的每个控制点时间确定与所述第二维度上界在所述控制点时间处的值对应的各自的第二控制点最大值;为所述多个控制点时间中的每个控制点时间确定与所述第二维度下界在所述控制点时间处的值对应的各自的第二控制点最小值;根据各自的第二控制点最大值和各自的第二控制点最小值,为所述多个控制点时间中的每个控制点时间计算各自的第二维度控制点值,其中,所述第二维度控制点值限定在所述时空凸形走廊的所述第二维度上界和所述时空凸形走廊的所述第二维度上界内的第二曲线段;所述规划轨迹根据所述第一曲线段和所述第二曲线段输出。
[0014] 在一个或多个上述方面中,计算所述第二维度控制点值是为了统一优化所述第二时空平面上的通过所述时空凸形走廊的所述第二曲线段的第二限定成本函数。
[0015] 在一个或多个上述方面中,所述第一空间维度与沿道路的切向量的纵向距离对应,所述第二空间维度与沿所述道路的法向量到所述道路的横向距离对应。
[0016] 在一个或多个上述方面中,所述第一空间维度和第二空间维度分别与以时间为第三轴的三维笛卡尔坐标系中的第一距离轴和第二距离轴对应。
[0017] 在一个或多个上述方面中,每个第一曲线段为n阶参数化曲线,所述多个控制点时间包括在时间上均匀间隔的n+1个控制点时间。
[0018] 在一个或多个上述方面中,每个第一曲线段为n阶贝塞尔(Bezier)曲线。
[0019] 在一个或多个上述方面中,每个第一曲线段为n阶B样条(B‑spline)曲线。
[0020] 在一个或多个上述方面中,所述接收到的数据为多个连续时空凸形走廊限定各自的第一维度上界和第一维度下界;为所述多个连续时空凸形走廊中的每个时空凸形走廊生成各自的第一曲线段;所述自动驾驶车辆的所述规划轨迹穿过所述多个连续时空凸形走廊,并且根据所述各自的第一曲线段计算得到。
[0021] 在一个或多个上述方面中,所述方法包括:计算所述多个连续时空凸形走廊中的每个时空凸形走廊的多个第一空间维度控制点值的约束条件,以实现穿过所述多个连续时空凸形走廊的轨迹路径的连续性,其中,所述多个连续时空凸形走廊中的每个时空凸形走廊的所述多个第一空间维度控制点值也根据所述约束条件计算得到。
[0022] 在一些方面中,本发明提供了一种用于自动驾驶车辆的轨迹规划的系统。所述系统包括处理系统,所述处理系统通过指令配置以使得所述系统执行上述方法的任一方面。
[0023] 在一些方面中,本发明提供了一种存储指令的计算机可读介质。所述指令供处理系统执行,以用于自动驾驶车辆的轨迹规划。所述指令被执行时使得所述系统执行上述方法的任一方面。附图说明
[0024] 下面通过示例参考示出本申请示例性实施例的附图。
[0025] 图1示出了基于一组连续走廊的示例性静态驾驶场景。
[0026] 图2A示出了基于梯形走廊的示例性静态驾驶场景。
[0027] 图2B示出了使用多个走廊代替单个走廊的示例性驾驶场景。
[0028] 图3示出了示例性动态驾驶场景。
[0029] 图4示出了与图3中的场景对应的自车在ST和LT时空平面上的安全区域的示例。
[0030] 图5A、图5B和图5C分别示出了矩形走廊、梯形走廊和一般凸形走廊,用于限定图4中的安全区域的搜索空间(以实线表示)和未搜索空间(以虚线表示)。
[0031] 图6A、图6B和图6C分别示出了时空平面上的与图5A、图5B和图5C中的走廊对应的轨迹曲线段解决方案。
[0032] 图7示出了参数化曲线和凸形走廊的示例,显示了不满足凸包属性的情况。
[0033] 图8是示例性自动驾驶车辆中的一些组件的框图
[0034] 图9是示例性实施例提供的可以用于实现图8中的自动驾驶车辆的规划系统的处理系统中的一些组件的框图。
[0035] 图10是示例性规划系统的更多详细内容的框图。
[0036] 图11示出了凸形走廊数据的一个示例。
[0037] 图12是图10中的示例性规划系统中的轨迹生成器的更多详细内容的框图。
[0038] 图13示出了凸形走廊的一个示例。
[0039] 图14A和图14B示出了凸形走廊内的贝塞尔(Bezier)曲线段的示例。
[0040] 在不同的附图中可以使用相似的附图标记来表示相似的组件。

具体实施方式

[0041] 如本文所述,在范围或边界的上下文中使用的术语“……内(within)”包括限定外部范围或边界的值以及这些值之间的所有中间值。例如,“1至10内”包括值1和10以及它们之间的所有值。
[0042] 根据示例性方面,运动规划使用时空凸形走廊来限定搜索空间,以便为自动驾驶车辆生成轨迹。凸形走廊是一种几何形状,其中连接形状边界上两点的任何直线段都位于该形状内,即对于该形状内的任意两点,这些点之间的线段永远不会超出该形状。在至少一些规划应用中,使用比以前使用的矩形或梯形更加复杂的时空走廊形状可以使用更少的走廊来覆盖更多的搜索空间。这可以最大限度地降低找到轨迹解决方案所需的计算成本(例如,优化CPU使用、执行时间和功耗),而且还可以通过使用需要较低加速度的轨迹,使解决方案从车辆运行的角度来看可能更高效、更舒适。
[0043] 为了提供以下描述的上下文,参考图3、图4、图5A、图5B、图5C、图6A、图6B和图6C描述了驾驶场景的示例以及不同走廊形状的对应ST/LT图形。图3示出了一种场景,显示了自车30、第一和第二其它车辆32、34在5秒的持续时间内沿道路行驶的预测轨迹。在开始时间,第一车辆32(虚线)停留在自车30的前方,第二车辆34(实线)停留在自车的左侧。在接下来的5秒内,第一车辆32开始减速,第二车辆34切入自车30的车道并将自车30推向右侧。在将所有交通车辆投影到ST平面和LT平面上之后,图4示出了自车的无碰撞安全空间42(例如,绘制的时空安全空间边界曲线44下方的区域,与安全轨迹曲线的搜索空间对应)对应的ST图表和LT图表。
[0044] 图5A、图5B和图5C示出了使用以下相应方法生成的相应安全规划时空走廊:(i)矩形ST和LT搜索走廊52(图5A),(ii)梯形ST和LT搜索走廊54(图5B),(iii)一般凸形ST和LT搜索走廊56(图5C)。在所有情况下,走廊用作安全通道,自车能够在其中进行无碰撞地机动。走廊边界还可以强制执行其它约束条件,例如,由行为决策、车辆运动学和动学等强加的约束条件。
[0045] 需要说明的是,与其它走廊形状相比,图5C中的一般凸形走廊为安全空间边界曲线44下方的可用安全空间提供了更大的搜索空间覆盖范围,其中,图5A和图5B中的虚线形状58表示未搜索空间。
[0046] 图5C中的一般凸形走廊提供较大搜索区域存在优势,图6A、图6B和图6C中的ST平面图表对此进行了说明,其中,虚线60示出了规划轨迹曲线,该曲线停留在相应矩形走廊、梯形走廊和一般凸形走廊的边界内。如图6A、图6B和图6C所示,相应走廊覆盖的搜索区域越大,规划轨迹曲线所需的减速度就越低,这可以提高整体舒适性和平稳性,提高自车的节能性,从而降低功耗。同样的原理也适用于LT平面。自车不需要那么急的转弯,这也提高了舒适性。
[0047] 如上所述,对于图6A所示的矩形走廊的情况,一种解决方案是将安全空间边界曲线44下方的搜索空间分成多个连续的不同形状的矩形走廊,如图2A和图2B所示。然而,随着走廊数量的增加,这种解决方案会增加所考虑空间的计算成本。此外,这种解决方案还会产生更保守的轨迹,即速度较低、穿过走廊时减速较快。相比之下,图5C和图6C中的一般凸形走廊以尽可能少的走廊覆盖了相同(甚至更大)部分的可搜索区域。
[0048] 虽然如此,矩形走廊(而不是梯形走廊或一般凸形走廊)通常用于安全轨迹规划,以确保为走廊生成的轨迹曲线段满足“凸包属性”。具体地,为了确保规划轨迹段是安全的,限定穿过走廊的轨迹曲线段的参数化曲线(例如,贝塞尔曲线)上的所有点都必须落在由走廊限定的搜索空间内。曲线通常使用以走廊为边界的控制点子集生成。n阶贝塞尔曲线段需要包括n+1个控制点。然而,对于复杂的走廊形状,即使所有控制点都落在走廊内,也很难确保满足凸包属性。凸包属性(只要控制点在凸边界内,生成的轨迹贝塞尔曲线段也在凸边界内)只适用于时空走廊中的矩形走廊。
[0049] 以举例说明,图7示出了SL平面上的凸边界72和ST时空平面上的凸边界74的一个示例以及相应的n阶贝塞尔曲线段76和78。这两个曲线段都已经根据位于凸边界72和凸边界74内的n+1个控制点的相应集合生成。如图7所示,即使没有一个控制点超出边界,在ST时空平面上生成的贝塞尔曲线段78仍然部分超出了凸边界。虽然时空SL平面上的贝塞尔曲线段76满足凸包属性,但时空ST平面上的贝塞尔曲线段78却不满足凸包属性。
[0050] 根据本发明的示例性方面,描述了一种用于在一般凸形走廊中生成安全轨迹曲线段的运动规划系统和方法。走廊内的控制点的时间轴位置会对生成的穿过走廊的贝塞尔曲线段的形状产生强烈影响。在这方面,将控制点时间和与控制点时间对应的上下走廊边界值确定为保持生成的贝塞尔曲线在时空凸形走廊内的条件,同时优化时空凸形走廊内的搜索区域。如下文详述,计算贝塞尔曲线上的控制点的时间和控制点上下限是为了使一般时空凸形走廊满足凸包属性。因此,生成的贝塞尔曲线上的所有点都严格停留在一个或多个走廊内,这不仅保证了安全性,而且还可以保证实施行为决策和其它约束条件。
[0051] 在一些示例中,这种方法可以将未搜索安全区域(即安全空间42中不包括在时空凸形走廊56内的区域58)缩小到大约 的数量级(其中,O是未搜索区域58与可搜索区域(例如,安全空间42)之间相差的数量级,n是控制点的数量),这是可能的最佳结果。因此,控制点的平方数与未搜索区域成反比。
[0052] 示例性实施例将在n阶贝塞尔曲线的上下文中描述,但是本文中描述的方法和系统可以应用于其它n阶参数化曲线,包括n阶B样条(B‑spline)曲线等。
[0053] 下面参考图8、图9和图10简要介绍了一种自动驾驶车辆,本文中描述的示例性规划系统和方法可以应用于其中。
[0054] 自动驾驶车辆通常包括用于感知与预测、定位与地图构建以及规划与控制的各种软件系统。用于规划的软件系统(通常称为规划系统)根据目标目的地和车辆物理参数(例如,轴距、车宽、车长等)规划车辆行驶的轨迹。用于控制车辆的软件系统(例如,车辆控制系统)从规划系统接收轨迹,并且生成控制指令以控制车辆按照轨迹运行。虽然本文中描述的示例可以将汽车称为自动驾驶车辆,但本发明的指导可以在其它形式的自动驾驶(包括半自动驾驶)车辆中实现,包括有轨电车、地卡车、公共汽车、面和水下船只和船舶、飞机、无人机(也称为无人飞行载具(unmanned aerial vehicle,UAV))、仓库设备、制造设施设备、建筑设备、农场设备、移动机器人(例如,吸尘器割草机)以及其它机器人设备。自动驾驶车辆可以包括不载客车辆和载客车辆。
[0055] 图8是示例性自动驾驶车辆100中的一些组件的框图。车辆100包括传感器系统110、感知系统120、状态生成器125、规划系统130、车辆控制系统140和机电系统150,等等。
车辆100还可以包括其它系统和组件,但为了便于说明,未示出。在这个示例中,感知系统
120、规划系统130和车辆控制系统140是不同的软件系统,包括机器可读指令。例如,这些指令可以由车辆100的处理系统中的一个或多个处理器执行。车辆中的各种系统和组件可以通过有线通信或无线通信等相互进行通信。
[0056] 传感器系统110包括各种感测单元,例如,雷达单元112、LIDAR单元114和摄像头116,这些单元用于收集车辆100在环境中运行时周围环境的信息。传感器系统110还包括用于收集车辆在环境中的位置信息的全球定位系统(global positioning system,GPS)单元
118。传感器系统110还包括用于收集车辆100本身物理运行状况信息的一个或多个内部传感器119,包括用于感测转向角、线性速度、线性加速度和角加速度、位姿(俯仰偏航、翻滚)、罗盘行进方向、车辆振动、状态、制动状态、车轮牵引力、传动齿轮比、车内温度和压力等的传感器。
[0057] 由传感器系统110中的每个感测单元收集的信息作为传感器数据提供给感知系统120。感知系统120处理从每个感测单元接收到的传感器数据,以生成车辆数据和周围环境数据。例如,车辆数据包括以下一个或多个:表示车辆位置的数据;表示车辆物理属性的数据,例如,宽度和长度、质量、轴距、滑移角;车辆运动数据,例如,线性速度和加速度、行驶方向、角加速度、位姿(例如,俯仰、偏航、翻滚)和振动,以及机械系统运行参数(例如,发动机RPM、油门位置、制动位置和传动齿轮比等)。例如,周围环境数据可以包括车辆100周围检测到的静止物体和移动物体的信息、天气和温度状况、路况、道路配置以及周围环境的其它信息。例如,从雷达、LIDAR和摄像头单元112、114、116接收到的传感器数据可以用于确定车辆
100的本地运行环境。来自GPS单元118和其它传感器的传感器数据可以用于确定车辆位置,从而限定车辆100的地理位置。来自内部传感器119和其它传感器单元的传感器数据可以用于确定车辆的运动属性,包括车辆100相对于参考坐标系的速度和位姿(即方位)。
[0058] 状态生成器125接收感知系统120输出的环境数据和车辆100的数据。状态生成器125处理环境数据和车辆100的数据,以生成车辆100的状态(以下称为车辆状态)。虽然图8示出了状态生成器125是单独的软件系统,但在一些实施例中,状态生成器125可以包括在感知系统120或规划系统130中。
[0059] 车辆状态从状态生成器125实时输出到规划系统130是本发明的重点,如下详述。车辆控制系统140用于根据规划系统130输出的轨迹控制车辆100的运行。车辆控制系统140可以用于为车辆100中的机电组件生成控制信号,以控制车辆100的运动。机电系统150从车辆控制系统140接收控制信号以操作车辆100中的机电组件,例如,发动机、传动系统、转向系统和制动系统
[0060] 图9示出了可以在车辆100中实现的处理系统200的一个示例。处理系统200包括一个或多个处理器210。一个或多个处理器210可以包括中央处理器(central processing unit,CPU)、图形处理单元(graphical processing unit,GPU)、张量处理单元(tensor processing unit,TPU)、神经处理单元(neural processing unit,NPU)、数字信号处理器和/或其它计算元件。一个或多个处理器210耦合到一个或多个电子存储器220,并且耦合到一个或多个输入和输出(input and output,I/O)接口或设备230,例如,网络接口、显示器等用户输出设备、触摸屏等用户输入设备,等等。
[0061] 电子存储器220可以包括任何合适的一个或多个易失性和/或非易失性存储与检索设备,包括闪存、随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、硬盘、光盘、用户识别模块(subscriber identity module,SIM)卡、记忆棒、安全数码(secure digital,SD)卡和其它状态存储设备,等等。在图8的示例中,处理系统200中的电子存储器220存储有指令(可由一个或多个处理器210执行),这些指令用于实现感知系统120(指令120I)、状态生成器125(指令125I)、规划系统130(指令130I)和车辆控制系统140(指令140I)。在一些实施例中,电子存储器220还存储有数据145,包括由传感器系统110提供的传感器数据、由感知系统120输出的由规划系统130用来生成至少一条轨迹的车辆数据和环境数据,以及道路网络地图等其它数据。
[0062] 图10是规划系统130的更多详细内容的框图。
[0063] 如图所示,规划系统130可以在以下不同层次上执行规划和决策操作:例如,任务层次(例如,任务规划器310执行任务规划)、行为层次(例如,行为规划器320执行行为规划)和运动层次(例如,运动规划器330执行运动规划)。任务规划被认为是高(或全局)层次规划,运动规划被认为是低(或局部)层次规划,而行为规划被认为是介于任务规划和运动规划之间的一个层次规划。通常而言,高层次规划和决策操作的输出可以构成低层次规划和决策的至少部分输入。
[0064] 通常而言,规划和决策操作的目的是确定车辆100从初始位置(例如,车辆的当前位置和方位,或预期的未来位置和方位)行驶到目标位置(例如,用户限定的最终目的地)的路径和对应轨迹。如本领域所知,路径是按照特定顺序排列的一系列配置(例如,路径包括一组有序的空间坐标),不考虑这些配置的时序,而轨迹关注的则是何时必须到达路径的每个部分,因此指定时序(例如,轨迹是带有时间戳数据的路径,因此包括一组时空坐标)。在一些示例中,整条路径可以作为一组轨迹来处理和执行。规划系统130在确定合适的路径和轨迹时,会考虑到各种条件,例如,可驾驶地面(例如,限定的道路)、障碍物(例如,行人和其它车辆)、交通法规(例如,遵守交通信号)和用户限定的偏好(例如,避开收费公路)。
[0065] 由规划系统130执行的规划和决策操作可以是动态的,即可以随着环境的变化而重复执行。因此,例如,规划系统130可以接收由状态生成器125输出的新车辆状态,并且重复规划和决策操作,以根据新车辆状态所反映的环境变化而生成新规划和新轨迹。环境变化可能是由于车辆100移动(例如,车辆100接近新检测到的障碍物),还可能是由于环境具备动态性质(例如,移动的行人和其它移动的车辆)。
[0066] 在任务层次上执行的规划和决策操作(例如,任务规划器310执行任务规划)涉及在高或全局层次上为车辆100规划路径。车辆100的第一位置可以是行程的起点,车辆100的目标位置可以是最终目的地点。绘制一条穿过一组道路的路线是任务规划的一个示例。通常而言,一旦设定(例如,通过用户输入)了最终目的地点,它在整个行程内是不变的。虽然最终目的地点可能是不变的,但任务规划所规划的路径在整个行程内可能会发生变化。例如,不断变化的交通状况可能要求任务规划动态更新规划路径,以避开拥堵的道路。
[0067] 为了执行任务规划,由任务规划器310接收到的输入数据可以包括GPS数据(例如,用于确定车辆100的起点)、地理地图数据(例如,来自内部或外部地图数据库的道路网络)、交通数据(例如,来自外部交通状况监测系统)、最终目的地点(例如,限定为x坐标和y坐标,或限定为经度坐标和纬度坐标)、任何用户限定的偏好(例如,避开收费公路的偏好),等等。
[0068] 通过任务规划器310执行任务规划生成的由任务规划器310输出的规划路径限定了从起点到达最终目的地点的待行驶路线。输出可以包括沿路线限定一组中间目标位置(或途经点)的数据。
[0069] 行为规划器320从任务规划器310接收规划路径,包括一组中间目标位置(如果有的话)。行为规划器320还接收由状态生成器125输出的车辆状态。行为规划器320根据规划路径和车辆状态生成行为决策,以在比任务规划器310更局部和更短期的基础上控制车辆100的行为。行为决策可以用作运动规划器330的目标或一组约束条件。行为规划器320可以生成符合某些规则或驾驶偏好的行为决策。这些行为规则可以基于交通规则,还可以基于平稳高效驾驶指导(例如,如果可能的话,车辆应该走更快的车道)。例如,从行为规划器320输出的行为决策可以用作运动规划的约束条件。
[0070] 运动规划器330用于迭代地寻找轨迹以实现规划路径,实现方式满足行为决策且相对安全、舒适和快速得对规划路径上遇到的环境进行导航。
[0071] 在图10所示的示例中,运动规划器330包括凸形走廊生成器332和轨迹生成器334。虽然由凸形走廊生成器332接收到的输入在不同的应用中会有所不同,但在所示的示例中,凸形走廊生成器332接收规划路径、时序数据、车辆状态、行为决策和结构化环境下的道路网络数据作为输入。在一个示例性实施例中,凸形走廊生成器332生成走廊数据400,走廊数据400为规划时间范围间隔T限定了多个连续的一般时空凸形走廊。例如,图11以图表示出了两个连续凸形走廊402(1)和402(2)的凸形走廊数据400的简化示例。在规划路径和时序数据指定时间t1处的车辆起始位置15和时间t3处的车辆目标位置17的情况下,凸形走廊数据400与T=t3–t1的规划时间范围间隔对应。每个凸形走廊402(1)和402(2)(在本文中一般称为一个或多个凸形走廊402)为相应的轨迹段限定了相应的无碰撞搜索空间。如图11所示,凸形走廊402(1)的末端与凸形走廊402(2)的起点在中间时间t2处重叠,从而为从时间t1处的起始位置15到时间t3处的车辆目标位置17的轨迹提供了一个连续走廊。
[0072] 在示例性实施例中,每个凸形走廊402的走廊数据包括在3D SLT弗勒内坐标系空间中限定凸形走廊402的数据。在这方面,将每个凸形走廊402投影到2D ST和LT时空平面上。因此,每个凸形走廊402的走廊数据包括在ST平面和LT平面上限定凸形走廊402的数据。对于ST平面,走廊数据将S空间维度上的时空凸形走廊402的上界406限定为时间的凹函数(例如,fub(t)),而将S空间维度上的时空走廊的下界408限定为时间的凸函数(例如,flb(t))。类似地,对于LT平面,走廊数据将L空间维度上的时空凸形走廊402的上界410限定为时间的凹函数,而将L空间维度上的时空走廊的下界410限定为时间的凸函数。
[0073] 在图11中,示出了一组连续的凸形走廊。在一些示例中,为规划时间范围间隔的规划路径生成的多个走廊中,一些走廊的形状可能不是凸形,而是矩形或梯形。
[0074] 参考图12,轨迹生成器334用于接收由走廊生成器332生成的关于规划时间范围间隔T的走廊数据400作为输入,并且输出从车辆起始位置15到目标位置17的规划轨迹。轨迹生成器334用于将规划轨迹的计算看作优化问题,在这方面可以包括以下操作(如下详述):约束条件生成器336为优化问题生成一组约束条件;曲线段生成器344为每个走廊计算轨迹曲线段;规划轨迹生成器346将生成的多个曲线段转换为初始位置15(例如,车辆起始位置)和目标位置17之间的输出规划轨迹。然后,将输出规划轨迹提供给车辆控制系统140进行实施。
[0075] 如上所述,每个时空凸形走廊402包括在ST平面和LT平面上限定上下走廊边界的数据。在示例性实施例中,曲线段生成器344为每个时空凸形走廊402的ST平面和LT平面生成相应的n阶贝塞尔曲线段。作为确定贝塞尔曲线段的先决条件,控制点边界操作340用于为相应贝塞尔曲线段上的n+1个控制点中的每个控制点计算时间位置和控制范围(例如,上界和下界),这些曲线段将由曲线段生成器344为凸形走廊402生成。如上所述,在示例性实施例中,计算控制点是为了将贝塞尔曲线约束在其相应的时空凸形走廊402内。控制点边界操作340为每个贝塞尔曲线段上的n+1个控制点计算相应的时间位置和上下界,以使每个凸形走廊402满足凸包属性。因此,生成的ST平面和LT平面贝塞尔曲线段上的所有点都严格停留在他们相应的走廊402内。
[0076] 下面参考图13,描述了通过控制点边界操作340为跨越时空凸形走廊402的轨迹计算控制点时间位置和空间维度范围。图13示出了跨越规划时间范围间隔的时空凸形走廊402的ST平面的一个简化示例。下文使用了以下变量命名法:
[0077] 变量命名法
[0078] t:时间
[0079] t1:走廊的时间间隔的左端点(走廊开始时间)
[0080] t2:走廊的时间间隔的右端点(走廊结束时间)
[0081] fub(t):ST平面走廊的上界函数
[0082] flb(t):LT平面走廊的下界函数
[0083] n:用于n阶贝塞尔曲线段的贝塞尔多项式的次数
[0084] i:控制点的索引,i=0、1、2、3……n
[0085] ti:第i个控制点的时间
[0086] 如上结合图11所述且如图13所示,时空凸形走廊402的ST平面由上界406和下界408限定。上界406和下界408的S空间维度值在走廊数据400中限定,可以分别表示为上界和下界时间相关函数fub(t)、flb(t)。走廊402具有走廊开始时间t1和走廊结束时间t2。控制点边界操作340用于计算走廊开始时间t1和走廊结束时间t2内的多个均匀间隔的控制点时间。
均匀间隔的控制点时间至少包括开始控制点时间(所示示例中的走廊开始时间t1)、结束控制点时间(所示示例中的走廊结束时间t2)以及介于开始控制点时间和结束控制点时间之间的一个或多个中间控制点时间(例如,所示示例中的时间ti)。具体地,n阶贝塞尔曲线段需要包括n+1个控制点,相应的控制点和第i个控制点的控制点时间可以通过控制点边界操作340根据以下等式计算得到:
[0087]
[0088] 然后,控制点边界操作340为每个均匀间隔的控制点时间确定与S空间维度上界406在相应控制点时间处的值对应的控制点最大值以及与S空间维度下界406在相应控制点时间处的值对应的控制点最小值。例如,第i个控制点在S轴上的控制点最大值为:
[0089]
[0090] 第i个控制点在S轴上的控制点最小值为:
[0091]
[0092] 类似地,控制点边界操作340还为每个控制点时间确定LT平面上的与L空间维度上界410在相应控制点时间处的值对应的控制点最大值以及L空间维度下界412在相应控制点时间处的值对应的控制点最小值。
[0093] 相应地,控制点边界操作340对于时空凸形走廊402的输出包括n+1个控制点时间、n阶贝塞尔曲线段在ST平面上的n+1个控制点的相应最大值和最小值以及n阶贝塞尔曲线段在LT平面上的n+1个控制点的相应最大值和最小值。
[0094] 在至少一些示例中,约束条件生成器336还包括用于为ST和LT平面贝塞尔曲线段生成其它约束条件的一个或多个操作342。例如,可以为每个控制点生成其它约束条件,以解决连续走廊402之间曲线段的连续性、行为决策和车辆100的动态限制等问题。例如,为了保持连续性,轨迹曲线段的初始控制点受到为前一走廊计算出的轨迹段的约束。例如,可以生成关于控制点的各种类型的约束条件的示例可以在以下参考文献[1]中找到:Ding,Wenchao等人在IEEE机器人与自动化通信4.3(2019):2997‑3004上发表的“Safe trajectory generation for complex urban environments using spatio‑temporal semantic corridor(使用时空语义走廊为复杂城市环境生成安全轨迹)”。
[0095] 将控制点约束(包括由控制点边界操作340生成的相应最大值和最小值和时间)以及由操作342生成的任何其它约束条件(例如,将轨迹段上的初始控制点定位在前一轨迹段上的最终控制点所需的约束条件)提供给曲线段生成器344。曲线段生成器344用于根据控制点约束条件为每个控制点时间生成相应的控制点空间维度值,从而为每个时空复杂走廊402的LT平面和ST平面提供优化后的贝塞尔曲线段。在示例性实施例中,曲线段生成器344用于为在规划时间范围间隔内的走廊数据中限定的每个时空复杂走廊402,确定ST平面上的会使规划时间范围间隔内的第一预定义成本函数最小化的控制点坐标以及LT平面上的会使规划时间范围间隔内的第二预定义成本函数最小化的控制点坐标。
[0096] 成本函数的示例可以在以下参考文献中找到:参考文献[1]:Ding,Wenchao等人在IEEE机器人与自动化通信4.3(2019):2997‑3004上发表的“Safe trajectory generation for complex urban environments using spatio‑temporal semantic corridor(使用时空语义走廊为复杂城市环境生成安全轨迹)”;参考文献[2]:Li,Jialun等人发表在arXiv预印本:2104.11655(2021年)中的“Speed Planning Using Bezier Polynomials with Trapezoidal Corridors(使用具有梯形走廊的贝塞尔多项式进行速度规划)”。
[0097] 通过说明,图14A示出了n=5阶贝塞尔曲线段502的一个示例,该曲线段与已经由曲线段生成器344针对图13中的时空凸形走廊402生成的6个ST平面控制点504(0)至504(5)对应。在许多场景中,规划时间范围间隔需要包括开始时间和结束时间重叠的多个连续走廊。在这方面,图14B示出了第一和第二时空凸形走廊402(1)和402(2)以及贝塞尔曲线段502(1)和502(2)的示例,这些曲线段与已经由曲线段生成器344针对时空凸形走廊402(1)和402(2)生成的ST平面控制点对应。相应的贝塞尔曲线段502(1)和502(2)按比例连接在一起,其中,贝塞尔曲线段502(1)的结束时间在时间和空间上与贝塞尔曲线段502(2)的开始时间重合。贝赛尔曲线段502(1)和502(2)可以共同用于限定规划时间范围间隔内的规划轨迹。从图14A和图14B中可以看出,控制点和生成的曲线段都满足凸包属性。
[0098] 再次参考图12,由曲线段生成器344计算得到的ST平面和LT平面控制点限定的优化贝塞尔曲线段作为输入提供给规划轨迹生成器346。规划轨迹生成器将ST平面和LT平面上的贝塞尔曲线段的格式转换为可以由车辆控制系统140实现的规划轨迹。例如,规划轨迹可以包括多个坐标点,每个坐标点包括车辆控制系统140可用的3D参考空间坐标系的第一维度值、第二维度值和时间戳。
[0099] 虽然上文已经在弗勒内坐标系的上下文中描述了凸形走廊,其中,S空间维度与沿道路的切向量的纵向距离对应,L空间维度与沿道路的法向量到道路的横向距离对应,但是上述系统和方法可以适用于其它时空格式。例如,空间维度可以与以时间为第三轴的三维笛卡尔坐标系中的第一距离轴和第二距离轴分别对应。
[0100] 此外,在一些情况下,控制点可能只需要在单个时空平面上进行计算。例如,在火车机车等车辆沿着限定的轨道行驶时,计算在一些场景中可能仅限于ST平面。此外,在机载无人机等车辆能够在3个空间维度上移动时,可能需要在计算中添加第三时空平面。
[0101] 虽然已经在自动驾驶车辆的上下文中描述了示例,但是应当理解,本发明并不限于自动驾驶车辆。例如,任何包括车辆高级驾驶辅助系统(包括规划系统)的车辆都可以从执行本发明的轨迹生成、轨迹评估、轨迹选择操作的运动规划器中受益。此外,任何包括能够完全自动或半自动操作车辆的自动驾驶系统的车辆也可以从执行本发明的轨迹生成、轨迹评估、轨迹选择操作的运动规划器中受益。包括本发明的运动规划器的规划系统可以有助于使车辆能够在存在静态障碍物和/或动态障碍物的结构化或非结构化环境中进行导航。
[0102] 尽管本发明通过按照一定的顺序执行的操作描述方法和过程,但是可以适当地省略或改变方法和过程中的一个或多个操作。在适当情况下,一个或多个操作可以按所描述的顺序以外的顺序执行。
[0103] 尽管本发明在方法方面至少部分地进行了描述,但本领域普通技术人员将理解,本发明也针对用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件还是其任意组合。相应地,本发明的技术方案可以通过软件产品的形式体现。合适的软件产品可以存储在预先记录的存储设备或其它类似的非易失性或非瞬时性计算机可读介质中,包括DVD、CD‑ROM、USB闪存盘、可移动硬盘或其它存储介质等。软件产品包括有形地存储在其上的指令,所述指令使得处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中公开的方法的示例。
[0104] 在不脱离权利要求书的主题的前提下,本发明可以通过其它特定形式实施。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。可以组合从一个或多个上述实施例中选择的特征,以创建非显式描述的可选实施例,在本发明的范围内可以理解适合于此类组合的特征。
[0105] 还公开了所公开范围内的所有值和子范围。此外,尽管本文所公开和显示的系统、设备和流程可包括特定数量的元素/组件,但可以修改所述系统、设备和组件,以包括此类元素/组件中的更多或更少的元素/组件。例如,尽管所公开的任何元件/组件可以引用为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所描述的主题旨在覆盖和涵盖所有适当的技术变更。
QQ群二维码
意见反馈