Routing模块之A*搜索算法
Routing模块之A*搜索算法 Routing模块的结果是Planning模块生成参考线的基础,也就是通常所说的全局路径规划,Routing模块中除了对地图的抽象处理为可供搜索的topo地图,以及通过KDtree生成黑名单地图外核心算法是通过A* 算法生成全局路径,本文这里主要介绍Routing模块中如何同过A*算法在topo地图中搜索全局通路——全局路径。 1.逻辑框架 Routing模块的功能是从地图中搜索一条从起点–途经点–终点的全局路径,要完成这个功能,需要解决几个问题:1) 地图信息较多,看起来是连续的,如何进行抽象为可搜索的离散地图; 2) A*算法在抽象的地图中是如何搜索的; 3) 搜索的结果是如何使用的; 这里我们首先了解一下 routing模块大概的逻辑 : 通过上图可知routing实际上先将高精度地图转换为topo地图,topo地图是由一系列的节点和边组成,在生成节点和边的同时会对每个节点和边赋予一定的cost,通常cost与车道的长度、转弯等属性有关。然后通过A*算法对topo图进行搜索,最后对搜索的结果进行封装。 2.Topo地图 在高精度地图中采集的map信息包含了road,信号灯,车道线,物体,信号标识等很多信息,在路径搜索的过程中不能直接使用,而且主要关注的是lane及lane之间的关系,因此,routing模块主要是先将高精度地图中采集的base