無人駕駛frenet座標系解釋

待整理

本文從畢設中整理,尚未整理完成。

Frenet座標系介紹

Frenet–Serret公式用於描述粒子在三維歐氏空間內沿一條連續可微曲線的運動學特徵

三維曲線表達
T\vec T稱爲切向量(Tangent),表示沿曲線運動方向的單位向量;N\vec N稱爲法向量(Normal),表示當前曲線運動平面內垂直於的單位向量;B\vec B稱爲當前運動平面的副法向量(Binormal),表示同時垂直於和的單位向量。令r(t)r(t)爲這個歐式空間中隨着時間tt改變的非退化曲線,可令s(t)s(t)爲這條非退化曲線在時間t的弧長。

退化曲線即:兩條相交直線,當一個平面過圓錐的頂點截圓錐面得到曲線,其方程爲(A1x+B1y+C1) *(A2x+B2y+C2) = 0
形似二次曲線,實際爲兩條直線

s(t)=0tγ(σ)dσs(t) = \int_0^t ||\gamma'(\sigma)|| d\sigma

tt還可以表示爲ss的函數,也即是存在t(s)t(s),從而有r(s)=r(t(s))\vec r(s)=\vec r(t(s)),對於這條將利用弧長表達的曲線函數,可以定義其切向量T\vec T、法向量N\vec N、副法向量B\vec B如下:

假設存在:y(x)z(x)y(x) 、z(x)兩個函數
那麼存在:用z表示y的函數y(z)=y(x(z))=y(z)y(z) = y(x(z)) = y(z)
注:y=3xx(y)=1/3yy = 3*x 、 x(y) = 1/3 * y z=2xx(z)=1/2z\qquad z = 2*x 、x(z) = 1/2 * z
y(z)=y(x(z))=3x(z)=31/2z\qquad y(z) = y(x(z)) = 3 * x(z) = 3 * 1/2 * z

T\vec Tdrdsdrds\frac{\frac{d\vec r}{ds}}{||\frac{d\vec r}{ds}||}drds\qquad \frac{d\vec r}{ds} 除以自己的範數(長度),得到一個歸一化的向量

N\vec NdTdsdTds\frac{\frac{d\vec T}{ds}}{||\frac{d\vec T}{ds}||}

B=T×N\vec B = \vec T ×\vec N

根據公式可知:
dTds=κN\frac{d\vec T}{ds}=\kappa \vec N

dNds=κT+τB\frac{d\vec N}{ds}=-\kappa \vec T+\tau \vec B

dBds=τN\frac{d\vec B}{ds}=-\tau \vec N

其中,κτ\kappa、\taur(t(s))\vec r(t(s))曲線的曲率和撓率。其矩陣表達式如下所示:
[TNB]=\begin{bmatrix} \vec T' \\ \vec N' \\ \vec B' \end{bmatrix}=[0κ0κ0τ0τ0]\begin{bmatrix} 0 &\kappa&0 \\ -\kappa&0&\tau \\ 0&\tau &0 \end{bmatrix}[TNB]\begin{bmatrix}\vec T \\ \vec N\\ \vec B\end{bmatrix}

frenet座標在無人駕駛中的用途

對於當前的無人駕駛研究而言,通常不會單獨將高度作爲規劃因素,因此可以將車輛運動曲線投影到同一平面內,即令τ\tau=0,這樣上式就可以簡化爲:
[TN]\begin{bmatrix}\vec T'\\\vec N'\end{bmatrix}=[0κκ0]\begin{bmatrix}0&\kappa \\ -\kappa &0\end{bmatrix}[TN]\begin{bmatrix}\vec T\\ \vec N\end{bmatrix}

假定r(t(s))\vec r(t(s))是參考線在弧長ss處的位置,xx是當前車輛軌跡點,該向量一般採用UTM座標表示,x=[x,y]T\vec x = [x,y]^T,在Frenet座標系下,一般採用弧長s和橫向偏移l描述車輛當前位置對其描述,即x=x(s,l)\vec x =\vec x(s,l)
在這裏插入圖片描述

θrTrNr\theta_r、\vec T_r、\vec N_r分別爲規劃軌跡的方位角、單位切向角和單位法向角,θrTrNr\theta_r、\vec T_r、\vec N_r分別爲當前軌跡的方位角、單位切向角和單位法向角。由正交定義可得:

Tr=[cosθrsinθr]\vec T _r=\begin{bmatrix}\cos\theta_r\\\sin\theta_r\end{bmatrix}

Nr=[sinθrcosθr]\vec N_r =\begin{bmatrix}-\sin\theta_r&\cos\theta_r\end{bmatrix}

Tx=[cosθxsinθx]\vec T_x =\begin{bmatrix}\cos\theta_x\\\sin\theta_x\end{bmatrix}

Nx=[sinθxcosθx]\vec N_x =\begin{bmatrix}-\sin\theta_x&\cos\theta_x\end{bmatrix}

因爲正交,所以可知:Tr×Nr\vec T_r×\vec N_r=0、Tx×Nx\vec T_x×\vec N_x=0

通過對平面向量的加減可得:
x(s,l)=r(s)+l(s)Nr(s)\vec x(s,l)=\vec r(s)+l(s)\vec N_r(s)

根據公式得:
lNTN=NT(xr)l\vec N^T \vec N=\vec N^T(\vec x-\vec r)

根據外積的反稱性可知:
l=[xr]Nrl=\begin{bmatrix}\vec x\\\vec r\end{bmatrix}\vec N_r

假設有任意a\forall a
a˙=\dot{a}=d(a)dt\frac{d(a)}{dt}

a¨=\ddot{a}=d(a˙)dt\frac{d(\dot{a})}{dt}

a=a'=d(a)ds\frac{d(a)}{ds}

a=a''=d(a)ds\frac{d(a')}{ds}

在上式中,俺們規定,a˙\dot{a}表示aa對時間tt的一階求導,a¨\ddot{a}表示aa對時間tt的一階求導,aa'表示aa對弧長ss的一階求導,aa''表示aa對弧長ss的二階求導。
則有:
l˙=[x˙r˙]TNr[xr]TNr˙\dot{l}=\begin{bmatrix}\dot{\vec x} -\dot{\vec r}\end{bmatrix}^T\vec N_r-\begin{bmatrix}\vec x-\vec r\end{bmatrix}^T \dot{\vec {N_r}}

由單位切向量和單位法向量的定義可得:
x˙=\dot{\vec x}=dxdt\frac {d||\vec x||}{dt}Tx=vxTx\vec T_x=v_x\vec T_x

r˙=\dot{\vec r}=drdt\frac {d||\vec r||}{dt}Tr=s˙T\vec T_r=\dot{s}\vec T

將公式互相帶入,結合平面幾何知識可知:
l˙=vxsinΔθ\dot{l}=v_x\sin\Delta \theta

其中Δθ\Delta\thetaθxθr\theta_x-\theta_r
同樣地可知:
x˙=\dot{\vec x}=d(r+lNr)dt\frac{d(\vec r+l\vec N_r)}{dt}=r˙+l˙Nr+lNr˙=\dot{\vec r}+\dot{l}\vec N_r+l\dot{\vec N_r}

即是:

vx=x˙=v_x=||\dot{\vec x}||=[s˙(1κt)l]2+l˙2\sqrt{[\dot{s}(1-\kappa_t)l]^2+\dot{l}^2}

最終可以將ll'll''表示如下:
l=l'=vxs˙\frac{v_x}{\dot{s}}sinΔθ\sin\Delta\theta(1κrl)tanΔθ(1-\kappa_rl)\tan\Delta\theta

l=l''=(κrl+κrl)tanΔθ+-(\kappa_r'l+\kappa_rl')\tan\Delta\theta+(1κrl)cos2Δθ\frac{(1-\kappa_rl)}{\cos^2\Delta\theta}(κx(\kappa_x1κrlcosΔθ\frac{1-\kappa_rl}{\cos\Delta\theta}κr)-\kappa_r)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章