无人驾驶frenet坐标系解释

待整理

本文从毕设中整理,尚未整理完成。

Frenet坐标系介绍

Frenet–Serret公式用于描述粒子在三维欧氏空间内沿一条连续可微曲线的运动学特征

三维曲线表达
T ⃗ \vec T T 称为切向量(Tangent),表示沿曲线运动方向的单位向量; N ⃗ \vec N N 称为法向量(Normal),表示当前曲线运动平面内垂直于的单位向量; B ⃗ \vec B B 称为当前运动平面的副法向量(Binormal),表示同时垂直于和的单位向量。令 r ( t ) r(t) r(t)为这个欧式空间中随着时间 t t t改变的非退化曲线,可令 s ( t ) s(t) s(t)为这条非退化曲线在时间t的弧长。

退化曲线即:两条相交直线,当一个平面过圆锥的顶点截圆锥面得到曲线,其方程为(A1x+B1y+C1) *(A2x+B2y+C2) = 0
形似二次曲线,实际为两条直线

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

t t t还可以表示为 s s s的函数,也即是存在 t ( s ) t(s) t(s),从而有 r ⃗ ( s ) = r ⃗ ( t ( s ) ) \vec r(s)=\vec r(t(s)) r (s)=r (t(s)),对于这条将利用弧长表达的曲线函数,可以定义其切向量 T ⃗ \vec T T 、法向量 N ⃗ \vec N N 、副法向量 B ⃗ \vec B B 如下:

假设存在: y ( x ) 、 z ( x ) 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(z)=y(x(z))=y(z)
注: y = 3 ∗ x 、 x ( y ) = 1 / 3 ∗ y y = 3*x 、 x(y) = 1/3 * y y=3xx(y)=1/3y z = 2 ∗ x 、 x ( z ) = 1 / 2 ∗ z \qquad z = 2*x 、x(z) = 1/2 * z z=2xx(z)=1/2z
y ( z ) = y ( x ( z ) ) = 3 ∗ x ( z ) = 3 ∗ 1 / 2 ∗ z \qquad y(z) = y(x(z)) = 3 * x(z) = 3 * 1/2 * z y(z)=y(x(z))=3x(z)=31/2z

T ⃗ \vec T T d r ⃗ d s ∣ ∣ d r ⃗ d s ∣ ∣ \frac{\frac{d\vec r}{ds}}{||\frac{d\vec r}{ds}||} dsdr dsdr d r ⃗ d s \qquad \frac{d\vec r}{ds} dsdr 除以自己的范数(长度),得到一个归一化的向量

N ⃗ \vec N N d T ⃗ d s ∣ ∣ d T ⃗ d s ∣ ∣ \frac{\frac{d\vec T}{ds}}{||\frac{d\vec T}{ds}||} dsdT dsdT

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

根据公式可知:
d T ⃗ d s = κ N ⃗ \frac{d\vec T}{ds}=\kappa \vec N dsdT =κN

d N ⃗ d s = − κ T ⃗ + τ B ⃗ \frac{d\vec N}{ds}=-\kappa \vec T+\tau \vec B dsdN =κT +τB

d B ⃗ d s = − τ N ⃗ \frac{d\vec B}{ds}=-\tau \vec N dsdB =τN

其中, κ 、 τ \kappa、\tau κτ r ⃗ ( t ( s ) ) \vec r(t(s)) r (t(s))曲线的曲率和挠率。其矩阵表达式如下所示:
[ T ⃗ ′ N ⃗ ′ B ⃗ ′ ] = \begin{bmatrix} \vec T' \\ \vec N' \\ \vec B' \end{bmatrix}= T N B = [ 0 κ 0 − κ 0 τ 0 τ 0 ] \begin{bmatrix} 0 &\kappa&0 \\ -\kappa&0&\tau \\ 0&\tau &0 \end{bmatrix} 0κ0κ0τ0τ0 [ T ⃗ N ⃗ B ⃗ ] \begin{bmatrix}\vec T \\ \vec N\\ \vec B\end{bmatrix} T N B

frenet坐标在无人驾驶中的用途

对于当前的无人驾驶研究而言,通常不会单独将高度作为规划因素,因此可以将车辆运动曲线投影到同一平面内,即令 τ \tau τ=0,这样上式就可以简化为:
[ T ⃗ ′ N ⃗ ′ ] \begin{bmatrix}\vec T'\\\vec N'\end{bmatrix} [T N ]= [ 0 κ − κ 0 ] \begin{bmatrix}0&\kappa \\ -\kappa &0\end{bmatrix} [0κκ0] [ T ⃗ N ⃗ ] \begin{bmatrix}\vec T\\ \vec N\end{bmatrix} [T N ]

假定 r ⃗ ( t ( s ) ) \vec r(t(s)) r (t(s))是参考线在弧长 s s s处的位置, x x x是当前车辆轨迹点,该向量一般采用UTM坐标表示, x ⃗ = [ x , y ] T \vec x = [x,y]^T x =[x,y]T,在Frenet坐标系下,一般采用弧长s和横向偏移l描述车辆当前位置对其描述,即 x ⃗ = x ⃗ ( s , l ) \vec x =\vec x(s,l) x =x (s,l)
在这里插入图片描述

θ r 、 T ⃗ r 、 N ⃗ r \theta_r、\vec T_r、\vec N_r θrT rN r分别为规划轨迹的方位角、单位切向角和单位法向角, θ r 、 T ⃗ r 、 N ⃗ r \theta_r、\vec T_r、\vec N_r θrT rN r分别为当前轨迹的方位角、单位切向角和单位法向角。由正交定义可得:

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

N ⃗ r = [ − sin ⁡ θ r cos ⁡ θ r ] \vec N_r =\begin{bmatrix}-\sin\theta_r&\cos\theta_r\end{bmatrix} N r=[sinθrcosθr]

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

N ⃗ x = [ − sin ⁡ θ x cos ⁡ θ x ] \vec N_x =\begin{bmatrix}-\sin\theta_x&\cos\theta_x\end{bmatrix} N x=[sinθxcosθx]

因为正交,所以可知: T ⃗ r × N ⃗ r \vec T_r×\vec N_r T r×N r=0、 T ⃗ x × N ⃗ x \vec T_x×\vec N_x T x×N x=0

通过对平面向量的加减可得:
x ⃗ ( s , l ) = r ⃗ ( s ) + l ( s ) N ⃗ r ( s ) \vec x(s,l)=\vec r(s)+l(s)\vec N_r(s) x (s,l)=r (s)+l(s)N r(s)

根据公式得:
l N ⃗ T N ⃗ = N ⃗ T ( x ⃗ − r ⃗ ) l\vec N^T \vec N=\vec N^T(\vec x-\vec r) lN TN =N T(x r )

根据外积的反称性可知:
l = [ x ⃗ r ⃗ ] N ⃗ r l=\begin{bmatrix}\vec x\\\vec r\end{bmatrix}\vec N_r l=[x r ]N r

假设有任意 ∀ a \forall a a
a ˙ = \dot{a}= a˙= d ( a ) d t \frac{d(a)}{dt} dtd(a)

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

a ′ = a'= a= d ( a ) d s \frac{d(a)}{ds} dsd(a)

a ′ ′ = a''= a= d ( a ′ ) d s \frac{d(a')}{ds} dsd(a)

在上式中,俺们规定, a ˙ \dot{a} a˙表示 a a a对时间 t t t的一阶求导, a ¨ \ddot{a} a¨表示 a a a对时间 t t t的一阶求导, a ′ a' a表示 a a a对弧长 s s s的一阶求导, a ′ ′ a'' a表示 a a a对弧长 s s s的二阶求导。
则有:
l ˙ = [ x ⃗ ˙ − r ⃗ ˙ ] T N ⃗ r − [ x ⃗ − r ⃗ ] T N r ⃗ ˙ \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}} l˙=[x ˙r ˙]TN r[x r ]TNr ˙

由单位切向量和单位法向量的定义可得:
x ⃗ ˙ = \dot{\vec x}= x ˙= d ∣ ∣ x ⃗ ∣ ∣ d t \frac {d||\vec x||}{dt} dtdx T ⃗ x = v x T ⃗ x \vec T_x=v_x\vec T_x T x=vxT x

r ⃗ ˙ = \dot{\vec r}= r ˙= d ∣ ∣ r ⃗ ∣ ∣ d t \frac {d||\vec r||}{dt} dtdr T ⃗ r = s ˙ T ⃗ \vec T_r=\dot{s}\vec T T r=s˙T

将公式互相带入,结合平面几何知识可知:
l ˙ = v x sin ⁡ Δ θ \dot{l}=v_x\sin\Delta \theta l˙=vxsinΔθ

其中 Δ θ \Delta\theta Δθ θ x − θ r \theta_x-\theta_r θxθr
同样地可知:
x ⃗ ˙ = \dot{\vec x}= x ˙= d ( r ⃗ + l N ⃗ r ) d t \frac{d(\vec r+l\vec N_r)}{dt} dtd(r +lN r) = r ⃗ ˙ + l ˙ N ⃗ r + l N ⃗ r ˙ =\dot{\vec r}+\dot{l}\vec N_r+l\dot{\vec N_r} =r ˙+l˙N r+lN r˙

即是:

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

最终可以将 l ′ l' l l ′ ′ l'' l表示如下:
l ′ = l'= l= v x s ˙ \frac{v_x}{\dot{s}} s˙vx sin ⁡ Δ θ \sin\Delta\theta sinΔθ ( 1 − κ r l ) tan ⁡ Δ θ (1-\kappa_rl)\tan\Delta\theta (1κrl)tanΔθ

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

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 坐标系 Frenet坐标系和Cartesian坐标系都是用于描述物体在空间中的位置和运动状态的坐标系。 Frenet坐标系是一种基于曲线的坐标系,它描述了物体在曲线上的位置和运动状态。它由三个坐标轴组成:切线轴、法线轴和副法线轴。切线轴指向曲线的切线方向,法线轴指向曲线的凸侧,副法线轴与切线轴和法线轴垂直,指向曲线的弯曲方向。 Cartesian坐标系是一种基于直角坐标系坐标系,它描述了物体在三维空间中的位置和运动状态。它由三个坐标轴组成:x轴、y轴和z轴。x轴和y轴在水平面内,z轴垂直于水平面。 两种坐标系都有各自的优缺点,选择使用哪种坐标系取决于具体的应用场景和需求。 ### 回答2: Frenet坐标系和Cartesian坐标系都是数学中常见的坐标系。它们都可以用来描述物体在不同的状态下的位置和运动状态。不同之处在于它们的定义和使用方法略有不同。 Frenet坐标系,也称为切向量坐标系,是一种基于曲线的坐标系,用于描述物体在曲线上的位置和运动状态。Frenet坐标系的三个坐标轴分别是曲线的切向量、法向量和副法向量。其中,切向量是曲线在任意一点的切线方向,法向量是垂直于切向量的向量,而副法向量是垂直于切向量和法向量的向量。这种坐标系的优点在于能够有效地描述曲线的弯曲和转向情况,使得计算曲线上任意一点的速度和加速度等物理量更加方便。 相比之下,Cartesian坐标系是一种基于直线的坐标系,用于描述物体在直角坐标系中的位置和运动状态。在这种坐标系中,物体的三个坐标轴分别是x、y、z轴,它们垂直于彼此形成一个直角三角形。这种坐标系的优点在于计算简单,容易理解。但它不能有效地描述曲线的特性,因为在直线上一些物理量的计算需要涉及到微积分和向量的运算,这使得计算比较麻烦并且容易出现误差。 总的来说,Frenet坐标系和Cartesian坐标系各有优缺点,具体使用哪种坐标系取决于需要描述物体的特性和应用场景。在实际应用中,这两种坐标系常常相互转换,以便更好地描述物体在运动过程中的位置和状态。 ### 回答3: Frenet坐标系是一种曲线坐标系,用于描述空间中的曲线。与笛卡尔坐标系不同,Frenet坐标系以曲线的切线、法向和副法向为基准,通过参数化曲线的方式来描述曲线的位置。因此,Frenet坐标系可以更好地描述曲线的几何性质,例如曲率和扭率等。 在Frenet坐标系中,曲线的位置可以由三个参数来描述,即曲线的弧长s、曲率k和扭率τ。这三个参数分别对应着曲线的沿切线变化、沿法向变化和沿副法向变化。通过这些参数,可以准确地描述曲线的位置和方向,而且可以轻松地计算曲线上任意点的切线、法向和副法向。 相比之下,笛卡尔坐标系则是以直角坐标系为基准,使用x、y和z三个坐标轴来描述空间的位置。尽管笛卡尔坐标系在描述平面和立体图形时比较简便,但当描述曲线的时候就显得比较复杂。因为曲线的位置和方向不能通过单一的坐标轴来描述,必须使用更复杂的公式和计算方法。 总的来说,Frenet坐标系相对于笛卡尔坐标系来说,在描述曲线几何性质上更加直观和准确。在实际应用中,Frenet坐标系有广泛的应用,例如在计算机图形学、机器视觉等领域中,以及在车辆导航和机器人路径规划中也有广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值