無人車路徑規劃算法---(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
  • 此類算法常常結合自身約束條件,周圍環境約束條件,目標函數等將問題轉換爲二次規劃的問題進行求解

下一章將介紹路徑規劃常用地圖

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