Apollo入门课程[7]——控制

控制简介

控制是驱使车辆前行的策略,对于汽车而言 最基本的控制输入为转向、加速和制动。
控制器使用一系列路径点来接收轨迹,其任务是使用控制输入,让车辆通过这些路径点。
控制器要求:

  • 准确:避免偏离目标轨迹,利于安全
  • 控制策略要可行
  • 平稳度:舒服,驱动必须连续,避免突然转向、加速、制动

控制策略:

  • 比例积分微分控制(或PID)
  • 线性二次调节器(或LQR)
  • 模型预测控制(或MPC)

控制流程

控制器预计的两种输入,用此来计算目标轨迹与实际行进轨迹的偏差

  • 目标轨迹:规划模块
  • 车辆状态

控制器的输出是控制输入(转向、加速和制动)的值,当偏离目标轨迹时,我们希望通过采取行动(转向、加速、制动)来纠正这种偏差。

PID控制

这个控制器的优点在于它非常简单,只需知道与目标轨迹有多大的偏离。
PID的第一个组件为P代表“比例”(proportional)。设想一辆车正试图遵循目标轨迹,P控制器在车辆开始偏离时,立即将其拉回目标轨迹。比例控制意味着车辆偏离越远,控制器就越难将其拉回目标轨迹。

Apollo入门课程[7]——控制_第1张图片
在实践中P控制器的一个问题在于,它很容易超出参考轨迹。当车辆越来越接近目标轨迹时,我们需要控制器更加稳定。
Apollo入门课程[7]——控制_第2张图片
PID控制器中的D项致力于使运动处于稳定状态,D代表“微分”,PD控制器类似于P控制器,它增加了一个阻尼项,可最大限度地减少控制器输出的变化速度。
Apollo入门课程[7]——控制_第3张图片
PID控制器中的最后一项I表示积分,该项负责纠正车辆的任何系统性偏差。
如转向失准可能造成恒定的转向偏移。为此控制器会对系统的累计误差进行惩罚。
P、I、D相结合形成PID控制器。
Apollo入门课程[7]——控制_第4张图片

缺点
是一种线性算法,对于非常复杂的系统而言这是不够的,需要应用不同的PID控制器来控制转向和加速,这意味着很难将横向和纵向控制结合起来
PID控制器依赖于实时误差测量,这意味着受到测量延迟限制时可能会失效

LQR

线性二次调节器(LQR)是基于模型的控制器,它使用车辆的状态来使误差最小化。
Apollo使用LQR进行横向控制。
横向控制包含四个组件:横向误差、横向误差的变化率、朝向误差、朝向的变化率。变化率与导数相同。称这四个组件的集合为x,这个集合x捕获车辆的状态。
三个控制输入:转向、加速和制动,控制输入集合称为u。
Apollo入门课程[7]——控制_第5张图片
LQR处理线性控制(L),该模型用等式表示如下:
X(上方带点)向量是导数,或x向量的变化率,所以x点的每个分量只是x相应分量的导数。
等式x点=Ax+Bu捕捉状态里的变化,即x点是如何受当前状态x,和控制输入u的影响的。
Apollo入门课程[7]——控制_第6张图片
线性的:
Apollo入门课程[7]——控制_第7张图片
目标是让误差最小化,但也希望尽可能少地使用控制输入(因为有成本)。为了减少这些因素,可以保持误差的运行总和和控制的运行总和。
eg.
当右偏转很厉害,添加到误差总和;控制输入将车向左偏转,从控制输入总和减去。这样会导致问题,因为右侧的正误差只需将左侧的负误差消除即可*(???)*
Q和R代表x和u的权重集合
Apollo入门课程[7]——控制_第8张图片
Apollo入门课程[7]——控制_第9张图片
找到最优的u就是找到最优的K

MPC

模型预测控制(MPC)是一种更复杂的控制器,,它非常依赖于数学优化。
基本上可以将MPC归结为三个步骤:

  1. 建立车辆模型,MPC的第一步为定义车辆模型,该模型近似于汽车的物理特性,它估计了假如将一组控制输入应用于车辆时会发生什么。
    Apollo入门课程[7]——控制_第10张图片
  2. 使用优化引擎计算有限时间范围内的控制输入。决定MPC预测未来的能力,预测越深入,控制器就越精确,不过需要的时间也越长,所以我们需要在准确度与快速获取结果之间做出取舍,获取结果的速度越快,越能快速地将控制输入应用到实际车辆中。
    Apollo入门课程[7]——控制_第11张图片
  3. 执行第一组控制输入,将模型发送到搜索最佳控制输入的优化引擎,该优化引擎的工作原理,是通过搜索密集数学空间来寻求最佳解决方案。为缩小搜索范围,优化引擎依赖于车辆模型的约束条件。

MPC优化

优化引擎可间接评估控制输入,是通过使用这些方法对车辆轨迹进行建模的。
可根据成本函数对轨迹进行评估,成本函数主要基于与目标轨迹的偏差,其次基于其他因素如加速度,和提升乘客舒适度的措施。
为使乘客感觉更舒适,对控制输入的调整应该很小,因为动作变化幅度过大会让乘客感到不舒服。
模型、约束和成本函数合并并作为优化问题加以解决。

优点 缺点
考虑了车辆模型,因此比PID控制更精确 与PID控制相比,模型预测控制相对更复杂、更缓慢、更难以实现
适用于不同的成本函数,所以可以在不同情况下优化不同的成本

你可能感兴趣的:(Apolllo)