自動駕駛規劃方法綜述
最近看到一篇非常好的關于自動駕駛規劃方法的綜述(A Review of Motion Planning Techniques for Automated Vehicles),寫的非常好,總結了近幾十年來總動駕駛規劃的發展之路,引用了許多經典的文章。覺得可能對做規劃的小伙伴會有幫助,所以分享出來。
這篇文章的一個觀點非常好,他把自動駕駛的運動規劃分成四大類:graph search 圖搜索,采樣,插值和數值優化。下面展開論述。
A. Graph search based planners
這種方法把狀態空間表達成網格或者lattice的形式,然后在這些狀態里面找到一個可達的path。這類方法主要有A* D* Dijkstra algorithm 算法。值得一提的還有state lattice算法,雖然這個圖看起來和Apollo里面的lattice不一樣,但是這個是爸爸,在這篇文章[1]里面提出了時空lattice,這個也就是后來Apollo算法里面用的。
B. Sampling based planners
這個主要介紹了RRT算法,嗯非常經典好用,如果有感興趣的可以單獨開講。
C. Interpolating Curve Planners
這里介紹了幾種曲線生成的方法,主要有羊角螺旋線(Clothoid Curves)多項式曲線(Polynomial Curves) 貝塞爾曲線(Be ́zier Curves)
分別介紹了這幾類樣條曲線在路徑規劃的優化過程中作用。
clothoid curves 是個比較神奇的曲線,天生適合車輛規劃,因為它的曲率是線性變化的,又因為車輛運行軌跡的曲率和方向盤基本上成正比,也就是說這種線型出來的結果方向盤會非常順滑。
貝塞爾曲線 計算簡單 速度快。
多項式擬合也是一個比較好的方法。
D. Numerical Optimization:
數值優化的方法講的比較粗略,基本上只是講了下勢能場法的應用。
在這一段的結束,作者給出了一個大的表格,比較不同方法的優劣,感覺這個比較強大,不是大佬很難總結的如此精辟。
各種規劃算法的優劣對比
下面這幅圖,作者闡述了不同項目/公司的motion planning的技術方案,從下面這個圖可以看出來,各家公司很少會依賴單一的規劃方法進行規劃,而是根據使用場景,結合兩個甚至更多種的規劃方法來進行規劃。比如斯坦福大學和合作機構采用了AL算法,基于優化的算法甚至用羊角螺旋線進行插值。
大多數企業采用了基于樣條曲線,羊角螺旋線的方法,主要是考慮可以獲取細致的道路信息。采用search 方法的主要原因是這樣的速度快,在復雜場景下而且可以搜索到比較好的曲線。目前規劃存在的挑戰在于實時性,由于越來越多的障礙物,感知留給規劃的時間窗口越來越小。下一步的motion planning的研究,應該考慮感知的不確定性以及控制的約束。這樣會更加安全,舒適。