自动驾驶控制概况

文章目录

  • 1. 第一章行为决策在自动驾驶系统架构中的位置
  • 2. 路径跟踪控制的种类
    • 2.1 基于自行车模型的路径跟踪控制算法
      • 2.1.1 纯跟踪控制(Pure Pursuit)算法
      • 2.1.2 后轮反馈控制算法(Rear wheel feedback)
      • 2.1.3前轮反馈控制算法(Front wheel position based feedback)
    • 2.2 基于运动学模型的轨迹跟踪控制
      • 2.2.1 基于Lyapunov函数的控制
      • 2.2.2 输出反馈线性化控制
    • 2.3 MPC控制
    • 2.4 PID控制
    • 2.5 LQR控制
    • 2.6 滑模控制
  • 参考文献

1. 第一章行为决策在自动驾驶系统架构中的位置

    Claudine Badue[1]等人以圣西班牙联邦大学(UFES)开发的自动驾驶汽车(Intelligent Autonomous Robotics Automobile,IARA)为例,提出了自动驾驶汽车的自动驾驶系统的典型架构。如图所示,自动驾驶系统主要由感知系统(Perception System)和规划决策系统(Decision Making System)组成。感知系统主要由交通信号检测模块(Traffic Signalization Detector,TSD)、移动目标跟踪模块(Moving Objects Tracker,MOT)、定位与建图模块(Localizer and Mapper)等组成。规划决策系统主要由全局路径规划模块(Route Planner)、局部路径规划模块(Path Planner)、行为决策模块(Behavior Selector)、运动规划模块(Motion Planner)、自主避障模块(Obstacle Avoider)以及控制模块(Controller)组成。
在这里插入图片描述

图1-1 自动驾驶系统架构图

    路径跟踪控制在此架构中主要是由控制模块实现。控制模块接收最终由自主避障模块修改的运动计划轨迹,计算并发送相应的控制指令给方向盘、油门和制动器的执行器,以使汽车在现实世界规则允许的情况下执行修改后的轨迹。

2. 路径跟踪控制的种类

    自动驾驶汽车路径跟踪控制算法,主要是控制车辆按照上层路径规划器规划好的路径进行无偏差横纵向控制。目前自动驾驶汽车横向控制算法主要分为两种,包括有模型和无模型的控制方法[2]。无模型横向控制方法即传统的比例-积分-微分控制(Proportional Integral Derivative,PID),另一种是基于模型的横向控制方法,其中根据控制模型的不同,控制器又可分为有基于运动学模型的控制器和基于动力学模型的控制器。

    车辆运动学模型通常将车辆简化为一个质点,即为质点模型;或将车辆的垂直方向移动忽略、将车辆的同车轴的车轮角速度相同、将车辆的朝向简化为前轮的朝向,即简化为自行车模型,基于该模型的控制方法主要有纯跟踪控制(Pure Pursuit)算法、Stanley 控制算法,后轮反馈控制算法(Rear wheel feedback)。该类型控制器通常是通过控制航向角和横向误差来计算转向角,易于实现,但该模型仅适用于不考虑车辆动力学的低速行驶工况,如自动泊车控制系统。如果考虑复杂城市工况和高速交通环境时,则基于运动学模型的控制器的可靠性和鲁棒性并不高,因此就需要引入车辆动力学模型。

     基于车辆动力学模型的控制算法主要有线性二次型调节器(Linear Quadratic Regulator,LQR)、模型预测控制(Model Predictive Control,MPC)、滑模控制(Sliding Model Control,SMC)等,由于其考虑了车辆高速行驶时车身与外界干扰项等多重因素,如轮胎的非线性变化、车辆横摆与侧倾约束、路面曲率变化等,进一步提高了车辆行驶于复杂工况的安全性和可 靠性。目前的车辆动力学模型通常是简化了的二自由度单车模型,其保留了车辆的横摆和侧向运动,在能够准确描述车辆动力学的基础上尽量简化了车辆模型,以减少算法的计算量,确保控制系统的实时性。

2.1 基于自行车模型的路径跟踪控制算法

2.1.1 纯跟踪控制(Pure Pursuit)算法

     纯追踪控制是最早提出的路径跟踪策略之一。由于其易于实现和令人满意的性能,已被证明是车辆控制不可或缺的工具。在DARPA挑战赛中,有多个团队采用了纯追踪的控制算法[3]

     从自行车模型出发,纯跟踪算法以车后轴为切点, 车辆纵向车身为切线, 通过控制前轮转角,使车辆可以沿着一条经过目标路点(goal point)的圆弧行驶,如图2-1所示。

     通过正弦定理求出曲率、偏转角与车轴之间的关系: k = 2 sin ⁡ α l d k = \frac{{2\sin \alpha }}{{{l_d}}} k=ld2sinα式中 l d l_d ld——车辆当前位置到目标路点的距离;
     A Α A——目前车身姿态和目标路点的夹角。在这里插入图片描述

图2-1 纯追踪控制示意图

    前轮的转向角 δ \delta δ 的表达式为: δ = arctan ⁡ ( k L ) \delta = \arctan (kL) δ=arctan(kL)    纯追踪算法控制量的的最终表达式: δ ( t ) = arctan ⁡ ( 2 L sin ⁡ ( α ( t ) l d ) \delta (t) = \arctan (\frac{{2L\sin (\alpha (t)}}{{{l_d}}}) δ(t)=arctan(ld2Lsin(α(t))    为了更好的理解纯追踪控制器的原理,我们定义一个新的量: e l e_l el—— 车辆当前姿态和目标路点在横向上的误差,由此可得夹角正弦: sin ⁡ ( α ) = e l l d \sin (\alpha ) = \frac{{{e_l}}}{{{l_d}}} sin(α)=ldel    圆弧的弧度就可重写为: k = 2 l d 2 e l k = \frac{2}{{l_d^2}}{e_l} k=ld22el    考虑到本质是横向上的跟踪偏差(Cross Track Error, CTE),由上式可知纯追踪控制器其实是一个横向转角的 P P P控制器,其 P P P系数为 2 / ( l d ) 2 2/(l_d)^2 2/(ld)2;这个P控制器受到参数 l d l_d ld(即前视距离)的影响很大,如何调整前视距离变成纯追踪算法的关键;通常来说, l d l_d ld 被认为是车速的函数,在不同的车速下需要选择不同的前视距离。一种最常见的调整前视距离的方法就是将前视距离表示成车辆纵向速度的线形函数,即 l d = k v x l_d = kv_x ld=kvx,那么前轮的转角公式就变成了: δ ( t ) = arctan ⁡ ( 2 L sin ⁡ ( α ( t ) ) k v x ( t ) ) \delta (t) = \arctan (\frac{{2L\sin (\alpha (t))}}{{k{v_x}(t)}}) δ(t)=arctan(kvx(t)2Lsin(α(t)))    通常来说,会使用最大、最小前视距离来约束前视距离,越大的前视距离意味着轨迹的追踪越平滑,小的前视距离会使得追踪更加精确(当然也会带来控制的震荡),如图2-2 所示。

    驾驶员在实际驾驶过程中会观察车辆前方一定距离范围内的道路信息,以获得一定的预见性,提前对车辆进行调整,从而取得良好的控制效果。在路径跟踪过程中,前视距离与车速的大小有直接的关系。当车速较高时,需要较大的前视距离;当车速较低时,较小的前视距离可以达到很好的跟踪精度。在这里插入图片描述

图2-2 前视距离对控制的影响

2.1.2 后轮反馈控制算法(Rear wheel feedback)

    后轮反馈控制是利用后轮中心的跟踪偏差来进行转向控制量计算的方法,最早由Claude Samson[4]提出。如图2-3所示,先找到车辆后轮距离参考轨迹上最近的点。在这里插入图片描述

图2-3 后轮反馈控制示意图

    该点满足的轨迹曲线方程为: s ( t ) = arg ⁡ min ⁡ ∥ ( x r ( t ) , y r ( t ) ) − ( x r e f ( γ ) , y r e f ( γ ) ) ∥ {\rm{ }}s(t) = \arg \min \left\| {({x_r}(t),{y_r}(t)) - ({x_{ref}}(\gamma ),{y_{ref}}(\gamma ))} \right\|{\rm{ }} s(t)=argmin(xr(t),yr(t))(xref(γ),yref(γ))    对该曲线进行求导,得: t ^ = ( ∂ x r e f ∂ s ∣ s ( t ) , ∂ y r e f ∂ s ∣ s ( t ) ) ∥ ( ∂ x r e f ( s ( t ) ) ∂ s , ∂ y r e f ( s ( t ) ) ∂ s ) ∥ {\rm{ }}\hat t = \frac{{\left( {{{\left. {\frac{{\partial {x_{ref}}}}{{\partial s}}} \right|}_{s(t)}}{\rm{,}}{{\left. {\frac{{\partial {y_{ref}}}}{{\partial s}}} \right|}_{s(t)}}} \right)}}{{\left\| {\left( {\frac{{\partial {x_{ref}}\left( {s(t)} \right)}}{{\partial s}},\frac{{\partial {y_{ref}}\left( {s(t)} \right)}}{{\partial s}}} \right)} \right\|}} t^= (sxref(s(t)),syref(s(t))) (sxref s(t),syref s(t))    车辆和切线之间的角度差为: θ t = θ − arctan ⁡ 2 ( ∂ y r e f ( s ( t ) ) ∂ s , ∂ x r e f ( s ( t ) ) ∂ s ) {\rm{ }}{\theta _t} = \theta - {\arctan _2}\left( {\frac{{\partial {y_{ref}}\left( {s(t)} \right)}}{{\partial s}},\frac{{\partial {x_{ref}}\left( {s(t)} \right)}}{{\partial s}}} \right) θt=θarctan2(syref(s(t)),sxref(s(t)))    在Frenet坐标系下, ( s , e , θ e ) (s,e,θ_e) seθe的变化率,如下式所示: s ˙ = v r cos ⁡ ( θ e ) 1 − k ( s ) e , \dot s = \frac{{{v_r}\cos ({\theta _e})}}{{1 - k(s)e}}, s˙=1k(s)evrcos(θe), e ˙ = v r sin ⁡ ( θ e ) , \dot e = {v_r}\sin ({\theta _e}), e˙=vrsin(θe), θ ˙ e = ω − v r k ( s ) cos ⁡ ( θ e ) 1 − k ( s ) e , {{\dot \theta }_e} = \omega - \frac{{{v_r}k(s)\cos ({\theta _e})}}{{1 - k(s)e}}, θ˙e=ω1k(s)evrk(s)cos(θe),式中 s s s——汽车的纵向距离, m m m;
     e e e——汽车和参考路径的横向偏差, m m m;
     θ e θ_e θe——参考路径与汽车的航向偏差, r a d rad rad;
     k ( s ) k(s) k(s)——汽车距离参考路径最近点的曲率;
     v r v_r vr——车速, m / s m/s m/s;
     ω ω ω——汽车横摆角速度, r a d / s rad/s rad/s
    由汽车行驶时的横向偏差和航向偏差可得到 L y a p u n o v Lyapunov Lyapunov方程,如下式所示[5] V ( e , θ e ) = e 2 + θ e 2 {\rm{ }}V(e,{\theta _e}) = {e^2} + {\theta _e}^2 V(e,θe)=e2+θe2    为使李雅普诺夫方程局部渐进收敛, ω ω ω表示为: ω = v r k ( s ) cos ⁡ ( θ e ) 1 − k ( s ) e − ( k θ ∣ v r ∣ ) θ e − ( k e v r sin ⁡ ( θ e ) θ e ) e \omega = \frac{{{v_r}k(s)\cos ({\theta _e})}}{{1 - k(s)e}} - ({k_\theta }\left| {{v_r}} \right|){\theta _e} - \left( {{k_e}{v_r}\frac{{\sin ({\theta _e})}}{{{\theta _e}}}} \right)e ω=1k(s)evrk(s)cos(θe)(kθvr)θe(kevrθesin(θe))e式中 k θ k_{\theta} kθ——横摆角偏差反馈控制增益;
     k e k_e ke——横向位置偏差反馈控制增益。
    由车辆运动学方程可得到转向角 δ δ δ,如下式所示。 δ = arctan ⁡ ( ω L v r ) \delta = \arctan (\frac{{\omega L}}{{{v_r}}}) δ=arctan(vrωL)
     后轮反馈控制算法对路径平滑性要求较高,通过设计车辆横摆角速度,实现李雅普诺夫方程局部渐进收敛,从而实现路径跟踪。在低、中等速度下该算法的跟踪性能以及鲁棒性较好。然而,有时候该算法会出现转向过度的情形,且转角变化幅度大。

2.1.3前轮反馈控制算法(Front wheel position based feedback)

     前轮位置反馈(图2-4),又称作Stanley控制,斯坦福大学参加2005年DARPA时采用了前轮反馈控制算法。其思想是,通过前轮中心的通路跟踪偏差,来计算控制量。

在这里插入图片描述

图2-4 前轮反馈控制示意图

     如下式所示,横向位置误差的时间微分是: e ˙ = v f sin ⁡ ( θ e + δ ) \dot e = {v_f}\sin ({\theta _e} + \delta ) e˙=vfsin(θe+δ)     可以看出它可以直接通过前轮转角控制,所以设: e ˙ = − k e \dot e = - ke e˙=ke     可以使得其快速收敛至零。即可以推导出: v f sin ⁡ ( θ e + δ ) = − k e {v_f}\sin ({\theta _e} + \delta ) = - ke vfsin(θe+δ)=ke δ = arcsin ⁡ ( − k e v f ) − θ e \delta = \arcsin (\frac{{ - ke}}{{{v_f}}}) - {\theta _e} δ=arcsin(vfke)θe     对于有限域内的指数收敛,可以放宽到局部指数收敛,即变成: δ = arcsin ⁡ ( − k e v f ) − θ e \delta = \arcsin (\frac{{ - ke}}{{{v_f}}}) - {\theta _e} δ=arcsin(vfke)θe    该控制器在路径连续可微的条件下,局部指数收敛到汽车到曲率变化的路径。这种控制律的缺点是在 ∣ k e / v f ∣ > 1 |k_e/v_f | > 1 ke/vf>1时没有定义它,同时倒车比较差,不适合泊车场景。

     Brian Paden[3]对上述三种控制器进行了对比,表2-1是三种控制器的参数设置,图2-5是三种控制器的控制效果。可以看出,三种控制器对于较平滑的路段,控制效果良好,但遇到曲率较大的路径,纯追踪控制会出现较大的偏离,后两种算法控制效果比纯追踪控制好,但是只适用于道路连续可微的条件。

表2-1三种控制器的参数设置

在这里插入图片描述
在这里插入图片描述

图2-5三种控制器的控制效果 (a)纯追踪控制.(b)后轮反馈控制.(c)前轮反馈控制.

2.2 基于运动学模型的轨迹跟踪控制

2.2.1 基于Lyapunov函数的控制

    基于控制 L y a p u n o v Lyapunov Lyapunov函数的控制设计是在固定到汽车的坐标系中定义跟踪误差。配置误差可以通过使用参考轨迹的惯性坐标系的基础变化和速度 ( x r e f , y r e f , θ r e f , v r e f , ω r e f ) (x_{ref},y_{ref},θ_{ref},v_{ref},ω_{ref}) xrefyrefθrefvrefωref来表示: ( x e y e θ e ) = ( cos ⁡ ( θ ) sin ⁡ ( θ ) 0 − sin ⁡ ( θ ) cos ⁡ ( θ ) 0 0 0 1 ) ( x r e f − x r y r e f − y r θ r e f − θ r ) \left( {\begin{array}{ccccccccccccccc}{{x_e}}\\{{y_e}}\\{{\theta _e}}\end{array}} \right) = \left( {\begin{array}{ccccccccccccccc}{\cos (\theta )}&{\sin (\theta )}&0\\{ - \sin (\theta )}&{\cos (\theta )}&0\\0&0&1\end{array}} \right)\left( {\begin{array}{ccccccccccccccc}{{x_{ref}} - {x_r}}\\{{y_{ref}} - {y_r}}\\{{\theta _{ref}} - {\theta _r}}\end{array}} \right) xeyeθe = cos(θ)sin(θ)0sin(θ)cos(θ)0001 xrefxryrefyrθrefθr     配置误差的动态变化,可得: x ˙ e = ω y e − v r + v r e f cos ⁡ ( θ e ) {{\dot x}_e} = \omega {y_e} - {v_r} + {v_{ref}}\cos ({\theta _e}) x˙e=ωyevr+vrefcos(θe) y ˙ e = − ω x e + v r e f sin ⁡ ( θ e ) {{\dot y}_e} = - \omega {x_e} + {v_{ref}}\sin ({\theta _e}) y˙e=ωxe+vrefsin(θe) θ ˙ e = ω r e f − ω {{\dot \theta }_e} = {\omega _{ref}} - \omega θ˙e=ωrefω    其中控制分配为: v r = v r e f cos ⁡ ( θ e ) + k 1 x e {v_r} = {v_{ref}}\cos ({\theta _e}) + {k_1}{x_e} vr=vrefcos(θe)+k1xe ω = ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) ) \omega = {\omega _{ref + }}{v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e})) ω=ωref+vref(k2ye+k3sin(θe))    闭环误差动态变化即为: x ˙ e = ( ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) ) ) y e − k 1 x e {{\dot x}_e} = ({\omega _{ref + }}{v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e}))){y_e} - {k_1}{x_e} x˙e=(ωref+vref(k2ye+k3sin(θe)))yek1xe y ˙ e = − ( ω r e f + v r e f ( k 2 y e + k 3 sin ⁡ ( θ e ) x e + v r e f sin ⁡ ( θ e ) {{\dot y}_e} = - ({\omega _{ref}} + {v_{ref}}({k_2}{y_e} + {k_3}\sin ({\theta _e}){x_e} + {v_{ref}}\sin ({\theta _e}) y˙e=(ωref+vref(k2ye+k3sin(θe)xe+vrefsin(θe) θ ˙ e = ω r e f − ω {{\dot \theta }_e} = {\omega _{ref}} - \omega θ˙e=ωrefω    对于 k 1 , 2 , 3 > 0 k_{1,2,3} > 0 k1,2,3>0, ω ˙ r e f {\dot \omega _{ref}} ω˙ref= 0且 v ˙ r e f {\dot v _{ref}} v˙ref = 0 的情况,其稳定性通过以下 L y a p u n o v Lyapunov Lyapunov方程验证。 V = 1 2 ( x e 2 + y e 2 ) + ( 1 − cos ⁡ ( θ e ) ) k 2 V = \frac{1}{2}(x_e^2 + y_e^2) + \frac{{(1 - \cos ({\theta _e}))}}{{{k_2}}} V=21(xe2+ye2)+k2(1cos(θe))    其中半负定时间导数为: V ˙ = − k 1 x e 2 − v r e f k 3 sin ⁡ 2 ( θ e ) k 2 \dot V = - {k_1}x_e^2 - \frac{{{v_{ref}}{k_3}{{\sin }^2}({\theta _e})}}{{{k_2}}} V˙=k1xe2k2vrefk3sin2(θe)    局部分析表明,该控制法则提供了局部指数稳定性。但是,对于时不变系统, ω r e f ω_{ref} ωref v r e f v_{ref} vref是常数。

2.2.2 输出反馈线性化控制

    对更高车速的车辆,把转向角限制为连续运动是合适的。添加该状态后,从简单的几何考虑设计控制器变得更加困难。这种情况下,一个不错的选择是对系统进行输出线性化。

    使用前轮或后轮位置不容易实现这一点。一种简化的反馈线性化,选择车辆前方任意距离不是零的点,与转向角对齐。

    将系统的输出记为 x p = x f + d c o s ( θ + δ ) 和 y p = y f + d s i n ( θ + δ ) x_p = x_f + dcos(θ+δ)和y_p = y_f + dsin(θ+δ) xp=xf+dcos(θ+δ)yp=yf+dsin(θ+δ)。 用输出的导数代替前面微分方程的动力学模型,输出反馈线性化控制的控制率如下式所示: x ˙ p = x ˙ p , r e f + k x ( x p , r e f − x p ) {{\dot x}_p} = {{\dot x}_{p,ref}} + {k_x}({x_{p,ref}} - {x_p}) x˙p=x˙p,ref+kx(xp,refxp) y ˙ p = y ˙ p , r e f + k x ( y p , r e f − y p ) {{\dot y}_p} = {{\dot y}_{p,ref}} + {k_x}({y_{p,ref}} - {y_p}) y˙p=y˙p,ref+kx(yp,refyp)

2.3 MPC控制

    模型预测控制(Model predictive control,MPC)从上世纪70年代问世以来,已经从最初在工业过程中应用的启发式控制算法发展成为一个具有丰富理论和实践内容的新的学科分支。预测控制针对的是有优化需求的控制问题,30多年来预测控制在复杂工业过程中所取得的成功,已充分显现出其处理复杂约束优化控制问题的巨大潜力[6]

    MPC 控制是一种实时的闭环优化控制方法,该算法的优点主要是反复在线进行,能够不断获取当前最优控制量,且可以通过建立目标函数来满足车辆执行机构、侧滑和动力学等多约束条件。但其跟踪性能对预测模型的精度很敏感,且由于非线性模型预测控制对计算性能的高要求,使其不适合高速驾驶环境。目前许多研究者都将非线性车辆模型进行了线性化处理,但其只能保证控制器在车辆和轮胎的线性区域的跟踪精度。

    MPC控制器也叫做滚动时域控制器,该控制器考虑控制系统的非线性动力学模型并预测未来一段时间内系统的输出行为,通过求解带约束的最优控制问题,使得系统在未来一段时间内的跟踪误差最小,这种方法鲁棒性较强[7]。模型预测控制算法具备预测模型、滚动优化和反馈校正基本特征。传统的研究方法往往忽略或者简化了运动学约束以及动力学约束,而这类约束对于控制性能有着显著影响。模型预测控制方法能够通过优化目标函数显式地将车辆运动学和动力学约束纳入考虑。使用MPC的滚动优化和反馈校正特性,能够有效降低甚至消除闭环系统时滯问题所带来的影响,并能够结合规划所给出的未来轨迹信息对运动控制进行优化,提升控制性能。

    佛罗里达大学在2005年DARPA挑战赛中,也同样使用了MPC作为控制策略[8]。他们团队的车辆NaviGATOR实现了实时规划和控制,并应用了一种创新的基于启发式的后退水平控制器。该后退水平控制器是模型预测控制(MPC)的一种形式,是一种先进的控制技术,用于解决复杂和受约束的优化问题。

    Wang Weiran等人[9]设计了一种基于拉盖尔函数的自适应预测控制方法。该方法包括两部分:一是用于精确跟踪轨迹的自适应MPC模块;另一种是拉盖尔函数模块,用于显著减少计算。在自适应MPC模块中,引入递归最小二乘算法对系统的模型参数进行识别,以提高系统的精度和鲁棒性。然而,当AUV在复杂的环境中工作时,这种方法可能会导致计算量的大量增加。因此,在拉盖尔函数中,引入控制器输入变量的重构来降低目标函数的矩阵阶。结果表明,该方法在计算量较少的AUV跟踪轨迹时,在动态、抗干扰和鲁棒性等方面都具有良好的性能。在这里插入图片描述

图2-6 自适应MPC方框图

    Paden[3]对纯追踪算法、前轮反馈控制、后轮反馈控制、基于Lyapunov函数的控制、输出反馈线性化控制以及MOC控制从稳定性、时间复杂度、使用模型以及假设使用前提作出了总结,如表2-2所示。

表2-2 多种控制器的总结 Legend* : 局部指数稳定性(local exponential stability ,LES)

在这里插入图片描述

2.4 PID控制

    PID控制又称比例-积分-微分控制器。在自动驾驶汽车跟踪控制中,该算法主要是对车辆反馈的车辆位姿等信息做偏差处理,并通过比例、积分、微分进行线性组合构成控制量,从而对被控对象进行控制。该算法由于无需建立精确模型,算法简单易实现,广泛应用于各工业领域,但其参数调整比较困难,因此有许多学者将现代智能化算法如模糊控制、神经网络控制等算法与 PID算法进行结合,简化了控制器参数调整过程。

    王纪伟等人[10]提出了一种基于模糊免疫比例积分微分 (PID) 的控制方法。通过比较车辆实际行驶路径与期望路径的侧向偏差, 模糊免疫比例路径跟踪控制器控制转向机械手操纵方向盘。通过计算期望车速与实际车速的偏差, 模糊免疫PID速度跟踪控制器控制制动/油门机械腿分别操纵制动/油门踏板。通过引入车速反馈不断更新汽车的侧向加速度增益, 实现了车辆转向控制与纵向车速控制的解耦。

    高志伟等人[11]提出了一种综合考虑平衡控制和位置/方向随动控制LQR-PID混合最优控制器,引入位置角与转向角偏差的积分项,通过LQR最优算法优化PID参数,改善了系统的动态性能,使小车具有良好的轨迹跟踪性能的同时能量消耗最少。仿真实验表明该算法能使平衡小车在保持动态平衡的前提下对指定轨迹进行的良好跟踪,具有较快的动态响应速度,对干扰具有良好的鲁棒性。

    ZuñigaPeña等人[12]提出了一个新的非线性数学模型,该模型包含牛顿-欧拉公式中的气动力矩和力,并确定了应用于补偿PD和PID控制参数优化的元启发式算法,以跟踪无人机的轨迹。

    Shu-ping Chen等人[13]提出了一种基于MPC模型预测控制和PID速度控制的自主车辆路径跟踪方法。对于横向控制,MPC控制器产生一系列最佳车轮转向角;对于纵向控制,总车轮扭矩由嵌入MPC框架中的PID速度控制器产生。仿真试验结果表明,该控制器对车辆横向和纵向位置的跟踪误差较小,对轨迹和速度的跟踪性能良好。

2.5 LQR控制

    LQR控制器是一种多目标最优控制,能够使系统在被控时间内,寻求最优控制率减小目标函数以达到最优控制效果,即以较小的控制量和代价使系统稳定达到目标状态。该控制算法易于设计,但在曲率变化较大的路段进行跟踪控制时,会使得跟踪误差变大而导致跟踪失败,因此往往需要结合其他控制算法如前馈控制来进行无误差跟踪。

    孟宇等人[14]针对铰接式车辆的特殊转向结构和行驶特性,为提高其路径跟踪控制精度和反应速度,提出了一种基于预见信息的线性二次型最优控制(Linear quadratic regulator,LQR)策略,并应用遗传算法(Genetic algorithm,GA)对状态量权重矩阵进行优化求解,获得最优LQR状态反馈控制器,实现铰接式车辆精确路径跟踪控制,由位置偏差、行驶方位偏差和曲率偏差来反映控制效果。结果表明,所提出的控制方法可有效提高控制精度,实现铰接式车辆的精确、稳定路径跟踪。在这里插入图片描述

图2-7 对于基于铰链车模型的路径跟踪控制系统

    Yu Haoxuan等人 [15]结合不同的智能聚类算法,对LQR控制器的参数进行优化,寻找LQR控制器的最优解。Fan Zhengshuai等人 [16]提出了一种基于线性二次型调节器(LQR)的路径跟踪控制方法。首先,对非线性车辆运动学模型进行线性化,建立路径跟随误差的线性系统。其次,利用LQR最优控制实现该线性系统的闭环控制,以保证其稳定性和快速收敛性。在此过程中,通过矩阵Q和r平衡状态变量和输入的权重,可以得到LQR的最优二次型性能指标,因此可以方便地调整和标定控制参数。

2.6 滑模控制

    滑模控制(SMC)又称滑模变结构控制,是一种典型的非线性反馈控制方法,具有很强的抗不确定性扰动能力。通过设计合适的滑动模态,可以迫使系统快速按照预定的状态轨迹运行,具有鲁棒闭环性能。滑模控制的缺点主要是其不连续的开关特性将会引起抖动,降低控制系统抖动是目前该领域的研究热点与难点。

    姜立标等人[17]提出基于B样条曲线的路径规划算法和基于趋近律的非时间参考终端滑模路径跟踪控制算法。首先,对车辆的运动过程进行研究,建立车辆的运动学模型。其次,基于B样条曲线理论建立非线性约束平行泊车路径优化函数,并分析车辆运动学约束条件。然后,结合非时间参考路径跟踪控制和终端滑模控制方法,提出基于趋近律的非时间参考终端滑模路径跟踪控制方法。

    牛雪梅等人[18]提出一种加权增益趋近律算法,在该趋近律的积分项中引入负的加权值,可有效避免当系统状态不在滑模切换时的切换增益的增大,使得控制器输出量平滑,并利用Lyapunov函数证明了其稳定性,并采用该文所设计的基于加权积分增益趋近律的滑模控制器对喷药移动机器人进行路径跟踪控制。

参考文献

[1]C. Badue, et al. Self-driving cars: A survey[J]. Expert Systems with Applications, 2021, 165.
[2] 化祖旭.自动驾驶汽车路径跟踪控制算法综述[J].装备制造技术,2021(06):100-103.
[3] Brian Paden,Michal Cáp,Sze Zheng Yong,Dmitry S. Yershov,Emilio Frazzoli. A Survey of Motion Planning and Control Techniques for Self-Driving Urban Vehicles.[J]. IEEE Trans. Intelligent Vehicles,2016,1(1).
[4] C. Samson, Path following and time-varying feedback stabilization of a wheeled mobile robo[J]t. in 2nd Int. Conf. on Automation, Robotics and Computer Vision, 1992.
[5] 冀同涛,李刚,王明家,任建平.基于前馈和反馈相结合的路径跟踪算法[J].汽车工程师,2019(07):19-22.
[6] 席裕庚,李德伟,林姝.模型预测控制——现状与挑战[J].自动化学报,2013,39(03):222-236.
[7] 孙银健. 基于模型预测控制的无人驾驶车辆轨迹跟踪控制算法研究[D].北京理工大学,2015.
[8] M. Buehler, K. Iagnemma, and S. Singh. The 2005 DARPA Grand Challenge: The great robot race[J]. vol. 36. Springer Science & Business Media, 2007.
[9] Wang Weiran,Yan Jinghao,Wang Hui,Ge Huilin,Zhu Zhiyu,Yang Guanjun. Adaptive MPC trajectory tracking for AUV based on Laguerre function[J]. Ocean Engineering,2022,261.
[10]王纪伟,陈刚,汪俊.基于模糊免疫PID的驾驶机器人车辆路径及速度跟踪控制[J].南京理工大学学报,2017,41(06):686-692.DOI:10.14177/j.cnki.32-1397n. 2017.41.06.004.
[11]高志伟,代学武.自平衡小车LQR-PID平衡与路径跟踪控制器设计[J].控制工程,2020,27(04):708-714.DOI:10.14107/j.cnki.kzgc.170776.
[12]ZuñigaPeña Nadia Samantha,HernándezRomero Norberto,SeckTuohMora Juan Carlos,MedinaMarin Joselito,BarraganVite Irving. Improving 3D Path Tracking of Unmanned Aerial Vehicles through Optimization of Compensated PD and PID Controllers[J]. Applied Sciences,2021,12(1).
[13]Shu-ping Chen,Guang-ming Xiong,Hui-yan Chen,Dan Negrut. MPC-based path tracking with PID speed control for high-speed autonomous vehicles considering time-optimal travel[J]. Journal of Central South University,2020(prepublish).
[14]孟宇,汪钰,顾青,白国星.基于预见位姿信息的铰接式车辆LQR-GA路径跟踪控制[J].农业机械学报,2018,49(06):375-384.
[15]Yu Haoxuan,Zhao Chenxi,Li Shuai,Wang Zijian,Zhang Yulin. Pre-Work for the Birth of Driver-Less Scraper (LHD) in the Underground Mine: The Path Tracking Control Based on an LQR Controller and Algorithms Comparison[J]. Sensors,2021,21(23).
[16]Fan Zhengshuai,Chen Hui. Study on Path Following Control Method for Automatic Parking System Based on LQR[J]. SAE International Journal of Passenger Cars - Electronic and Electrical Systems,2016,10(1).
[17]姜立标,杨杰.基于滑模控制的自动泊车系统路径跟踪研究[J].农业机械学 报,2019,50(02):356-364.
[18]牛雪梅,高国琴,鲍智达,周海燕.基于滑模变结构控制的温室喷药移动机器人路径跟踪[J].农业工程学报,2013,29(02):9-16.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

防火墙 NAT地址转换

网络地址转换(NAT)是一种用于访问Internet访问模式广域网(WAN)的技术,用于将私有(保留)地址转换为合法IP地址。NAT不仅能够有效地额抵抗外部网络攻击,还能够在IP地址分配不理想&…

Windows权限提升—令牌窃取、UAC提权、进程注入等提权

Windows权限提升—令牌窃取、UNC提权、进程注入等提权1. 前言2. at本地命令提权2.1. 适用范围2.2. 命令使用2.3. 操作步骤2.3.1. 模拟提权2.3.2. at配合msf提权2.3.2.1. 生成木马文件2.3.2.2. 设置监听2.3.2.3. 设置反弹2.3.2.4. 查看反弹效果3. sc本地命令提权3.1. 适用范围3.…

瑟瑟发抖吧——用了这款软件,我的开发效率提升了50%

一、前言 开发中,一直听到有人讨论是否需要重复造轮子,我觉得有能力的人,轮子得造。但是往往开发周期短,用轮子所节省的时间去更好的理解业务,应用到业务中,也能清晰发现轮子的利弊,一定意义上…

Warshall算法

🚀write in front🚀 📜所属专栏:> 算法 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我…

树莓派Linux源码配置,树莓派Linux内核编译,树莓派Linux内核更换

目录 一 树莓派Linux的源码配置 ① 内核源码下载说明 ② 三种方法配置源码 二 树莓派Linux内核编译 ① 内核编译 ② 编译时报错及解决方案(亲测) 三 更换树莓派Linux内核 操作步骤说明 ● dmesg报错及解决方案(亲测&#xff0…

算法刷题笔记

特定方法 KMP算法:字符串匹配 逆波兰表达式:计算值 斐波那契数:动态规划 强制类型转换:整型->字符串:to_string,字符串->整型:stoi 一、数组 数组:下标从0开始,内存…

蓝桥杯嵌入式--LCD屏幕使用提升

前言之前在专栏里已经介绍过LCD相关库文件的移植,今天来介绍一下对于LCD屏幕的使用技巧。屏幕基本配置与函数一、屏幕初始化使用lcd前的必要步骤就是对LCD屏幕进行初始化操作,这也是一个容易忘记的操作。LCD_Init();\\使用lcd前的必要步骤就是对LCD屏幕进…

蓝桥杯倒计时 | 倒计时17天

作者🕵️‍♂️:让机器理解语言か 专栏🎇:蓝桥杯倒计时冲刺 描述🎨:蓝桥杯冲刺阶段,一定要沉住气,一步一个脚印,胜利就在前方! 寄语💓&#xff1a…

将一段数字转为字符串

将一段数字转为字符串 string turn(long long x){string str;while(x){int tx%10;// 数字0的ascii码为48&#xff01;char ct48;strc;// string类拼接方式x/10;}reverse(str.begin(),str.end()); // 不要忘了反转字符串return str; }例: #include<iostream> #include&l…

使用VS Code 配置Ubuntu远程C++开发环境

使用VS Code 配置Ubuntu远程C开发环境 环境准备 VS CodeWSL Ubuntu 虚拟机 配置步骤 在Ubuntu 中配置ssh远程登录 Ubuntu 配置远程登录 VsCode 安装 Remote-ssh 插件 打开vscode ssh configure ,填入相关信息 ​ Host : 主机名称&#xff0c;在左侧列表中显示的名称 ​ …

【Linux】[万字] Linux下的文件操作 及 Linux文件描述符fd 详解

在Linux操作系统中, 文件描述符是一个至关重要的概念. 理解了文件描述符, 其实就可以相当于理解了Linux系统的关于内存文件系统的整个大致框架和逻辑 但是在介绍文件描述符之前, Linux关于文件还存在许多 概念和文件操作 的知识需要介绍一下, 就当作是为解释文件描述符所做的…

IDEA连接Linux服务器进行文件操作

IDEA连接Linux服务器进行文件操作 文章目录IDEA连接Linux服务器进行文件操作连接的作用和意义安装openssh开启openssh服务验证是否开启服务安装网络工具包查看虚拟机IP地址Idea连接Linux虚拟机打开配置页面配置SFTP配置SSH完成后出现的配置文件安装big data tools插件连接的作用…

【RV1126】调试GT911,1024x600 7寸 MIPI 电容触摸屏

文章目录一、驱动注册失败二、触摸屏可以触摸&#xff0c;但是x轴数据反了三、可以触摸了&#xff0c;但是Y轴数据跳变&#xff0c;几乎只有一半的屏幕是可以正常滑动的三、汇顶触摸屏配置文件解析四、使用新的配置文件4.1 新配置解决问题4.2 测试触摸的方法在kernel增加frame …

【学习经验分享NO.21】学习资料分享(持续更新)

本博客将收集整理人工智能深度学习相关资料&#xff0c;进行整理&#xff0c;供大家学习使用。如果有需要帮忙整理的请留言。将不断更新&#xff0c;请持续关注。 一、深度学习论文资料 链接&#xff1a;https://pan.baidu.com/s/18LO5df0dp9-IE8Z3aFyrPg 提取码&#xff1a;c…

记录springboot+vue+fastdfs实现简易的文件(上传、下载、删除、预览)操作

前言说明&#xff1a;springboot vue FastDFS实现文件上传&#xff08;支持预览&#xff09;升级版 FASTDFS部分 FASTDFS安装过程&#xff1a;基于centos 7安装FastDFS文件服务器 SpringBoot部分 springboot源码实现 package com.core.doc.controller;import com.baomid…

【多线程】CAS

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; 目 录&#x1f40d;一. 什么是 CAS&#x1f98e;二. CAS 是怎么实现的&#x1f996;三. CAS 典型应用场景&#x1f436;1. 实现原子类&#x1f431;2. 实现自旋锁&#x1f995;四. …

进程间通信----信号量

文章目录信号量1. 问题2. 什么是信号量3. 信号量的使用4. 信号量的控制6. 实例信号量 1. 问题 程序中&#xff0c;有时存在一种特殊代码&#xff0c;最多只允许一个进程执行该部分代码。这部分区域&#xff0c;称为“临界区” 然而在多进程并发执行时&#xff0c;当一个进程进…

Pseudo-completeness(前中序遍历确定后序遍历)

题目链接&#xff1a;题目详情 - 7-16 Pseudo-completeness (pintia.cn) 样例1输入&#xff1a; 7 4 2 5 1 6 3 7 1 2 4 5 3 6 7样例1输出&#xff1a; 1 4 5 2 6 7 3 1样例2输入&#xff1a; 10 8 4 9 2 10 5 1 6 3 7 1 2 4 8 9 5 10 3 6 7样例2输出&#xff1a; 2 8 9 4…

启动容器(后台模式)

使用以下命令创建一个以进程方式运行的容器 rootLAPTOP-B38J348H:~# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world ; sleep 1; done" 在输出中&#xff0c;我们没有看到期望的 "hello world"&#xff0c;而是一串长字符 f7…

IDEA的全新UI可以在配置里启用了,快来试试吧!

刚看到IDEA官方昨天发了这样一条推&#xff1a;IDEA的新UI可以在2022.3版本上直接使用了&#xff01;开启方法如下&#xff1a;打开IDEA的Setting界面&#xff0c;在Appearance & Behavior下有个被标注为Beta标签的New UI菜单&#xff0c;具体如下图&#xff1a;勾选Enable…