1.算法簡介
Hybrid A*算法是一種圖搜索算法,改進於A*算法。與普通的A*算法區別在於,Hybrid A*規划的路徑考慮了車輛的運動學約束,即滿足了車輛的最大曲率約束。
由於A*具有啟發式,可以實現快速的結點搜索。核心在於結點權重如何確定(路徑代價的設置)。
Hybrid A*算法的啟發式包括兩種: non-holonomic without-obstacles和holonomic with obstacles。
前者考慮了車輛的運動約束,但不考慮障礙物,一般使用RS曲線,Dubins曲線;后者將車輛當成網格地圖上面的點,但考慮了障礙物。
圖1 基於Hybrid A*的路徑規划算法流程
2.Hybrid A*規划路徑的組成
Hybrid A*規划的路徑由兩部分組成,第一部分是考慮了車輛運動學的探索結點連接而成的路徑;第二部分是使用ReedSheeps曲線連接中間點位姿與目標位姿的路徑。
1)Hybrid A*的結點拓展
Hybrid A*的搜索空間不僅考慮了x,y方向的拓展,還考慮了Θ方向的探索。相比普通A*的探索空間,Hybrid A*的結點拓展是三維的,因此需要更多的計算量。
圖3 Hyrbrid A*的結點擴展:往前往后探索結點
圖4 普通A*和Hybrid A* 結點拓展的區別
考慮車輛運動學約束,對地圖網格化,生成結點,起始位姿到結點的路徑為path1;
2)Analytical Expansion
Hyrbrid A*偶爾會嘗試使用RS曲線或Dubins曲線嘗試連接當前的結點與目標結點。這一方面可以精確地連接到目標位姿,另一方向可提高搜索的速度。如果得到的曲線與環境障礙物無碰撞,可以提取結束搜索。此時,由結點探索得到的路徑為path1,RS曲線或Dubins曲線為path2,那么規划得到的路徑為path={path1,path2}。
這一操作在接近目標位姿或者非常稀疏的環境中比較有作用。如果每次嘗試連接都需要做碰撞檢測,會極大增加計算量。
3.Hybrid A*的啟發式
Hybrid A*的有兩個啟發式,一般會取二者的最大值作為約束。
其中約束啟發式結合了車輛的運動學約束,忽略了環境。一般使用RS曲線或Dubins曲線的長度。這種啟發式約束考慮了當前航向角以及轉彎半徑,可以確保車輛以正確的航向接近目標位姿。當車輛越來越接近目標時,這一約束會發揮較重要的作用。
無約束啟發式則忽略了車輛的運動學特性,只考慮了障礙物。一般使用普通A*搜索得到的路徑(當前結點為目標點,HA*搜索的目標結點為起始結點),並使用歐幾里得距離表示。這使得 A* 搜索的封閉列表存儲到目標的所有最短距離 g(x),因此可以用作查找表,而不是在 HA* 進行時啟動新的搜索。這個考慮了障礙物的啟發式可以引導車輛繞過障礙物或U型彎道。