Apollo自動駕駛教程學習筆記-Apollo規劃技術詳解6-2

視頻鏈接:http://bit.baidu.com/Course/detail/id/390.html
講師:樊昊陽 百度Apollo研發工程師

說明:因個人工作方向變更的原因,該系列學習筆記不再更新,如有影響還請抱歉

無人駕駛中的路徑規劃方法

這節課內容也很豐富,老師講的也很好,自己數學基礎不紮實,所以聽得半懂不懂的,不懂就多記筆記,下來再學習。我感覺這幾節課學下來,都可以寫一篇綜述了,內容很豐富很全面,幸好自己之前自學過路徑規劃算法,所以還不算完全聽不懂。總之,數學基礎要紮實,什麼牛頓法、凸優化、插值啥的都出來了。

規劃方法綜述

傳統方法

  • RRT
  • Lattic
  • Configuration Space

現代方法

  • Darpa Challenge Approaches
  • Lattic in Frenet Frame
  • Spiral, Polynomial and Splines
  • Functional Optimization

數據驅動方法

之後講

引出各種規劃問題

這塊概念太多,沒記很清楚,反正是說規劃可能的各種問題,比如車不是質點之類的問題、環境是動態的問題、車受到局部約束的問題(運動限制,要求連續性)。
舉了一個例子說明連續性問題:Roadmap方法下,會找出一個最短路徑,但是這個最短路徑不是車輛可以行進的路線,因爲曲率不連續。

各種規劃算法

PRM

很傳統的辦法,就是在規劃空間中隨機撒一些點,然後連接這些點,形成一個沒有閉環的圖,然後解這個圖,尋找兩點之間最優路徑。
傳統方法落實到實際還是有很多問題的,比如不平滑、比如是否有障礙物、比如必須是全局環境下等等。但是之後很多算法都是在這個基礎上研究的。

RRT

RRT可以在局部環境下實現PRM的算法,也就是每個局部環境下執行PRM,然後在相鄰兩個局部環境中,連接最近的點,對於距離太遠的兩個點,重新採樣。
但RRT依然沒解決連續性的問題,改進辦法是用曲線連接,但曲線連接依然會不平滑,軌跡太隨意,不適合用在車上,反正是還有問題。

lattice類型方法

lattice就是打網格,所有和打網格有關係的算法都是lattice方法的改進。最原始的lattice方法就是在網格中計算最優點,但這種計算是指數複雜度的,計算時間長,改進方法是先撒點,再採樣,可以簡化計算,這樣可以把過去重複計算的路徑重複利用,也就是動態規劃算法。
但是撒點依然還不是平滑的軌跡。
改進辦法是Frenet Frame,在移動方向和垂直方向上建立座標系(SL座標系)。

3維問題

另外一個問題是,除了空間連續性,還需要考慮時間連續性,也就是車的速度、加速度的連續,這樣就增加了一個優化的維度,變成3維問題。動態環境下動態規劃不好用,尤其在時間維度上。三維問題在拓撲問題上不好解。

Path Speed iterative方法

將三維的x,y,t轉化爲先求x,y的問題,再求s(x,y),t的問題,經過多次迭代反覆求解,降低三維優化問題的難度。

Quadratic Programming方法

這種方法是二次規劃法,可以迅速找到最優解,但是要求優化環境是凸的。而無人車的優化環境不是凸的,所以這又涉及到如何把非凸問題轉換爲凸問題。

Splines

也就是平滑算法,先求解一個不連續的軌跡,再針對這個軌跡做平滑,問題是平滑的效果抖動嚴重,可以用高階平滑處理,但是高階平滑又會過處理,也就是平滑曲線不再跟隨優化曲線,可能會撞到障礙物。
還有Bsplines方法,反正這塊挺多內容,也各有各的一些問題,插值法可能會出現龍格現象。

總結

  1. Lattice Search在結構化道路上是一種簡單而靈活的方法,所以有很多改進算法的衍生。
  2. Search在3D Lattice中計算複雜度高,路徑速度迭代的Search和直接Search各有優缺點。
  3. Dynamic Programming方法依賴於狀態維度,3維不好解了。
  4. Quadratic Programming方法是一個二次優化能解的問題,而且收斂快,但是需要是凸優化環境。
  5. Splines可以平滑離散軌跡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章