自动驾驶规划控制-动作规划2

Lattice planner

The Lattice Planner algorithm is a local motion planner,
• Sample based motion planner;
• Plan in Frenet coordinate;
• The output is a smooth, safe and collision-free local trajectory that satisfies the vehicle’s kinematics and speed constraints which is directly feed into controller.(直接反馈到控制器中)

在这里插入图片描述
The basic process of Lattice planner:
在这里插入图片描述

• Frenet Coordinate

T

参考线上的可动坐标系,原点是从车辆到路径最近的r点, t 轴沿 r 处的切线tangiential方向,而 n 轴沿 r 处的pependicular方向,垂直于 t 轴。
在这里插入图片描述

Y

为了更好地表示:相比Cartesian coordinate 将车辆的运动沿着行驶方向分解横向与纵向运动,坐标系定义在参考线上变化,更方便规划轨迹
Frenet coordinate:
[ s , s ˙ , s ¨ , l , l ˙ , l ¨ , l ′ , l ′ ′ ] \left[\mathbf{s}, \dot{\mathbf{s}}, \ddot{\mathbf{s}}, \boldsymbol{l}, \dot{\boldsymbol{l}}, \ddot{\boldsymbol{l}}, \boldsymbol{l}^{\prime}, \boldsymbol{l}^{\prime \prime}\right] [s,s˙,s¨,l,l˙,l¨,l,l′′]
Cartesian coordinate
[ x → , v x , a x , θ x , κ x ] \left[\overrightarrow{\boldsymbol{x}}, \boldsymbol{v}_{x}, \boldsymbol{a}_{x}, \boldsymbol{\theta}_{x}, \boldsymbol{\kappa}_{x}\right] [x ,vx,ax,θx,κx]

在这里插入图片描述
where l ′ = d l d s l^{'}=\frac{dl}{ds} l=dsdl v_x是一个标量

Frenet coordinate and Cartesian coordinate transformation

  • Cartesian to Frenet
    在这里插入图片描述
    推导特别重要的公式,r(s)为原点到s(t)向量;
    x ⃗ = r ⃗ + l ⋅ n c → \vec{x}=\vec{r}+l \cdot \overrightarrow{n_{c}} x =r +lnc (1)

判断方向左+ 右-,即车在参考线左边为正,这个由叉乘来判断方向,n_c是在t_c逆时针方向,
n ⃗ c = 1 l ( x − x c , y − y r ) t ⃗ c = ( cos ⁡ θ r , sin ⁡ θ r ) n ⃗ c × t c → = ( y − y r ) ⋅ cos ⁡ θ r − ( x − x r ) sin ⁡ θ r \vec{n}_{c}=\frac{1}{l}\left(x-x_{c}, y-y_{r}\right)\\\vec{t}_{c}=\left(\cos \theta_{r}, \sin \theta_{r}\right)\\\vec{n}_{c} \times \overrightarrow{t_{c}}=\\\left(y-y_{r}\right) \cdot \cos \theta_{r}-\left(x-x_{r}\right) \sin \theta_{r} n c=l1(xxc,yyr)t c=(cosθr,sinθr)n c×tc =(yyr)cosθr(xxr)sinθr
那么可以获得
l = sign ⁡ ( ( y − y r ) cos ⁡ θ r − ( x − x r ) sin ⁡ θ r ) ( x − x r ) 2 + ( y − y r ) 2 l=\operatorname{sign}\left(\left(y-y_{r}\right) \cos \theta_{r}-\left(x-x_{r}\right) \sin \theta_{r}\right) \sqrt{\left(x-x_{r}\right)^{2}+\left(y-y_{r}\right)^{2}} l=sign((yyr)cosθr(xxr)sinθr)(xxr)2+(yyr)2

在Frenet 坐标系下 l ′ l^{'} l
l ′ = d l d s = d l / d t d s / d t = l ˙ s ˙ l^{\prime}=\frac{d l}{d s}=\frac{d l / d t}{d s / d t}=\frac{\dot{l}}{\dot{s}} l=dsdl=ds/dtdl/dt=s˙l˙
由(1)可知(向量转置)
l = n c T ( x − r ) = ( x − r ) T n c l=n_{c}^{T}(x-r)=(x-r)^{T} n_{c} l=ncT(xr)=(xr)Tnc
关于时间的导数
l ˙ = ( x ˙ − r ˙ ) T n c + ( x − r ) T n ˙ c = ( x ˙ − r ˙ ) T n ˙ c = ( x ˙ − r ˙ ) T n c + ( l n c ) T n c ˙ \dot l=(\dot{\boldsymbol{x}}-\dot{\boldsymbol{r}})^{T} \boldsymbol{n}_{\boldsymbol{c}}+(\boldsymbol{x}-\boldsymbol{r})^{T} \dot{\boldsymbol{n}}_{\boldsymbol{c}}=(\dot{\boldsymbol{x}}-\dot{\boldsymbol{r}})^{T} \dot{\boldsymbol{n}}_{\boldsymbol{c}}=(\dot{\boldsymbol{x}}-\dot{\boldsymbol{r}}) ^{T}\boldsymbol{n}_{\boldsymbol{c}}+\left(\boldsymbol{ln}_{\boldsymbol{c}}\right)^{T} \dot {\boldsymbol{n}_{\boldsymbol{c}}} l˙=(x˙r˙)Tnc+(xr)Tn˙c=(x˙r˙)Tn˙c=(x˙r˙)Tnc+(lnc)Tnc˙ (2)

由速度定义可知:
x ˙ = v t x , r ˙ = s ˙ t c \dot{x}=v \boldsymbol{t}_{\boldsymbol{x}}, \dot{r}=\dot{s} \boldsymbol{t}_{c} x˙=vtx,r˙=s˙tc(3)

由链式求导可知
n c = d n c d t = d n c d s d s d t = s ˙ d n c d s \boldsymbol{n}_{c}=\frac{d \boldsymbol{n}_{\boldsymbol{c}}}{d t}=\frac{d \boldsymbol{n}_{\boldsymbol{c}}}{d s} \frac{d s}{d t}=\dot{s}\frac{d \boldsymbol{n}_{c}}{d s} nc=dtdnc=dsdncdtds=s˙dsdnc
根据Frenet坐标定义
d n c d s = − κ t c n c = − κ s ˙ t c \frac{d \boldsymbol{n}_{c}}{d s}=-\kappa \boldsymbol{t}_{c} \\\\\boldsymbol{n}_{c}=-\kappa \dot{s} \boldsymbol{t}_{c} dsdnc=κtcnc=κs˙tc (4)
将(3),(4)带入(2)中

l ˙ = ( v t x − s ˙ t c ) T n c − ( ln ⁡ n c ) T κ s ˙ t c \dot{l}=\left(v \boldsymbol{t}_{\boldsymbol{x}}-\dot{s} \boldsymbol{t}_{\boldsymbol{c}}\right)^{T} \boldsymbol{n}_{\boldsymbol{c}}-\left(\ln \boldsymbol{n}_{\boldsymbol{c}}\right)^{T} \kappa \dot{s} \boldsymbol{t}_{\boldsymbol{c}} l˙=(vtxs˙tc)Tnc(lnnc)Tκs˙tc
由于 t c 和 n c t_c和n_c tcnc正交,那么:
l ˙ = v t x T n c \dot{l}=v \boldsymbol{t}_{x}^{T} \boldsymbol{n}_{c} l˙=vtxTnc
由于 t x 和 n c t_x和n_c txnc为单位向量 θ x , θ r \theta_x ,\theta_r θx,θr分别为t_x,t_c与x轴的夹角,可参考
在这里插入图片描述
由于转置, t x t_x tx需要旋转90度,故

l ˙ = v sin ⁡ ( θ x − θ r ) \dot{l}=v \sin \left(\theta_{x}-\theta_{r}\right) l˙=vsin(θxθr) (5)
为了得到其他量,我们又需要对(1)下手,求关于时间的导数
x ˙ = d ( r + ln ⁡ c ) d t = r ˙ + l ⁡ ˙ n c + l ˙ n c \dot{x}=\frac{d\left(r+\ln _{c}\right)}{d t}=\dot{r}+\dot{\operatorname{l}}{ n}_{c}+\dot l n_{c} x˙=dtd(r+lnc)=r˙+l˙nc+l˙nc
带入(3),(4)
x ˙ = s ˙ ( 1 − κ r l ) t c + l ˙ n c \dot{x}=\dot{s}\left(1-\kappa_{r} l\right) \boldsymbol{t}_{c}+\dot{l}n _{c} x˙=s˙(1κrl)tc+l˙nc
由于 T r 和 N r T_r和N_r TrNr正交,假定v为正,取范数
v = s ˙ 2 ( 1 − κ r l ) 2 + l ˙ 2 v=\sqrt{\dot{s}^{2}\left(1-\kappa_{r} l\right)^{2}+\dot{l}^{2}} v=s˙2(1κrl)2+l˙2 ……(6)
由(5),(6)推导消去 s ˙ \dot s s˙可得
( l ˙ s ˙ ) 2 = tan ⁡ 2 ( θ x − θ r ) ( 1 − κ r l ) 2 = l ′ 2 \left(\frac{\dot{l}}{\dot{s}}\right)^{2}=\tan ^{2}\left(\theta_{x}-\theta_{r}\right)\left(1-\kappa_{r} l\right)^{2}=l^{\prime 2} (s˙l˙)2=tan2(θxθr)(1κrl)2=l′2
通常,我们假设参考线的曲率远小于车辆最大转弯角度。还假设横向误差很小(通常车道宽度小于 4m)。因此,我们可以假设 ∣ ∣ 1 − κ r ∣ ∣ > 0 ||1 - κ_r||> 0 ∣∣1κr∣∣>0。并且假设角度误差不会很大,
∣ θ x − θ r ∣ < π / 2 |\theta_{x}-\theta_{r}|<\pi/2 θxθr<π/2

l ′ = tan ⁡ ( θ x − θ r ) ( 1 − κ r l ) l^{\prime}=\tan \left(\theta_{x}-\theta_{r}\right)\left(1-\kappa_{r} l\right) l=tan(θxθr)(1κrl) (7)
那么可以得到s的导数
s ˙ = v 1 − κ r l cos ⁡ ( θ x − θ r ) \dot{s}=\frac{v}{1-\kappa_{r} l} \cos \left(\theta_{x}-\theta_{r}\right) s˙=1κrlvcos(θxθr) (8)
现在开始计算 l ′ ′ l^{''} l′′
l ′ ′ = d l ′ / d s l^{\prime \prime}=d l^{\prime} / d s l′′=dl/ds

κ = d θ d s \kappa=\frac {d\theta} {ds} κ=dsdθ

v = d s x d t v=\frac{d s_{x}}{d t} v=dtdsx

d θ x d s = d s x d s d θ x d s x \frac{d \theta_x}{d s}=\frac{d s_{x}}{d s} \frac{d \theta_x}{d s_{x}} dsdθx=dsdsxdsxdθx
代入v
d θ x d s = d s x d s d θ x d s x \frac{d \theta_x}{d s}=\frac{d s_{x}}{d s} \frac{d \theta_x}{d s_{x}} dsdθx=dsdsxdsxdθx
代入(8)
d θ x d s = 1 − κ r l cos ⁡ ( θ x − θ r ) d θ x d s \frac{d\theta_x}{d s}=\frac{1-\kappa_{r} l}{\cos \left(\theta_{x}-\theta_{r}\right)} \frac{d \theta_x}{d s} dsdθx=cos(θxθr)1κrldsdθx (9)
用前面(7)式可以得
l ′ ′ = d l ′ d s = d ( 1 − κ r l ) d s tan ⁡ ( θ x − θ r ) + 1 − κ r l cos ⁡ 2 ( θ x − θ r ) d ( θ x − θ r ) d s l^{\prime \prime}=\frac{d l^{\prime}}{d s}=\frac{d\left(1-\kappa_{r} l\right)}{d s} \tan \left(\theta_{x}-\theta_{r}\right)+\frac{1-\kappa_{r} l}{\cos ^{2}\left(\theta_{x}-\theta_{r}\right)} \frac{d\left(\theta_{x}-\theta_{r}\right)}{d s} l′′=dsdl=dsd(1κrl)tan(θxθr)+cos2(θxθr)1κrldsd(θxθr) (10)
第一项
d ( 1 − κ r l ) d s = − ( d κ r l + κ r l ′ ) \frac{d\left(1-\kappa_{r} l\right)}{d s}=-\left(d \kappa_{r} l+\kappa_{r} l^{\prime}\right) dsd(1κrl)=(dκrl+κrl)
由(9)式可知
d ( θ x − θ r ) d s = d θ x d s − d θ r d s = 1 − κ r l cos ⁡ ( θ x − θ r ) d θ x d s x − d θ r d s \frac{d\left(\theta_{x}-\theta_{r}\right)}{d s}=\frac{d \theta_{x}}{d s}-\frac{d \theta_{r}}{d s}=\frac{1-\kappa_{r} l}{\cos \left(\theta_{x}-\theta_{r}\right)} \frac{d \theta_{x}}{d s_{x}}-\frac{d \theta_{r}}{d s} dsd(θxθr)=dsdθxdsdθr=cos(θxθr)1κrldsxdθxdsdθr
根据曲率的定义可知
d θ x d s = κ x , d θ r d s = κ r \frac{d \theta_{x}}{d s}=\kappa_{x}, \frac{d \theta_{r}}{d s}=\kappa_{r} dsdθx=κx,dsdθr=κr

l ′ ′ = − ( d κ r l + κ r l ′ ) tan ⁡ ( θ x − θ r ) + 1 − κ r l cos ⁡ 2 ( θ x − θ r ) ( κ x 1 − κ r l cos ⁡ ( θ x − θ r ) − κ r ) l^{\prime \prime}=-\left(d \kappa_{r} l+\kappa_{r} l^{\prime}\right) \tan \left(\theta_{x}-\theta_{r}\right)+\frac{1-\kappa_{r} l}{\cos ^{2}\left(\theta_{x}-\theta_{r}\right)}\left(\kappa_{x} \frac{1-\kappa_{r} l}{\cos \left(\theta_{x}-\theta_{r}\right)}-\kappa_{r}\right) l′′=(dκrl+κrl)tan(θxθr)+cos2(θxθr)1κrl(κxcos(θxθr)1κrlκr) (11)
s ¨ \ddot {s} s¨ 对(8)求关于时间的导数 v ˙ = a \dot{v}=a v˙=a
解方程可知
a = s ¨ 1 − κ r l cos ⁡ Δ θ + s ˙ cos ⁡ Δ θ ( ( 1 − κ r l ) tan ⁡ Δ θ d Δ θ d s − d κ r l − κ r l ′ ) , Δ θ = θ x − θ r a=\ddot{s} \frac{1-\kappa_{r} l}{\cos \Delta \theta}+\frac{\dot{s}}{\cos \Delta \theta}\left(\left(1-\kappa_{r} l\right) \tan \Delta \theta \frac{d \Delta \theta}{d s}-d \kappa_{r} l-\kappa_{r} l^{\prime}\right), \Delta \theta=\theta_{x}-\theta_{r} a=s¨cosΔθ1κrl+cosΔθs˙((1κrl)tanΔθdsdΔθdκrlκrl),Δθ=θxθr (12)

  • Frenet to Cartesian

相对简单点,这也是一种优势
x = x r − l sin ⁡ θ r y = y r + l cos ⁡ θ r x=x_{r}-l \sin \theta_{r}\\y=y_{r}+l \cos \theta_{r} x=xrlsinθry=yr+lcosθr
由(7)可知
θ x = arctan ⁡ 2 ( l ′ , 1 − κ r l ) + θ r \theta_{x}=\arctan 2\left(l^{\prime}, 1-\kappa_{r} l\right)+\theta_{r} θx=arctan2(l,1κrl)+θr

不过 θ x \theta_{x} θx需要限制

v = s ˙ 2 ( 1 − κ r l ) 2 + l ˙ 2 v=\sqrt{\dot{s}^{2}\left(1-\kappa_{r} l\right)^{2}+\dot{l}^{2}} v=s˙2(1κrl)2+l˙2
κ 和 a \kappa 和 a κa由(11),(12)可得

a = s ¨ 1 − κ r l cos ⁡ Δ θ + s ˙ cos ⁡ Δ θ ( ( 1 − κ r l ) tan ⁡ Δ θ d Δ θ d s − d κ r l − κ r l ′ ) , Δ θ = θ x − θ r a=\ddot{s} \frac{1-\kappa_{r} l}{\cos \Delta \theta}+\frac{\dot{s}}{\cos \Delta \theta}\left(\left(1-\kappa_{r} l\right) \tan \Delta \theta \frac{d \Delta \theta}{d s}-d \kappa_{r} l-\kappa_{r} l^{\prime}\right), \Delta \theta=\theta_{x}-\theta_{r} a=s¨cosΔθ1κrl+cosΔθs˙((1κrl)tanΔθdsdΔθdκrlκrl),Δθ=θxθr

l ′ ′ = − ( d κ r l + κ r l ′ ) tan ⁡ ( θ x − θ r ) + 1 − κ r l cos ⁡ 2 ( θ x − θ r ) ( κ x 1 − κ r l cos ⁡ ( θ x − θ r ) − κ r ) l^{\prime \prime}=-\left(d \kappa_{r} l+\kappa_{r} l^{\prime}\right) \tan \left(\theta_{x}-\theta_{r}\right)+\frac{1-\kappa_{r} l}{\cos ^{2}\left(\theta_{x}-\theta_{r}\right)}\left(\kappa_{x} \frac{1-\kappa_{r} l}{\cos \left(\theta_{x}-\theta_{r}\right)}-\kappa_{r}\right) l′′=(dκrl+κrl)tan(θxθr)+cos2(θxθr)1κrl(κxcos(θxθr)1κrlκr)

可算推完了

sampling

Lattice planner sampling includes:
• Lateral sampling
• Longitudinal sampling
• Time sampling

采样空间
• State space: Those arising from the environment
• Control space: Those arising from vehicle mobility
在这里插入图片描述

• Speed planning

•Formulate lateral planning function l(s) and longitudinal planning function s(t) using polynomials based on the sampling.

•Typically, 4th or 5th order polynomials are used to ensure the smoothness of the path.

在这里插入图片描述

In cruise control (4th order example)
4次多项式拟合,不关注jerk约束,符合实际巡航需要
在这里插入图片描述

• Trajectory planning

拟合多项式

约束函数
在这里插入图片描述

在这里插入图片描述

Constraint variables:
d_0 : initial lateral displacement
sd_0 : initial lateral speed
ssd_0 : initial lateral acceleration
d_1 : sampled lateral displacement
sd_1 : sampled lateral speed
ssd_1 : sampled lateral acceleration

在这里插入图片描述

For every trajectory generated, it needs to be evaluated to check if it violates any constraint and remove it if it does.

代价函数

Objective: to choose a feasible path that is nearest to the static reference path, and at the same time, avoid large speed change to ensure comfortability and stay away from obstacles.
在这里插入图片描述
Longitudinal Objective achievement cost : to choose a feasible path that is nearest to the static reference path.
红灯停,停车线
动态改变代价
在这里插入图片描述
Comfort Objective: to choose a feasible path that is having less jerk
在这里插入图片描述
Centripetal Objective: to choose a feasible path that is having less less centripetal (向心)accel jerk .
在这里插入图片描述
Collision Objective: to choose a path that is furthest from obstacles
在这里插入图片描述
横向偏移cost,一般选择中心线,方便变道,有更多的余量
在这里插入图片描述Lateral Acceleration Objective: to choose a feasible path that is having smoother lane change

Reference

深蓝学院
State Space Sampling of Feasible Motions for High-Performance Mobile Robot Navigation in Complex Environments,Thomas M. Howard, Colin J. Green, and Alonzo Kelly
Frenet坐标推导过程整理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值