在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。
—————————————————————————————————————————
无人驾驶中控制系统的输入与输出
控制系统在无人驾驶系统中的位置
CANBus
车辆底盘交互协议(由车厂来决定),包括Chassis(底盘) 、速度、四轮转速、健康状况、底盘报错、自动驾驶状态
控制的任务
Planning的轨迹信息,不同环境下的轨迹跟踪(雨雪、陡坡、石头路)。保证车辆可行性,保证车辆舒适性,实时性要求高(100Hz)
控制系统为什么重要?
控制是对车辆油门、刹车、方向盘的精细控制,是安全行驶的最后关卡,克服外界各种不确定性环境因素(风速、湿滑)
控制模块:让车辆在既定轨迹上平稳运行的学问,控制问题很复杂,是一套严格的数学分支
控制系统的预处理
数据清洗:不正常信号、planning异常值
合理性检查:定位信息、车辆底盘信号
紧急处理:前方突然出现障碍物(Emergency Stop)
信号Smooth:去除信号噪声、Lag Compensation
控制系统的后处理
Saturation/Limitation 处理:执行器的固有缺陷补偿
信号Smoothing:简单的平滑处理和异常检查
ontroller 控制器设计:建模,系统参数辩识,控制观测器设计,参数Fine Tuning
控制系统:消除数学模型和物理模型差异性的过程
对于无人车: Stability:稳定性,对于任何环境的都需要稳定(安全);稳态误差:尽可能小,保证执行上层命令;动态误差:在动态工程中也需要保证很多性能。
制的理论基础
时间域(Time Domain):超调量、超调时间、稳态调整时间(整体时间)、上升时间
频率域(Frequency Domain):通过频率(Pass Band)、停止频率(Stop Band)、带宽、截止频率
离散域(z变换)
拉普拉斯变换:时域 → 频域
傅立叶变换(FT,FFT)
控制系统三域是可以相互变换的,不同领域对特定的需求有不同的解法。控制算法也正对不同域有不同的优势,扩展了人对物理系统的深刻理解。
PID
最简单但是应用最广最有效的控制器,任何模型都可以,反馈控制,输入可以是速度、位置等。
P:proportional。比例跟误差成正比,误差越大,作用越强 容易出现震荡,无法收敛。越靠近目标,应该作用越小,才能稳定。注意在误差是0的时候,控制器的输出也是0。
D:derivative 微分。阻尼项,减少控制器输出的变化率。考虑将来误差,计算误差的一阶导,并和一个正值的常数相乘,微分控制可以提升整定时间及系統稳定性。
I:integral 积分。纠正系统累计偏差,缩小稳态误差。考虑过去误差,将误差值过去一段时间和(误差和)乘以一个正值的常数,积分控制会加速系統趋近设定值的过程,并且消除纯比例控制器会出现的稳态误差。
PID控制器是世界上最好用的控制器,需要的信息少:当前状态、目标。无人车里面用于控制转向和加速度。
PID是线性控制器 复杂系统是不够的:四轴飞行器、多自由度机器人 依赖于实时误差,不能有测量时延
位置式:输出控制量大小的实际值
增量式: 输出只是控制量的增量 递推式算法
无人车的应用: 速度使用的是位置式 方向盘使用的位置式
串联控制:改善控制质量的有效方法,应对多变量控制和多干扰项。外环控制器的输出作为内环控制器的设定值,内环控制器的输出去操纵控制阀、
复杂控制器设计
控制任务:按照Planning要求到达目标,适应不同路况,适配不同车型
动力学建模:横向模型和纵向模型
控制器设计:横向控制和纵向控制
模型表征一个车辆的物理特性, 评估每一个控制输入应用于车辆后会发生什么
小误差模型
横向动力学模型:Heading误差,横向误差
系统辨识模型
模型有些参数式不知道的,需要确定系统模型,这个叫系统辨识。系统辩识:通过实验的方法采集参数;White Box:汽车大多是白箱辩识;Black Box:有点像神经网络;Grey Box。 Learning-Based 方法 机器学习
最优控制理论
Optimal Control:给定一个系统和环境扰动,根据需求条件(Objective),实现最优的控制量决策。
复杂度从左往右递增, 精准度从左往右递增。
LQR(线性二次调节器)
LQR = linear quadratic regulator
基于模型的控制器 :通过车辆状态和模型推理,使得误差最小,可用于设计横向控制器。
状态X: 横向误差及其变化率,Heading误差及其变化率
控制量U: 方向盘、油门、刹车
LQR 状态方程:线性等式(L)。尽可能减少误差,同时使用最小的输入量U。这样做可以做到省油、平滑等特性。
Cost 函数 Q和R为正定矩阵
MPC(模型预测控制)是更为复杂的控制器。
基本步骤: 1.建立模型;2.计算有限时间范围内的最优控制输入;3.执行第一组控制输入
迭代优化的思想: 先计算一系列的控制输入并优化该序列输入;执行第一组控制输入;循环执行上面两步
LQR VS MPC:LQR针对固定的时间区间(一般为无限长时间)进行最佳化,而MPC针对不同的时间区间分别进行最佳化
模型、约束、优化结合
MPC控制流程图
预测系统,车辆动力学模型, 滚动优化,反馈矫正。