行驶装置的避障路径的规划方法和装置与流程

文档序号:28592401发布日期:2022-01-22 09:03阅读:117来源:国知局
行驶装置的避障路径的规划方法和装置与流程

1.本技术涉及自动驾驶技术领域,并且更具体地,涉及一种行驶装置的避障路径的规划方法和装置。


背景技术:

2.自动驾驶技术利用地图和定位模块获取导航信息,利用传感设备感知周围环境,结合决策、规划、控制模块实现车辆的自主导航。近年来随着计算机视觉、人工智能、传感设备的快速发展,自动驾驶技术得到了长足的发展,在军用、民用领域都得到了广泛的应用。在自动驾驶装置中,路径规划模块负责根据上层导航信息、决策指令及环境感知结果输出正确有效的行驶路径,引导自动驾驶装置的正确行驶。同时,路径规划模块能够结合障碍物信息进一步实现避障路径的规划,使得自动驾驶装置在动态环境中能够安全行驶,这也是路径规划的工作重点。
3.现有的避障路径的规划方法主要有:采样、优化、搜索、势场和特征点等,这些避障方法在简单场景中通常具有较好的规划效果,但对于真实的动态交通场景,尤其是在复杂狭窄的场景中,容易产生路径晃动,无法保证车辆安全平稳行驶。
4.因此,在面对复杂狭窄交通场景时,如何通过统一的规划方法输出安全平稳的避障路径是目前亟需解决的问题。


技术实现要素:

5.本技术提供一种行驶装置的避障路径的规划方法和装置,使得行驶装置在复杂狭窄交通场景中能够安全平稳的避障。
6.第一方面,提供了一种行驶装置的避障路径的规划方法,该方法包括:获取距离地图,该距离地图包括多个第一栅格,该多个第一栅格中的每个第一栅格用于记录该第一栅格离最近被障碍物占据的第一栅格的距离;根据该距离地图确定近场范围内的第一横向背景代价势场,该近场范围为与行驶装置的纵向距离小于或等于第一阈值的范围,该第一横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第一斥力场,该第一横向背景代价势场包括目标极小值点,该目标极小值点横向两侧的背景代价具有单调性,该背景代价表示近场范围内横向位置上的障碍物对该行驶装置构成的近场横向碰撞代价;根据该第一横向背景代价势场,确定当前避障路径。
7.可选地,上述行驶装置可以是自动驾驶车辆,也可以是机器人,又或是其他自主行驶装置。
8.应理解,斥力场是由横向位置上的障碍物对行驶装置构成的,能够表示障碍物对行驶装置的碰撞趋势,会引导行驶装置避开障碍物,也可以称为碰撞场或风险场。该第一横向背景代价势场包括目标极小值点,该目标极小值点横向两侧的背景代价具有单调性,即意味着第一斥力场中的目标极小值点横向两侧的背景代价具有单调性。
9.应理解,该目标极小值点两侧的背景代价具有单调性,具体是在目标极小值点左
侧的势场单调递减,在目标极小值点右侧的势场单调递增。
10.应理解,该目标极小值点横向两侧的背景代价具有单调性,也就意味着目标极小值点横向两侧的背景代价均比目标极小值点处的背景代价大。
11.可选地,第一横向背景代价势场可以呈v字型。
12.可选地,根据该第一横向背景代价势场,确定当前避障路径可以是根据第一横向背景代价势场中的目标极小值点所处的横向位置,确定当前避障路径。
13.在本技术实施例中,首先获取距离地图,然后根据距离地图构建近场范围内的第一横向背景代价势场,且该第一横向背景代价势场包括目标极小值点,该目标极小值点横向两侧的背景代价具有单调性;然后根据该第一横向背景代价势场,确定当前避障路径。使得在避障路径规划时,充分考虑到近场障碍物的信息,避免远处障碍物对规划路径产生影响;并且通过构建近场范围内的第一横向背景代价势场,有效体现行驶装置与障碍物的横向碰撞趋势,以此为基础规划的避障路径可以使行驶装置在复杂狭窄的环境与障碍物保持最佳的横向距离,从而能够提高避障路径的稳定性。
14.结合第一方面,在第一方面的某些实现方式中,根据该距离地图确定近场范围内的第一横向背景代价势场包括:根据该距离地图确定该近场范围内的第二横向背景代价势场,该第二横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第二斥力场,该第二横向背景代价势场包括至少一个极小值点;从该至少一个极小值点中确定该目标极小值点;对该目标极小值点横向两侧的背景代价进行单调性处理,生成该第一横向背景代价势场,该单调性处理的斜率大于或等于第二阈值。
15.应理解,第二斥力场能够表示在单调性处理之前的障碍物对行驶装置构成的碰撞趋势。也就是说,对第二斥力场进行单调性处理会得到第一斥力场。
16.在本技术实施例中,首先根据距离地图构建近场范围内的第二横向背景代价势场,然后在第二横向背景代价势场中的至少一个极小值点中确定一个目标极小值点,并对该目标极小值点横向两侧的背景代价进行单调性处理,生成该第一横向背景代价势场,且该单调性处理的斜率大于或等于第二阈值。从而使得目标极小值点所在的横向位置的背景代价势场明显低于其他横向位置处的背景代价势场,当行驶装置侧面障碍物在横向上稍微靠近时,该行驶装置所处的横向位置的背景代价势场就会显著增大,从而缓慢平稳的避让并运行到背景代价势场最低的横向位置,保证与障碍物保持安全的距离。
17.结合第一方面,在第一方面的某些实现方式中,该目标极小值点与该行驶装置之间不存在障碍物。
18.换句话说,也就是该目标极小值点所在的横向位置与该行驶装置所在的横向位置之间在该近场范围内不存在障碍物。
19.可选地,该目标极小值点可以是与行驶装置之间在该近场范围内不存在障碍物的所有极小值点中的最小极小值点。
20.在本技术实施例中,该目标极小值点与该行驶装置之间不存在障碍物,使得自车能够平稳地运行到目标极小值点所处的横向位置,避免因为行驶装置与目标极小值点所处的横向位置之间存在障碍物使得自车无法运行到目标极小值点所处的横向位置,从而能够提高路径的稳定性。
21.结合第一方面,在第一方面的某些实现方式中,在获取距离地图之前,该方法还包
括:获取占据地图,该占据地图包括多个第二栅格,该多个第二栅格中的每个第二栅格用于记录该第二栅格中存在障碍物的概率;获取距离地图包括:根据该占据地图,得到该距离地图。
22.可选地,当第二栅格中存在障碍物的概率大于或等于一定阈值时,可以认为该第二栅格中存在障碍物;当第二栅格中存在障碍物的概率小于一定阈值时,可以认为该第二栅格中不存在障碍物。
23.可选地,该多个第二栅格中的每个第二栅格还可以直接用于记录该第二栅格中是否存在障碍物。
24.结合第一方面,在第一方面的某些实现方式中,根据所述占据地图,得到该距离地图包括:筛除该占据地图中位于第一区域的所述第二栅格,该第一区域位于该行驶装置的前方,若该第一区域内存在障碍物,该行驶装置无法避开该第一区域内的障碍物;根据筛除后的占据地图,得到该距离地图。
25.应理解,若该第一区域内存在障碍物,该行驶装置无法避开该第一区域内的障碍物,也可以描述为,若该第一区域内存在障碍物,该行驶装置无论选择哪一条避障路径都无法避开该第一区域内的障碍物。
26.由于在车前某一特定区域范围内,该行驶装置无论选择哪一条避障路径都无法避开该区域内的障碍物。又由于避障路径规划是根据上游模块提供的占据地图信息进行的,而上游模块提供的障碍物信息除了包括动静态障碍物的实际位姿和障碍物的预测轨迹投影,还有可能包括自车车头部位的误检导致的障碍物占据情况,或者是由于地面不平坦使得占据地图在该区域出现了障碍物信息。此时,如果还考虑这一区域的障碍物,就会影响路径规划,使得在行驶过程中总要避开这一区域的障碍物,从而引起路径的大幅震荡。因此,在本技术实施例中,在获取距离地图之前,可以先将占据地图中位于该区域的栅格筛除。从而有效避免了行驶装置因为障碍物的误检而进行的误避让。保证剩余的占据栅格只包含避障算法所需的必要信息,提高了避障路径的平稳性。
27.结合第一方面,在第一方面的某些实现方式中,在根据该距离地图确定该近场范围内的第二横向背景代价势场之前,该方法还包括:生成特征矢量,该特征矢量包括路径起始点和采样目标点;根据参考路径、历史路径和所述特征矢量,生成多条备选路径;根据该距离地图确定该近场范围内的第二横向背景代价势场包括:根据该采样目标点,对该参考路径进行横向偏移生成多条虚拟平行线路径;根据该距离地图计算该多条虚拟平行线路径中每条虚拟平行线路径在该近场范围内的每个路点离该路点最近障碍物的距离;根据该每条虚拟平行线路径上该距离的最小值计算该条虚拟平行线的背景代价;根据该多条虚拟平行线路径在该近场范围内的背景代价生成该近场范围内的第二横向背景代价势场。
28.结合第一方面,在第一方面的某些实现方式中,在根据该第一横向背景代价势场,确定当前避障路径之前,该方法还包括:根据该距离地图计算该多条备选路径中的每条备选路径上的碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,其中,该碰撞代价用于评价该行驶装置在该备选路径上行驶时是否会发生碰撞,该约束代价用于评价该备选路径上的各个路点是否在可避障范围内,该切换代价用于评价该备选路径与该历史路径之间的偏差,该横向偏移代价用于评价该备选路径的横向偏离道路中心线的程度,该平滑度代价用于评价该备选路径的平滑程度;根据所述第一横向背景代价势场,
确定当前避障路径包括:根据该第一横向背景代价势场中的背景代价,或者根据该第一横向背景代价势场中的背景代价以及该碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,计算每条备选路径上的最终代价;根据该最终代价,确定该当前避障路径。
29.在本技术实施例中,在确定当前避障路径时,除了考虑背景代价,还可以考虑碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,使得所确定的避障路径能够综合更多的因素,从而能够进一步提高避障路径的平稳性和安全性。
30.结合第一方面,在第一方面的某些实现方式中,该方法还包括:根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径。
31.在本技术实施例中,在确定当前避障路径时,根据当前避障路径和历史路径的差异,确定最终避障路径。避免了在复杂狭窄环境中运行时纯粹基于代价函数或纯逻辑得到的避障路径会产生帧间跳动的情况,有效降低了规划方法对代价函数的依赖,从而保证路径的稳定。
32.结合第一方面,在第一方面的某些实现方式中,根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径包括:若该历史路径存在碰撞,但该当前避障路径不存在碰撞,则以该当前避障路径作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值大于或等于第三阈值,则以该当前避障路径和该历史路径中碰撞距离较大者作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值小于第三阈值,则以该历史路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比小于或等于第四阈值,则以该当前避障路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比大于第四阈值,则以该历史路径作为该最终避障路径;其中,该碰撞距离为每条备选路径上处于发生碰撞状态的所有的路点的纵向距离中的最小纵向距离。
33.在申请实施例中,如果当前避障路径明显优于历史路径,则切换至当前避障路径;如果当前避障路径没有明显优于历史路径,则沿用历史路径。避免了在复杂狭窄环境中运行时纯粹基于代价函数或纯逻辑得到的避障路径会产生帧间跳动的情况,从而保证路径的稳定。
34.结合第一方面,在第一方面的某些实现方式中,该方法还包括:根据历史路径和最终避障路径进行时域平滑。
35.在本技术实施例中,做获取到最终避障路径时,还可以根据历史路径和最终避障路径进行时域平滑。此时,如果最终避障路径为沿用历史路径,时域平滑后的避障路径仍为历史路径;如果最终避障路径为当前避障路径,则根据当前避障路径和历史路径进行时域平滑。有效避免了在复杂狭窄环境中切换避障路径时产生帧间跳动的情况,从而保证路径的稳定。
36.结合第一方面,在第一方面的某些实现方式中,该方法还包括:将最终避障路径输出给速度规划器,该速度规划器用于根据最终避障路径与最终避障路径上障碍物信息,进行速度规划。
37.在本技术实施例中,输出最终避障路径后,速度规划器会根据最终避障路径上的障碍物信息进行速度规划,如果发现该路径上存在可能发生碰撞的障碍物,就会进行减速规划。从而提高路径的安全性。
38.第二方面,提供了一种行驶装置的避障路径的规划装置,该装置包括:获取模块和处理模块;该获取模块用于获取距离地图,该距离地图包括多个第一栅格,该多个第一栅格中的每个第一栅格用于记录该第一栅格离最近被障碍物占据的第一栅格的距离;该处理模块用于根据该距离地图确定近场范围内的第一横向背景代价势场,该近场范围为与该行驶装置的纵向距离小于或等于第一阈值的范围,该第一横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第一斥力场,第一横向背景代价势场包括目标极小值点,该目标极小值点横向两侧的背景代价具有单调性,该背景代价表示近场范围内横向位置上的障碍物对该行驶装置构成的近场横向碰撞代价;根据该第一横向背景代价势场,确定当前避障路径。
39.结合第二方面,在第二方面的某些实现方式中,根据该距离地图确定近场范围内的第一横向背景代价势场包括:根据该距离地图确定近场范围内的第二横向背景代价势场,该第二横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第二斥力场,该第二横向背景代价势场包括至少一个极小值点;从该至少一个极小值点中确定目标极小值点;对该目标极小值点横向两侧的背景代价进行单调性处理,生成该第一横向背景代价势场,该单调性处理的斜率大于或等于第二阈值。
40.结合第二方面,在第二方面的某些实现方式中,该目标极小值点与该行驶装置之间不存在障碍物。
41.结合第二方面,在第二方面的某些实现方式中,在获取距离地图之前,该获取模块还用于:获取占据地图,该占据地图包括多个第二栅格,该多个第二栅格中的每个第二栅格用于记录该第二栅格中存在障碍物的概率;该处理模块还用于:根据该占据地图,得到距离地图。
42.结合第二方面,在第二方面的某些实现方式中,该根据所述占据地图,得到距离地图包括:筛除该占据地图中位于第一区域的第二栅格,该第一区域位于行驶装置的前方,若该第一区域内存在障碍物,该行驶装置无法避开该第一区域内的障碍物;根据筛除后的占据地图,得到该距离地图。
43.结合第二方面,在第二方面的某些实现方式中,在该根据距离地图确定近场范围内的第二横向背景代价势场之前,该处理模块还用于:生成特征矢量,该特征矢量包括路径起始点和采样目标点;根据参考路径、历史路径和所述特征矢量,生成多条备选路径;该根据所述距离地图确定该近场范围内的第二横向背景代价势场包括:根据该采样目标点,对该参考路径进行横向偏移生成多条虚拟平行线路径;根据该距离地图计算该多条虚拟平行线路径中每条虚拟平行线路径在该近场范围内的每个路点离该路点最近障碍物的距离;根据该每条虚拟平行线路径上该距离的最小值计算该条虚拟平行线的背景代价;根据该多条虚拟平行线路径在该近场范围内的背景代价生成该近场范围内的第二横向背景代价势场。
44.结合第二方面,在第二方面的某些实现方式中,在该根据所述第一横向背景代价势场,确定当前避障路径之前,该处理模块还用于:根据该距离地图计算该多条备选路径中的每条备选路径上的碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项
或多项,其中,该碰撞代价用于评价该行驶装置在该备选路径上行驶时是否会发生碰撞,该约束代价用于评价该备选路径上的各个路点是否在可避障范围内,该切换代价用于评价该备选路径与该历史路径之间的偏差,该横向偏移代价用于评价该备选路径的横向偏离道路中心线的程度,该平滑度代价用于评价该备选路径的平滑程度;根据该第一横向背景代价势场,确定当前避障路径包括:根据该第一横向背景代价势场中的背景代价,或者根据该第一横向背景代价势场中的背景代价以及该碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,计算该每条备选路径上的最终代价;根据该最终代价,确定该当前避障路径。
45.结合第二方面,在第二方面的某些实现方式中,该处理模块还用于:根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径。
46.结合第二方面,在第二方面的某些实现方式中,该根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径,包括:若该历史路径存在碰撞,但该当前避障路径不存在碰撞,则以该当前避障路径作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值大于或等于第三阈值,则以该当前避障路径和该历史路径中碰撞距离较大者作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值小于第三阈值,则以该历史路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比小于或等于第四阈值,则以该当前避障路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比大于第四阈值,则以该历史路径作为该最终避障路径;其中,该碰撞距离为该每条备选路径上处于发生碰撞状态的所有的路点的纵向距离中的最小纵向距离。
47.结合第二方面,在第二方面的某些实现方式中,该处理模块还用于:根据历史路径和最终避障路径进行时域平滑。
48.结合第二方面,在第二方面的某些实现方式中,该装置还可以包括输出模块,用于将最终避障路径输出给速度规划器,该速度规划器用于根据最终避障路径与最终避障路径上障碍物信息,进行速度规划。
49.第三方面,提供了一种规划装置,包括输入输出接口、处理器和存储器,该处理器用于控制输入输出接口收发信号或信息,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该规划装置执行上述第一方面中的方法。
50.第四方面,提供了一种车辆,包括用于执行上述第一方面所述方法的各个模块。
51.第五方面,提供了一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
52.第六方面,提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面中的方法。
53.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第一方面中的方法。
54.上述芯片具体可以是现场可编程门阵列fpga或者专用集成电路asic。
55.应理解,本技术中,第一方面的方法具体可以是指第一方面以及第一方面中各种实现方式中的任意一种实现方式中的方法。
附图说明
56.图1是本技术实施例提供的一种frenet坐标系的示例图;
57.图2是本技术实施例提供的一种复杂狭窄的城市道路场景示例图;
58.图3是本技术实施例提供的一种避障路径规划的系统架构示例图;
59.图4是本技术实施例提供的一种行驶装置的避障路径的规划方法示例图;
60.图5是本技术实施例提供的一种避障路径的规划方法的核心流程示例图;
61.图6是本技术实施例提供的一种备选路径生成的场景示例图;
62.图7是本技术实施例提供的另一种备选路径生成的场景示例图;
63.图8是本技术实施例提供的一种无效占据栅格的示例图;
64.图9是本技术实施例提供的一种全碰撞三角区的示例图;
65.图10是本技术实施例提供的一种占据地图转换为距离地图的示例图;
66.图11是本技术实施例提供的一种v型的近场横向背景代价势场的生成方法示例图;
67.图12是本技术实施例提供的一种背景虚拟线的生成示例图;
68.图13是本技术实施例提供的一种近场横向背景代价势场单调性处理原理示例图;
69.图14是本技术实施例提供的一种车体多圆碰撞模型的示例图;
70.图15是本技术实施例提供的一种精确障碍物距离计算原理图;
71.图16是本技术实施例提供的一种横向分区示例图;
72.图17是本技术实施例提供的一种输出避障路径的仲裁方法示例图;
73.图18是本技术实施例提供的一种备选路径全碰撞时沿用历史路径的场景示例图;
74.图19是本技术实施例提供的一种备选路径全碰撞时切换至当前最优路径的场景示例图;
75.图20是本技术实施例提供的一种时域平滑示例图;
76.图21是本技术实施例提供的一种复杂狭窄场景避障路径生成结果示例图;
77.图22是本技术实施例提供的一种简单的城市道路场景示例图;
78.图23是本技术实施例提供的又一种备选路径生成的场景示例图;
79.图24是本技术实施例提供的一种简单的城市道路场景避障路径生成结果示例图;
80.图25是本技术实施例提供的一种行驶装置的避障路径的规划装置示例图;
81.图26是本技术实施例提供的一种避障路径的规划装置的硬件结构示例性框图。
具体实施方式
82.为了便于理解,首先对本技术各实施例中所涉及的一些技术术语进行介绍。
83.路径规划:自动驾驶装置在自主行驶过程中,根据上层导航信息、决策指令及环境感知结果输出正确有效的行驶路径,作为下层控制器的主要输入引导车辆的正确行驶,完成车道保持、换道、避障等多种动作。该路径的生成过程称为路径规划。应理解,在本技术实
施例中,为便于描述,均用自车来表示自动驾驶装置。
84.占据地图:由栅格组成的,也称为占据栅格地图,该占据地图中包含自车附近给定区域内的障碍物信息,栅格值可表示为占据、未占据、未知等状态。
85.参考路径:自车用于路径规划的参考基准,如当前道路的中心线。该路径主要反应真实的地图信息,可以引导自车的行驶方向,但无避障功能。
86.可避障范围:自车在参考路径周围可以用于避障的行驶范围,为避障路径规划提供空间约束。
87.避让路径:在参考路径和可避障范围的基础上,自车根据障碍物信息进行路径规划,得到的可以对障碍物进行规避的路径。
88.frenet坐标系(sl系):图1是本技术实施例提供的一种frenet坐标系的示例图,如图1所示,以自车后轴中点作为sl系原点,沿参考路径方向称为纵向(s方向),垂直于路径方向称为横向(l方向)。其中,参考路径为道路的中心线。
89.为便于理解,再对本技术实施例涉及的背景技术进行详细介绍。
90.自动驾驶技术利用地图和定位模块获取导航信息,利用传感设备感知周围环境,结合决策、规划、控制模块实现车辆的自主导航。近年来随着计算机视觉、人工智能、传感设备的快速发展,自动驾驶技术得到了长足的发展,在军用、民用领域都得到了广泛的应用。
91.在自动驾驶车辆的各个模块中,规划模块负责根据导航信息、决策指令及环境感知结果输出正确有效的行驶路径,实现车辆的车道保持、换道、避障等动作。在路径规划模块中,通常会具备一条参考路径,它可以基于当前道路中心线生成,或者通过人为采集的方式获得,主要为自动驾驶车辆提供路径规划的基准线。在参考路径的基础上,结合障碍物信息需要进一步实现车辆的避障路径规划,实现在动态环境中车辆的安全行驶,这也是路径规划的工作重点。
92.目前,常用的避障路径规划方法有:采样、优化、搜索、势场和特征点等,各方法的主要特点如下:基于采样的避障方法计算效率高,便于工程转化,但是通常无法得到最优解,在复杂场景中可能会出现抖动;基于优化的方法可以充分考虑输入信息,可以得到近似理论最优解,但是消耗计算资源,且容易受到环境的影响,例如,自车远处障碍物的变动会直接影响自车近处的路径,因而使得自车在动态环境中行驶时会出现抖动或震荡;基于搜索的方法可以应对复杂场景,但是会大量消耗计算资源,且容易产生不平滑的规划路径,通常只适合低速场景,对动态场景的支持不够好;基于势场的方法可以综合考虑环境中的障碍物信息,但会产生局部折弯、震荡的情况;基于特征点的方法,在低速简单场景会产生稳定有效的避障路径,但是对于复杂动态场景会出现明显震荡。
93.综上,现有的避障路径规划方法在简单场景中通常具有较好的规划效果,但对于真实的动态交通场景,尤其是在复杂狭窄的场景中,容易产生路径晃动,无法保证车辆安全平稳行驶。
94.针对现有技术存在问题,本技术实施例通过构建近场范围内的第一横向背景代价势场,且该第一横向背景代价势场的目标极小值点横向两侧的背景代价具备单调性。有效的体现了自车与障碍物的横向碰撞趋势,以此为基础规划的避障路径可以使行驶装置在复杂狭窄的环境与障碍物保持最佳的横向距离,而且避免了所规划的避障路径受较远处环境变动的影响,从而能够提高避障路径的稳定性。
95.为了更好的理解本技术实施例的方案,在进行方法的描述之前,首先结合附图对本技术实施例能够应用的场景和系统构架进行简单的描述。
96.图2是本技术实施例提供的一种复杂狭窄的城市道路场景示例图。如图2所示,自车在道路上行驶时,在可避障范围内存在大量的动态障碍物(编号1-5)和/或静态障碍物(编号6),构成狭窄拥挤的交通场景。其中,静态障碍物可以是停放在道路两边的车辆或其他障碍物,也可以是临时放置在道路中的其他障碍物;动态障碍物可以是在自车的可避障范围内行驶的其他车辆。在上述障碍物的影响下,可供自车行驶的空间狭窄,行驶路径复杂。应理解,在该场景中,参考路径和横向可避障范围,以及所有障碍物的尺寸、位置、速度及预测轨迹投影的占据地图都已知。
97.图3是本技术实施例提供的一种避障路径规划的系统架构示例图。该系统架构300包括参考路径规划器310、障碍物决策器320、避障路径规划器330以及速度规划器340。
98.其中,参考路径规划器310用于向避障路径规划器330提供参考路径和横向避障范围。在本技术实施例中,参考路径是指道路的中心线,应理解,参考路径也可以有其他的表现形式,在此不做限定。横向可避障范围指自车行驶过程中,在垂直于路径方向上可以进行避障的范围,例如,横向可避障范围可以是当前行驶道路的宽度。
99.障碍物决策器320用于向避障路径规划器330提供包含障碍物及障碍物预测轨迹投影的占据地图。应理解,本技术不限定障碍物决策器320获取障碍物及障碍物预测轨迹投影的占据地图的获取方式。
100.避障路径规划器330用于根据参考路径规划器310和障碍物决策器320提供的参考路径、横向避障范围以及障碍物及障碍物预测轨迹投影的占据地图进行避障路径的规划。
101.在本技术实施例中,避障路径规划器330包括备选路径生成模块331和备选路径评价模块332。其中,备选路径生成模块331用于根据参考路径和横向避障范围生成一簇备选路径,关于备选路径的生成方式将在下文详细描述,这里不再赘述;备选路径评价模块332用于根据备选路径本身及障碍物的占据信息对备选路径进行评价,选取当前帧最优路径作为当前避障路径。
102.在一种实现方式中,备选路径评价模块332所选取的当前帧最优路径可以作为当前输出的避障路径。在另一种实现方式中,避障路径规划器330还可以包括输出路径仲裁模块433,用于根据当前帧最优路径及历史(上一帧)路径决定最终输出的避障路径。
103.可选地,避障路径规划器330还可以包括路径时域平滑模块334,用于对最终输出的避障路径进行时域平滑。
104.避障路径规划器330将规划好的避障路径输出给后端的速度规划器340。在避障路径上如果自车与障碍物之间存在碰撞的可能性时,速度规划器会根据碰撞障碍物与自车的相对位置、速度进行减速规划。
105.图4是本技术实施例提供的一种行驶装置的避障路径的规划方法示例图。应理解,该方法400可以应用在上述场景200中,还可以应用在上述系统架构300中。如图4所示,该方法400包括步骤s410-s430。下面对这些步骤进行详细描述。
106.s410,获取距离地图。
107.该距离地图包括多个第一栅格,多个第一栅格中的每个第一栅格用于记录该第一栅格离最近被障碍物占据的第一栅格的距离。
108.可选地,在获取距离地图之前,方法400还包括:获取占据地图,该占据地图包括多个第二栅格,多个第二栅格中的每个第二栅格用于记录该第二栅格中存在障碍物的概率。并根据占据地图,得到距离地图。
109.可选地,当第二栅格中存在障碍物的概率大于或等于一定阈值时,可以认为该第二栅格中存在障碍物;当第二栅格中存在障碍物的概率小于一定阈值时,可以认为该第二栅格中不存在障碍物。
110.可选地,该多个第二栅格中的每个第二栅格还可以直接用于记录该第二栅格中是否存在障碍物。示例性地,当该第二栅格中记录的数值为1时,表示存在障碍物;当该第二栅格中记录的数值为0时,表示不存在障碍物。
111.应理解,该占据地图是由上游模块提供的,例如上述障碍物决策器320。该占据地图中包含自车附近给定区域内的障碍物信息。还应理解,障碍物信息指障碍物或障碍物预测轨迹的信息,被障碍物占据的栅格是指被障碍物或障碍物预测轨迹投影所占据的栅格。
112.应理解,在获取占据地图之后,需要将占据地图转换为距离地图。关于转化方式将在下文具体实现方式中进行详细描述,这里不再赘述。
113.由于在车前某一特定区域范围内,该行驶装置无论选择哪一条避障路径都无法避开该区域内的障碍物。又由于避障路径规划是根据上游模块提供的占据地图信息进行的,而上游模块提供的障碍物信息除了包括动静态障碍物的实际位姿和障碍物的预测轨迹投影,还有可能包括自车车头部位的误检导致的障碍物占据情况,或者是由于地面不平坦使得占据地图在该区域出现了障碍物信息。此时,如果还考虑这一区域的障碍物,就会影响路径规划,使得在行驶过程中总要避开这一区域的障碍物,从而引起路径的大幅震荡。
114.因此,在本技术实施例中,可以筛除占据地图中位于第一区域的所述第二栅格。
115.该第一区域位于行驶装置的前方,若该第一区域内存在障碍物,该行驶装置无法避开该第一区域内的障碍物;然后根据筛除后的占据地图,得到距离地图。从而有效避免了行驶装置因为障碍物的误检而进行的误避让。保证剩余的占据栅格只包含避障算法所需的必要信息,提高了避障路径的平稳性。关于栅格筛除的方式将在下文具体实现方式中进行详细描述,这里不再赘述。
116.s420,根据距离地图确定近场范围内的第一横向背景代价势场。
117.其中,近场范围为与所述行驶装置的纵向距离小于或等于第一阈值的范围,第一横向背景代价势场为横向位置上的障碍物对行驶装置构成的第一斥力场,第一横向背景代价势场包括目标极小值点,目标极小值点横向两侧的背景代价具有单调性,该背景代价表示近场范围内横向位置上的障碍物对该行驶装置构成的近场横向碰撞代价。
118.可选地,上述行驶装置可以是自动驾驶车辆,也可以是机器人,又或是其他自主行驶装置,本技术对此不做限定。为便于描述,本技术均用自车来表示。
119.应理解,近场范围可以是从frenet坐标系的原点出发沿着路径方向纵向延伸5m的范围。在本技术实施例中,该原点可以为自车后轴中心。还应理解,通常自车的长度可能为3-6m,因此近场范围内横向位置上的障碍物可以理解为自车横向两侧的障碍物。该近场范围可以根据自车长度、行驶速度、场景复杂程度确定,本技术不做限定。
120.应理解,第一横向背景代价势场为横向位置上的障碍物对自车构成的第一斥力场。其中,斥力场是由横向位置上的障碍物对行驶装置构成的,能够表示障碍物对行驶装置
的碰撞趋势,会引导行驶装置避开障碍物,也可以称为碰撞场或风险场。应理解,第一斥力场能够表示单调性处理后的障碍物对行驶装置构成的碰撞趋势。
121.也就是说,第一横向背景代价势场能够指示横向位置上自车与障碍物之间的碰撞趋势。通常,背景代价越大,说明自车与障碍物之间的距离越小,越容易发生碰撞;背景代价越小,说明自车与障碍物之间的距离越大,在该背景代价所处的横向位置上行驶时,能够与障碍物保持安全的距离。
122.应理解,该目标极小值点横向两侧的背景代价具有单调性,具体是在目标极小值点左侧的势场单调递减,在目标极小值点右侧的势场单调递增。意味着目标极小值点两侧的背景代价均比目标极小值点处的背景代价大。即就是说,目标极小值点所在的横向位置的势场最低,自车能够沿着该横向位置所在的路径稳定行驶。
123.可选地,第一横向背景代价势场可以呈“v”型,也可以呈“/”型,或者呈“\”型。还应理解,单调函数的斜率可以为定值,也可以是随横向位置不断变化的值,本技术不做限定。为便于描述,在下文具体实施例中,均采用v型的第一横向背景代价势场。
124.s430,根据第一横向背景代价势场,确定当前避障路径。
125.可选地,根据该第一横向背景代价势场,确定当前避障路径可以是根据第一横向背景代价势场中的目标极小值点所处的横向位置,确定当前避障路径。也就是说,根据势场最低的横向位置确定当前的避障路径,使得自车能够沿着势场最低的位置稳定行驶。
126.在本技术实施例中,规划当前避障路径时考虑到近场范围内的横向背景代价势场,一方面使得在规划避障路径时,仅考虑近场范围内的障碍物信息,避免采用现有避障方法规划路径时,远处障碍物发生变动,就会造成自车近处的路径变动,从而使得行驶不稳定;另一方面,通过构建近场范围内的第一横向背景代价势场,有效体现自车与障碍物的横向碰撞趋势,以此为基础规划的避障路径可以使自车在复杂狭窄的环境与障碍物保持最佳的横向距离,从而能够提高避障路径的稳定性。
127.可选地,可以先根据距离地图确定近场范围内的第二横向背景代价势场,该第二横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第二斥力场,该第二横向背景代价势场包括至少一个极小值点;从至少一个极小值点中确定目标极小值点;对目标极小值点横向两侧的背景代价进行单调性处理,生成第一横向背景代价势场,单调性处理的斜率大于或等于第二阈值。例如可以取斜率为大于等于10/1m的任何一个数值,具体的取值需要结合实际情况确定,在此不做限定。
128.应理解,第二斥力场能够表示在单调性处理之前的障碍物对行驶装置构成的碰撞趋势。也就是说,对第二斥力场进行单调性处理会得到第一斥力场。
129.在本技术实施例中,第一横向背景代价势场的构建方式可以是:首先根据距离地图构建近场范围内的第二横向背景代价势场,然后在第二横向背景代价势场中的至少一个极小值点中确定一个目标极小值点,并对该目标极小值点横向两侧的背景代价进行单调性处理,生成该第一横向背景代价势场。并通过设定该单调性处理的斜率大于或等于第二阈值,使得目标极小值点所在的横向位置的背景代价势场明显低于其他横向位置处的背景代价势场,从而能够保证自车在势场最低的路径上稳定行驶。换句话说,意味着当自车侧面障碍物在横向上稍微靠近一点点时,自车所处的横向位置的背景代价势场就会显著增大,使得自车缓慢平稳的避让并运行到背景代价势场最低的横向位置,与障碍物保持安全的距
离。
130.可选地,目标极小值点与行驶装置之间不存在障碍物。
131.换句话说,也就是该目标极小值点所代表的横向位置与该行驶装置所在的横向位置之间在该近场范围内不存在障碍物。
132.可选地,该目标极小值点可以是与行驶装置之间在该近场范围内不存在障碍物的所有极小值点中的最小极小值点。
133.应理解,在实际场景中,可能存在多个极小值点所在的横向位置与自车所在的横向位置之间都不存在障碍物。此时,可以将这些极小值点中的最小极小值点作为目标极小值点;也可以根据实际情况选取其中的一个作为目标极小值点,例如,最小极小值点和次小极小值点的背景代价很接近,且次小极小值点所在的横向位置与自车更接近,此时可以将次小极小值点作为目标极小值点。为便于描述,在后述的实施例中,均采用与行驶装置所在的横向位置之间在该近场范围内不存在障碍物的所有极小值点中的最小极小值点作为目标极小值点。
134.在本技术实施例中,该目标极小值点与该行驶装置之间在该近场范围内不存在障碍物,使得自车能够平稳地运行到目标极小值点所处的横向位置,避免因为行驶装置所处的横向位置与目标极小值点所处的横向位置之间存在障碍物使得自车无法运行到目标极小值点所处的横向位置,从而能够提高路径的稳定性。而且,当目标极小值点可以是与行驶装置所在的横向位置之间在该近场范围内不存在障碍物的所有极小值点中的最小极小值点时,能够使得自车运行过程中与障碍物保存最佳的安全距离。
135.可选地,在根据距离地图确定近场范围内的第二横向背景代价势场之前,方法400还可以包括:生成特征矢量,所述特征矢量包括路径起始点和采样目标点;根据参考路径、历史路径和所述特征矢量,生成多条备选路径。
136.应理解,在本技术实施例的路径规划中,首先可以根据自车所处的位置生成多条备选路径,随后对多个备选路径进行评价选取出最优的备选路径作为当前的避障路径。关于备选路径的生成方式将在下文的实施例中进行详细描述,这里不再赘述。
137.可选地,可以根据采样目标点,对参考路径进行横向偏移生成多条虚拟平行线路径;根据距离地图计算所述多条虚拟平行线路径中每条虚拟平行线路径在近场范围内的每个路点离该路点最近障碍物的距离;根据每条虚拟平行线路径上距离的最小值计算该条虚拟平行线的背景代价;根据多条虚拟平行线路径在近场范围内的背景代价生成近场范围内的第二横向背景代价势场。应理解,关于第一横向背景代价势场和第二横向背景代价势场的构建方式将在下文的具体实现方式中详细描述,这里不再赘述。
138.可选地,在本技术实施例中,对备选路径进行评价时,除了根据背景代价进行评价,还可以结合碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,使得所确定的避障路径能够综合更多的因素,从而能够进一步提高避障路径的平稳性和安全性。
139.因此,在本技术实施例中,在根据第一横向背景代价势场,确定当前避障路径之前,还可以根据距离地图计算多条备选路径中的每条备选路径上的碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项。
140.其中,碰撞代价用于评价行驶装置在备选路径上行驶时是否会发生碰撞,约束代
价用于评价备选路径上的各个路点是否在可避障范围内,切换代价用于评价备选路径与历史路径之间的偏差,横向偏移代价用于评价所述备选路径的横向偏离道路中心线的程度,平滑度代价用于评价备选路径的平滑程度。
141.在进行备选路径的评价时,可以根据第一横向背景代价势场中的背景代价,或者根据第一横向背景代价势场中的背景代价以及碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,计算每条备选路径上的最终代价;然后根据最终代价,确定当前避障路径。
142.应理解,在本技术实施例中,可以根据各项代价的加权求和计算最终代价。应理解,为了使得自车能够与障碍物保持安全的距离,可以将背景代价和碰撞代价的权重取得较大一些。应理解,关于上述各种代价的获取以及具体评价方式将在下文具体实现方式中详细描述,这里不再赘述。
143.可选地,方法400还包括:根据历史路径和当前避障路径的仲裁结果,确定最终避障路径。
144.应理解,历史路径是指自车上一帧所行驶的路径,当前避障路径是指当前所规划的路径。根据历史路径和当前避障路径的仲裁结果,确定最终避障路径,也就是说,在历史路径和当前避障路径中选取一个路径,作为最终输出的避障路径。
145.在本技术实施例中,在确定当前避障路径时,根据当前避障路径和历史路径的差异,确定最终避障路径。避免了在复杂狭窄环境中运行时纯粹基于代价函数或纯逻辑得到的避障路径会产生帧间跳动的情况,有效降低了规划方法对代价函数的依赖,从而保证路径的稳定。
146.可选地,如果当前避障路径明显优于历史路径,则切换至当前避障路径;如果当前避障路径没有明显优于历史路径,则沿用历史路径。避免了在复杂狭窄环境中运行时纯粹基于代价函数或纯逻辑得到的避障路径会产生帧间跳动的情况,从而保证路径的稳定。关于具体的仲裁条件将在下文具体实现方式中进行详细描述,这里不再赘述。
147.可选地,方法400还可以包括:根据历史路径和最终避障路径进行时域平滑。在本技术实施例中,做获取到最终避障路径时,还可以根据历史路径和最终避障路径进行时域平滑。此时,如果最终避障路径为沿用历史路径,时域平滑后的避障路径仍为历史路径;如果最终避障路径为当前避障路径,则根据当前避障路径和历史路径进行时域平滑。有效避免了在复杂狭窄环境中切换避障路径时产生帧间跳动的情况,从而保证路径的稳定。
148.可选地,方法400还可以包括:将最终避障路径输出给速度规划器,该速度规划器用于根据最终避障路径与最终避障路径上障碍物信息,进行速度规划。在本技术实施例中,输出最终避障路径后,速度规划器会根据最终避障路径上的障碍物信息进行速度规划,如果发现该路径上存在可能发生碰撞的障碍物,就会进行减速规划。从而提高路径的安全性。
149.下面将结合附图,对本技术实施例提供的一种优选的避障路径的规划方法做详细描述。
150.作为一种优选方式,图5是本技术实施例提供的一种避障路径的规划方法的核心流程示例图。应理解,图5所示的规划方法可以应用于图2所示的复杂狭窄的场景中。如图5所示,该核心流程500包括步骤s510、s520、s530和s540。下面对这些步骤进行详细描述。
151.s510,备选路径的生成。
152.备选路径的生成包括步骤s511、s512和s513。图6是本技术实施例提供的一种备选路径生成的场景示例图,下面结合附图6对这些步骤进行详细描述。
153.s511,特征矢量生成。
154.具体地,基于历史路径和参考路径规划器输入的参考路径和可避障范围,生成包含路径起始点(start点),采样目标点(goal点,简称采样点)在内的特征矢量,如图6中所示的箭头。
155.应理解,start点可以在历史路径中寻找。在本技术实施例中,将上一帧自车后轴中心所经过的路径作为历史路径,因此可以在历史路径中找到离自车后轴中心点最近的路点,则该点的实际位置和朝向可以构成start点特征矢量。应理解,在每条路径上都包括很多的路点,路点与路点之间的距离可以根据实际情况确定。例如,可以每隔0.1m设置一个路点,也可以每隔0.1*v
自车
设置一个路点,其中,v
自车
为自车的行驶速度。
156.goal点在车体前方的可避障范围内,以参考路径为基准,通过采样方法得到。还应理解,一条备选路径可以包含多个goal点,但只包含一个start点。start点和goal点都通过矢量的方式表征。
157.s512,备选路径拼接。
158.具体地,利用参考路径、历史路径和特征矢量连接生成多段式备选路径,如图6所示。第一段:在start点后方,通过截取历史路径得到。第二段:利用光滑曲线连接start点和goal点,使得曲线满足矢量约束生成路径。第三段:将参考路径平移到在第二段对应的goal之后。三段路径依次连接,通过拼接的方式得到整条备选路径。
159.s513,路径空间域平滑。
160.对每条备选路径进行空间平滑,使得各段路径光滑连接。可选地,可以在大地直角坐标系下,每间隔几个路点生成一个平滑控制点,基于控制点列和3阶b样条生成平滑的备选路径。可选地,可以基于三个路点生成一个平滑控制点,也可以基于四个、五个、六个等,本技术对此不做限定。
161.示例性地,在如图2所示的场景中可以按照图7所示方式生成多条备选路径。具体地,假设参考路径为当前车道的中心线,车道宽度即可避障范围为3.5m,车道中心线的左右两边的宽度各为1.75m。此时可以在历史路径中找到离自车后轴中心点最近的路点,以该点的实际位置和朝向构成start点特征矢量。再生成3排goal点,各排goal点s坐标分别为1.2*max(车速,4.17m/s),2.0*max(车速,4.17m/s),3.5*max(车速,4.17m/s),每排共11个goal点,在对应的纵向位置处的可避障范围内等距分布着与参考路径朝向相同的goal点。其中,max(车速,4.17m/s)是指取当前车速和4.17m/s中较大的数值;1.2*max(车速,4.17m/s)是指1.2乘当前车速和4.17m/s中较大的数值得到第一排goal点的s坐标。应理解,以上数据仅仅作为一种示例,不能作为对本技术的限定。
162.在确定好特征矢量之后,利用参考路径、历史路径和特征矢量连接生成三段式备选路径,包括历史段,多项式段和延伸段。历史段:在start点后方,通过截取历史路径得到。多项式段:利用start点和多排goal点的矢量约束生成路径。具体方法为以任一goal点结合start点的矢量约束,计算frenet系下的三次多项式方程,离散化为路点得到第二段路径。延伸段:将参考路径平移到在第二段对应的goal点之后。三段路径依次连接,通过拼接的方式得到整条备选路径。每条路径与goal点一一对应,在该示例中,共产生33条备选路径。
163.最后对每条备选路径进行空间平滑。具体做法为:在大地直角坐标系下,每间隔4个路点生成一个平滑控制点,基于控制点列和3阶b样条生成平滑的备选路径。
164.在生成备选路径之后,需要对备选路径进行评价,也就是在这些备选路径中选择一条合适的备选路径作为当前避障路径。下面对备选路径的评价过程做以详细的描述。
165.s520,备选路径评价。
166.在本实施例中,备选路径的评价主要包括步骤s521、s522和s523,下面结合附图对这些步骤进行详细描述。
167.s521,无效占据栅格筛除。
168.基于上述生成的备选路径簇和自车位姿,容易看出,在车前某一特定区域范围内,无论自车选择哪一条备选路径,都无法避开该区域内的障碍物。又由于避障路径规划是根据上游模块提供的占据地图信息进行的,而上游模块提供的障碍物信息除了包括动静态障碍物的实际位姿和障碍物的预测轨迹投影,还有可能包括自车车头部位的误检出现了障碍物占据的情况,或者是由于地面不平坦使得占据地图在该区域出现了障碍物信息。此时,如果还考虑这一区域的障碍物,会影响路径规划,使得在行驶过程中总要避开误检的障碍物,从而使得路径规划产生大幅度变化,从而引起路径的震荡。
169.因此在避障路径规划中构建近场横向碰撞势场之前,可以不考虑这一区域的障碍物,在占据地图中可以将该区域的栅格作为无效栅格进行筛除,图8是本技术实施例提供的一种无效占据栅格的示例图。下面结合附图对无效占据栅格筛除的方法进行详细描述。
170.可选地,可以构建全碰撞三角区以筛选无效占据栅格。图9是本技术实施例提供的一种全碰撞三角区的示例图。可选地,占据地图覆盖范围可以为车体前方50m,后方10m,左右20m,分辨率为0.2m*0.2m(即每个格子的占据面积),占据地图中被占据的部分栅格值为1,未被占据部分栅格值为0。应理解,全碰撞三角区是指在某个三角区域内,无论自车选择哪个路径,都无法避开该区域内的障碍物。三角区的顶点为备选路径的start点所在位置,其底边等于自车宽度,三角区底边的两个顶点位于最外侧的备选路径上。将落在该全碰撞三角区的占据栅格直接筛除。
171.可选地,在获取到筛除无效占据栅格后的占据地图后,可以将占据地图转换为距离地图。图10是本技术实施例提供的一种占据地图转换为距离地图的示例图。可选地,可以通过opencv的距离转换distancetransform函数将占据地图转换为距离地图。如图10所示,在占据地图中,栅格值为1的部分表示该栅格被占据,即存在障碍物;栅格值为0的部分表示该栅格没有被占据,即不存在障碍物。占据地图所转换的距离地图中的栅格大小与占据地图相等,距离地图中每个栅格的值为该栅格到最近被占据栅格点的距离。可以看出,距离地图中栅格值为0的部分表示该栅格到障碍物的距离为0,即该栅格处被占据;距离地图中栅格值为0.2的部分表示该栅格到最近障碍物的距离为0.2m。应理解,距离地图中每个栅格的值为该栅格到最近被占据栅格点的距离是指如果一个栅格周围通常会存在多个障碍物,但是该栅格中只记录该栅格到最近障碍物的距离。可选地,该距离可以为直线距离。
172.在本技术实施例中,通过对车前无效栅格的筛除,有效避免了自车因为障碍物的误检而进行的误避让。保证剩余的占据栅格只包含避障算法所需的必要信息,提高了避障路径的稳定性。
173.还应理解,在避障路径的规划中将无效栅格筛除,意味着在避障路径规划中不考
虑这一区域的障碍物。但在实际场景中,如果这个区域存在真实的障碍物,速度规划模块会做相应的减速处理以避免碰撞的发生。
174.s522,v型的近场横向背景代价势场生成。
175.在本实施例中,可以基于上述筛除无效栅格后的距离地图信息,构建v型的近场横向背景代价势场,即构建上述近场范围内的第一横向背景代价势场。下面结合附图对v型近场横向碰撞势场的构建过程做以详细描述。
176.图11是本技术实施例提供的一种v型的近场横向背景代价势场的生成方法示例图。该方法即步骤s522包括步骤s5221、s5222和s5223,下面对这些步骤进行详细描述。
177.s5221,根据距离地图,计算近场横向位置上的背景代价。
178.应理解,在根据距离地图,计算近场横向位置上的背景代价之前,首先需要基于图6或7中所生成的多条备选路径上的采样目标点,对参考路径进行横向偏移生成多条虚拟平行线路径。该生成的虚拟平行线路径如图12所示,即将参考路径横向平移到采样目标点所在的横向位置上。在本技术实施例中,该虚拟平行线路径也可以称为是背景代价虚拟线,自车在每条背景代价虚拟线的碰撞趋势可以用该条背景代价虚拟线的背景代价来表述。背景代价越大,发生碰撞的可能性越大;背景代价越小,发生碰撞的可能性越小。
179.在生成背景代价虚拟线之后,计算每条背景代价虚拟线上的背景代价。
180.具体地,利用距离地图信息,计算每条背景代价虚拟线上在近场范围内的所有路点离其最近障碍物的距离,以其距离最小值计算该条背景代价虚拟线的背景代价。
181.示例性地,根据距离最小值计算背景代价的公式可以如下:
[0182][0183]
其中,cost
back
为背景代价;d
min.i
为某条背景代价虚拟线上在近场范围内的所有路点离其最近障碍物的距离中的最小值,并将具有该距离最小值的路点记为路点i;width为车宽。在上述公式(1)中临界值为还应理解,上述公式(1)中的临界值仅作为一种示例,在实际应用中,临界值还可以取中任一数值,只要能保证自车在横向上与障碍物处于一定的安全距离即可。
[0184]
示例性地,某条背景代价虚拟线在近场范围内共有4个路点,分别离最近障碍物的距离为0.6、0.5、0.7和1.2,则以最小值0.5计算该条背景代价虚拟线的背景代价。又因为因此该条背景代价虚拟线的背景代价
[0185]
还应理解,虚拟平行线路径上包括多个路点,路点与路点之间的距离可以根据实际情况确定。例如,可以每隔0.1m设置一个路点,也可以每隔0.1*v
自车
设置一个路点,其中,v
自车
为自车的行驶速度。本技术对此不做限定。
[0186]
可选地,计算每条虚拟平行线路径上在近场范围内的某个路点离最近障碍物的距离可以直接取该路点所在栅格的距离值,也可以由其周围的四个栅格中的距离信息通过双
线性插值方法计算得到,本技术对此不做限定。
[0187]
s5222,基于近场横向位置上的背景代价,生成初始的近场横向背景代价势场。
[0188]
具体地,根据多条背景代价虚拟线在近场范围内的背景代价生成初始的近场横向背景代价势场,即上述近场范围内的第二横向背景代价势场。
[0189]
s5223,根据初始的近场横向背景代价势场,构建v型的近场横向背景代价势场。
[0190]
具体地,图13是本技术实施例提供的一种近场横向背景代价势场单调性处理原理示例图。
[0191]
应理解,在实际的交通场景中,多个背景代价虚拟线的背景代价所形成的初始的近场横向背景代价势场在横向(沿l方向)分布上通常有多个极小值。需要先找到初始的近场横向背景代价势场中的多个极小值点,并记录横向位置和对应背景代价值。示例性地,如图13中的左图所示,在背景代价的横向分布中,存在3个极小值点。随后分别找到当前自车的横向位置以及三个极小值的位置。例如,当前自车横向位置为l=-0.5;点1的坐标为l=1.3,cost
back
=0.13;点2的坐标为l=-1.2,cost
back
=0.53;点3的坐标为l=-0.2,cost
back
=1.7。除此之外,从图13中还可以看出,在实际交通场景的近场范围内还存在最大背景代价,应理解,最大背景代价所在的横向位置处的背景代价虚拟线上在近场范围内的某个路点距离障碍物的距离为0,即该路点上存在障碍物。在本实施例中,由于离障碍物的距离为0时根据公式(1)无法计算背景代价,因此可以采用自定义最大背景代价的方式,例如取最大背景代价为109。
[0192]
可以看出,在上述3个极小值点中,点1的背景代价最低,意味着如果在该背景代价虚拟线上行驶,能够与障碍物保持最佳的横向距离,如果按照传统的优化算法选择路径时,会以点1的横向位置所在的背景代价虚拟线作为最优路径。但在实际交通场景中,如图13中的左图所示,点1与自车中间存在障碍物。又因为在近场范围(0-5m)内,自车长度通常高达3-6m,因此在实际场景中,由于中间障碍物的存在,自车并不能成功行驶到背景代价最低的路径。也就是说,在近场横向背景代价势场中背景代价最低的点并不一定是最合适的点。
[0193]
因此,基于以上问题,在本技术实施例中,还需要在多个极小值中确定目标极小值,该目标极小值是与自车所在的横向位置之间在该近场范围内不存在障碍物的所有极小值点中的最小极小值点。
[0194]
具体地,将极小值点按背景代价值从小到大排列,从最小的极小值出发,依次检查该点与自车横向位置之间是否存在障碍物,即是否存在最大背景代价(与障碍物距离为0)的点。如果存在,则对应极小值点视为非法点,丢弃该点;如果不存在,则以此点为基准,将其两侧背景代价以固定步长处理为单调函数,形成v形近场横向碰撞势场。简单来讲,先将极小值从小到大进行排列,然后从当前最小的极小值出发进行检查,如果当前最小的极小值与自车之间存在障碍物,则丢弃该点,再检查下一个最小的极小值点;如果当前最小的极小值与自车之间不存在障碍物则以该点为基准,将其两侧的背景代价以一定斜率构建成单调函数,不必再考虑之前两侧的背景代价。而且,每条背景代价虚拟线的背景代价都可以直接由对应横向的位置根据斜率计算得到。
[0195]
示例性地,如图13左图所示,点1与自车横向之间存在最大背景代价,因此丢弃该点;点2与自车之间不存在最大背景代价,因此该点为合法极小值点,以该点为基础,将点两侧的背景代价做单调性处理得到v型的近场横向碰撞势场,且单调函数的斜率为10/1m,如
图13右图所示。
[0196]
应理解,做单调性处理时的函数斜率应该大于等于一定阈值,例如可以取斜率为大于等于10/1m的任何一个数值,具体的取值需要结合实际情况确定,在此不做限定。以使最优横向位置的背景代价远低于其他路径,在实际自车行驶过程中若稍微偏移最优横向位置时,最终代价便会明显增大,从而使得自车能够在背景代价最低的横向位置稳定行驶,从而提供自车行驶的稳定性和安全性。
[0197]
s523,路径代价计算。
[0198]
优选地,在本实施例中,备选路径的评价可以通过背景代价结合碰撞代价、约束代价、切换代价、横向偏移代价、平滑度代价进行。下面结合公式和附图对这些代价进行一一描述。
[0199]
其中,碰撞代价,用于评价自车在备选路径上行驶时与障碍物发生碰撞的可能性。具体地,计算所有备选路径中每条备选路径上每个路点的碰撞代价,再对每条备选路径上所有的路点的碰撞代价求和得到该条备选路径的最终代价。应理解,每个路点的碰撞代价由其离最近障碍物的距离计算得到,距离越近碰撞代价越大。
[0200]
示例性地,公式(2)是本技术实施例提供的一种碰撞代价的计算方式:
[0201][0202]
其中,cost
obj
为碰撞代价;d
min.i
为备选路径上第i个路点离障碍物的距离;max(d
min
.i/0.7,0.2)为取d
min
.i/0.7和0.2中较大的值;pti.s为备选路径上第i个路点的纵坐标;width为车宽。
[0203]
在上述公式(2)中临界值为当d
min.i
大于临界值时视为不发生碰撞,当d
min
.i小于等于临界值时视为发生碰撞。还应理解,上述公式中的临界值仅作为一种示例,在实际应用中,临界值还可以取中任一数值,只要能保证自车在该路径行驶不发生碰撞即可。
[0204]
上述提到每个路点的碰撞代价是由其离最近障碍物的距离计算得到,因此在计算碰撞代价之前,需要先计算每个路点离其最近障碍物的距离。关于路点离最近障碍物的距离的计算方式,将结合图14和图15进行详细描述。
[0205]
图14是本技术实施例提供的一种车体多圆碰撞模型的示例图。在本实施例中,将车体等效为多圆模型,将车体多圆碰撞模型的后轴中点所在圆心与备选路径上的每个路点重合(应理解,自车的行驶路径为自车后轴中心所经过的路径),车头朝向与路点朝向一致。此时,对应备选路径上的路点离障碍物的距离为多圆模型中多个圆心离障碍物的最小距离。当任一个圆心离障碍物距离小于一定距离时,该路点状态视为碰撞,该点的碰撞代价由该距离定义。
[0206]
示例性地,以图14中的路点i为例对路点i到障碍物的距离进行详细描述,如图14
所示,备选路径上某个路点i与四圆模型(c1-c4)的后轴中点所在圆心重合,此时路点i离障碍物的距离d
min.i
为四圆模型中4个圆心离障碍物的最小距离,即圆c4的圆心离障碍物的距离。若该距离小于一定阈值,则认为在该路点i的状态为发生碰撞;若大于一定阈值,则认为该路点i的状态为不发生碰撞。
[0207]
进一步地,按照上述方法,遍历某条备选路径上的所有路点,若任一路点的状态为碰撞,则整条路径的状态为碰撞。在本技术实施例中,将每条备选路径上处于发生碰撞状态的所有的路点的纵向距离中的最小值记为该备选路径的碰撞距离。基于上面的描述可以得知,碰撞距离与路点离障碍物的距离d
min.i
并不相同。
[0208]
可选地,在本技术实施例中,可以利用距离地图计算多圆模型中的多个圆心离最近障碍物的距离。且在计算距离时,为了避免栅格地图导致的精度丢失,可以利用双线性插值的方法计算具体圆心所在位置与最近障碍物的精确距离,如图15所示。应理解,点p可以为多圆模型中某个圆的圆心,点abcd分别为距离地图里栅格地图所代表的路点位置以及离最近障碍物的距离值。因而,p点的距离值可由abcd四个点的距离信息通过双线性插值方法计算得到。在通过上述方式分别计算出多个圆心到障碍物的距离后,取最小的距离为路点i离障碍物的距离d
min.i

[0209]
约束代价,用来判断备选路径上的各个路点是否在可避障范围约束内,若超出可避障范围,则计算该点的约束代价,否则约束代价为0。具体地,每条备选路径的整体约束代价可以由各个路点的约束代价求和得到,如公式(3):
[0210][0211]
其中,cost
margin
为约束代价;pti.s为备选路径上第i个路点的纵向坐标值;pti.l为第i个路点的横向坐标值;lm为左侧约束,即可避障范围的左侧边界线的横向坐标值;rm为右侧约束,即可避障范围的右侧边界线的横向坐标值。可见,某条备选路径上在可避障范围之外的路点越多且在可避障范围之外的路点的纵向坐标值越小,该条路径的约束代价就越大;若备选路径上所有的路点都在可避障范围内时,约束代价就为0。因此,在约束代价为0的备选路径上行驶,能够保证自车在可避障范围内行驶。
[0212]
切换代价,用于描述备选路径与历史路径之间的偏差。分为偏移切换代价和区域切换代价。
[0213]
其中,偏移切换代价描述备选路径横向路径相对于历史路径的变化情况。在本实施例中,可以取当前备选路径goal点的横向偏移与上一帧历史输出路径的goal点横向偏移差的绝对值。如下公式所示:
[0214]
cost
lchange
=|goal
old
.l-goal
now
.l|
ꢀꢀ
(4)
[0215]
其中,cost
lchange
为偏移切换代价;goal
old
为历史路径的goal点横向偏移,即历史路径的goal点的横坐标;goal
now
为当前备选路径goal点的横向偏移,即当前备选路径的goal点的横坐标。
[0216]
应理解,横向偏移即偏移道路中心线的程度。
[0217]
区域切换代价描述备选路径横向大范围的变化程度。当路径在相邻区域中跳动时,区域切换代价较小,当路径在左右两个区域之间跳动时,区域切换代价很大,此时区域
切换代价可以用于评价路径的大幅变化。
[0218]
示例性地,以横向距离为依据,可以将可避障范围划分为如图16所示的左z1、中z2、右z3三个区域。当横向可避障范围为3m,道路中心线的横坐标为0时,三个区域可以按照如下方式进行划分。即,当goal点的横坐标小于-0.5时,goal点位于区域1(z1);当goal点的横坐标大于-0.5且小于0.5时,goal点位于区域2(z2);当goal点的横坐标大于0.5时,goal点位于区域3(z3)。
[0219][0220]
其中,zone表示区域,goal.l为goal点的横坐标值。
[0221]
基于上面的描述,备选路径与历史路径之间的区域切换代价值可以按照如下公式(6)计算:
[0222][0223]
其中,cost
zone
为区域切换代价,zone
old
为历史路径的goal点所在的区域;zone
now
为备选路径的goal点所在的区域。
[0224]
应理解,在实际操作中,也可以划分为四个区域、五个区域、六个区域等,本技术对划分区域的数目不做限制。为便于描述,在本技术实施例中,均划分为三个区域。还应理解,区域的划分可以是等长度划分也可以不等,本技术对此不作限定。
[0225]
应理解,当横向路径划分为更多区域时,例如,四个区域。可以采用1或2作为临界值。举例来讲,历史路径的goal点所在的区域以及备选路径的goal点所在的区域差的绝对值大于1时,区域切换代价为1;小于等于1时,区域切换代价为0。还可以是,历史路径的goal点所在的区域以及备选路径的goal点所在的区域差的绝对值大于2时,区域切换代价为1;小于等于2时,区域切换代价为0。具体区域的划分以及临界值的确定应结合实际道路情况确定,不做限定。
[0226]
横向偏移代价,用于描述备选路径的横向偏离道路中心线的程度。具体地,可以使用备选路径的goal点的横向偏移描述该代价,如公式(7)所示。
[0227]
cost
offset
=|goal
now
.l|
ꢀꢀ
(7)
[0228]
其中,cost
offset
为横向偏移代价;goal
now
.l为当前备选路径goal点的横向偏移。
[0229]
平滑度代价,描述备选路径的平滑程度,利用备选路径曲率表示。具体地,可以使用备选路径各路点曲率平方的积分描述该代价,如公式(8)所示:
[0230][0231]
其中,cost
smooth
为平滑度代价;pti.curve为备选路径上第i个路点处的曲率,pti.s为备选路径上第i个路点的纵向坐标值。应理解,曲率越大,代价越大。
[0232]
优选地,在本技术实施例中,在计算出每条备选路径的上述各个代价之后,可以通过每条备选路径上的上述各个代价的加权求和结果作为该条备选路径的最终代价。随后根据所有备选路径的最终代价值,以最终代价最小的备选路径作为当前帧最优路径,当前帧
最优路径即上述当前避障路径。
[0233]
具体地,每条备选路径的最终代价可以按照公式(9)进行计算:
[0234][0235]
其中,cost
total
为备选路径的最终代价;cost
back
为背景代价;w
back
为背景代价的权重;cost
obj
为碰撞代价;w
obj
为碰撞代价的权重;cost
margin
为约束代价;w
margin
为约束代价的权重;cost
lchange
为偏移切换代价;w
lchange
为偏移切换代价的权重;cost
zone
为区域切换代价;w
zone
为区域切换代价的权重;cost
offset
为横向偏移代价;w
offset
为横向偏移代价的权重;cost
smooth
为平滑度代价;w
smooth
为平滑度代价的权重。
[0236]
应理解,根据本技术实施例的方案在计算最终代价时,综合了多种代价的影响,使得当前帧最优路径能够满足各个方面的要求。
[0237]
而且,在计算过程中,可以将背景代价的权重和碰撞代价的权重取得较大一些。一方面,使得最优路径的最终代价远低于其他备选路径。在实际自车行驶过程中若稍微偏移最优路径时,最终代价便会明显增大,从而使得自车能够在代价最低的路径稳定行驶。另一方面,代价最低的路径其碰撞代价和背景代价也最优,使得自车在行驶过程中,当自车侧面障碍物逐渐逼近时,自车可以缓慢避让,从而与障碍物保持安全的距离。
[0238]
示例性地,本技术实施例中设置各项代价的权重可以为:
[0239]wback
=1.0
×
106[0240]wobj
=1.0
×
106[0241]wmargin
=1.0
×
10-1
[0242]wlchange
=1.0
×
10-6
[0243]wzone
=1.0
×
10-3
[0244]woffset
=1.0
×
10-3
[0245]wsmooth
=1.0
×
10-6
[0246]
应理解,在本技术实施例中,可以根据实际情况结合上述一项或多项代价评价备选路径。还应理解,各项代价的权重可以根据实际情况取值,在此不做限定。
[0247]
s530,输出路径仲裁。
[0248]
在获取到当前帧最优路径即上述当前避障路径时,可以基于历史路径和当前帧最优路径进行仲裁,输出最终避障路径。具体仲裁方式如图17所示。应理解,当前帧最优路径即就是上述的当前避障路径。
[0249]
图17是本技术实施例提供的一种输出避障路径的仲裁方法示例图。如图17所示,该仲裁方法即步骤s530包括步骤s531-s536。下面对这些步骤进行详细描述。
[0250]
s531,判断历史路径当前是否存在碰撞。若存在碰撞,转步骤s532;若不存在碰撞,转步骤s533。
[0251]
s532,判断当前最优路径是否存在碰撞。若存在碰撞,转步骤s534;若不存在碰撞,转步骤s535。
[0252]
s533,判断当前最优路径的代价是否明显优于历史代价。若明显优于历史代价,转步骤s535;若不明显优于历史代价,转步骤s536。
[0253]
s534,判断当前最优路径的碰撞距离是否明显优于历史碰撞距离。若明显优于,转
步骤s535;若不明显优于,转步骤s536。
[0254]
s535,输出当前最优路径。
[0255]
s536,输出历史路径。
[0256]
具体地,在进行仲裁之前,首先要根据上一帧生成历史路径所使用的goal点的信息,在当前帧重新生成历史路径,并计算历史路径的最终代价和碰撞状态。
[0257]
如果历史路径在当前不存在碰撞,则根据当前最优路径的最终代价和历史路径的最终代价决定输出的避障路径。如果当前最优路径的最终代价明显优于历史路径的最终代价,则当前最优路径作为输出的避障路径,否则,继续沿用历史路径。应理解,当前最优路径的最终代价优于历史路径的最终代价是指当前最优路径的最终代价小于历史路径的最终代价。
[0258]
如果历史路径当前存在碰撞,但是当前帧最优路径不发生碰撞,则使用当前帧最优路径作为当前输出的最终路径。还应理解,如果当前帧最优路径发生碰撞,则表示当前帧所有路径都发生碰撞。在这种情况中,如果当前帧最优路径的碰撞距离与历史碰撞距离接近,如图18所示,则沿用上一帧历史路径;如果当前帧最优路径的碰撞距离明显优于历史碰撞距离,如图19所示,则以当前最优路径作为输出的最终避障路径。
[0259]
应理解,当前帧最优路径的碰撞距离明显优于历史碰撞距离,是指当前帧最优路径的碰撞距离减去历史碰撞距离的差值大于或等于一定阈值,例如,5m。
[0260]
当前最优路径的最终代价明显优于历史路径的最终代价,是指当前最优路径的最终代价与历史路径的最终代价的比值小于或等于一定阈值,例如60%。
[0261]
s540,路径时域平滑。
[0262]
本实施例中,经过仲裁得到最终避障路径后,还可以对该避障路径进行时域平滑。
[0263]
且本实施例中,每条路径都对应唯一goal点,因此可以利用goal点对避障路径进行时域平滑。具体地,根据上一帧平滑后的采样目标点goal
old
(即上一帧历史路径的采样目标点goal
old
)和当前帧选取的最终采样目标点goal
final
(即经过仲裁选取的最终避障路径的采样目标点goal
final
),利用惯性滤波生成时域平滑的采样目标点goal
filter

[0264]
应理解,当最终避障路径为历史路径时,当前帧选取的最终采样目标点为历史路径的采样目标点,此时,经过时域平滑和不经过时域平滑的结果都为历史路径的采样目标点。当最终避障路径为当前帧最优路径时,当前帧选取的最终采样目标点为当前最优采样目标点,图20示出了该情况下的时域平滑示例图。在生成时域平滑的采样目标点goal
filter
后,基于平滑后的采样目标点goal
filter
重新生成三段式路径,得到最终输出路径。
[0265]
平滑后的目标点goal
filter
的具体位置可以按照公式(10)和(11)进行计算:
[0266]
goal
filter
.l=w
l
*goal
old
.l+(1-w
l
)*goal
final
.l
ꢀꢀ
(10)
[0267]
goal
filter
.s=ws*goal
old
.s+(1-ws)*goal
final
.s
ꢀꢀ
(11)
[0268]
其中,goal
filter
.l为平滑后的采样目标点的横向位置;goal
filter
.s为平滑后的采样目标点的纵向位置;goal
old
.l为上一帧平滑后的采样目标点的横向位置;goal
old
.s为上一帧平滑后的采样目标点的纵向位置;goal
final
.l为当前帧选取的最终采样目标点的横向位置;goal
final
.s为当前帧选取的最终采样目标点的纵向位置;w
l
是在横向上进行平滑的权重,ws是在纵向上进行平滑的权重。
[0269]
应理解,在本实施例中,横向和纵向上进行平滑时所使用的权重可以根据实际情
况设定。例如,横向和纵向上进行平滑的权重可以取1,即平滑后的采样目标点goal
filter
的位置和上一帧平滑后的采样目标点goal
old
的位置相同,也即沿用历史路径;横向和纵向上进行平滑的权重可以取0,即平滑后的采样目标点goal
filter
的位置和当前帧选取的最终采样目标点goal
final
的位置相同,也即根据路径仲裁选择的最终路径的采样目标点作为平滑后的采样目标点goal
filter
。当路径仲裁的结果为采用当前帧最优路径,即当前帧选取的最终路径为当前帧的最优路径时,权重也可以根据实际路况选取0-1中任何一个数值进行时域平滑,使得自车可以综合考虑历史路径和当前帧最优路径的情况,防止直接运行到最优路径时产生的帧间跳动。应理解,横向和纵向上的权重可以相同,也可以不相同。示例性地,在本实施例中,可以取:w
l
=0.92,ws=0.85。
[0270]
在本实施例中,一方面,生成了近场范围内的横向背景代价势场,当自车侧面障碍物逐渐横向逼近时,自车可以缓慢避让,与障碍物保持安全距离。另一方面,通过对无效栅格的筛除,有效避免了自车因为此处的占据栅格造成的误避让。又一方面,背景代价结合路径仲裁策略可以保证自车的稳定避障。
[0271]
示例性地,在图2所示的场景中,在4号和5号车处于图示位置时,自车可以沿着两车中间行驶;当右侧5号车车辆缓慢靠近自车时,背景代价形成的v形势场的最低值会逐渐向左移动,使得自车在可避让范围的约束内选择靠左侧的备选路径,与障碍物保持1m的横向距离保证自车安全。而且由于背景代价的权重很高,例如106,当障碍物稍微靠近时,背景代价就会急剧变化,使得最终代价也发生明显的变化,必然会使得每帧得到的最优路径代价会小于历史最优路径代价的60%,便会不断触发路径从历史路径切换至当前最优路径,使得自车及时避让。除此之外,在整个备选路径评价时,还会使用到碰撞代价,例如,1号障碍物的存在使得在1号障碍物附近的备选路径都形成碰撞,其碰撞代价也会很高,因此根据背景代价和碰撞代价等多种代价的加权求和,在该场景中最终输出的避障路径会如图21所示向左偏移,对需避让的障碍物进行有效避让。
[0272]
上述是本技术实施例应用在复杂狭窄的交通场景中的具体示例,应理解,结合上述近场范围内的横向背景代价势场(即第一横向背景代价势场)和碰撞代价,使得本技术实施例还可以应用在简单高速场景中进行快速的避障。
[0273]
图22是本技术实施例提供的一种简单的城市道路场景示例图。如图22所示,自车在结构化道路上快速行驶时,在可避障范围内存在少量的动静态障碍物(编号1-2)。但是这些障碍物在自车的前方道路上交叉排列,自车需要利用小型s弯进行快速的避障。应理解,在该场景中,参考路径和横向可避障范围,以及所有障碍物的尺寸、位置、速度及预测轨迹的占据地图都已知。
[0274]
为便于描述,将复杂狭窄的场景记为场景一,将简单高速场景记为场景二。
[0275]
可选地,在针对场景二进行路径规划时,可以结合上述近场范围内的横向背景代价势场(即第一横向背景代价势场)和碰撞代价进行路径的规划;除此,还可以结合无效栅格的筛除、综合其他多种代价获取最终代价、路径仲裁、时域平滑等中的一项或多项进行路径的规划。
[0276]
下面同样以一种优选的方式,对场景二中的路径规划方法进行简单描述。
[0277]
在一种优选的实现方式中,图5所示的规划方法同样可以应用于图22所示的场景二中。但与在场景一中应用时的备选路径具体的生成方式(s510步骤)不同。图23是本技术
实施例提供的又一种备选路径生成的场景示例图,下面结合具体示例对场景二的备选路径的生成进行详细描述。
[0278]
示例性地,在场景二中,同样可以假设参考路径为当前车道的中心线,车道宽度即可避障范围为3.5m,车道中心线的左右两边的宽度各为1.75m。在场景二中,关于start点和goal点的生成与的方法与场景一中的基本一致,主要区别在于场景一中可以每排生成11个goal点,而在场景二中,每排生成3个goal点。
[0279]
在确定好特征矢量之后,利用参考路径、历史路径和特征矢量连接生成全连接式备选路径。路径分为三段,包括历史段、全连接段和延伸段。其中,历史段在起始点后方,通过截取历史路径得到。全连接段由起始点和多排采样点之间连接生成。具体的方法为起始点和第1排采样点分别连接,再由第1排采样点和第2排采样点分别连接,以此类推,可以得到多排采样点之间的连接关系,例如每排采样点有3个点,共3排采样点,则可以得到3*(3*3)*(3*3)=243条备选的轨迹。全连接段各段通过三次多项式方程链接,需要满足经过goal点的矢量约束。延伸段:将参考路径平移到在全连接段对应的采样点之后。三段路径依次连接,通过拼接的方式得到整条备选路径。在该实施例中,共产生243条备选路径。
[0280]
最后对每条备选路径进行空间平滑。关于平滑的方式可参考场景一的描述,不再赘述。
[0281]
应理解,以上仅仅作为一种示例,仅为了清楚的描述场景一和场景二中备选路径生成方式的不同,并不能作为对本技术的限定。应理解,上述每排目标点的个数和目标点的排数和备选路径生成的个数均可以结合实际情况确定,不做限定。
[0282]
在场景二中,关于备选路径的评价(s520步骤)和输出路径仲裁(s530步骤)均可参考对于场景一的具体实现方式的描述。
[0283]
另外,由于备选路径连接方式的不同,使得对于场景二和场景一的路径规划中在路径时域平滑(s540步骤)时也稍有区别。
[0284]
具体地,在场景二中,记录上一帧平滑后的采样目标点簇goal
old
,此处的goal
old
包含3个goal点,每一排采样点都对应一个goal点,基于当前帧选取的最终采样目标点(3个),利用惯性滤波生成时域平滑的采样目标点簇。基于平滑后的采样目标点簇重新生成三段式路径,得到最终输出路径。对应goal点时域平滑的公式和参数同公式(10)和(11)。
[0285]
在该场景二中,当自车处于两个障碍物交叉排列的场景时,拥有足够高横向避让自由度,因此可以按照上述方式规划得到足够长的无碰撞行驶轨迹,使得自车快速避让通过该交通场景。而且在快速避障障碍物的过程中,自车可以与障碍物保持足够侧向距离且保证路径稳定。
[0286]
具体地,本实施例可产生如图24所示的避障路径。由于该实施例中采用的全连接的方法生成备选路径,其路径的备选形态多,充分拓展的解空间,可得到一条对多个物体进行绕障的无碰撞轨迹。且基于碰撞代价对路径进行评价使得当前所规划的避障路径(最优的备选路径)在整条路径上都能够与障碍物1和2保持0.7m的安全距离。且在行驶过程中,自车经过障碍物侧面时,基于背景代价会对行驶路径做出调整,使得自车与障碍物保持1m的安全距离,从而使得在障碍物1和2所处的纵向范围内构成无碰撞路径,快速通过两个障碍物。而且,如果自车在图示位置所规划的路径使得自车运行到障碍物1和2侧面时,就能够保持1m的安全距离时,输出路径仲裁策略就会对历史路径和行驶过程中重新规划的路径进行
仲裁,从而沿用历史路径,不对路径进行切换,完成快速避障。
[0287]
而在场景二中,如果采用场景一所使用的路径规划方法,生成的备选路径的形态较少(如图7所示),此时在多个备选路径中进行选择时,无法直接获取到一条无碰撞的行驶路径,在行驶过程只能分别对1和2号障碍物进行避让,使得开始所规划的路径能够避让1号障碍物,但是在该路径的前方与2号障碍物存在碰撞(即2号障碍物在图7中最下面一条路径的第三段上)。此时有碰撞的行驶路径会影响后端的速度规划器,引起自车减速,导致自车只能低速在该场景种行驶。
[0288]
图25是本技术实施例提供的一种行驶装置的避障路径的规划装置示例图。如图25所示,该规划装置2500包括获取模块2510和处理模块2520。
[0289]
其中,该获取模块2510用于获取距离地图,该距离地图包括多个第一栅格,该多个第一栅格中的每个第一栅格用于记录该第一栅格离最近被障碍物占据的第一栅格的距离;该处理模块2520用于根据该距离地图确定近场范围内的第一横向背景代价势场,该近场范围为与该行驶装置的纵向距离小于或等于第一阈值的范围,该第一横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第一斥力场,第一横向背景代价势场包括目标极小值点,该目标极小值点横向两侧的背景代价具有单调性,该背景代价表示近场范围内横向位置上的障碍物对该行驶装置构成的近场横向碰撞代价;根据该第一横向背景代价势场,确定当前避障路径。
[0290]
可选地,根据该距离地图确定近场范围内的第一横向背景代价势场包括:根据该距离地图确定近场范围内的第二横向背景代价势场,该第二横向背景代价势场为横向位置上的障碍物对该行驶装置构成的第二斥力场,该第二横向背景代价势场包括至少一个极小值点;从该至少一个极小值点中确定目标极小值点;对该目标极小值点横向两侧的背景代价进行单调性处理,生成该第一横向背景代价势场,该单调性处理的斜率大于或等于第二阈值。
[0291]
可选地,该目标极小值点与该行驶装置之间不存在障碍物。
[0292]
可选地,在获取距离地图之前,该获取模块2510还可以用于:获取占据地图,该占据地图包括多个第二栅格,该多个第二栅格中的每个第二栅格用于记录该第二栅格中存在障碍物的概率;该处理模块2520还可以用于:根据该占据地图,得到距离地图。
[0293]
可选地,该根据所述占据地图,得到距离地图包括:筛除该占据地图中位于第一区域的第二栅格,该第一区域位于行驶装置的前方,若该第一区域内存在障碍物,该行驶装置无法避开该第一区域内的障碍物;根据筛除后的占据地图,得到该距离地图。
[0294]
可选地,在该根据距离地图确定近场范围内的第二横向背景代价势场之前,该处理模块2520还可以用于:生成特征矢量,该特征矢量包括路径起始点和采样目标点;根据参考路径、历史路径和所述特征矢量,生成多条备选路径;该根据所述距离地图确定该近场范围内的第二横向背景代价势场包括:根据该采样目标点,对该参考路径进行横向偏移生成多条虚拟平行线路径;根据该距离地图计算该多条虚拟平行线路径中每条虚拟平行线路径在该近场范围内的每个路点离该路点最近障碍物的距离;根据该每条虚拟平行线路径上该距离的最小值计算该条虚拟平行线的背景代价;根据该多条虚拟平行线路径在该近场范围内的背景代价生成该近场范围内的第二横向背景代价势场。
[0295]
可选的,在该根据第一横向背景代价势场,确定当前避障路径之前,该处理模块
2520还用于:根据该距离地图计算该多条备选路径中的每条备选路径上的碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,其中,该碰撞代价用于评价该行驶装置在该备选路径上行驶时是否会发生碰撞,该约束代价用于评价该备选路径上的各个路点是否在可避障范围内,该切换代价用于评价该备选路径与该历史路径之间的偏差,该横向偏移代价用于评价该备选路径的横向偏离道路中心线的程度,该平滑度代价用于评价该备选路径的平滑程度;根据该第一横向背景代价势场,确定当前避障路径包括:根据该第一横向背景代价势场中的背景代价,或者根据该第一横向背景代价势场中的背景代价以及该碰撞代价、约束代价、切换代价、横向偏移代价或平滑度代价中的一项或多项,计算该每条备选路径上的最终代价;根据该最终代价,确定该当前避障路径。
[0296]
可选的,该处理模块2520还用于:根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径。
[0297]
可选的,该根据历史路径和该当前避障路径的仲裁结果,确定最终避障路径,包括:若该历史路径存在碰撞,但该当前避障路径不存在碰撞,则以该当前避障路径作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值大于或等于第三阈值,则以该当前避障路径和该历史路径中碰撞距离较大者作为该最终避障路径;或者,若该历史路径和该当前避障路径都存在碰撞,且该当前避障路径的碰撞距离与该历史路径的碰撞距离之差的绝对值小于第三阈值,则以该历史路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比小于或等于第四阈值,则以该当前避障路径作为该最终避障路径;或者,若该历史路径不存在碰撞,且该当前避障路径的该最终代价与该历史路径代价之比大于第四阈值,则以该历史路径作为该最终避障路径;其中,该碰撞距离为该每条备选路径上处于发生碰撞状态的所有的路点的纵向距离中的最小纵向距离。
[0298]
可选地,该处理模块2520还可以用于:根据历史路径和最终避障路径进行时域平滑。
[0299]
可选地,该规划装置2500还可以包括输出模块,用于将避障路径输出给速度规划器,该速度规划器用于根据最终避障路径与最终避障路径上障碍物信息,进行速度规划。
[0300]
图26是本技术实施例提供的一种避障路径的规划装置的硬件结构示例性框图。该装置2600(该装置2600具体可以是一种计算机设备)包括存储器2610、处理器2620、通信接口2630以及总线2640。其中,存储器2610、处理器2620、通信接口2630通过总线2640实现彼此之间的通信连接。
[0301]
存储器2610可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器2610可以存储程序,当存储器2610中存储的程序被处理器2620执行时,处理器2620用于执行本技术实施例的规划方法的各个步骤。
[0302]
处理器2620可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术方法实施例的规划方法。
[0303]
处理器2620还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本
申请的规划方法的各个步骤可以通过处理器2620中的硬件的集成逻辑电路或者软件形式的指令完成。
[0304]
上述处理器2620还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2610,处理器2620读取存储器2610中的信息,结合其硬件完成本技术实施例的规划装置中包括的模块所需执行的功能,或者执行本技术方法实施例的规划方法。
[0305]
通信接口2630使用例如但不限于收发器一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。例如,实现上述获取模块2510和输出模块的功能。
[0306]
总线2640可包括在装置2600各个部件(例如,存储器2610、处理器2620、通信接口2630)之间传送信息的通路。
[0307]
本技术实施例还提供了一种车辆,包括上述避障路径的规划装置2500或2600,能够执行上述任一种规划方法,从而使得车辆在复杂狭窄场景中能够平稳的行驶并与横向上的车辆保持安全的距离。应理解,车辆可以是电动汽车,例如,纯电动汽车、增程式电动汽车、混合动力电动汽车、燃料电池汽车、新能源汽车等,本技术对此不做具体限定。
[0308]
本技术实施例还提供了一种计算机系统,上述任一项规划方法(算法)可运行在该计算机系统上,该计算机算力应保证对上述任一项规划算法的更新率达到一定数值,例如,30hz。使得可以根据实时的环境情况进行路径规划,保证行驶装置安全平稳的运行。
[0309]
除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
[0310]
需要说明的是,本文中涉及的第一、第二、第三或第四等各种数字编号仅为描述方便进行的区分,并不用来限制本技术实施例的范围。
[0311]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0312]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0313]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0314]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0315]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0316]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0317]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1