關於Lattice Planner規划算法的若干問答


Apollo問答 | 關於Lattice Planner規划算法的若干問答

 

上周,我們在Apollo開發者交流群內做了關於Lattice Planner的分享。這里,我們將社群分享里開發者提出的問題進行了歸納整理,現場沒有得到回答的問題,大家可以從本期問答內尋找答案。

 

 

1

 

Q

Lattice Planner將規划統一成代價函數,尋找代價最小的。在規划的上層是否還需要決策層?

A

在規划上層的決策僅僅包含了來自交規的停車指令(比如紅綠燈),其余的策略均有下層采樣+cost來完成。

 

 

2

 

Q

Lattice Planner適用於哪些場景?

A

Lattice Planner現在已經在低速園區和高速公路的場景中由產品落地。對於普通城市道路,對於相對復雜的交規處理還有待完善。

 

 

3

 

Q

這個算法適合多彎道復雜的場景下嗎?復雜的停車場等?

A

該算法可以處理多彎道的場景。對於停車場暫不使用,因為這個算法首先需要參考線,而復雜的停車場很難做出一條參考線。

 

 

4

 

Q

Cost里面已經考慮了碰撞,為什么還要做碰撞檢測

A

Cost里面的碰撞僅僅是把有碰撞風險的軌跡的cost值設置的比較高,為了把這樣的軌跡優先級排到比較后,從而使得我們能夠優先考察其他更安全的軌跡,但它並沒有起到刪選軌跡的作用,是一個比較soft的限制。而后面的碰撞檢測是出於安全的考慮,把這條軌跡篩除,這是一個hard的限制。

 

 

5

 

Q

Lattice Planner和EM Planner的區別是?或者說分別應用在什么場景下?

A

Lattice Planner主要基於采樣+選擇,而EM Planner的思路是逐層優化迭代。從規划層面來說,兩者均可用於各種場景。從決策層來看,Lattice的決策相對簡單,適用於相對簡單的場景,如低速園區,高速公路。EM算法對交規的決策做的相對更完善,可以處理相對復雜的普通城市道路。

 

 

6

 

Q

橫向軌跡和縱向軌跡倆倆組合咋樣理解?是橫向的一條軌跡和縱向的所有軌跡組合嗎?

A

兩兩組合指的是每一條橫向軌跡和每一條縱向軌跡的組合。

 

 

7

 

Q

計算量是不是有點大?普通CPU可以嗎?

A

以目前的經驗來看,普通CPU是可以處理的。當然,這個算法可以隨着計算機性能的提升,采樣更多的軌跡,使得我們對解空間的涵蓋更加完備。

 

 

8

 

Q

關於軌跡的生成,Lattice使用的是多項式擬合,一般使用三項還是五項?另外,老師說是在st圖上下陰影處取樣,那是取多少個點?那個末狀態是指超車結束的狀態點嗎?

A

對於橫向軌跡的多項式擬合,因為有有初始狀態的零階導,一階導,二階導,和末狀態的零階導,一階導,二階導,一共六個變量,所以擬合五次多項式。對於縱向軌跡,在停車和跟車狀態,也都是五次多項式,但對於巡航狀態,由於我們不需要確定末狀態的S值,所以只有五個變量,那么用四次多項式就可以了。在ST圖上下取樣,點的數目可以由開發者自行決定,這個沒有限制。末狀態指的就是超車結束的狀態點。

 

 

9

 

Q

只有起始狀態和末狀態怎么進行橫向和縱向的擬合?

A

構建多項式,使得多項式在起始時刻和末時刻的各階導數和起始狀態末狀態吻合。

 

 

10

 

Q

Lattice Planner是路徑規划的算法,但也涵蓋了部分行為規划的處理內容?

A

是的。橫向軌跡主要針對路徑,縱向軌跡主要針對速度、加速度等行為。

 

 

11

 

Q

多項式擬合,是什么多項式?擬合后如何保證滿足無人車的運動學和動力學要求?

A

多項式指的就是普通的多項式,擬合時已經通過高階導數考慮了動力學要求。

 

 

12

 

Q

Apollo的代碼中出現了S-L坐標系和frenet坐標系的名稱,這兩個是否是指同一個坐標系?

A

這兩個指的是同一個坐標系。

 

 

13

 

Q

高精度地圖的輸出格式是怎樣的?包括用於導航的矢量圖、用於定位的點雲圖以及全局的路徑。對於高精度地圖這一塊希望能夠有詳細的介紹。

A

可以參考 https://github.com/ApolloAuto/apollo/blob/master/modules/map/data/README.md 如 README 所示,xml, bin, txt, lb1 都是不同的文件格式,適配不同的讀取器,內容是一致的。

 

 

14

 

Q

多項式擬合具體方法是什么?如何避免擬合的曲線超出路面范圍?

A

擬合的具體方法是求解多項式系數的線性方程組。開發者可以通過添加在路檢測的檢查validity check來避免曲線超出路面范圍。

 

 

15

 

Q

換道場景,是要提前獲取目標車道和當前行駛車道的參考線嗎?

A

是的,這個信息在Apollo里都是有的。

 

 

16

 

Q

Frenet坐標系下面是一個車道一個中心線?還是一條線一個中心線?這兩的s值的0點是從什么地方開始算的?

A

一個車道一個中心線。S值的0點是從參考線的起點開始。參考線的起點會隨着主車的位置做實時動態調整,通常是在主車車身后30米左右的位置。

 

 

17

 

Q

在障礙車輛較多的環境下可能需要頻繁的規划路徑,由於cost值有多個評價組成,有可能多次出現最佳軌跡的橫向方向完全相反的情況,可能造成車輛左右微微擺動,如何解決這種情況?

A

在這種情況下,建議額外補充一個和上一個計算周期相似性的cost。

 

 

18

 

Q

對於單向雙車道場景,規划的時候是只規划行駛車道還是規划雙車道?

A

如果有換道需求的話,會同時規划兩條車道。

 

 

 

 

19

 

Q

初始狀態本車的theta是車頭朝向還是指車速朝向, 初始狀態曲率怎么計算,用方向盤角度推?

A

初始狀態的theta是車頭方向。曲率是基於IMU的信息計算出來的。

 

 

20

 

Q

在運行Apollo demo時 ,在只有軟件模擬沒有硬件的情況,能不能測試和調試規划算法,能的話怎么做?

A

Apollo有一個開放的仿真平台,azure.apollo.auto,開發者可以在仿真平台中調試規划算法。

 

 

21

 

Q

多項式具體形式如何?擬合擬合后如何保證滿足無人車的運動學和動力學要求?

A

多項式就是普通的冪次多項式。擬合出來以后,可以通過限制檢測來篩選出符合無人車動力學模型的軌跡。

 

 

22

 

Q

Lattice算法的輸入也是referenceLine吧,這個是通過routing模塊給出的route segment生成的,和EM Planner一樣,理解正確么?

A

正確。

 

 

 

23

 

Q

有碰撞風險的軌跡為什么不在cost環節或者之前直接刪掉?

A

 Cost環節僅僅是一個soft的排序,並不做刪除的工作。

 

 

2724

 

Q

如果如果在過彎道的時候,reference line上的end point有噪音,在不停都抖動,如何在這種情況下規划一條穩定的軌跡,謝謝。

A

 這就需要我們不斷優化reference line的平滑算法。

 

 

 

25

 

Q

現在Apollo的代碼中設計了三個末狀態橫向偏移量,-0.5,0.0和0.5,以及四個到達這些橫向偏移量的縱向位移,分別為10,20,40,80。能解釋下為什么這樣定意思這些常量?

A

這些常量是根據平時路測的經驗得到的。開發者可以根據自己的產品和場景來調整這些常量。

 

 

26

 

Q

只有起始狀態和末狀態怎么進行橫向和縱向的擬合?

A

通過求解多項式的系數是的起始點和終止點的各階導數吻合。

 

 

27

 

Q

關於軌跡的生成,Lattice使用的是多項式擬合,一般使用三項還是五項?另外,老師說是在st圖上下陰影處取樣,那是取多少個點?那個末狀態是指超車結束的狀態點嗎?

A

一般是5階多項式,在cruise狀態下,用4階多項式。在st圖中的取點個數沒有規定,開發者可以根據需要來調試。

 

 

28

 

Q

       

圖中確定了縱向擬合曲線之后,如何確定橫向的擬合曲線?

A

橫向軌跡在第18頁ppt中有介紹。

 

 

 

29

 

Q

軌跡采樣時縱向位移選取10 20 40 80 ,這是經驗值嗎?是不是需要根據車速進行調整?

A

這是經驗值。我們也正在改進,使得它能根據車速調整。

 

 

30

 

Q

規划軌跡中的速度如何設定,是否根據起始點速度、終點速度、以及軌跡距離,計算出一個平穩加速度,然后平穩地加速過去?但是我看PPT中跟車的場景,到達reference speed的過程加速度似乎並非為一個常量。

A

軌跡的平穩性可以通過cost來篩選。所以就要求我們在sample的過程中涵蓋面盡可能的廣泛。

 

 

31

 

Q

橫向運動是由縱向運動誘發的,該如何理解?

A

普通的車子的輪胎不會轉到水平位置來做單純的橫向運動。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM