全局路径规划方法、装置、电子设备及存储介质与流程

文档序号:31336488发布日期:2022-08-31 08:55阅读:163来源:国知局
全局路径规划方法、装置、电子设备及存储介质与流程

1.本发明实施例涉及计算机技术领域,尤其涉及一种全局路径规划方法、装置、电子设备及存储介质。


背景技术:

2.现有技术中,自动驾驶的测试过程中,通常是结合高精地图,人工规划轨迹路线。而这种方式并不能够保证人工规划的轨迹路线与高精地图上的轨迹路线精度一致。通常而言,人工规划的轨迹路线与高精地图上的轨迹路线存在一定的偏差。
3.而且,即使工作人员可以将人工规划的轨迹路线的精度达到与高精地图的精度基本一致,也将需要耗费大量的人力和时间精力成本,而且还会导致自动驾驶车辆的行驶轨迹的设定效率非常低下。


技术实现要素:

4.本技术提供了一种全局路径规划方法、装置、电子设备及存储介质,以解决现有技术中上述部分或全部技术问题。
5.第一方面,本技术提供了一种全局路径规划方法,该方法包括:
6.从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,其中,路径信息中包括基准参考线对应的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息;
7.根据第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,确定每一条车道对应的第一位置点集数据,第一位置点集数据用以指示每一条车道的预设位置的第一位置信息;
8.根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图;
9.根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息、车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道;
10.根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的第一全局路径。
11.第二方面,本技术提供了一种全局路径规划装置,该装置包括:
12.获取单元,用于从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,其中,路径信息中包括基准参考线对应的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息;
13.处理单元,用于根据第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,确定每一条车道对应的第一位置点集数据,第一位置点集数据用以指示每一条车道的
预设位置的第一位置信息;
14.构建单元,用于根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图;
15.处理单元,还用于根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息、车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道;根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的第一全局路径。
16.第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
17.存储器,用于存放计算机程序;
18.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的全局路径规划方法的步骤。
19.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的全局路径规划方法的步骤。
20.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
21.本技术实施例提供的该方法,从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,然后根据路径信息中包括的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,来确定每一条车道分别对应的第一位置点集数据。根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图。根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息,车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道,根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的全局路径。通过该方式,可以根据地图车道轨迹线为参照,规划出一条较佳的轨迹线。该轨迹线可以贴合车道中央,利用该轨迹线替代人工驾驶录制的行驶线路,以此克服人工驾驶录制的轨迹线不能够很好的贴合车道中央的问题。而且,利用该方法得到的全局路径免去人工规划轨迹路线的过程,减少人工成本和时间成本。并且,所获取的全局路径完全是利用相应的车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系得到,通常来说,不会出现太大的偏差,甚至是没有偏差,因此该方式不仅仅提高了自动驾驶车辆的行驶轨迹的设定效率和设定精度,还大大降低了人工成本和时间成本。。
附图说明
22.图1为本发明实施例提供的一种全局路径规划方法流程示意图;
23.图2为本发明提供的确定每一条车道对应的第一位置点集数据的方法流程;
24.图3为本发明提供的构建道路拓扑结构图的方法流程;
25.图4本发明提供的两条车道起点重合的示意图;
26.图5为本发明提供的相邻两条车道的示意图;
27.图6为本发明提供的从地图文件中匹配与预设路点位置对应的车道的方法流程示意图;
28.图7为本发明提供的根据第三位置信息和每一条车道对应的第一位置点集数据,从地图文件中匹配与预设路点位置对应的车道的方法流程示意图;
29.图8为本发明提供的生成与车辆行驶路线对应的全局路径的方法流程示意图;
30.图9为本发明提供的获取第二全局路径的方法流程示意图;
31.图10为本发明提供的对离散轨迹点进行过滤处理的方法流程示意图;
32.图11为本发明提供的对离散轨迹点进行过滤之前和过滤之后的效果对比示意图;
33.图12为本发明提供的确定对离散轨迹点进行线性插值的插值方式的方法流程示意图;
34.图13为本发明提供的对离散轨迹点进行线性插值后,获取直线段的示意图;
35.图14为本发明提供的对离散轨迹点进行三次样条插值后的效果示意图;
36.图15为本发明提供的速度规划方法流程示意图;
37.图16为本发明提供的速度数组的示意图;
38.图17为本发明提供的前向依次修改跳变点的速度后的速度数组示意图;
39.图18为本发明提供的后向依次修改跳变点的速度后的速度数组示意图;
40.图19为本发明提供的对于停等点的前向速度更新停止后的速度数组的示意图;
41.图20为本发明提供的向后依次更新跳变点的速度数据的速度数组的示意图;
42.图21为本发明提供的对于起点,只能进行向前的速度更新后的速度数组示意图;
43.图22为本发明提供的速度数组的初始化值的示意图;
44.图23为本发明提供的一维的速度数组用速度曲线示意图;
45.图24为本发明提供的最终选择等时间间隔的一系列轨迹点作为最终车辆行驶轨迹的效果示意图;
46.图25为本发明实施例提供全局路径规划装置结构示意图;
47.图26为本发明实施例提供一种电子设备结构示意图。
具体实施方式
48.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
50.自动驾驶在测试过程中,通常是利用人工规划的方式,结合高精地图获取自动驾驶车辆的行驶轨迹路线。然而,这种方式所形成的轨迹路线通常是精度不够的,规划得到的轨迹路线与高精地图上的轨迹路线存在一定的偏差。
51.虽然,这种偏差可以通过人工校准的方式来解决,但是考虑到人工校准的方式本身就会占用人力和时间,必不可免的会提供人工成本和时间成本,而且也会导致自动驾驶
车辆的行驶轨迹路线的设定效率非常的低下。
52.基于上述情况,本技术实施例提供了一种全局路径规划方法,具体参见图1所示。图1为本发明实施例提供的一种全局路径规划方法流程示意图,该方法步骤包括:
53.步骤110,从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息。
54.在一个具体的例子中,预配置的地图文件可以是预获取的一份高精地图文件。在高精地图文件中可以包括至少一条道路中每条道路的基准参考线路径信息。且在该路径信息中至少包括有基准参考线对应的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息。
55.在一个可选的例子中,路段类型例如可以包括但不限于直线、螺旋线和弧线等。每一条道路例如xxx路,该xxx路可以包括有多个车道。每个车道可以根据道路形状划分为多段。例如一条道路被分为6段,每一段路分别包括如下形状:line(直线)、spiral(螺旋线)、arc(弧线)、spiral(螺旋线)、line(直线)、spiral(螺旋线)。相应的,该条道路对应的基准参考线同样是包括以上6段,每段对应的形状参见以上介绍,这里不再赘述。
56.路段信息,例如可以包括每一种形状的曲线分别由frenet坐标系下起点位置s,笛卡尔坐标系下起点位置x,y,起点的航向角hdg,几何曲线的长度length组成。其中弧线还包括曲线的曲率curvature信息,螺旋线还包括起点曲率curvstart和终点曲率curvend信息。
57.除此之外,还可以包括该条道路分别对应的车道的车道信息,例如车道的编号lane id=”0”表示第0号车道,lane id=
”‑
1”表示-1号车道。其中0号车道表示道路的基准参考线,没有实际宽度。以道路基准参考线为基准,参考线右边的车道编号依次为-1,-2,-3...,参考线左边车道的编号依次为1,2,3...。
58.再者,路段信息中还可以包括每段形状的路段对应的参数表达式,和不同路段中横坐标的点集,例如直线为y=ax+b,x取值为1到100间的正整数。通过x和表达式,则可以获取基准参考线中每个轨迹点的纵坐标。
59.而每条车道的宽度,则可以用width参数标识。
60.步骤120,根据第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,确定每一条车道对应的第一位置点集数据。
61.具体的,如上文所介绍的,可以获取到基准参考线的每个轨迹点的横纵坐标,起点的航向角hdg,几何曲线的长度length组成。其中弧线还包括曲线的曲率curvature信息,螺旋线还包括起点曲率curvstart和终点曲率curvend信息等等。
62.而不同的车道的坐标数据与基准参考线的坐标数据之间,实际上的差异就是位置偏移数据。而具体的位置偏移数据可以根据车道的宽度求取获得。
63.因此,在一个可选的例子中信息,以及道路中不同车道对应的宽度信,根据第一路段类型、路段信息,确定每一条车道对应的第一位置点集数据,具体可以参见图2所示,图2示出了确定每一条车道对应的第一位置点集数据的方法流程。
64.步骤210,根据第一路段类型和从路段信息,确定基准参考线的第二位置点集数据。
65.步骤220,根据第二位置点集数据和宽度信息,确定每一条车道对应的第一位置点集数据。
67.也即是,根据基准参考线中的每一个路段的路段类型,从路段信息中获取相应的路段表达式。然后,根据路段信息中的横坐标初始值、起点的航向角hdg,几何曲线的长度,(若路段为弧线还包括曲线的曲率curvature信息,螺旋线还包括起点曲率curvstart和终点曲率curvend信息)等,确定基准参考线中预设位置的第三位置信息。例如,路段为直线,那么位置信息只考虑横纵坐标即可,因此第三位置信息中包括的是每个预设位置(也即是每个轨迹点)的横纵坐标。
68.然后,根据第三位置信息,以及道路中不同车道对应的宽度信息,分别确定每一条车道对应的第一位置点集数据。
69.例如当基准参考线的坐标为(x,y)时,-1车道的坐标为(x-width/2,y),+1车道的坐标为(x+width/2,y)。以此类推,可以获取每一条车道分别对应的第一位置点集数据,其中,第一位置点集数据中的每一个数据用以指示每一条车道的一个预设位置的位置信息。为与下文中的其他位置信息进行区别,这里定义为第一位置信息。若是其他形状的路段,则还可以依据中心线的几何形状进一步得到每一条车道的每个轨迹点的曲率、航向角等信息。具体计算过程为现有技术,这里不再过多赘述。
70.步骤130,根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图。
71.在一个具体的例子中,道路拓扑结构图包括多个节点,以及与每个节点对应的节点信息,其中,节点为每一个车道对应的车道起点信息,节点信息包括子节点以及子节点到节点之间的距离,其中,子节点包括如下中的一种或多种:与车道起点对应的车道终点、与车道相邻的相邻车道起点,或者,与车道起点相同的车道的车道终点。
72.也即是说,在构建拓扑结构图时,需要获知车道之间的连接关系。进而根据车道之间的连接关系,来构建拓扑结构图。
73.在一个可选的例子中,根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图,具体参见图3所示。图3示出了构建道路拓扑结构图的方法流程。包括:
74.步骤310,根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,确定第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系。
75.步骤320,根据第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系,构建道路拓扑结构图。
76.具体的,根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息(其实就是指该车道的轨迹点的位置信息),可以获知每一条车道的起点位置和终点位置。
77.将每一条车道的起点作为拓扑结构图中的节点,将该车道对应的终点作为该节点的子节点。同时,若该车道的起点与另一个车道的起点重合,那么另一个车道的终点同样为该节点子节点。具体参见图4所示。图4示出了车道b的起点与车道a的起点重合的示意图。
78.如图4中所示,某条车道a,长度20米,车道的起点编号为node1,终点编号为node2,按照逻辑关系node2是node1的子节点,node1到node2距离为20米。另一条车道b,长度25米,车道的起点与车道a的起点重合,则车道b的起点编号也为node1,终点编号node3,则node3也是node1的子节点,node1到node3距离为25米。
79.此外,还要对相邻车道建立连接关系,以保证正常的换道驾驶行为。具体参见图5所示,车道a,b为相邻车道,车道a的起点、终点编号为node1,node2,车道b的起点终点编号为node3,node4,则建立node1和node3的连接关系,它们互为对方的子节点,即可由a车道换到b车道,也可有b车道换道a车道。
80.可选的,对于某条车道,我们把它前后连接的车道分别叫做前驱和后继。计算某条车道的前驱时,取此条车道的起点位置,依次搜索其余车道的终点位置,判断其他车道的终点位置是否与此车道的起点位置的距离在某一阈值范围内,比如0.1米,如果在这一范围内,则认为搜索的车道是当前车道的前驱,保存在此车道的前驱车道列表中(某车道的前驱和后继不唯一)。计算车道的后继原理类似,取某条车道的终点位置,依次搜索其余车道的起点位置,判断其他车道的起点是否与此车道的终点位置的距离在某一阈值范围内,如果在这一范围内,则加入此车道的后继列表。在确定网络结构拓扑图中的节点和子节点的位置关系时,也可以根据前驱车道列表和后继车道列表,直接确定某些节点的子节点。并且,每次统计后形成列表后,后续无需再统计,方便长期使用。
81.步骤140,根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息、与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道。
82.具体的,上述操作过程可以通过如下方式实现,具体参见图6所示,包括:
83.步骤610,根据第一预设路点位置、第一预设路点位置对应的第二位置信息,以及与地图文件对应的位置转换关系,获取与第一预设路点位置对应的第三位置信息。
84.步骤620,根据第三位置信息和每一条车道对应的第一位置点集数据,从地图文件中匹配与第一预设路点位置对应的车道。
85.其中,第一预设路点位置为至少一个预设路点位置中的任一个预设路点位置。也即是说,从地图文件中匹配与至少一个预设路点位置中的每一个预设路点位置对应的车道时,均可以通过如上方式实现。
86.在一个可选的例子中,预先设定的车辆行驶路线中的预设路点位置,例如可以是起点、终点和途经点等关键路点。与之相对应的第二位置信息通常为经纬度信息。而地图文件中所对应的位置信息通常为通过局部坐标(例如以xxx路的某个点作为中心点构建的局部坐标系,也可能是以城市某个点作为中心构建的局部坐标系,具体以哪些基准点构建基准坐标系可以根据实际情况设定)所获取的例如横纵坐标数据。所以,车辆行驶路线中的预设路点的位置对应的第二位置信息需要通过一定得转换形式,来将其转换到局部坐标系上。
87.因此,需要根据预先设定的车辆行驶路线中的预设路点位置、预设路点位置对应的第二位置信息,以及与地图文件对应的位置转换关系,获取与每一个预设路点位置分别对应的第三位置信息。如上所介绍的,地图文件为高精地图,那么地图转换方式则是根据高精地图所构建的局部坐标系和车辆行驶路线所在的坐标系(例如世界坐标系)所生成的一个坐标系转换关系。
88.而根据第三位置信息和每一条车道对应的第一位置点集数据,从地图文件中匹配与预设路点位置对应的车道时,主要参见如下:
89.在地图文件中匹配预设路点位置对应的车道时,可以依据预设路点位置在地图文
件中的第三位置信息与每一条车道的中心线之间的距离来确定。
90.在一个具体的例子中,可以通过如下方式获取,具体参见图7所示,该方法步骤包括:
91.步骤710,根据第一预设路点位置对应的第三位置信息和每一条车道对应的第一位置点集数据,确定第一预设路点位置与每一条车道的中心线之间的距离。
92.步骤720,根据第一预设路点位置与每一条车道的中心线之间的距离,从地图文件中选取与第一预设路点位置对应的车道。
93.具体的,根据每一条车道对应的第一位置点集数据,可以确定每一条车道的中心线的第三位置点集数据。
94.然后,根据第一预设路点位置对应的第三位置信息,以及每一条车道的中心线的第三位置点集数据,则可以确定第一预设路点位置与每一条车道的中心线中与该预设路点位置对应的中心线上的一个点之间的距离。
95.选取第一预设路点位置与车道的中心线之间的距离最近时,所对应的车道即为地图文件中与第一预设路点位置匹配的车道。
96.步骤150,根据拓扑结构图,从与预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的第一全局路径。
97.在一个可选的例子中,可以通过如下方式实现,具体参见图8所示,该方法步骤包括:
98.步骤810,根据拓扑结构图,确定与每一个预设路点位置对应的车道所对应的节点。
99.步骤820,分别计算相邻两个节点中的最短路径,以及最短路径对应的车道和车道序列。
100.步骤830,根据最短路径对应的车道和车道序列,获取第一全局路径。
101.具体的,如上文所介绍的,不同预设路点位置可能对应不同的车道。在一个具体例子中,首先记录每个关键路点(预设路点位置)所对应车道,以及车道的起点终点对应的拓扑图中的节点。
102.假设,关键路点只有起点a,途径点b,终点c。
103.a匹配到车道lane1,b匹配到车道lane2,c匹配到车道lane3。
104.lane1的起点和终点在拓扑图中对应的节点分别为节点1(node1),节点2(node2)。lane2的起点和终点在拓扑图中对应的节点分别为节点3(node3),节点4(node4)。lane3的起点和终点在拓扑图中对应的节点分别为节点(node5),节点6(node6)。那么,在拓扑图中,我们的所要经过的节点序列记为:{node1,node2,node3,node4,node5,node6}。
105.其次,在拓扑图中依次计算节点序列{node1,node2,node3,node4,node5,node6}两两之间的最短路径,常用算法有dijkstra,a*等。
106.在此例子中,先计算node1和node2之间的最短路径,例如计算结果为:{node1,node12,node13,node14,node2},其次再计算node2和node3之间的最短路径,例如计算结果为:{node2,node21,node22,node23,node24,node3},以此类推。
107.最终把两两节点之间的最短路径序列拼接起来,最终结果可能为:{node1,node12,node13,node14,node2,node21,node22,node23,node24,node3,node31,node32,
node4,node41,node5,node51,node52,node6}。由此得到行驶路线对应在拓扑图中的第一全局路径。
108.可选的,考虑到在高精地图所采集的路线中,线段实际存在微弱锯齿状,并不是非常平滑的。因此,在上述实施例的基础上,该方法还可以包括如下方法步骤,具体参见图9所示。该方法包括:
109.步骤910,对全局路径进行离散化处理,获取第一离散轨迹点集。
110.具体执行时,可以沿着全局路径取离散点,在一个具体的例子中,可以每间隔0.2米取一个点。间隔距离的取值可以根据实际场景设定。如在宽阔的高速路上,此间隔可以取大些,比如5米。在测试场这种道路较窄,有比较急的锐角弯的情况下,间隔要取小一些,保证行驶路线的精确性。固定路线中有换道场景,根据测试场路段实际长度,以及试验车辆所要求的车速,换道长度设定为25米。此长度是为了保证换道过程平稳的进行。由于场地限制,换道过程中车速大约只有18km/h,即5m/s。为保证乘坐的舒适度,换道要留有8s的换道时间,但实际车道长度较短,最低限度要留有5s的换道时间,所以设定换道长度为25米。
111.对第一全局路径进行离散化后,可以获取第一离散轨迹点集。
112.步骤920,对第一离散轨迹点集进行插值处理,获取第二全局路径。
113.进一步可选的,在获取到离散轨迹点集的基础上,考虑到可能存在重复的离散轨迹点,例如某条车道的起点,是另一条车道的终点。那么,这个位置可能会出现两次。
114.例如,如上在拓扑图中搜索全局路径的过程,node1和node2节点之际的最短路径是{node1,node12,node13,node14,node2},node2和node3的最短路径是{node2,node21,node22,node23,node24,node3},两个路径拼接要去掉重复的点node2。虽然路径拼接时已去掉重复的点,但为了可靠性冗余,这里再剔除一次。
115.再者,离散化后可能存在距离很近的点。例如某条车道长度2.01米,按照0.2米的间隔离散化,则分别在0,0.2,0.4,...,1.6,1.8,2.0,2.01位置处取点,最后两个点的位置很近,近似重复,在去重过程中也要去掉这样的点。
116.另外,还需要过滤掉行驶方向有突然拐折的点,虽然高精地图的道路已经足够平滑、换道过程也保留了充足的换道长度,但为安全起见,再作一次拐折点的过滤。过滤掉这样的点是为了安全考虑,假设之前离散化过程或者全局规划过程中存在疏漏,某一点距离其上一个点的纵向距离为0.2米,但横向距离有3米,规划的车速又很快,那么车辆行驶到此处,下一个点在车辆侧向3米处,车辆为了追踪此点位置会猛打方向盘,在高速行驶下,这种行为很危险,换道过程就存在这种情况。
117.由于在拓扑图中相邻的车道存在连接关系,在搜索全局路径时,节点序列就可能存在换道的情况。但如前,为换道预留了25米的距离,即换道点距离当前点的纵向距离为25米,横向距离为3米(车道宽度),但为了安全冗余,再作一次拐折点的过滤。
118.因此,在对第一全局路径进行离散化处理,获取第一离散轨迹点集之后,该方法还包括:
119.对第一离散轨迹点集进行过滤处理,获取经过过滤处理后的第二离散轨迹点集。
120.以便后续在第二离散轨迹点集的基础上进行插值处理,获取第三离散轨迹点集,其中,第三离散轨迹点集构成第二全局路径。
121.在具体执行过滤时,可以参见如下方式实现,具体参见图10所示,该方法步骤包
括:
122.步骤1010,计算相邻两个离散轨迹点之间的转角和距离;
123.步骤1020,确定转角和距离之间的比值大于预设阈值时,删除相邻两个离散轨迹点之中的后一个离散轨迹点。
124.具体举例参见图11所示。
125.剔除之前,离散点序列为n1,n2,n3,n4,n5,其中n4点拐折较大。为量化拐折程度,首先计算两点之间的距离,例如n3距离n2的距离为d1=1米,n4距离n3的距离d2=0.2米,n3的航向角拐折角度为alpha1=5度,n4的航向角拐折为alpha2=90度,其各自的转角和距离的比值为ratio1=5/1=5,ratio2=90/0.2=450。例如可以设置阈值为100,转角和距离的比值大于这个阈值,则认为存在较大拐折,过滤掉。
126.进一步可选的,考虑到不同的路段类型,对第一(或第二)离散轨迹点集的插值方式不同。因此,在执行步骤920之前,该方法还可以包括如下方法步骤,具体参见图12所示,该方法步骤包括:
127.步骤1210,根据第一离散轨迹点集中的离散轨迹点分别对应的第一位置信息,确定第一全局路径中不同路段的第二路段类型。
128.步骤1220,根据第一全局路径中每一条路段的第二路段类型,确定与每一条路段对应的轨迹点插值方式。
129.具体的,在执行插值操作时,由于离散轨迹点集中的离散轨迹点分别对应的第一位信息中包含了位置信息(x,y)、航向角和曲率信息等。
130.而根据曲率值可以区分某一线段是否是直线还是曲线。
131.例如依次遍历离散轨迹点集列表{n1,n2,n3,...,nn},如遍历到nx1点,其曲率值为零,继续遍历后续点,如nx2,nx3,...,nx10的曲率都为零,则把nx1到nx10之间的线段定义为直线路段。
132.nx11的曲率大于零,直到nx20,之间的点的曲率都大于零,则定义nx11到nx20之间的车道为曲线路段。
133.根据类似上述方式,确定第一全局路径中不同路段的类型后,按照不同路段的类型,确定轨迹点的差值方式。
134.而且,通过上述方式,确定类型包括执行和曲线。需要根据直线和曲线两种情况分别插值。
135.对于直线部分,例如a-b,在实际道路中为直线,但在高精地图的表示中,可能截断成了若干小的直线片段,每个片段都是直线,曲率都为零,但每条直线的航向角有微小的偏差,造成了在两条直线衔接的地方有一个曲率。
136.对于直线路段的情况,取直线路段的第一段道路起点和最后一个路段的终点,连接成直线,对于中间部分进行线性插值。线性插值过程简单描述如下:
137.第一:取线段的首尾两点的坐标,(x1,y1),(x2,y2),根据直线公式,计算出直线的方程:
[0138][0139]
第二:在x1,x2之间等间隔地取一些x值,根据上一步得到的直线方程,计算出相应
的y值,由此得到的一系列点的坐标替换掉原有的(x1,y1),(x2,y2)之间的其他点。
[0140]
具体参见图13所示,图13示意出对离散点进行线性插值后,获取直线段的示意图。图中对拐折程度做了夸张化处理,实际拐折角度只有0.1度的量级。
[0141]
对于弯道部分处理较为简单,直接做三次样条插值。所谓三次样条插值,就是从曲线上取n个点,把曲线分为n+1份,每两点之间用一个三次曲线来表示,要求这个三次曲线及其一次和二次导数都连续。每个三次曲线包含4个参数,即每个区间有4个未知数,共n+1个区间,所以共4(n+1)个未知数,需求解4(n+1)个方程得到这些未知数。之后就用三次曲线上的点代替原有的点。三次样条插值的效果示意图具体参见图14所示,其中实线的拐折点为插值前的点,虚线为插值后的光滑的点。
[0142]
两个部分的插值间隔尽量密集,在本实施例中,取0.05米,目的在于速度规划后最终得到等时间间隔的轨迹点。
[0143]
可选的,现有的自动驾驶车辆控制算法有其特有的适用范围,必须保证车辆在满足单车模型的条件下,控制算法才能有较好的表现。尤其是转弯速度不能太高,向心加速度不能超过重力加速度的0.4倍,否则控制会偏离原有的轨迹点。人工驾驶录制轨迹,由于人不能精确感知车辆每一时刻横向加速度,录制的轨迹可能使控制算法不能完美的控制车辆。
[0144]
而且受车辆执行器性能影响,车辆的方向盘转动延迟可能较大,某个弯道由人工驾驶可以顺利过弯,但是复制人工驾驶轨迹,以相同的速度过弯,由于方向盘响应延迟,车辆有可能失控而驶向对向车道或内切撞上路肩。
[0145]
再者,自动驾驶情况下车辆的加减速的最大值也与人工驾驶情况下有差异。人工驾驶模式下通过制动踏板来刹车,最大力度在0.8g以上(g表示重力加速度)。而自动驾驶模式下通过esp制动,最大力度只有0.5g,且由于esp泵油的功率有限,并且缺乏真空助力,所以反应较慢。所以自动驾驶模式下的制动性能不及人工驾驶模式下的制动性能。比如人工驾驶时,邻近行驶终点的15米进行刹停,但自动驾驶模式下,在相同的车速下,由于减速的最大值有差异,车辆的刹停距离可能要20米,产生碰撞风险。
[0146]
因此,在第二离散轨迹点集的基础上进行插值处理,获取第三离散轨迹点集之后,该方法还可以包括对第二全局路径中的轨迹点进行速度规划。通过速度规划以克服上述问题。
[0147]
具体的实现过程参见图15所示,该方法步骤包括:
[0148]
步骤1510,获取预配置的速度数组。
[0149]
其中,速度数组的元素数量根据第三离散轨迹点集中离散轨迹点的数量确定,速度数组的各元素的初始值为第三离散轨迹点集中各个离散轨迹点的最大限速。
[0150]
步骤1520,从速度数组中查找速度为预设数值的离散轨迹点。
[0151]
步骤1530,以速度为预设数值的离散轨迹点为界限,对速度数组进行划分,获取多个子速度数组。
[0152]
步骤1540,按照与第二路段类型对应的预设算法,从速度为预设数值的离散轨迹点为起始,识别每一个子速度数组中的速度跳变点,并预测与速度跳变点对应的实际速度数据。
[0153]
步骤1550,利用与速度跳变点对应的实际速度数据,更新每一个速度跳变点的速
度数据后,获取与车辆行驶轨迹对应的速度规划数据。
[0154]
进一步的,按照与第二路段类型对应的预设算法,从速度为预设数值的离散轨迹点为起始,识别每一个子速度数组中的速度跳变点,具体包括但不限于如下方法步骤:
[0155]
步骤a,从速度为预设数值的离散轨迹点为起始,依次计算每一个子速度数组中每一个元素所对应的实际速度数据。
[0156]
步骤b,当确定第一子速度数组中的第一元素所对应的实际速度数据与第一元素的预配置的速度数据不一致时,确定第一元素为速度跳变点。
[0157]
其中,第一子速度数组为多个子速度数组中的任一个子速度数组,第一元素为第一子速度数组中的任一个元素。
[0158]
在一个可选的例子中,在执行上述操作步骤之前,事先做一下准备工作。
[0159]
i)首先设定规划参数,根据现场车速要求,设定车辆最高时速,根据车辆自动驾驶模式下的加减速性能,设定最大加速度和最大减速度。根据弯道曲率以及控制算法的适用范围,以及方向盘响应延迟时间,设定每个弯道的最大过弯速度。
[0160]
具体做法如下:
[0161]
第一:根据弯道上每个点的曲率值,得到每个点的转弯半径。其中,曲率和转弯半径互为倒数关系。
[0162]
第二:根据控制算法适用范围设定每个点的最大过弯速度。控制算法要求最大转弯加速度不能超过0.4g,其中g为重力加速度。可以限定转弯的最大向心加速度为0.4g,根据向心加速度公式:a=v^2/r,其中a是向心加速度,v是转弯速度,r是转弯半径,可以得到转弯的最大速度v。
[0163]
第三:由于车辆的方向盘响应有较大延迟,把0.4g进一步缩小,最终实车测试0.2g较为合适,再通过a=v^2/r得到弯道上每个点的最大转弯速度,取弯道上各个点的最大转弯速度的最小值,作为此弯道的最大过弯速度。
[0164]
ii)设定每个路点的最高速度限制。
[0165]
对于弯道和换道,根据曲率设定最大行驶速度;
[0166]
对于规定的停车等待点,设定速度为0;
[0167]
对于直线路段,初步设定最大速度限制为测试场的最高限速。
[0168]
执行上述准备工作后,来执行第一次速度规划操作。
[0169]
首先获取预配置的初始速度数组,其中,速度数组的元素数量根据第三离散轨迹点集中离散轨迹点的数量确定,速度数组的各元素的初始值为第三离散轨迹点集中各个离散轨迹点的最大限速。
[0170]
具体的,按照全局路径离散点集的数量设置速度数组的长度和初始值,例如总点集数量为10000,则设定一个长度为10000的速度数组,数据中的每一个数据表示对应点的速度,速度数组初始化为各个点的最大限速。
[0171]
具体的速度数组的示意图参见图16所示。包括起点为开始、中间停等点(也即是速度为预设数值的离散轨迹点,这里的预设数值为0),以及包括终点等的多组速度元素数据。
[0172]
假设路段都是直线路段,所以图中数组中的数据都是取最高限速60,途中只有一个停等点,速度要求为0,所以图中只有一个位置数据为0(即,事先在速度数组中查找速度为预设数值的离散轨迹点)。
[0173]
第二:找到数组中的速度跳变点。
[0174]
判断标准为:如果某一点后面一点的速度大于当前点的速度,按照s=v_0*t+0.5*a*t*t,以及v=v_0+a*t公式,计算按照最大加速度计算。由当前点行驶到下一个点时,速度能否到达下一个点的速度值。仍以上图举例,n1点为停等点,最大限速为0,n2点限速为60km/h。n1和n2之间的间隔按上述离散点的间隔,取值为0.2米,但这里为叙述方便,假设n1和n2之间的间隔为1米。假设最大的加速度为1米/平方秒。
[0175]
那么根据s=v_0*t+0.5*a*t*t,其中s=1米,v_0=0米/秒,a=1米/平方秒,求得t=1.414秒。再根据v=v_0+a*t,其中v_0=0米/秒,a=1米/平方秒,t=1.414秒,则v=1.414米/秒=5.1km/h,即按照最大的加速度限制,车从n1点行驶到n2点时,速度最大只能是5.1km/h,而速度数组中n2的速度初始值为60km/h,超过了最大限速,所以n2点为速度跳变点。
[0176]
第三:前向依次修改跳变点的速度。
[0177]
例如,需要把n2的速度修改为5.1,为显示方便,图中取整为5,具体参见图17所示,图17中n2位置对应的数据修改为5。
[0178]
接着判断n2到后续点的速度是否存在跳变,经检查后,确实也存在跳变,经修改后速度数组变图18所示,图18中n2后面的速度为10km/h。
[0179]
停止条件为更新速度大于等于上一次的更新速度。例如:
[0180]
速度更新到nx2点后,经过计算,nx3点的最大速度为60km/h,而nx3上一次的更新速度(此点的上一次更新速度即为初始化速度)也为60km/h,则更新速度等于上一次的更新速度,对于停等点的前向速度更新停止。具体参见图19所示,图19示意出对于停等点的前向速度更新停止后的速度数组的示意图。图19中n1至nx3的位置的速度数据依次增加5km/h。
[0181]
第四:向后依次更新跳变点的速度。
[0182]
计算方式与向前的速度更新类似,也是按照s=v_0*t+0.5*a*t*t,以及v=v_0+a*t公式来计算,区别是其中的加速度a跟向前计算时的加速度值不同,这里的a为车辆的减速度值,这里假设加速度值为0.5米/平方秒,则向后计算完成后的速度数组参见图20所示,图20中ny1至n1之前的位置数据全部有更新。
[0183]
第五:对每一个速度跳变点都进行向前和向后的速度更新。
[0184]
例如起点和终点与其相邻的点也存在速度跳变。对于起点,只能进行向前的速度更新。对于终点,只能进行向后的速度更新。具体参见图21所示,图21示意出对于起点,只能进行向前的速度更新后的速度数组示意图,参见图21中从起点到ny3的数据,当然省略号代表后面的数据也有更新。
[0185]
而且,从示意图看出,相较于图20而言,起点前面的几个点的速度更新值小于上一次的更新值,所以被替换掉。终点附近的几个点的速度值也被更新掉。如果把一维的速度数组用速度曲线来表示,为表达的丰富些,除了一个停等点再增加一个弯道,则速度数组的初始化值可以用图22所示。
[0186]
对于每一个有速度跳变的点做向前和向后速度值更新后,一维的速度数组用速度曲线可以参见图23所示。图23中斜线的斜率表示了加速度或者减速度。从图23中看出,由于停等点与起点距离较近,速度还没有完全达到最高限速,车辆就开始减速,以保证能够在停等点停车。
[0187]
第六:对整个速度数组重复以上五个步骤多次,例如2-3次。
[0188]
经过以上五个步骤,可以使速度数组中相邻点的速度值变化是连续的(加速度不超过最大加速度或最大减速度)。但为了安全冗余,以上五个步骤再重复进行2~3次,确保速度值的变化是连续的。
[0189]
执行上述操作后,可以再执行第二次速度规划,在直线段部分添加加减速动作。原理如第一次速度规划,这里不再过多赘述。
[0190]
具体执行时,可以选取等时间间隔的轨迹点。此轨迹点即对全局规划后的离散点进行插值后得到的间隔更为密集的点,如前插值的间隔为0.05米。插值后的轨迹点只有位置、曲率、航向角等信息。在完成速度规划后,可对每个轨迹点加上每个轨迹点的位置信息、速度、加速度、到达时间等信息都计算完成。由于插值点的间隔较密,相邻点之间的时间间隔可能很小,例如10ms或20ms。由于控制算法每50ms更新一次指令,轨迹间隔太小对于控制算法没有精度提升,反而造成计算时间的浪费,所以,最终选择等时间间隔的一系列轨迹点作为最终车辆行驶轨迹的效果示意图。在本实施例中,选取时间间隔为50ms,最终获取的效果图参见图24所示。
[0191]
需要说明的是,上述操作仅仅是路段中包括直线和曲线为例。实际上,如果路段中还包括其他类型的路段,也可以参见类似上述方式获取最终车辆行驶轨迹的效果示意图,这里不再过多赘述。
[0192]
通过该方式,即可以事先将转弯速度、向心加速度等参数控制在可控的范围内。然后再基于上述参数在可控范围内的前提下,通过上述算法来实现速度规划,避免出现自动驾驶模式下的制动性能不及人工驾驶模式下的制动性能,所导致的碰撞风险,以及其他可能因为速度规划不合理,出现的车辆行驶过程中的事故的情况发生。
[0193]
本发明实施例提供的全局路径规划方法,从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,然后根据路径信息中包括的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,来确定每一条车道分别对应的第一位置点集数据。根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图。根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息,车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道,根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的全局路径。通过该方式,可以根据地图车道轨迹线为参照,规划出一条较佳的轨迹线。该轨迹线可以贴合车道中央,利用该轨迹线替代人工驾驶录制的行驶线路,以此克服人工驾驶录制的轨迹线不能够很好的贴合车道中央的问题。而且,利用该方法得到的全局路径免去人工规划轨迹路线的过程,减少人工成本和时间成本。并且,所获取的全局路径完全是利用相应的车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系得到,通常来说,不会出现太大的偏差,甚至是没有偏差,因此该方式不仅仅提高了自动驾驶车辆的行驶轨迹的设定效率和设定精度,还大大降低了人工成本和时间成本。
[0194]
而且,相较于现有技术中的人工模式下,为了录制一条较完美的轨迹,需要驾驶员实际驾驶车辆。为了修改某一段的驾驶行为,可能要把整个路段重跑一遍,而重跑的同时,
不能保证其他路段的驾驶行为完全不变的这一情况,本技术中由于是通过算法生成的轨迹,所以可以保证其他路段驾驶行为不变的情况下,针对某一点的驾驶行为微调,逐步使整条轨迹调整为最优。经过实车现场反复验证,确实比人工录制的轨迹点对于规定动作执行的更精确,本技术方式调整参数进而调整局部轨迹点也更为便捷。
[0195]
以上,为本技术所提供的全局路径规划几个方法实施例,下文中则介绍说明本技术所提供的全局路径规划其他实施例,具体参见如下。
[0196]
图25为本发明实施例提供的一种全局路径规划装置,该装置包括:获取单元2501、处理单元2502、构建单元2503。
[0197]
获取单元2501,用于从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,其中,路径信息中包括基准参考线对应的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息;
[0198]
处理单元2502,用于根据第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,确定每一条车道对应的第一位置点集数据,第一位置点集数据中的每一个数据用以指示每一条车道的一个预设位置的第一位置信息;
[0199]
构建单元2503,用于根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图;
[0200]
处理单元2502,还用于根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息、车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道;根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的第一全局路径。
[0201]
可选的,该装置还包括离散单元2504和插值单元2505。
[0202]
离散单元2504,用于对第一全局路径进行离散化处理,获取第一离散轨迹点集。
[0203]
插值单元,用于对第一离散轨迹点集进行插值处理,获取第二全局路径。
[0204]
可选的,处理单元2502,具体用于根据第一离散轨迹点集中的离散轨迹点分别对应的第一位置信息,确定第一全局路径中不同路段的第二路段类型;
[0205]
根据第一全局路径中每一条路段的第二路段类型,确定与每一条路段对应的轨迹点插值方式,以便后续分别利用与每一条路段分别对应的轨迹点插值方式,完成对自身的轨迹点的插值处理,以获取第二全局路径。
[0206]
可选的,处理单元2502,具体用于根据第一路段类型和从路段信息,确定基准参考线的第二位置点集数据;根据第二位置点集数据和宽度信息,确定每一条车道对应的第一位置点集数据。
[0207]
可选的,处理单元2502,具体用于根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,确定第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系;
[0208]
根据第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系,构建道路拓扑结构图,其中,道路拓扑结构图包括多个节点,以及与每个节点对应的节点信息,其中,节点为每一个车道对应的车道起点信息,节点信息包括子节点以
及子节点到节点之间的距离,子节点包括如下中的一种或多种:与车道起点对应的车道终点、与车道相邻的相邻车道起点,或者,与车道起点相同的车道的车道终点。
[0209]
可选的,处理单元2502,具体用于根据第一预设路点位置、第一预设路点位置对应的第二位置信息,以及车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,获取与第一预设路点位置对应的第三位置信息;
[0210]
根据第三位置信息和每一条车道对应的第一位置点集数据,从地图文件中匹配与第一预设路点位置对应的车道。
[0211]
可选的,处理单元2502,具体用于根据第一预设路点位置对应的第三位置信息和每一条车道对应的第一位置点集数据,确定第一预设路点位置与每一条车道的中心线之间的距离;
[0212]
根据第一预设路点位置与每一条车道的中心线之间的距离,从地图文件中选取与第一预设路点位置对应的车道。
[0213]
可选的,处理单元2502,具体用于根据拓扑结构图,确定与每一个预设路点位置对应的车道所对应的节点;
[0214]
分别计算相邻两个节点中的最短路径,以及最短路径对应的车道和车道序列;
[0215]
根据最短路径对应的车道和车道序列,获取第一全局路径。
[0216]
可选的,该装置还包括过滤单元2506,用于对第一离散轨迹点集进行过滤处理,获取经过过滤处理后的第二离散轨迹点集,以便后续在第二离散轨迹点集的基础上进行插值处理,获取第三离散轨迹点集,其中,第三离散轨迹点集构成第二全局路径。
[0217]
可选的,该装置还包括:规划单元2507;
[0218]
获取单元2501,用于获取预配置的速度数组,其中,速度数组的元素数量根据第三离散轨迹点集中离散轨迹点的数量确定,速度数组的各元素的初始值为第三离散轨迹点集中各个离散轨迹点的最大限速;
[0219]
规划单元2507,用于从速度数组中查找速度为预设数值的离散轨迹点;以速度为预设数值的离散轨迹点为界限,对速度数组进行划分,获取多个子速度数组;按照与第二路段类型对应的预设算法,从速度为预设数值的离散轨迹点为起始,识别每一个子速度数组中的速度跳变点,并预测与速度跳变点对应的实际速度数据;利用与速度跳变点对应的实际速度数据,更新每一个速度跳变点的速度数据后,获取与车辆行驶轨迹对应的速度规划数据。
[0220]
可选的,规划单元2507,具体用于从速度为预设数值的离散轨迹点为起始,依次计算每一个子速度数组中每一个元素所对应的实际速度数据;
[0221]
当确定第一子速度数组中的第一元素所对应的实际速度数据与第一元素的预配置的速度数据不一致时,确定第一元素为速度跳变点,其中,第一子速度数组为多个子速度数组中的任一个子速度数组,第一元素为第一子速度数组中的任一个元素。
[0222]
本发明实施例提供的全局路径规划装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
[0223]
本发明实施例提供的一种全局路径规划装置,从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,然后根据路径信息中包括的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,来确定每一条车道分别对应的第一位置点
集数据。根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图。根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息,车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道,根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的全局路径。通过该方式,可以根据地图车道轨迹线为参照,规划出一条较佳的轨迹线。该轨迹线可以贴合车道中央,利用该轨迹线替代人工驾驶录制的行驶线路,以此克服人工驾驶录制的轨迹线不能够很好的贴合车道中央的问题。而且,利用该方法得到的全局路径免去人工规划轨迹路线的过程,减少人工成本和时间成本。并且,所获取的全局路径完全是利用相应的车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系得到,通常来说,不会出现太大的偏差,甚至是没有偏差,因此该方式不仅仅提高了自动驾驶车辆的行驶轨迹的设定效率和设定精度,还大大降低了人工成本和时间成本。
[0224]
而且,相较于现有技术中的人工模式下,为了录制一条较完美的轨迹,需要驾驶员实际驾驶车辆。为了修改某一段的驾驶行为,可能要把整个路段重跑一遍,而重跑的同时,不能保证其他路段的驾驶行为完全不变的这一情况,本技术中由于是通过算法生成的轨迹,所以可以保证其他路段驾驶行为不变的情况下,针对某一点的驾驶行为微调,逐步使整条轨迹调整为最优。经过实车现场反复验证,确实比人工录制的轨迹点对于规定动作执行的更精确,本技术方式调整参数进而调整局部轨迹点也更为便捷。
[0225]
如26所示,本技术实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
[0226]
存储器113,用于存放计算机程序;
[0227]
在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的全局路径规划方法,包括:
[0228]
从预配置的地图文件中获取至少一条道路中每条道路的基准参考线路径信息,其中,路径信息中包括基准参考线对应的第一路段类型、路段信息,以及道路中不同车道对应的宽度信息;
[0229]
根据第一路段类型、路段信息,以及道路中不同车道对应的宽度信息,确定每一条车道对应的第一位置点集数据,第一位置点集数据用以指示每一条车道的预设位置的第一位置信息;
[0230]
根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,构建道路拓扑结构图;
[0231]
根据预先设定的车辆行驶路线中的至少一个预设路点位置、每一个预设路点位置对应的第二位置信息、车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,以及每一条车道对应的第一位置点集数据,从地图文件中匹配与每一个预设路点位置对应的车道;
[0232]
根据拓扑结构图,从与每一个预设路点位置对应的车道中,选取车辆行驶路线的最短路径所对应的车道以及车道序列,生成与车辆行驶路线对应的第一全局路径。
[0233]
可选的,对第一全局路径进行离散化处理,获取第一离散轨迹点集;
[0234]
对第一离散轨迹点集进行插值处理,获取第二全局路径。
[0235]
可选的,根据第一离散轨迹点集中的离散轨迹点分别对应的第一位置信息,确定第一全局路径中不同路段的第二路段类型;
[0236]
根据第一全局路径中每一条路段的第二路段类型,确定与每一条路段对应的轨迹点插值方式,以便后续分别利用与每一条路段分别对应的轨迹点插值方式,完成对自身的轨迹点的插值处理,以获取第二全局路径。
[0237]
可选的,根据第一路段类型和从路段信息,确定基准参考线的第二位置点集数据;根据第二位置点集数据和宽度信息,确定每一条车道对应的第一位置点集数据。
[0238]
可选的,根据至少一条道路中每条道路所包括的车道的预设位置的第一位置信息,确定第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系;
[0239]
根据第一道路中的车道与至少一条道路中除第一道路外的其他道路中的车道之间的连接关系,构建道路拓扑结构图,其中,道路拓扑结构图包括多个节点,以及与每个节点对应的节点信息,其中,节点为每一个车道对应的车道起点信息,节点信息包括子节点以及子节点到节点之间的距离,子节点包括如下中的一种或多种:与车道起点对应的车道终点、与车道相邻的相邻车道起点,或者,与车道起点相同的车道的车道终点。
[0240]
可选的,根据第一预设路点位置、第一预设路点位置对应的第二位置信息,以及车辆行驶路线中的预设路点位置与地图文件对应的位置转换关系,获取与第一预设路点位置对应的第三位置信息;
[0241]
根据第三位置信息和每一条车道对应的第一位置点集数据,从地图文件中匹配与第一预设路点位置对应的车道,其中,第一预设路点位置为至少一个预设路点位置中的任一个预设路点位置。
[0242]
可选的,根据第一预设路点位置对应的第三位置信息和每一条车道对应的第一位置点集数据,确定第一预设路点位置与每一条车道的中心线之间的距离;
[0243]
根据第一预设路点位置与每一条车道的中心线之间的距离,从地图文件中选取与第一预设路点位置对应的车道。
[0244]
可选的,根据拓扑结构图,确定与每一个预设路点位置对应的车道所对应的节点;
[0245]
分别计算相邻两个节点中的最短路径,以及最短路径对应的车道和车道序列;
[0246]
根据最短路径对应的车道和车道序列,获取第一全局路径。
[0247]
可选的,对第一离散轨迹点集进行过滤处理,获取经过过滤处理后的第二离散轨迹点集,以便后续在第二离散轨迹点集的基础上进行插值处理,获取第三离散轨迹点集,其中,第三离散轨迹点集构成第二全局路径。
[0248]
可选的,获取预配置的速度数组,其中,速度数组的元素数量根据第三离散轨迹点集中离散轨迹点的数量确定,速度数组的各元素的初始值为第三离散轨迹点集中各个离散轨迹点的最大限速;
[0249]
从速度数组中查找速度为预设数值的离散轨迹点;
[0250]
以速度为预设数值的离散轨迹点为界限,对速度数组进行划分,获取多个子速度数组;
[0251]
按照与第二路段类型对应的预设算法,从速度为预设数值的离散轨迹点为起始,识别每一个子速度数组中的速度跳变点,并预测与速度跳变点对应的实际速度数据;
[0252]
利用与速度跳变点对应的实际速度数据,更新每一个速度跳变点的速度数据后,获取与车辆行驶轨迹对应的速度规划数据。
[0253]
可选的,从速度为预设数值的离散轨迹点为起始,依次计算每一个子速度数组中每一个元素所对应的实际速度数据;
[0254]
当确定第一子速度数组中的第一元素所对应的实际速度数据与第一元素的预配置的速度数据不一致时,确定第一元素为速度跳变点,其中,第一子速度数组为多个子速度数组中的任一个子速度数组,第一元素为第一子速度数组中的任一个元素。
[0255]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的全局路径规划方法的步骤。
[0256]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0257]
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1