无人车路径规划算法---(1)算法体系综述

版权声明:本文为博主原创文章,原创不易, 转载请联系博主。

写此系列博客的目的,是希望将无人车路径规划算法成体系的总结展述出来,同时分享一些常用的算法库,源代码,以及与规划层联系紧密的感知层,定位层,控制层的基础知识,可能编写跨越周期较长,自身水平有限,若有不到之处,希望得到各位的批评指正。

通用规划方法(Old-School Pipeline)是指:

  • 首先在前端利用图搜索等方法搜索出一条初始无碰撞的安全路径(低维,离散空间)
  • 再在后端对已生成路径进行优化以获得一条可执行的优化轨迹(高维,连续空间)
  • Mission -> Path Finding -> Trajectory Optimization -> Plan…

Path Finding 模块(Front-End)

主要通过构建地图进行搜索的方法或者基于采样的方法来实现前端搜索的目的:

  • 在栅格图中(典型样例如costmap)进行图搜索,最早的是利用BFS(深度优先搜索方法),DFS(深度优先搜索方法)在建立好的图或者树中进行搜索,后来发展为经典的图搜索方法譬如利用Dijkstra,A*,D*,JPS等方法在栅格中进行搜索
  • 利用PRM方法进行图构建(Learning Phase),再利用Dijkstra或者A*方法进行搜索(Query Phase)
  • 利用RRT及其衍生的算法(RRT或者informed RRT)进行边建树采样边搜索的方法

但是此类的方法存在的问题是:

  • 如果Path Finding模块仅仅搜索简单的路径信息,把所有的轨迹优化的工作都放至路径优化模块的话,会极大的增加路径优化模块的工作量以及工作难度(Coarse to Fine原则)
  • 轨迹往往只能在局部进行优化,若初始搜索路径的方向与当前车辆的运动方向相反,则会增加车辆的轨迹优化难度
  • 规划出的路径若不考虑车辆运动学等约束,则常常对非完整系统没有意义,譬如无人车是无法侧向平移的,若不考虑运动学约束,常常会规划出需要侧向平移的轨迹

因此为了搜索出更加合理的前端规划路径,业界提出了结合车辆运动学约束的前端轨迹优化方法,其中典型的如State Lattice Search算法 [1] , 斯坦福2010年提出的Hybrid Astar算法 [2]

[1]:Optimal Rough Terrain Trajectory Generation for Wheeled Mobile Robots, Thomas M. Howard Alonzo Kelly
[2]:Practical Search Techniques in Path Planning for Autonomous Driving , Dmitri Dolgov, Sebastian Thrun


Trajectory Optimization模块(Back-End)

通常由前端规划方法得到的路径在平滑性,安全性等要素上仍不能满足无人车行驶的要求,因此需要对生成的路径进行进一步的优化。
常用的优化方法主要是基于最优化原理或者说凸优化方法的相关优化算法:

  • minimum jerk
  • minimum snap
  • 此类算法常常结合自身约束条件,周围环境约束条件,目标函数等将问题转换为二次规划的问题进行求解

下一章将介绍路径规划常用地图

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章