智能驾驶车辆横向控制算法

基于车辆模型的横向控制方法


1. 简介
1.1. 无人驾驶车辆
1.2. 横向控制和纵向控制
1.3. 横向控制
1.3.1. 无模型横向控制
1.3.2. 基于模型横向控制
2. 基于车辆运动学模型的控制方法
2.1. 车辆运动学模型
2.2. 纯跟踪控制算法
2.3. 后轮反馈控制算法
2.4. 前轮反馈控制算法
3. 基于车辆动力学模型的横向控制
3.1. 车辆线性二自由度动力学模型
3.2. 车辆路径跟踪偏差状态方程的构建
3.3. LQR 横向控制算法的求解
4. 总结


1. 简介
1.1. 无人驾驶车辆


大到类似百度apollo无人车,无人配送车
小到扫地机器人,其实都是无人驾驶车辆
都是一个复杂的软硬件结合系统
其软件算法模块主要包含:感知、定位、轨迹预测、行为决策、运动规划 及 反馈控制 等

在这里介绍和补充的是 反馈控制部分
部分软件实现可参考:个人开源项目 path-following-control

1.2. 横向控制和纵向控制


反馈控制是无人车 最底层 的软件算法模块,包括:

1,横向控制,主要用于车辆方向盘的控制
2,纵向控制,主要用于车辆油门、刹车的控制
两者协同工作以 使无人车按照预定的参考轨迹行驶

其中,横向控制根据上层运动规划输出的 路径、曲率 等信息进行跟踪控制,以减少跟踪误差
同时保证车辆行驶的 稳定性 和 舒适性

1.3. 横向控制


根据横向控制使用车辆模型的不同,可以将其分为两种类型,包括:

无模型 的横向控制方法
基于模型 的横向控制方法


1.3.1. 无模型横向控制


无模型的横向控制即传统的 PID 控制算法
将车辆当前的 路径跟踪偏差 作为输入量
对跟踪偏差进行比例(Proportion)、积分(Integration)和微分(Differentiation)控制得到转向控制量
具体原理可以参考:增量式PID控制的理解和应用

但该算法由于没有考虑车辆本身的特性
因此算法对外界干扰的鲁棒性较差,无法满足车辆在高速行驶过程中的有效控制

1.3.2. 基于模型横向控制


而其中基于模型的方法又可分为:

1,基于车辆 运动学模型 的横向控制方法
2,基于车辆 动力学模型 的横向控制方法

因此,将主要介绍包括:

1,基于车辆运动学模型的纯跟踪控制(Pure Pursuit)算法
2,后轮反馈控制(Rear wheel feedback)

3,前轮反馈控制(Front wheel feedback)算法
4,基于车辆动力学模型的线性二次型调节器(Linear Quadratic Regulator,LQR)控制算法


2. 基于车辆运动学模型的控制方法
2.1. 车辆运动学模型


基于车辆运动学模型的控制方法主要考虑了 车辆的运动学约束对车辆控制的影响

首先了解一下常见的车辆运动学模型:

在这里插入图片描述


平时见到的汽车属于 阿克曼转向,通常可以简化为两轮的自行车模型

在这里插入图片描述

其假设车辆的前后轮均为刚体,只能沿着车轮滚动的方向前进,无侧向滑动

由上述假设可得自行车模型的运动微分方程如下式:

在这里插入图片描述

角速度和角速度的关系:v=ωr,即 ω=v/r,因此这里 其他的比较简单,就不加以说明

2.2. 纯跟踪控制算法


纯跟踪控制算法(Pure Pursuit)是一种典型的横向控制方法
最早由 R. Wallace 在1985年提出,该方法对外界的 鲁棒性 较好

该算法的思想:
基于当前车辆 后轮中心 位置,在参考路径上向{l}_d(自定义)的距离匹配一个预瞄点
假设车辆后轮中心点可以按照一定的转弯半径𝑅 行驶抵达该预瞄点
然后根据 预瞄距离{l}_d , 转弯半径𝑅,车辆坐标系下预瞄点的朝向角𝛼 之间的几何关系来 确定前轮转角

在这里插入图片描述

弧的弧度为2𝛼是因为这个三角形是等腰三角形,边长为𝑅,而其中一个角为 π/2-𝛼
所以这个弧度为 π -(π / 2- 𝛼)* 2 = 2𝛼

如图所示,弧线为经过车辆后轮中心以及预瞄点的圆弧
圆弧的半径𝑅 与 朝向角𝛼和 预瞄距离 {l}_d 有关,其实也就是与({x}_g{y}_g)有关

作一条辅助线d,垂直于𝑅,则:

在这里插入图片描述

根据图中的几何关系,𝑅, 𝛼, 与{l}_d的关系为:

在这里插入图片描述


再作一条辅助线,垂直于{l}_d,则:

在这里插入图片描述

根据图中的几何关系,𝑅, 𝛼, 与{l}_d的关系为:

在这里插入图片描述


2.3. 后轮反馈控制算法


后轮反馈式(Rear wheel feedback)是利用 后轮中心 路径跟踪偏差量 来进行转向控制量计算的方法

在这里插入图片描述

根据运动学方程(2-1)及车辆后轮与参考路径的几何关系
可推导出参考路径坐标系 (𝑠, 𝑙)

Ferent 坐标系下 (𝑠, 𝑒, ψ𝑒) 的变化率为:

在这里插入图片描述

Frenet坐标系使用道路的中心线作为参考线,使用参考线的 切线向量 和 法线向量 建立坐标系
那么基于参考线的位置,就可以使用 纵向距离 和 横向距离 来描述任意位置
同时纵向和横向的速度、加速度、加加速度等信息也更便于计算

对于二次连续可导的参考线,需要设计车身横摆角速度𝜔保证在李亚普洛夫方程下局部渐进收敛:

在这里插入图片描述


对于李亚普洛夫稳定也分为渐进稳定和指数稳定

李亚普洛夫稳定性理论是从能量的观点出发的
系统的能量随着时间的推移不断变化(增加or减少),在有限时间内,系统趋于稳定,能量不再变化
此时,系统的k+1时刻的能量减去k时刻的能量是<0的,即V(k+1)-V(k)<0,V代表能量函数

渐进稳定指对于时变系统,𝛽在条件(1)下独立于时间t1
指数稳定指收敛率是以指数下降

对于后轮反馈式算法,为了保证车辆的李亚普洛夫稳定性,车身横摆角速度𝜔可表示为式(2-10)

在这里插入图片描述

其中, 𝑘ψ 为横摆角偏差反馈控制增益, 𝑘e 为横向位置偏差反馈控制增益

因此,根据运动学方程(2-1),可得到前轮转角𝛿为:

在这里插入图片描述


2.4. 前轮反馈控制算法


前轮反馈控制(Front wheel feedback)又称 Stanley 控制
其核心思想是利用 前轮中心 的 路径跟踪偏差量 对方向盘转向控制量进行计算

在这里插入图片描述

前轮中心横向位置跟踪偏差𝑒 的变化率为:

在这里插入图片描述

式(2-12)中可以看出前轮横向位置偏差的变化率\dot{e} 可以直接通过 前轮转角𝛿 进行控制

当定义\dot{e} = -ke 后,可以保证前轮横向位置偏差𝑒 满足 李亚普洛夫的指数化收敛,即:

在这里插入图片描述

李亚普洛夫指数:在相空间中相互靠近的两条轨线随着时间的推移,按指数分离或聚合的平均变化速率

关于 \arcsin 函数:

在这里插入图片描述

那么对于式(2-13)来说,当 ∣-ke/{v}_f∣>1 时,函数无解

对于有限域内的指数收敛可以放宽到局部指数收敛,从而将前轮转角𝛿 定义为:

在这里插入图片描述

Stanley 前轮反馈控制算法 在变曲率路径且路径连续可导 的条件下,可以满足局部指数收敛特性
但也可以看出该算法不适用于倒车的场景,导致对于自动泊车等工况不适用???(因为路径曲率不连续???)

3. 基于车辆动力学模型的横向控制


基于车辆运动学模型的方法忽略了车辆的动力学特性
因此在 车速过快 或者 曲率变化率过大 的情况下该算法无法满足车辆的 稳定性 控制要求

这里介绍一种典型的基于车辆动力学模型的横向控制方法,包括

车辆线性二自由度动力学模型的构建
车辆路径跟踪偏差状态方程的构建
LQR 横向控制算法的求解


3.1. 车辆线性二自由度动力学模型


对于基于车辆动力学模型的控制方法,首要的工作是对车辆动力学进行建模
由于车辆动力学模型具有强 非线性时变 的特性,因此精确建模整个车辆动力学十分困难

在横向控制中,主要关心的是车辆横向运动特性
通常将车辆动力学模型简化为的二自由度横向动力学模型
假设车身的纵向速度Vx 保持不变, 其横向动力学模型的两个自由度为:

1,横向运动
2,横摆运动
由于精确的二自由度动力学模型是非线性的,为了便于进行实时的跟踪控制计算
通常还需要在精确的二自由度动力学模型基础上进行一些简化近似,得到线性二自由度动力学模型

这里介绍基于 转向小角度 及 轮胎动力学 线性化假设下的车辆线性二自由度动力学模型
下图为车辆为车辆横向动力学坐标系示意图

在这里插入图片描述


假设道路平整(不考虑道路横向的倾斜),且转向角度较小时
则车身𝑦轴方向应用牛顿第二定律可得:

在这里插入图片描述


其中,𝑚是整车质量, {a}_y 是车辆质心处的横向加速度, {F}_y_f{F}_y_r 为地面给前轮胎和后轮施加的横向力
而横向加速度{a}_y 由两部分组成:

1,车辆沿车身𝑦轴横向运动产生的加速度 \dot{y}
 
2,车身横摆运动产生的向心加速度{v}_x\dot{\psi }
因此:

在这里插入图片描述

将(3-2)代入(3-1)可得:

在这里插入图片描述

然后,车辆绕𝑧轴的转矩平衡方程为:

在这里插入图片描述


其中, {l}_f , {l}_r分别是前轮轴和后轮轴到质心的距离

接下来对横向轮胎力{F}_y_f{F}_y_r进行计算
实验结果表明,轮胎侧偏角较小时
地面施加给轮胎的横向力(侧偏力)与轮胎侧偏角成线性关系(侧偏角是车轮速度方向与车轮纵轴的夹角)

在这里插入图片描述

前轮侧偏角为:

在这里插入图片描述


{\theta }_v_f是前轮胎速度方向与车身纵轴的夹角,𝛿为前轮转向角
后轮的侧偏角为:

在这里插入图片描述

{\theta }_v_r是后轮胎速度方向与车身纵轴的夹角

因此,前轮(2个)横向轮胎力为:

在这里插入图片描述

{c} _a_f是前轮侧偏刚度(cornering stiffness)

同样,后轮(2个)横向轮胎力为:

在这里插入图片描述

{c} _a_r是后轮侧偏刚度

计算{\theta }_v_f{\theta }_v_r

在这里插入图片描述


{\theta }_v_f{\theta }_v_r较小时可近似得到:

在这里插入图片描述

将(3-5),(3-6),(3-7),(3-8),(3-11),(3-12)代入(3-3)和(3-4)可得线性二自由度模型的状态方程:

在这里插入图片描述


3.2. 车辆路径跟踪偏差状态方程的构建


有了式(3-13)的系统状态方程之后
就可以分析出在给定的前轮转角输入下,车辆的横向位移、横向速度、横摆角以及横摆角速度的响应

但是横向跟踪控制的目的是为了减小跟踪偏差
需要的状态方程是能够分析在给定的前轮转角下车辆跟踪偏差的响应
因此这些偏差通常是:

1,横向位置偏差{e}_1及横向位置偏差变化率 \dot{​{e}_1}
2,横摆角偏差{e}_2 及横摆角偏差变化率\dot{​{e}_2}
 

在这里插入图片描述

下面介绍具体的转换过程
车辆期望横摆角速度:

在这里插入图片描述

期望的横向加速度为:

在这里插入图片描述

则横向加速度偏差为:

在这里插入图片描述

因此横向位置偏差变化率  (横向速度偏差)为:

在这里插入图片描述

此外,横摆角偏差 𝑒2 为:

在这里插入图片描述

将式(3-16),(3-17),(3-18)代入(3-3),(3-4)化简后可以得到新的状态方程:

在这里插入图片描述


即:

在这里插入图片描述

进一步忽略项之后:

在这里插入图片描述


上式(3-20)就是横向控制所需的路径跟踪偏差状态方程

3.3. LQR 横向控制算法的求解


基于前面推导的路径跟踪偏差系统状态方程(3-20)
就可以分析在前轮转角控制输入𝛿作用下,车辆路径跟踪偏差𝑥的响应特性

期望的响应特性就是 跟踪偏差能够快速、稳定地趋近于零,并保持平衡
同时前轮转角控制输入又尽可能小,这就是一个典型的多目标优化最优控制问题

优化的目标函数可以表示为跟踪过程累计的跟踪偏差累计的控制输入的加权和
如式(3-21)所示:

在这里插入图片描述

其中, 𝑄为半正定的状态加权矩阵, 𝑅为正定的控制加权矩阵
且 𝑄, 𝑅通常取为对角阵

若只是 x 和 δ  做为代价,那么存在x 的正误差被δ 的负误差消除
相反,自身相乘,这样负值也会产生正平方,称这些为二次项

𝑄矩阵元素变大意味着希望跟踪偏差能够快速趋近于零
𝑅矩阵元素变大意味着希望控制输入能够尽可能小

设M是n阶方阵,如果对任何非零向量z,都有zTMz> 0,其中zT 表示z的转置,就称M为正定矩阵

则式(3-21)目标函数中
第一项优化目标 表示跟踪过程路径偏差的累积大小
第二项优化目标表示跟踪过程控制能量的损耗

这样就将横向控制问题转化为一个最优控制问题:
求解最优的前轮转角控制输入 {\delta }^*,使得式(3-21)目标函数 𝐽 可以取极小值

而式(3-21)是一个关于状态变量𝑥和控制输入𝛿的二次型目标函数
对它的优化求解是一个典型的 LQR 最优控制问题

根据 LQR 最优控制理论,对式(3-21)目标函数的优化求解
解出的最优控制规律{\delta }^*  是关于状态变量𝑥的线性函数:

在这里插入图片描述


其中,𝐴d 和 Bd 代表状态方程(3-20)离散化后的𝐴, B1 矩阵, 𝑃是式(3-23)黎卡提方程的解:

在这里插入图片描述

因此,根据式(3-22)可以设计一个状态反馈调节器,通过状态反馈实现闭环最优控制,如图所示

在这里插入图片描述

根据求解的状态反馈调节器增益𝐾,则可以得到最优的状态反馈前轮转角δfb :

在这里插入图片描述

由于在 LQR 状态反馈控制求解过程中没有考虑路径本身的动态变化特性
因此只有式(3-25)的反馈控制输入时 LQR 控制在曲线行驶时会存在稳态误差

稳态误差是系统从一个稳态过渡到新的稳态,或系统受扰动作用又重新平衡后,系统出现的偏差

为了消除该稳态误差, 还需要加上一个前馈控制输入量δff
前馈控制考虑了路径的曲率及车辆的转向不足特性

在这里插入图片描述

其中, {K}_V为不足转向梯度,表征了车辆的转向特性
e2ss 为稳态时的角度跟踪偏差
k3 为𝐾矩阵中的角度偏差反馈控制增益部分

在这里插入图片描述

因此,总的 LQR 前轮转角输入为:

在这里插入图片描述

前馈控制选用原则
1、系统中存在频率高、幅度大、可测量而不可控的扰动时,可选用前馈控制。
2、当控制系统控制通道滞后时间长、反馈控制又不能获得良好效果时,可选用前馈控制。
3、选用前馈控制要符合经济性原则。
4、在决定前馈控制方案后,如静态前馈能满足工艺要求,则不选用动态前馈。
 
前馈-反馈控制系统优点
1、从前馈控制角度看,由于增加了反馈控制,降低了对前馈控制模型精度的要求,并能对没有测量的干扰信号的扰动进行校正。
2、从反馈控制角度看,前馈控制作用对主要干扰及时进行粗调,大大减少反馈控制的负担

前馈控制系统中测量干扰量,反馈控制系统中测量被控变量


4. 总结


本文主要介绍了基于车辆运动学和动力学模型的横向控制算法
从上文对两类方法的分析可以看出,两类方法在应用场景上都存在一定的局限性,并具有较强的互补性
因此在实际使用中,综合使用这些方法会更有效

在这里插入图片描述


无模型的 PID 横向控制算法参数少,简单易用
但是由于没有考虑车辆系统动力学特性及路径本身的动态变化特性,对外界干扰的鲁棒性较差
在高速或曲率较大的弯道场景时,会出现较大的跟踪误差和“画龙”现象
因此,该方法比较适合应用于低速曲率较小的路径跟踪控制场景中

基于运动学模型的横向控制算法中
Pure Pursuit 和 Stanley 前轮反馈算法在中低速场景下,他们的路径跟踪的性能较好

Pure Pursuit 在大的跟踪误差和非连续的路径场景下鲁棒性较好
其控制的关键在于对最佳前向预瞄距离的确定
其中,增大前向预瞄距离将提高车辆控制的稳定性
但随之会带来路径跟踪性能降低及稳态误差增大的后果,表现出转弯内切现象

相比于 Pure Pursuit 算法,Stanley 前轮反馈算法还额外考虑了横摆角偏差
因此在大多数场景下,跟踪性能更佳
然而,由于没有设置前向预瞄,Stanley 算法会出现转向过度的情况
与 Pure Pursuit 和 Stanley 算法相比,后轮反馈控制算法计算更加复杂, 对路径的平滑性要求更高
在中等速度下的跟踪性能及鲁棒性与 Stanley 方法近似
然而在速度较大时,稳态误差也会变大,从而导致控制效果不佳

LQR 算法使用二自由度动力学模型来设计横向控制器
与前述基于运动学模型的几种算法相比,LQR 参数调节更加复杂
其不仅需要获取车辆自身的模型参数
还需要调节LQR 目标函数的 Q,R 矩阵以获得较优的跟踪性能

LQR 算法的优点在于,通过与转向前馈进行有效结合,LQR 能够很好的解决曲线行驶时的稳态跟踪误差
在中等速度曲线行驶时其稳态误差趋近于零,从而极大提升跟踪性能
LQR 非常适用于路径平滑的高速公路及城市驾驶场景,具有较好的车辆高速控制性能

但是,由于模型的固有缺陷,LQR 与前馈控制的结合也无法解决所有跟踪控制问题
由于该方法采用基于简化后的二自由度动力学模型
因此当车辆运动不满足二自由度动力学模型转向小角度,或轮胎动力学线性化的假设条件时
LQR 算法的跟踪性能会大幅降低,从而导致控制失效

5. 展望


综上所述,本文介绍了几种典型横向控制方法,并对各方法的优缺点进行了对比分析,以期在实际应用中为研究者在横向控制方法选择上,提供一定的指导意义。从上述横 向控制方法的对比分析中,可以看出这些方法都存在一定的局限性,其主要原因在于:

1、对车辆运动模型的简化处理。如只考虑车辆的运动学模型或简化为二自由度动力 学模型。
2、未考虑横向和纵向控制的耦合特性。仅仅将横向和纵向独立控制,而并无法将纵 横向控制协同处理、分析,从而限制了横向控制算法的跟踪性能。

根据现有方法的不足,本文作者认为车辆横向控制方法具有以下几个热点:

1、整车动力学的精确建模。虽然线性二自由度车辆模型在轮胎侧偏角较小时能较好 地模拟车辆侧向和横摆运动特性,但当轮胎侧偏角较大时,侧偏角与侧偏力不再呈线性关 系,因此需要对更高自由度的车辆动力学模型进行精确建模。

2、控制模型参数的有效估计。车辆控制模型中参数的不确定性、时变特性及控制算 法调节参数的时变性将极大的影响车辆的控制效果,因此如何快速、准确、有效的对这些 参数进行估计和调节也是横向控制未来研究的重点。

3、基于学习方法的车辆控制策略。随着大量车辆行驶数据的快速有效获取,未来基 于深度学习或者深度强化学习的端到端控制策略将可能成为无人车控制领域新的突破口。

参考: 走进自动驾驶横向控制,你需要这篇超长综述
————————————————
版权声明:本文为CSDN博主「氢键H-H」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32618327/article/details/105048427

  • 63
    点赞
  • 529
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值