A. apollo 參考線平滑
內容來自:
1. 解析網路Apollo之參考線與軌跡
2. 參考線提供器: ReferenceLineProvider
3. Apollo決策規劃的基礎:平滑的參考線
4. Matlab路徑平滑實現
參考線提供器主要完成的工作是計算車輛在規劃路徑上的短期可行路徑。
參考線平滑器使用了二次規劃(Quadratic programming )和樣條插值(Spline interpolation)演算法。
執行QPSplinereferencelinesmooth,主要步驟:
1.路徑點采樣;
2.knots分段/二次規劃平滑;
路徑點采樣
簡單,anchor point是對原始Path進行采樣,采樣間隔為smoother_config_.max_constraint_interval(),默認5m一個點。knots的采樣其實也是相似的,采樣間隔為config_.qp_spline().max_spline_length(),默認25m:
最後得到的knots節點有num_spline+1個。得到了所有的knots,也就意味著可到了所有的段,很明顯這里就需要擬合num_spline個段,每個段有x和y兩個多項式函數。
處理
還需要對anchor_point的自變數s做處理,本來s是從0到length_遞增。就是將自變數s從[0,length_]區間按比例映射到[0,num_spline]區間,這樣每個段內anchor point的s都屬於[a,a+1]內,如果在減去knots[a]那麼所有自變數的取值范圍就是[0,1]。同時還需要對應變數(x,y)做處理,處理方法:可以看到x和y都需要減去Path第一個點的世界坐標系坐標,說白了2n個(2*num_spline)函數的坐標原點是Path的第一個點。
約束條件
開源軟體qpOASES 求解。
平滑參考線采樣
參考點航向計算