Apollo入门课程07-控制

控制

控制简介

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

基本控制输入有:转向、加速、制动
控制器的任务:使用控制输入让车辆通过轨迹上的路径点
控制的要求:准确性、可行性、平稳度

控制流程

控制器预计有两种输入:目标轨迹与车辆状态。

目标轨迹来自规划模块,在每个轨迹点,规划模块指定一个位置和参考速度,在每个时间戳都对轨迹进行更新。
车辆状态包括:通过本地化模块来计算的车辆位置、从车辆内部传感器获取的数据(如速度、转向和加速度)。
通过使用这两个输入来计算目标轨迹与实际行进轨迹之间的偏差。

控制器的输出是控制输入(转向、加速和制动)的值。当偏离目标轨迹时,应该采取行动来纠正偏差。将使用方向盘控制行驶方向(即转向)、使用油门加速、使用刹车减速(即制动)这三个值传递给车辆,进行无人驾驶了。

PID控制

PID的第一组件为P代表“比例”(Proportional)P控制器在车辆开始偏离时立即将其拉回目标轨迹。比例控制意味着,车辆偏离越远,控制器越难将其拉回目标轨迹。
D代表“微分”(Derivative)D项致力于使运动处于稳定状态。它增加了一个阻尼项,可最大限度地减少控制器输出的变化速度
I代表积分(Integral)I控制器负责纠正车辆的任何系统性偏差。例如,转向可能失准,这可能造成恒定的转向偏移,这就需要稍微向一侧转向以保持直行。为解决这一问题,控制器会对系统的累积误差进行惩罚。
将P、I和D组件结合构成PID控制器。

PID优劣对比

  • PID控制器很简单,只需要知道与目标轨迹有多大的偏离。在很多情况下的效果很好。
  • 但是PID控制器只是一种线性算法,对于非常复杂的系统而言,这是不够的
  • PID控制器依赖于实时误差测量,这意味着受到测量延迟限制时可能会失效
  • 车辆越偏离轨道,越难拉回既定轨道。

LQR(线性二次调节器)

线性二次调节器(Linear Quadratic Regulator 或LQR)是基于模型的控制器,它使用车辆的状态来使误差最小化。
Apollo使用LQR进行横向控制。横向控制包含四个组件:横向误差、横向误差的变化率、朝向误差和朝向误差的变化率。变化率与导数相同,用变量名上一个点代表。我们称这四个组件的集合为X,这个集合X捕获车辆的状态。除了状态之外,该车有三个控制输入:转向、加速和制动。我们将这个控制输入集合称为U。
在这里插入图片描述
Apollo使用LQR进行横向控制

横向控制包含四个组件(称这四个组件的集合为X):

  • 横向误差
  • 横向误差的变化率
  • 朝向误差
  • 朝向误差的变化率

三个控制输入(称这个控制输入集合为U):

  • 转向
  • 加速
  • 制动
    在这里插入图片描述

模型预测控制MPC

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

  • 建立车辆模型
  • 使用优化引擎计算有限时间范围内的控制输入
  • 执行第一组控制输入

MPC是一个重复过程,它着眼未来,计算一系列控制输入,并优化该序列。但控制器实际上只实现了序列中的第一组控制输入,然后控制器再次重复该循环。计算一系列控制输入,优化该序列,但控制器只实现该序列中的第一组控制输入,再执行循环。若执行一系列控制输入序列,因为用的是近似测量与计算,结果会与目标值误差偏离较大,要在每个时间步不断地重新评估控制输入的最优序列。

MPC优化

优化引擎间接评估控制输入,对车辆轨迹进行建模,成本函数计算轨迹成本。
成本函数主要基于与目标轨迹的偏差,其次还有速度加速度舒适度等模型、约束、成本函数结合解决优化问题。在不同优化引擎中找到最佳选择。

MPC优劣对比

优点:

  • 考虑车辆模型,更精确
  • 适用于不同的成本函数,可以在不同情况下优化不同的成本
    缺点:
  • 复杂
  • 缓慢
  • 难以实现

猜你喜欢

转载自blog.csdn.net/qq_17437129/article/details/107434196