关于自动驾驶车辆控制
目录
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来控制刹车泵的制动深度等),以上就简单说明了整个自动驾驶中经过控制数据流的部分。
那么控制在其中的作用可以总结为以下两点:
- 跟上规划给定的目标轨迹;
- 输出目标的控制值给车辆执行器。
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))
核心推导过程说明:
- 针对三角形OCA 和三角形OCB分别使用正弦定理,得到两等式;
- 利用 ψ' = ω = V/R,消除其中的R,以此得到 ψ' 的等式;
- X' 和 Y' 以肉眼即可看出;
- 其中β角度的计算推导,也是由三角函数中尽量转为tanβ方式即可计算出。
3.2 汽车动力学模型
如上图所示,车辆的y方向受到前后轮胎的摩擦力,同时绕着中心轴做旋转运动,以此根据y方向上的力平衡,以及绕中心轴的力矩平衡,可以得到
- m*ay = Fyf + Fyr (其中ay = y'' + Vx *ψ')
- Ix * ψ'' = lf*Fyf - lr*Fy (注意力的方向)
Fyr和Fyf 与轮胎侧偏角相关,根据如下图可以得到轮胎侧偏角
- Fyr = 2 Car (θr) (Car 后轮侧偏刚度 θr 后轮侧偏角)
- 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 轨迹跟踪
纯轨迹跟踪法的思路是,也是把车简化为自行车模型,以后轴为切点,根据规划好的轨迹上的一个点为目标点,车按照一定的圆弧运动,可以让后轴点,经过该目标点。如图所示,以下进行详细的推导。
根据上述的运动学模型 可以得到:
(1)
其中L为车轴距,R为车辆转动半径。
根据正弦定理,可以得到:
(2)
进而可以得到:
(3)
将该(3) 带入 (1)综合以上可以得到:
(4)
引入横向误差 则有
(5)
可以得到
(6)
通过该式,可以得到横向控制偏差,与选择的前视距离以及转弯半径相关。
Ld为前视距离,一般选择与车速正相关,如 Ld = k * Vx ,因此有:
关于自动驾驶车辆控制相关推荐
- 自动驾驶车辆控制测评标准
自动驾驶中,车辆控制是基础,以什么指标来测评就显的很关键,以下是Apollo 车辆控制评测分析指标,可以在此基础上做裁剪,来满足自己自动驾驶车辆控制的需求. 序号 参数 名称 说明 平均控制性能相关参 ...
- 自动驾驶车辆控制(车辆运动学模型)
本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用. 文章目录 1. 两个车辆运动学模型 1.1 三个坐标系 1.2符号定义 1.3车辆运动学模型 1.4车辆动力 ...
- 自动驾驶车辆控制(坐标转换与横向积分误差)
文章目录 前言 一. Frenet坐标变换与横向误差微分方程 1.1问题描述 1.2 公式推导 前言 本文应配合b站up主"忠厚老实的老王"的自动驾驶控制算法系列视频食用.. 一. ...
- 自动驾驶车辆转向控制(通过扭矩控制实现方向盘转角控制)
本文介绍通过增量式PID控制器实现通过对自动驾驶车辆的EPS进行扭矩响应控制从而实现对期望方向盘转角的控制. 控制器采用增量式PID 对连续PID控制以一定离散化方法离散后就可以得到数字PID控制,离 ...
- 自动驾驶车辆运动控制过程中,对PID控制参数的优化和整定。 传统PID控制算法
自动驾驶车辆运动控制过程中,对PID控制参数的优化和整定. 传统PID控制算法,由于参数固定,在道路曲率较大和车速变化情况下难以满足控制需求,采用RL强化学习算法(DDPG算法,Actor-Criti ...
- 用发型、妆容和面部形态解释人脸识别准确性的性别差异;在CARLA实施的基于交叉口情况覆盖的自动驾驶车辆验证和确认框架;迈向医学同行影响的Shapley价值图框架;确定运动想象脑机接口中各种用户状态和特
中文标题:用发型.妆容和面部形态解释人脸识别准确性的性别差异 英文标题:Gendered Differences in Face Recognition Accuracy Explained by H ...
- 千寻位置 开发demo_专攻高精定位解决方案,「千寻位置」要解决自动驾驶车辆“我在哪儿”的问题...
对于自动驾驶车辆来说,在解决"去哪儿"和"怎么去"问题之前,首先要知道的是"我在哪儿".而判断"我在哪儿",就需要高精度 ...
- 全新 ADAS 和自动驾驶车辆系统的处理器性能和安全要求
简介 当今汽车行业的创新正在加速,因为各公司正在竞相成为安全和自动驾驶车辆领域的市场领导者.随着车辆控制正在从人类转变为车辆的主动安全系统,更多传感器 – 摄像头.雷达.激光雷达等 – 正被添加到汽车 ...
- 城市场景中自动驾驶车辆基于高精度地图的视觉语义定位
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨自动驾驶专栏 论文链接:https://ieeexplore.ieee.org/document ...
最新文章
- LeetCode Coin Change(动态规划)
- VC++ 坐标问题总结,控件大小随窗口变化
- 机房收费--操作员注册
- [转]JS脚本抢腾讯云学生1元代金券
- 【配置】成本组件结构定义(OKTZ)
- matlab高级图形设计实训上机答案,Matlab实验第一次实验答案[共8页]
- 重启大法好!线上常见问题排查手册
- python如何判断是否有弹出框_Selenium2+python自动化47-判断弹出框存在(alert_is_present)【转载】...
- linux mysql帮助文档,在 Linux 上安装 MySQL
- 新的开始 和一些总结
- JSON学习资料整理
- mysql模糊查询占位符python_python中的mysql数据库like模糊查询
- Redis之key的淘汰策略
- 自然语言21_Wordnet
- Android 第二课——命令行基本操作
- java中的时间片概念_java中常用的时间处理类TimeUtil
- 单片机c语言fft函数,单片机ADC采样FFT计算试验
- conda和pip卸载包的注意事项
- AI 人工智能学习之泰勒公式与拉格朗日乘数法
- R语言ggplot2可视化:loess回归曲线可视化、填充两条 loess回归曲线之间的区域实战(Fill region between two loess-smoothed lines)