自动驾驶控制算法——车辆运动学模型

车辆运动学模型

自行车模型(Bicycle Model)

自行车模型(Bicycle Model)的建立基于如下假设:

  • 不考虑车辆在垂直方向(Z轴方向)的运动,即假设车辆的运动是一个二维平面上的运动;
  • 假设车辆左右侧轮胎在任意时刻都拥有相同的转向角度和转速;这样车辆的左右两个轮胎的运动可以合并为一个轮胎来描述;
  • 假设车辆行驶速度变化缓慢,忽略前后轴载荷的转移;
  • 假设车身和悬架系统都是刚性系统;
  • 假设车辆的运动和转向是由前轮驱动(front−wheel−only)的,即认为车辆的后轮转向角 δ r = 0 \delta_r=0 δr=0.

在这里插入图片描述

其中,O为OA、OB的交点,是车辆的瞬时滚动中心,线段OA、OB分别垂直于两个滚动轮的方向;V为质心车速; β \beta β为质心侧偏角,指车辆速度方向和车身朝向两者间所成的角度; Ψ \Psi Ψ为航向角(Heading Angle),指车身与大地坐标系X轴的夹角。
基于自行车模型(车辆运动学模型),由正弦定理可知:
s i n ( δ f − β ) l f = s i n ( π 2 − δ f ) R (1.1) \frac{sin(\delta_f-\beta)}{l_f} = \frac{sin(\frac{\pi}{2}-\delta_f)}{R} \tag{1.1} lfsin(δfβ)=Rsin(2πδf)(1.1)

s i n ( β − δ r ) l r = s i n ( π 2 + δ r ) R (1.2) \frac{sin(\beta-\delta_r)}{l_r} = \frac{sin(\frac{\pi}{2}+\delta_r)}{R} \tag{1.2} lrsin(βδr)=Rsin(2π+δr)(1.2)
展开上述公式(1)(2)两个公式可得:
s i n δ f c o s β − s i n β c o s δ f l f = s i n δ f R (1.3) \frac{sin\delta_f cos\beta - sin\beta cos\delta_f}{l_f} = \frac{sin\delta_f}{R} \tag{1.3} lfsinδfcosβsinβcosδf=Rsinδf(1.3)

c o s δ r s i n β − c o s β s i n δ r l r = c o s δ r R (1.4) \frac{cos\delta_r sin\beta - cos\beta sin\delta_r}{l_r} = \frac{cos\delta_r}{R} \tag{1.4} lrcosδrsinβcosβsinδr=Rcosδr(1.4)

联立上述(3)(4)两个公式可得:

( t a n δ f − t a n δ r ) c o s β = l f + l r R (1.5) (tan\delta_f - tan\delta_r)cos\beta = \frac{l_f+l_r}{R} \tag{1.5} (tanδftanδr)cosβ=Rlf+lr(1.5)

低速环境下,车辆行驶路径的转弯半径变化缓慢,此时我们可以假设车辆的航向角变化率等于车辆的横摆角速度。则车辆的航向角变化率(横摆角速度)为:

Ψ ˙ = V R (1.6) \dot{\Psi}=\frac{V}{R} \tag{1.6} Ψ˙=RV(1.6)

联立公式(5)(6)可得:

Ψ ˙ = V c o s β l f + l r ( t a n δ f − t a n δ r ) (1.7) \dot{\Psi}=\frac{V cos\beta}{l_f+l_r} (tan\delta_f - tan\delta_r) \tag{1.7} Ψ˙=lf+lrVcosβ(tanδftanδr)(1.7)

因此,在惯性坐标系下,可得车辆运动学模型:

{ X ˙ = V cos ⁡ ( Ψ + β ) Y ˙ = V sin ⁡ ( Ψ + β ) Ψ ˙ = V cos ⁡ β l f + l r ( tan ⁡ δ f − tan ⁡ δ r ) (1.8) \begin{cases} \dot{X} = V\cos(\Psi + \beta) \newline \dot{Y} = V\sin(\Psi + \beta) \newline \dot{\Psi} = \frac{V\cos\beta}{l_f + l_r} (\tan\delta_f - \tan\delta_r) \tag{1.8} \end{cases} X˙=Vcos(Ψ+β)Y˙=Vsin(Ψ+β)Ψ˙=lf+lrVcosβ(tanδftanδr)(1.8)

此模型中有三个输入: δ f \delta_f δf δ r \delta_r δr、V.其中 β \beta β可由公式(3)(4)求得:

β = t a n − 1 ( l f t a n δ r + l r t a n δ f l f + l r ) (1.9) \beta=tan^{-1}(\frac{l_f tan\delta_r + l_r tan\delta_f}{l_f+l_r}) \tag{1.9} β=tan1(lf+lrlftanδr+lrtanδf)(1.9)

阿克曼转向几何(Ackerman turning geometry)

阿克曼转向几何(Ackerman Turning Geometry)是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学。
在单车模型中,将转向时左/右前轮偏角假设为同一角度,虽然通常两个角度大致相等,但实际并不是,通常情况下,内侧轮胎转角更大。如下图所示, δ o \delta_o δo δ i \delta_i δi分别为外侧前轮和内侧前轮偏角,当车辆右转时,右前轮胎为内侧轮胎,其转角 δ i \delta_i δi较左前轮胎转角 δ o \delta_o δo更大。其中 l w l_w lw为轮距,L为轴距,后轮两轮胎转角始终为0°.当以后轴中心为参考点时,转向半径R为下图中 红线 \color{red}红线 红线
在这里插入图片描述

当质心侧偏角 β \beta β很小,且后轮转向角为0时,公式(1.7)可表述为:

Ψ ˙ = 1 R ≈ V L t a n δ f ≈ V L δ f (1.10) \dot{\Psi}=\frac{1}{R} \approx \frac{V}{L} tan\delta_f \approx \frac{V}{L} \delta_f \tag{1.10} Ψ˙=R1LVtanδfLVδf(1.10)

由于内外侧轮胎的转向半径不同,因此有:

δ o = L R + l w 2 \delta_o=\frac{L}{R+\frac{l_w}{2}} δo=R+2lwL

δ i = L R − l w 2 (1.11) \delta_i=\frac{L}{R-\frac{l_w}{2}} \tag{1.11} δi=R2lwL(1.11)

则前轮平均转向角为:

δ = δ o + δ i 2 ≈ L R (1.12) \delta=\frac{\delta_o+\delta_i}{2} \approx \frac{L}{R} \tag{1.12} δ=2δo+δiRL(1.12)

内外轮转角差为:

Δ δ = δ i − δ o = δ 2 l w L (1.13) \Delta \delta=\delta_i-\delta_o=\delta^2 \frac{l_w}{L} \tag{1.13} Δδ=δiδo=δ2Llw(1.13)

因此,两个前轮的转角差与平均转向角的平方成正比。

依据阿克曼转向几何设计的车辆,沿着弯道转弯时,利用四连杆的相等曲柄使内侧轮的转向角比外侧轮大大约2~4度,使四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,让车辆可以顺畅的转弯.

车辆运动学模型小结

上述推导是以质心为参考点,但是工程中一般以后轴中心为参考点,以单车模型为基础建立车辆的运动学模型,其前轮转角为 δ f \delta_f δf,后轮转角 δ r \delta_r δr为0,质心侧偏角 β ≈ 0 \beta \approx 0 β0,车辆后轴中心的坐标为 ( x , y ) (x,y) (x,y),纵向车速为 v v v,航向角(这里也就是横摆角)为 Ψ \Psi Ψ,因此,车辆的状态变量可为 [ x , y , Ψ ] T [x,y,\Psi]^T [x,y,Ψ]T,公式(1.8)可转换车辆运动学模型的状态空间方程形式:

X ˙ = [ x ˙ y ˙ Ψ ˙ ] = [ c o s Ψ sin ⁡ Ψ t a n δ f L ] v (1.14) \dot{X}=\begin{bmatrix} \dot{x} \newline \dot{y} \newline \dot{\Psi} \end{bmatrix}=\begin{bmatrix} cos\Psi \newline \sin\Psi \newline \frac{tan\delta_f}{L} \end{bmatrix} v \tag{1.14} X˙= x˙y˙Ψ˙ = cosΨsinΨLtanδf v(1.14)

基于车辆运动学建立道路-车辆误差模型(线性化)

由车辆运动模型可知,车辆状态变量为 X = [ x , y , Ψ ] T X=[x,y,\Psi]^T X=[x,y,Ψ]T,控制变量取 U = [ v , δ ] T U=[v,\delta]^T U=[v,δ]T,则有车辆状态空间方程(此时为非线性状态空间方程)为:

X ˙ = f ( X , U ) = [ c o s Ψ s i n Ψ t a n δ L ] v (1.15) \dot{X}=f(X,U)=\begin{bmatrix}cos\Psi \newline sin\Psi \newline\frac{tan\delta}{L}\end{bmatrix} v \tag{1.15} X˙=f(X,U)= cosΨsinΨLtanδ v(1.15)

假设参考轨迹点的车辆参考状态和参考控制量为 ( X r e f , U r e f ) (X_{ref},U_{ref}) (Xref,Uref),则车辆在参考点的状态空间方程为:

X r e f ˙ = f ( X r e f , U r e f ) = [ c o s Ψ r e f s i n Ψ r e f t a n δ r e f L ] v r e f (1.16) \dot{X_{ref}}=f(X_{ref},U_{ref})=\begin{bmatrix}cos\Psi_{ref} \newline sin\Psi_{ref} \newline \frac{tan\delta_{ref}}{L}\end{bmatrix} v_{ref} \tag{1.16} Xref˙=f(Xref,Uref)= cosΨrefsinΨrefLtanδref vref(1.16)

对上式在参考点 ( X r e f , U r e f ) (X_{ref},U_{ref}) (Xref,Uref)采用一阶泰勒展开,得到:

X ˙ = X r e f ˙ + d f ( X , U ) d X ∣ ( X r e f , U r e f ) ( X − X r ) + d f ( X , U ) d U ∣ ( X r e f , U r e f ) ( U − U r e f ) (1.17) \dot{X}=\dot{X_{ref}}+\frac{df(X,U)}{dX}|_{(X_{ref},U_{ref})} (X-X_r)+\frac{df(X,U)}{dU}|_{(X_{ref},U_{ref})} (U-U_{ref}) \tag{1.17} X˙=Xref˙+dXdf(X,U)(Xref,Uref)(XXr)+dUdf(X,U)(Xref,Uref)(UUref)(1.17)

其中:

d f ( X , U ) d X ∣ ( X r e f , U r e f ) = [ d f 1 d x d f 1 d y d f 1 d Ψ d f 2 d x d f 2 d y d f 2 d Ψ d f 3 d x d f 3 d y d f 3 d Ψ ] ∣ ( X r e f , U r e f ) = [ 0 0 − v r e f ∗ s i n Ψ r e f 0 0 v r e f ∗ c o s Ψ r e f 0 0 0 ] (1.18) \frac{df(X,U)}{dX}|_{(X_{ref},U_{ref})}= \begin{bmatrix} \frac{df_1}{dx} & \frac{df_1}{dy} & \frac{df_1}{d\Psi} \newline \frac{df_2}{dx} & \frac{df_2}{dy} & \frac{df_2}{d\Psi} \newline \frac{df_3}{dx} & \frac{df_3}{dy} & \frac{df_3}{d\Psi} \end{bmatrix}|_{(X_{ref},U_{ref})} =\begin{bmatrix} 0 & 0 & -v_{ref}*sin\Psi_{ref} \newline 0 & 0 & v_{ref}*cos\Psi_{ref} \newline 0 & 0 & 0 \end{bmatrix} \tag{1.18} dXdf(X,U)(Xref,Uref)= dxdf1dxdf2dxdf3dydf1dydf2dydf3dΨdf1dΨdf2dΨdf3 (Xref,Uref)= 000000vrefsinΨrefvrefcosΨref0 (1.18)

d f ( X , U ) d U ∣ ( X r e f , U r e f ) = [ d f 1 d v d f 1 d δ d f 2 d v d f 2 d δ d f 3 d v d f 3 d δ ] ∣ ( X r e f , U r e f ) = [ c o s Ψ r e f 0 s i n Ψ r e f 0 t a n Ψ r e f L v r e f L ∗ c o s 2 δ r e f ] (1.19) \frac{df(X,U)}{dU}|_{(X_{ref},U_{ref})}= \begin{bmatrix} \frac{df_1}{dv} & \frac{df_1}{d\delta} \newline \frac{df_2}{dv} & \frac{df_2}{d\delta} \newline \frac{df_3}{dv} & \frac{df_3}{d\delta} \end{bmatrix}|_{(X_{ref},U_{ref})} =\begin{bmatrix} cos\Psi_{ref} & 0 \newline sin\Psi_{ref} & 0 \newline \frac{tan\Psi_{ref}}{L} & \frac{v_{ref}}{L*cos^2 \delta_{ref}} \end{bmatrix} \tag{1.19} dUdf(X,U)(Xref,Uref)= dvdf1dvdf2dvdf3dδdf1dδdf2dδdf3 (Xref,Uref)= cosΨrefsinΨrefLtanΨref00Lcos2δrefvref (1.19)

根据上述公式,可知:

X ˙ − X r e f ˙ = [ 0 0 − v r e f ∗ s i n Ψ r e f 0 0 v r e f ∗ c o s Ψ r e f 0 0 0 ] ( X − X r ) + [ c o s Ψ r e f 0 s i n Ψ r e f 0 t a n Ψ r e f L v r e f L ∗ c o s 2 δ r e f ] ( U − U r e f ) (1.20) \dot{X}-\dot{X_{ref}}= \begin{bmatrix} 0 & 0 & -v_{ref}*sin\Psi_{ref} \newline 0 & 0 & v_{ref}*cos\Psi_{ref} \newline 0 & 0 & 0 \end{bmatrix} (X-X_r) + \begin{bmatrix} cos\Psi_{ref} & 0 \newline sin\Psi_{ref} & 0 \newline \frac{tan\Psi_{ref}}{L} & \frac{v_{ref}}{L*cos^2 \delta_{ref}} \end{bmatrix} (U-U_{ref}) \tag{1.20} X˙Xref˙= 000000vrefsinΨrefvrefcosΨref0 (XXr)+ cosΨrefsinΨrefLtanΨref00Lcos2δrefvref (UUref)(1.20)

因此,令误差状态变量为 X ~ \tilde{X} X~,基于运动学的道路-车辆误差状态方程可表示为:

X ~ ˙ = A X ~ + B U ~ (1.21) \dot{\tilde{X}}=A \tilde{X}+B \tilde{U} \tag{1.21} X~˙=AX~+BU~(1.21)

其中:

X ~ ˙ = [ x ˙ − x r e f ˙ y ˙ − y r e f ˙ Ψ ˙ − Ψ r e f ˙ ] , X ~ = [ x − x r e f y − y r e f Ψ − Ψ r e f ] , A = [ 0 0 − v r e f ∗ s i n Ψ r e f 0 0 v r e f ∗ c o s Ψ r e f 0 0 0 ] B = [ c o s Ψ r e f 0 s i n Ψ r e f 0 t a n Ψ r e f L v r e f L ∗ c o s 2 δ r e f ] , U ~ = [ v − v r e f δ − δ r e f ] (1.22) \dot{\tilde{X}}= \begin{bmatrix} \dot{x}-\dot{x_{ref}} \newline \dot{y}-\dot{y_{ref}} \newline \dot{\Psi}-\dot{\Psi_{ref}} \end{bmatrix}, \tilde{X}=\begin{bmatrix} x-x_{ref} \newline y-y_{ref} \newline \Psi-\Psi_{ref} \end{bmatrix}, \newline A=\begin{bmatrix} 0 & 0 & -v_{ref}*sin\Psi_{ref} \newline 0 & 0 & v_{ref}*cos\Psi_{ref} \newline 0 & 0 & 0 \end{bmatrix} B=\begin{bmatrix} cos\Psi_{ref} & 0 \newline sin\Psi_{ref} & 0 \newline \frac{tan\Psi_{ref}}{L} & \frac{v_{ref}}{L*cos^2 \delta_{ref}} \end{bmatrix}, \tilde{U}=\begin{bmatrix} v-v_{ref} \newline \delta-\delta_{ref} \end{bmatrix} \tag{1.22} X~˙= x˙xref˙y˙yref˙Ψ˙Ψref˙ X~= xxrefyyrefΨΨref ,A= 000000vrefsinΨrefvrefcosΨref0 B= cosΨrefsinΨrefLtanΨref00Lcos2δrefvref ,U~=[vvrefδδref](1.22)

其中,参考轨迹点的参考前轮转角 δ r e f \delta_{ref} δref可通过前阿克曼转向原理确定,即 tan ⁡ δ r e f = L R 或 L ∗ k a p p a \tan \delta_{ref}=\frac{L}{R}或L*kappa tanδref=RLLkappa.
基于此误差模型计算出来的控制量 U ~ \tilde{U} U~为变化量,最终的控制量应该为: U = U ~ + U r e f U=\tilde{U}+U_{ref} U=U~+Uref

基于车辆运动学的道路-车辆误差模型的离散化

前向欧拉:

X ~ k + 1 − X ~ k T = X ~ k ˙ = A X ~ k + B U k X ~ k + 1 = ( A ∗ T + I ) X ~ k + B ∗ T U k (1.23) \frac{\tilde{X}_{k+1}-\tilde{X}_k }{T}=\dot{\tilde{X}_k}=A \tilde{X}_k+B U_k \newline \tilde{X}_{k+1}=(A*T+I) \tilde{X}_k+B*T U_k \tag{1.23} TX~k+1X~k=X~k˙=AX~k+BUkX~k+1=(AT+I)X~k+BTUk(1.23)

那么,离散误差状态方程:

X ~ k + 1 = A d X ~ k + B d U k (1.24) \tilde{X}_{k+1}=A_d \tilde{X}_k+B_dU_k \tag{1.24} X~k+1=AdX~k+BdUk(1.24)

其中: A d = ( A ∗ T + I ) , B d = B ∗ T A_d=(A*T+I),B_d=B*T Ad=(AT+I),Bd=BT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值