在实践中,一种有效的无人车定位方法是改变原来SLAM中的扫描匹配类算法,具体来说,我们不再在定位的同时制图,而是事先使用传感器如激光雷达对区域构建点云地图,通过程序和人工的处理将一部分“语义”添加到地图中(例如车道线的具体标注,路网,红绿灯的位置,当前路段的交通规则等等),这个包含了语义的地图就是我们无人驾驶车的高精度地图(HD Map)。

在实际定位的时候,使用当前激光雷达的扫描和事先构建的高精度地图进行点云匹配,确定我们的无人车在地图中的具体位置,这类方法被统称为扫描匹配方法(Scan Matching),扫描匹配方法最常见的是迭代最近点法(Iterative Closest Point ,ICP),该方法基于当前扫描和目标扫描的距离度量来完成点云配准。

除此以外,正态分布变换(Normal Distributions Transform,NDT)也是进行点云配准的常用方法,它基于点云特征直方图来实现配准。基于点云配准的定位方法也能实现10厘米以内的定位精度。

虽然点云配准能够给出无人车相对于地图的全局定位,但是这类方法过于依赖事先构建的高精度地图,并且在开放的路段下仍然需要配合GPS定位使用,在场景相对单一的路段(如高速公路),使用GPS加点云匹配的方法相对来说成本过高。

3.规划

任务规划

无人驾驶规划系统的分层结构设计源于2007年举办的DAPRA城市挑战赛,在比赛中多数参赛队都将无人车的规划模块分为三层设计:任务规划,行为规划和动作规划,其中,任务规划通常也被称为路径规划或者路由规划(Route Planning),其负责相对顶层的路径规划,例如起点到终点的路径选择。

我们可以把我们当前的道路系统处理成有向网络图(Directed Graph Network),这个有向网络图能够表示道路和道路之间的连接情况,通行规则,道路的路宽等各种信息,其本质上就是我们前面的定位小节中提到的高精度地图的“语义”部分,这个有向网络图被称为路网图(Route Network Graph),如下图所示:

无人驾驶汽车的功能_无人驾驶汽车构造

这样的路网图中的每一个有向边都是带权重的,那么,无人车的路径规划问题,就变成了在路网图中,为了让车辆达到某个目标(通常来说是从A地到B地),基于某种方法选取最优(即损失最小)的路径的过程,那么问题就变成了一个有向图搜索问题,传统的算法如迪科斯彻算法(Dijkstra’s Algorithm)和A*算法(A* Algorithm)主要用于计算离散图的最优路径搜索,被用于搜索路网图中损失最小的路径。