关于自动驾驶车辆控制

目录

1. 本文目的

2. 自动驾驶中控制原理

2.1 控制在自动驾驶中的位置

2.2 控制的数据流

3. 汽车控制模型

3.1 汽车运动学模型

3.2 汽车动力学模型

3.3 运动学模型和动力学模型的作用

4. 汽车控制方法

4.1 基于预瞄和PID的控制方法

4.3 基于MPC的控制方法


1. 本文目的

本文主要目的在于解析自动驾驶控制,以及几种典型的应用控制方法,部分方法小编并没有经过实战,若有笔误,请多指出。

2. 自动驾驶中控制原理

2.1 控制在自动驾驶中的位置

如图所示,为一种典型的自动驾驶控制系统,包括感知-定位-规划-控制以及车辆执行器,车辆控制则直接通过CAN与车辆通信,进行对车辆执行器的控制。

2.2 控制的数据流

以车辆在道路自动驾驶为例,说明车辆控制的数据流,首先用户输入起始点,通过导航,输出一条全局的规划路径,在行驶的过程中,通过感知系统,实时检测交通状态,道路的边界,以及道路中的障碍物(动态或静态),输入到规划系统,规划系统根据当前 状态,进行车辆行为决策,计算可行驶区域,构建和搜索可行驶的轨迹,同时结合当前车辆的状态和约束,输出一条平滑可行驶的轨迹给控制系统,【控制系统】则根据输入的目标轨迹,以及当前车辆状态,经过控制算法,计算出当前油门-刹车-转向等车辆执行器的目标值,并将目标数据通过CAN传递给车辆执行器ECU,执行器则根据目标值,来具体控制执行器的动作(如转向EPS,来控制方向盘转动的角度,刹车ABS来控制刹车泵的制动深度等),以上就简单说明了整个自动驾驶中经过控制数据流的部分。

那么控制在其中的作用可以总结为以下两点:

  1. 跟上规划给定的目标轨迹;
  2. 输出目标的控制值给车辆执行器。

3. 汽车控制模型

3.1 汽车运动学模型

所谓的运动学模式,是不考虑车身的受力情况,仅仅考虑车辆运动以及几何关系,以下以自行车模型为例进行说明。

  • β 为汽车侧偏角
  • ψ为汽车航向角
  • X为汽车纵向方向运动
  • Y为汽车横向方向运动
  • δf为前轮转向角

可以得到运动学模型如下:

X' = V cos(ψ+β)

Y' = V sin(ψ+β)

ψ' = V cos(β) (tanδf - tanδr)/(lf+lr)

β  = arctan((lf*tanδr + lr*tanδf ) / (lf + lr))

核心推导过程说明:

  1. 针对三角形OCA 和三角形OCB分别使用正弦定理,得到两等式;
  2. 利用 ψ' = ω = V/R,消除其中的R,以此得到 ψ' 的等式;
  3. X' 和 Y' 以肉眼即可看出;
  4. 其中β角度的计算推导,也是由三角函数中尽量转为tanβ方式即可计算出。

3.2 汽车动力学模型

如上图所示,车辆的y方向受到前后轮胎的摩擦力,同时绕着中心轴做旋转运动,以此根据y方向上的力平衡,以及绕中心轴的力矩平衡,可以得到

  1. m*ay = Fyf + Fyr   (其中ay = y'' + Vx *ψ')
  2. Ix * ψ'' = lf*Fyf - lr*Fy  (注意力的方向)

Fyr和Fyf 与轮胎侧偏角相关,根据如下图可以得到轮胎侧偏角

  1. Fyr = 2 Car (θr) (Car 后轮侧偏刚度 θr 后轮侧偏角)
  2. Fyf = 2 Caf (δ - θvf) 

根据以上几个受力关系,可以推导得到如下的动力学模型:

3.3 运动学模型和动力学模型的作用

利用运动学模型,可以快速的计算出当前车速-航向以及输入的方向盘转角之间的关系;

利用动力学模型,可以进一步获得误差模型或跟踪误差的状态方程,以此计算稳态转向问题。

4. 汽车控制方法

4.1 基于预瞄和PID的控制方法

首先根据规划,会输出一条控制需要的参考运行轨迹。基于预瞄的方法,就是模拟驾驶员,进行横向的预瞄,同时根据当前车辆位置,进行纵向预瞄(若纵向需要位置控制)。

根据横向预瞄结果,获得横向的位置误差以及航向的偏差,进而根据前文提到的车辆模型,基于PID调节控制方向盘或前轮转角;

根据纵向预瞄结果,获得纵向的位置误差,或速度误差,进一步获得加速度控制误差,根据油门刹车与加速度的映射关系,控制油门刹车的量来完成纵向的控制。

4.3 基于MPC的控制方法

MPC典型的控制流

【参考轨迹】:一般规划的轨迹为x y 方向的位置-速度-加速度 甚至jerk

【预测模型】:根据运动学模型,得到如下:

【滚动优化】典型的损失项包括 横向跟踪误差 + 纵向跟踪误差 + 转向误差 +速度误差 + 转角大小损失 + 加速度大小损失 + yawrate 大小损失 + jerk 大小损失 (一般损失的系数是标定量,根据标定量来进行实车调试)

【控制对象】即为油门+刹车+转向

MPC控制的过程为,根据输入轨迹和当前控制状态,预测一段时间内的控制走向,并根据损失函数,计算最优的输出。

4.3 基于Pure Pursuit 轨迹跟踪

纯轨迹跟踪法的思路是,也是把车简化为自行车模型,以后轴为切点,根据规划好的轨迹上的一个点为目标点,车按照一定的圆弧运动,可以让后轴点,经过该目标点。如图所示,以下进行详细的推导。

 

根据上述的运动学模型 可以得到:

                                       \delta = \arctan \frac{L}{R}                      (1)  

其中L为车轴距,R为车辆转动半径。

根据正弦定理,可以得到:

                                 \frac{L_{d}}{\sin 2\alpha } = \frac{R}{sin(pi/2 -\alpha )}            (2)

进而可以得到:

                               \frac{L_{d} }{\sin \alpha } = 2R                                    (3)

将该(3) 带入 (1)综合以上可以得到:

                          \delta = \arctan( \frac{2L\sin \alpha }{L_{d}})                        (4)

引入横向误差 e_{l}  则有

                       \sin \alpha = \frac{e_{l}}{^{L_{d}}}                                             (5)

可以得到

                      R = \frac{l_{d}^{^{2}}}{2 e_{l}}                                                   (6)

通过该式,可以得到横向控制偏差,与选择的前视距离以及转弯半径相关。

Ld为前视距离,一般选择与车速正相关,如 Ld = k * Vx ,因此有:

                  \delta = \arctan( \frac{2L\sin \alpha }{k V_{x}})   

                 \delta = \arctan( \frac{2L e_{l} }{(k V_{x})^{2}}) 

 

  • 15
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值