Planning-Frenet坐标和Cartesian坐标转换下

本文详细介绍了自动驾驶中的Frenet坐标与Cartesian坐标之间的转换,包括直角坐标到自然坐标的转换公式,涉及向量形式和三角函数形式的计算方法,以及Frenet坐标到直角坐标的转换。内容涵盖了速度、曲率、加速度等关键参数的计算,是理解自动驾驶路径规划的重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文根据B站up:忠厚老实的老王 的视频《自动驾驶决策规划算法第一章第三节(上) 直角坐标与自然坐标转换》整理,连接:https://www.bilibili.com/video/BV1tQ4y1r7fh?spm_id_from=333.1007.top_right_bar_window_history.content.click

Planning-Frenet坐标和Cartesian坐标转换上
Planning-Frenet坐标和Cartesian坐标转换中

2.4 F r e n e t Frenet Frenet坐标系转换到 C a r t e s i a n Cartesian Cartesian坐标系

已知 r r ⃗ , v r ⃗ , κ r , s , s ˙ , s ¨ , l , l ′ , l ′ ′ \vec{r_r}, \vec{v_r}, \kappa_r,s, \dot{s}, \ddot{s}, l, l^{\prime}, l^{\prime \prime} rr ,vr ,κr,s,s˙,s¨,l,l,l

2.4.1 计算 ( x h , y h ) (x_h, y_h) (xh,yh)

{ x h = x r − l s i n ( θ r ) y h = y r + l c o s ( θ r ) (2-25) \begin{cases} x_h = x_r - lsin(\theta_r) \\ y_h = y_r + lcos(\theta_r) \end{cases} \tag{2-25} {xh=xrlsin(θr)yh=yr+lcos(θr)(2-25)

2.4.2 计算 θ h \theta_h θh

由公式 ( 2 − 14 ) (2-14) (214)得:
θ h = a r c t a n ( l ′ 1 − κ r l ) + θ r (2-26) \theta_h = arctan(\frac{l^{\prime}}{1-\kappa_r l}) + \theta_r \tag{2-26} θh=arctan(1κrll)+θr(2-26)

2.4.3 计算 ∣ v h ∣ |v_h| vh

( 2 − 11 ) (2-11) (211)
∣ v h ⃗ ∣ c o s ( θ h − θ r ) = s r ˙ ( 1 − κ r l ) (2-27) |\vec{v_h}| cos(\theta_h - \theta_r) = \dot{s_r} (1-\kappa_r l) \tag{2-27} vh cos(θhθr)=sr˙(1κrl)(2-27)
( 2 − 11 ) , ( 2 − 14 ) (2-11),(2-14) (211),(214)等号两边同时相乘得
s r ˙ l ′ = ∣ v h ⃗ ∣ s i n ( θ h − θ r ) (2-28) \dot{s_r} l^{\prime} = |\vec{v_h}| sin(\theta_h - \theta_r) \tag{2-28} sr˙l=vh sin(θhθr)(2-28)
所以
( ∣ v h ⃗ ∣ ) 2 ( c o s 2 ( θ h − θ r ) + s i n 2 ( θ h − θ r ) ) = ( s r ˙ ( 1 − κ r l ) ) 2 + ( s r ˙ l ′ ) 2 (2-29) (|\vec{v_h}|)^2 (cos^2(\theta_h - \theta_r) + sin^2(\theta_h - \theta_r)) = (\dot{s_r} (1-\kappa_r l))^2 + (\dot{s_r} l^{\prime})^2 \tag{2-29} (vh )2(cos2(θhθr)+sin2(θhθr))=(sr˙(1κrl))2+(sr˙l)2(2-29)

∣ v h ⃗ ∣ = ( s r ˙ ( 1 − κ r l ) ) 2 + ( s r ˙ l ′ ) 2 (2-30) |\vec{v_h}|= \sqrt{(\dot{s_r} (1-\kappa_r l))^2 + (\dot{s_r} l^{\prime})^2} \tag{2-30} vh =(sr˙(1κrl))2+(sr˙l)2 (2-30)

2.4.4 计算 κ h \kappa_h κh

( 2 − 24 ) (2-24) (224)得:
κ h = ( ( l ′ ′ + ( κ r ′ l + κ r l ′ ) t a n ( θ h − θ r ) ) c o s 2 ( θ h − θ r ) 1 − κ r l + κ r ) c o s ( θ h − θ r ) 1 − κ r l (2-31) \kappa_h = ((l^{\prime \prime} + ({\kappa_r}^{\prime}l + \kappa_r l^{\prime}) tan(\theta_h - \theta_r)) \frac{cos^2(\theta_h - \theta_r)}{1-\kappa_r l} + \kappa_r) \frac{cos(\theta_h - \theta_r)}{1-\kappa_r l} \tag{2-31} κh=((l+(κrl+κrl)tan(θhθr))1κrlcos2(θhθr)+κr)1κrlcos(θhθr)(2-31)

2.4.5 计算 ∣ a h ∣ |a_h| ah

( 2 − 18 ) , ( 2 − 31 ) (2-18),(2-31) (218),(231)得:
∣ a h ∣ = s r ¨ c o s ( θ h − θ r ) 1 − κ r l + s r ˙ 2 c o s ( θ h − θ r ) [ l ′ ( 1 − κ r l c o s ( θ h − θ r ) κ h − κ r ) − ( κ r ′ l + κ r l ′ ) ] (2-32) |a_h| = \ddot{s_r} \frac{cos(\theta_h - \theta_r)}{1-\kappa_r l} + \frac{{\dot{s_r}}^2}{cos(\theta_h - \theta_r)} [l ^{\prime}(\frac{1-\kappa_r l}{cos(\theta_h - \theta_r)} \kappa_h - \kappa_r) - ({\kappa_r}^{\prime}l + \kappa_r l^{\prime})] \tag{2-32} ah=sr¨1κrlcos(θhθr)+cos(θhθr)sr˙2[l(cos(θhθr)1κrlκhκr)(κrl+κrl)](2-32)

2.5 总结

2.5.1 C a r t e s i a n Cartesian Cartesian坐标系转换到 F r e n e t Frenet Frenet坐标系
2.5.1.1 向量形式

{ l = ( r h ⃗ − r r ⃗ ) ⋅ n r ⃗ s r ˙ = v h ⃗ ⋅ τ r ⃗ 1 − κ r l l ˙ = v h ⃗ ⋅ n r ⃗ l ′ = ( 1 − κ r l ) v h ⃗ ⋅ n r ⃗ v h ⃗ ⋅ τ r ⃗ s r ¨ = a ⃗ ⋅ τ r ⃗ 1 − κ r l + κ r s r ˙ 2 l ′ 1 − κ r l + s r ˙ 2 1 − κ r l ( κ r ′ l + κ r l ′ ) l ¨ = a ⃗ ⋅ n r ⃗ − κ r ( 1 − κ r l ) ( s r ˙ ) 2 l ′ ′ = l ¨ − l ′ s r ¨ s r ˙ 2 (3-33) \begin{cases} l = (\vec{r_h} - \vec{r_r}) \cdot \vec{n_r} \\ \dot{s_r} = \frac{\vec{v_h} \cdot \vec{\tau_r}}{1-\kappa_r l} \\ \dot{l} = \vec{v_h} \cdot \vec{n_r} \\ l^{\prime} = (1-\kappa_r l) \frac{\vec{v_h} \cdot \vec{n_r}}{\vec{v_h} \cdot \vec{\tau_r}} \\ \ddot{s_r} = \frac{\vec{a} \cdot \vec{\tau_r}}{1-\kappa_r l} + \frac{\kappa_r \dot{s_r}^2 l^{\prime}}{1-\kappa_r l} + \frac{\dot{s_r}^2}{1-\kappa_r l}({\kappa_r}^{\prime}l + \kappa_r l^{\prime}) \\ \ddot{l} = \vec{a} \cdot \vec{n_r} - \kappa_r (1-\kappa_r l) (\dot{s_r})^2 \\ l^{\prime \prime} = \frac{\ddot{l} - l^{\prime} \ddot{s_r}}{{\dot{s_r}}^2} \end{cases} \tag{3-33} l=(rh rr )nr sr˙=1κrlvh τr l˙=vh nr l=(1κrl)vh τr vh nr sr¨=1κrla τr +1κrlκrsr˙2l+1κrlsr˙2(κrl+κrl)l¨=a nr κr(1κrl)(sr˙)2l=sr˙2l¨lsr¨(3-33)

2.5.1.2 三角函数形式

{ l = s i g n ( ( y h − y r ) c o s ( θ r ) − ( x h − x r ) s i n ( θ r ) ) ( y h − y r ) 2 − ( x h − x r ) 2 s r ˙ = ∣ v h ⃗ ∣ c o s ( θ h − θ r ) 1 − κ r l l ˙ = ∣ v h ⃗ ∣ s i n ( θ h − θ r ) l ′ = ( 1 − κ r l ) t a n ( θ h − θ r ) s r ¨ = ∣ a h ⃗ ∣ c o s ( θ h − θ r ) − s r ˙ 2 ( l ′ ( κ h 1 − κ r l c o s ( θ h − θ r ) − κ r ) − ( κ r ′ l + κ r l ′ ) ) 1 − κ r l l ¨ = ∣ a ⃗ ∣ s i n ( θ h − θ r ) − κ r ( 1 − κ r l ) ( s r ˙ ) 2 l ′ ′ = − ( κ r ′ l + κ r l ′ ) t a n ( θ h − θ r ) + 1 − κ r l c o s 2 ( θ h − θ r ) ( 1 − κ r l c o s ( θ h − θ r ) κ h − κ r ) (3-34) \begin{cases} l = sign((y_h - y_r) cos(\theta_r) - (x_h - x_r)sin(\theta_r)) \sqrt{(y_h - y_r)^2 - (x_h - x_r)^2} \\ \dot{s_r} = \frac{|\vec{v_h}| cos(\theta_h - \theta_r)}{1-\kappa_r l} \\ \dot{l} = |\vec{v_h}| sin(\theta_h - \theta_r) \\ l^{\prime} = (1-\kappa_r l) tan(\theta_h - \theta_r) \\ \ddot{s_r} = \frac{|\vec{a_h}| cos(\theta_h - \theta_r) - {\dot{s_r}}^2(l^{\prime} (\kappa_h \frac{1-\kappa_r l}{cos(\theta_h - \theta_r)} - \kappa_r) - ({\kappa_r}^{\prime}l + \kappa_r l^{\prime}))} {1-\kappa_r l} \\ \ddot{l} = |\vec{a}| sin(\theta_h - \theta_r) - \kappa_r (1-\kappa_r l) (\dot{s_r})^2 \\ l^{\prime \prime} = -({\kappa_r}^{\prime}l + \kappa_r l^{\prime}) tan(\theta_h - \theta_r) + \frac{1-\kappa_r l}{cos^2(\theta_h - \theta_r)} (\frac{1-\kappa_r l}{cos(\theta_h - \theta_r)} \kappa_h - \kappa_r) \end{cases} \tag{3-34} l=sign((yhyr)cos(θr)(xhxr)sin(θr))(yhyr)2(xhxr)2 sr˙=1κrlvh cos(θhθr)l˙=vh sin(θhθr)l=(1κrl)tan(θhθr)sr¨=1κrlah cos(θhθr)sr˙2(l(κhcos(θhθr)1κrlκr)(κrl+κrl))l¨=a sin(θhθr)κr(1κrl)(sr˙)2l=(κrl+κrl)tan(θhθr)+cos2(θhθr)1κrl(cos(θhθr)1κrlκhκr)(3-34)

2.5.2 F r e n e t Frenet Frenet坐标系转换到 C a r t e s i a n Cartesian Cartesian坐标系

{ x h = x r − l s i n ( θ r ) y h = y r + l c o s ( θ r ) ∣ v h ⃗ ∣ = ( s r ˙ ( 1 − κ r l ) ) 2 + ( s r ˙ l ′ ) 2 κ h = ( ( l ′ ′ + ( κ r ′ l + κ r l ′ ) t a n ( θ h − θ r ) ) c o s 2 ( θ h − θ r ) 1 − κ r l + κ r ) c o s ( θ h − θ r ) 1 − κ r l ∣ a h ∣ = s r ¨ c o s ( θ h − θ r ) 1 − κ r l + s r ˙ 2 c o s ( θ h − θ r ) [ l ′ ( 1 − κ r l c o s ( θ h − θ r ) κ h − κ r ) − ( κ r ′ l + κ r l ′ ) ] (3-35) \begin{cases} x_h = x_r - lsin(\theta_r) \\ y_h = y_r + lcos(\theta_r) \\ |\vec{v_h}|= \sqrt{(\dot{s_r} (1-\kappa_r l))^2 + (\dot{s_r} l^{\prime})^2} \\ \kappa_h = ((l^{\prime \prime} + ({\kappa_r}^{\prime}l + \kappa_r l^{\prime}) tan(\theta_h - \theta_r)) \frac{cos^2(\theta_h - \theta_r)}{1-\kappa_r l} + \kappa_r) \frac{cos(\theta_h - \theta_r)}{1-\kappa_r l} \\ |a_h| = \ddot{s_r} \frac{cos(\theta_h - \theta_r)}{1-\kappa_r l} + \frac{{\dot{s_r}}^2}{cos(\theta_h - \theta_r)} [l ^{\prime}(\frac{1-\kappa_r l}{cos(\theta_h - \theta_r)} \kappa_h - \kappa_r) - ({\kappa_r}^{\prime}l + \kappa_r l^{\prime})] \end{cases} \tag{3-35} xh=xrlsin(θr)yh=yr+lcos(θr)vh =(sr˙(1κrl))2+(sr˙l)2 κh=((l+(κrl+κrl)tan(θhθr))1κrlcos2(θhθr)+κr)1κrlcos(θhθr)ah=sr¨1κrlcos(θhθr)+cos(θhθr)sr˙2[l(cos(θhθr)1κrlκhκr)(κrl+κrl)](3-35)

[1] 自动驾驶决策规划算法第一章第三节(上) 直角坐标与自然坐标转换

[2] Frenet坐标系与Cartesian坐标系互转

Frenet坐标系是一种常用于无人驾驶路径规划中的局部路径规划方法。它是由两个坐标系组成的,分别是Frenet纵向坐标系横向坐标系Frenet纵向坐标系主要用于描述车辆在路径上的纵向运动,它的原点位于路径上的某一点,纵轴与路径的切线方向一致。其中,s轴表示纵向距离,表示车辆在路径上行驶的位置。而d轴表示横向距离,表示车辆在路径上的横向偏移量,即车辆离路径的距离。 Frenet横向坐标系用于描述车辆在路径上的横向运动,它的原点也位于路径上的某一点,横轴与路径的法向方向(垂直于切线方向的方向)一致。其中,l轴表示横向距离,表示车辆在路径的左右偏移量,即车辆相对于路径的位置。而r轴表示横向曲率半径,表示车辆所在位置的曲率半径,它与路径的曲率有关。 使用Frenet坐标系进行路径规划时,首先需要根据路径曲线,将路径离散化为一系列的路径点。然后,根据车辆当前状态(包括位置、速度、加速度等),在Frenet坐标系下进行规划。局部路径规划的目标是生成一条较短且安全的路径,能够使车辆沿着路径稳定行驶。 在Frenet坐标系下,路径规划算法主要涉及到横向运动纵向运动的规划。横向运动规划主要考虑车辆与车道的对齐以及避免碰撞等因素,通常使用虚拟弓形路径或者多项式拟合等方法进行规划。纵向运动规划主要考虑车辆的速度加速度等因素,以及与前车的保持安全距离行驶速度的匹配等要求,一般采用经典的PID控制方法或者模型预测控制等技术。 总之,Frenet坐标系是无人驾驶路径规划中一种常用的局部路径规划方法,通过将车辆位置在路径上的纵向横向运动分解为Frenet坐标系下的变量,并结合车辆动力学环境约束,可以实现车辆的稳定行驶避免碰撞等目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值