自駕車路徑規劃系列(1)-Lattice Planner之笛卡爾座標系和Frenet座標系的關係

Tommy Huang
Mar 14, 2024

--

Lattice Planner中文直接翻譯叫做格子規劃器,顧名思義就是把路面分成格子狀的感覺,然後在格子上進行規劃,因為不需要特別處理紅綠燈或是Stop Sign這類型交通規則,所以比較適合在較為單純的場景下進行軌跡規劃,例如高速公路或是快速道路上進行巡航、超車、變換車道等。

灰色格子就是規劃出來的軌跡

Lattice Planner算法的基本流程如下所示:

reference: https://blog.csdn.net/qq_41871826/article/details/131264069

笛卡爾座標系和Frenet座標系的關係

笛卡爾座標系(Cartesian coordinate system)

笛卡爾座標系聽起來文謅謅,其實就是一般數學中我們常看到的直角座標系(也就是XY軸是正交的機於原點構成的正交座標系)

笛卡爾座標系(直角座標系)

Frenet座標系

Frenet座標系會用到Frenet公式的概念,Frenet公式就是在描述曲線上任意點的切線法線和副法線對於弧長的微分,我們會有另一篇文章特別介紹Frenet公式。

在車輛路徑規劃,通常使用Frenet座標系來進行規劃,原因是在真實開車實際上大部分都不是直線,路上的路大多都有一點曲度(彎路),所以在彎曲的路上要直接規劃相對難一些,所以會利用Frenet座標系將原始笛卡爾座標系進行轉換,後續會看到兩者比較直接的關係。

Frenet座標系滿有趣的,是透過我們將介紹的轉換方式,將傳統的笛卡爾座標系進行轉換,Frenet座標是以車輛軌跡當作座標系的一個軸(s),橫向位移當作另一個軸(d),所以Frenet座標系在和笛卡爾座標系的差異如下圖。

在Frenet座標系下,車輛的座標可以分成
(1) 運動中心線/規劃軌跡線(圖上的道路參考線): s軸 (縱向位移,Longitudinal)
(2) 基於車輛軌跡的法線(垂直於道路中心線): d軸 (橫向位移,Lateral)

假設我們的世界座標就是笛卡爾座標系(XY平面),這時候我們車道的路徑是上圖的紅線(車道參考線),對於Frenet座標系就是紅色那兩條(sd)。目前看到的sd還不是正交軸,所以大家可能比較沒感覺,所以我另外畫了一張圖,

笛卡爾座標系和Frenet座標系的關係。

上圖顯示同一個路段在在笛卡爾座標系和Frenet座標系下的描述的結果,所以Frenet座標系會把笛卡爾座標系的曲線彎道進行非線性轉換到一個sd的直角坐標系(畫回原圖就是左邊那張圖的彎曲S和d)。

Frenet座標系比起笛卡爾座標系在處理上容易理解和處理,因為此道路(彎曲)狀況在笛卡爾座標系要用二次方程式或是三次方程式才能處理(下圖左),例如

在笛卡爾座標系是三次式才能描述車輛軌跡(上圖左),如果我們要在三次式來規劃路徑複雜度會很高,因此Frenet提供一個非線性投影,將車輛運動描述的問題簡化降維到線性可描述的空間(上圖右Frenet坐標系)。

這樣大家可能還是有疑慮為什麼原本曲線可以變成直線,將笛卡爾座標的車輛軌跡變成直線的是Frenet座標系轉換的重點參考線(S),我們是依據參考線(reference line)進行轉換而非車輛軌跡,車輛本身是可以偏離參考線的,下圖就是一個範例,我們假設車輛行駛的位置為下圖藍車,所以將藍車從笛卡爾座標轉換到Frenet座標

五個車子在笛卡爾座標的位置分別是

參考下圖左

五個車子在Frenet座標的位置分別是

參考下圖右

重點是這句話

Frenet提供一個非線性投影,將車輛運動描述的問題簡化降維到線性可描述的空間

→ 白話一點,將規劃出來的車輛軌跡線(參考線,reference line),變成一個直線,我們在做的事情是Frenet座標上將車輛盡量控制在這條直線(參考線S)上

一般人會覺得那我在原始座標系(笛卡爾座標系)(在車輛控制應該是以車輛為中心的世界座標)上去控制就好了,也比較直覺阿,幹嘛這麼麻煩轉過去的好處是? 剛剛其實都一直在提,就是將

曲線的空間轉換至線性空間

這句話很高深,如果在做機器學習的人都知道任何演算法都是將很複雜可能是非線性的問題轉換到簡單的線性空間來處理,包含深度學習,中間的大量運算的特徵萃取都是要將問題簡化(投影)到高維度的線性空間。

我們將上面的軌跡問題加上一個障礙物(下圖黑色方塊)來描述,如果我們要在Top-view原始座標(笛卡爾座標系)來規劃避開障礙物的問題,原始規劃軌跡(參考線)已經是三次方程式,我們要在上面規劃出藍色的軌跡避開障礙物,這難度應該很高吧,但當轉換到Frenet座標如果要這類的問題就會變得簡單,我們只要規劃如何讓車維持在S的中心線上,後續在介紹軌跡橫向縱向規劃會有更詳細介紹。
這邊如果有注意到圖,我已經將箭頭從Frenet座標指向笛卡爾座標,原因是我們在Frenet座標重新規劃的軌跡(藍色),轉回笛卡爾座標就會是左邊的笛卡爾的藍色軌跡,因為視覺化在看車輛軌跡控制都還是在看笛卡爾座標。

小結論:

相比於笛卡爾座標,Frenet簡單化了我們要規劃的問題,比如我們要進行車輛在高速公路的控制我們只需要知道車道中心線來規劃車道的參考線,不論車子在彎道或是直線都可以基於參考線位置的表示進行簡易的橫向距離和縱向距離來描述,同時在兩個方向(縱向橫向)的速度資訊(速度、加速度和加加速度)計算也相對容易一些。

--

--

Tommy Huang

怕老了忘記這些吃飯的知識,開始寫文章記錄機器/深度學習相關內容。Medium現在有打賞功能(每篇文章最後面都有連結),如果覺得寫的文章不錯,也可以Donate給個Tipping吧。黃志勝 Chih-Sheng Huang (Tommy), mail: chih.sheng.huang821@gmail.com