Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
原文鏈接:進階課程?丨Apollo 規劃技術詳解——Motion Planning Environment?
自動駕駛汽車核心技術包括環境感知、行為決策、運動規劃與控制等方面。其中,行為決策系統、運動規劃與控制系統作為無人駕駛汽車的“大腦”,決定了其在不同交通駕駛場景中行駛的合理性與安全性。
運動規劃根據環境的變化在算法和處理方法上有很大的不同。
上周阿波君為大家詳細介紹了「進階課程??Apollo 規劃技術詳解——Motion Planning with Environment」。其中詳細講解了如何建立?Vehicle Model,另外還介紹了曲線坐標系 SL 、SL 坐標系到 XY 坐標系的投影、XY 坐標系到?SL 坐標系的投影等。
本周阿波君將繼續與大家分享?Apollo 規劃技術詳解——Motion Planning Environment的相關課程。下面,我們一起進入進階課程第24期。
目錄
1.多項式
2.Bezier Spline
在自動駕駛中,我們將環境抽象成 SL 坐標系,在此坐標系下的曲線光滑度是有要求的。首先,曲線本身要平滑。其次,其曲率也要滿足平滑的特性。因此需要對軌跡線進行平滑處理。那么能不能先生成一條線,然后再進行平滑,能不能對 Curvature 進行一個后期的平滑?不可以。因為 XY 坐標本身與 Curvature 是有聯系的,不能單獨平滑曲率,也不能單獨平滑 X 或者 Y,今天的課程將為大家介紹平滑的方法。
1.多項式
首先,可以在軌跡上以等距離的方式隨機選擇一些點,然后用高階多項插值的方式來近似表示軌跡,對多項式進行優化。但是高階多項式不能用于平滑,因為高階的多項式抖動太大,沒有辦法控制幅度,這就是常說的龍格現象,如下圖所示。
??????????????????????????????????????????????????????????????????????????????? ????????????????????????龍格現象
2.Bezier Spline
Bezier Spline 曲線是由一系列控制點定義的,例如到,其中n代表曲線的階數。如下圖所示,分別給1階、2階、3階Bezier Spline曲線的表示形式。通過對它們做平滑,得到平滑的曲線,例如二階平滑保證曲線的曲率平滑。但是這種方法的缺點是,除了起始點和終點,其它控制點不能保證會被得到的曲線經過。
?????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ?????????????????n 階?Bezier Spline 曲線表達形式
生成一條光滑的曲線,涉及到兩方面,一方面是目標,另一方面是工具。怎么定義平滑呢?最簡單的方法就是最短路徑,但是路徑最短還不能保證平滑性,因此會對其不同階導數進行 Minimize 求解,保證導數空間的連續,這就是 Smoothing Spline 最初的思想。那么,問題的目標就明確了,定義一個函數,能夠最小化它的類似三階導平滑性。
????????????????????????????????????????????????????????????????????????????????????????????????一維平滑度定義
Smoothing Spline?具有一些特殊的性質,在給定邊界的條件下,它是一個多項式,可以找到最優解。但是它的 Boundary Constraint 只考慮了起點和終點,如果中間有障礙物就不是最優解。這種情況下可以使用 Piecewise Polynomial(分段多項式)來處理。
一個 Piecewise Polynomial 是一維的函數,描述二維曲線是不夠的,這時候就有一個 Spline 2D,假設我們把曲線分成 N 截,每節曲線段它的 X 坐標是一個 Polynomial ,Y 坐標也是一個 Polynomial 。如下圖所示,用 5 階多項式來表示 X 和Y,稱之為?Quintic?Spline(五次樣條),每一節都是這樣的函數。這種表示有一個很好的特性,就是目標函數具有旋轉不變性。怎么讓曲線足夠平滑?我們讓它在 X 坐標上的變化率,也就是三階導的平方是最小的,Y 上的變化率三階導也是最小的,代價函數就是這兩個變化率的和。代價函數的求解就是一個二次規劃問題,我把這種 Loss Function 定義成這種形式是因為平方的積分能夠給計算帶來便利。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????二維樣條
前面說的是用一節一節的線段來保證曲線是光滑的,在線段內部用一個二維的 Polynomial 表示,在內部是 N 階可導的,但是如何保證節點處是平滑的呢?這個叫做端點約束條件,需要保證 X 和 Y 方向的倒數是相等的,一般要求到三階導都是相等的,包括它的 X,Y 點的值也完全相等,此時就能保證三階導連續。
還有一種方式叫做螺旋曲線,它通過一個極坐標形式定義,比如說沿著一條曲線,如果一個點 S 的曲率是知道的,假設它的原點在 (0,0)的位置,可以唯一定義出一條經過 S 的曲線,也就是 Spiral Path 。那么可以讓 Spiral Path 滿足起點、終點約束條件生成一條螺旋曲線。
????????????????????????????????????????????????????????????????????????????????????????????????????????螺旋曲線???
Spiral?Path 和?Spline?2D 有什么區別呢?任何的曲線在足夠密的時候都可以用Piecewise?Spiral?path?或者是?Piecewise?Polynomial?表示。但是它們的出發點不一樣,Polynomial 計算很快很簡單,Spline 2D 是一個凸空間里面生成一個 Spline 曲線。Spiral Path 是從 Configuration Space 出發。理論上來講,螺旋曲線生成的線是要比 Spline 更好處理,對一些極端情況處理更好。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROG幻16翻转本明天正式开卖:4096
- 下一篇: Apollo自动驾驶入门课程第③讲 —