Apollo进阶课程㉗丨Apollo控制技术详解——控制理论

原文链接: https://mp.weixin.qq.com/s/cLhnFCQdftj6Qi5j-PWDzw

原创: 阿波君 Apollo开发者社区 8月14日

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第1张图片

控制模块根据预测的轨迹和估计的车辆状态向油门、刹车或转向扭矩发送适当的命令。控制模块使汽车尽可能接近计划的轨迹。控制器参数可以通过最小化理想状态和观测状态之间的误差函数(偏差)来估计。

决策问题通常用POMDP加上一些机器学习的技术来解决。解决好规划问题,需要把两个方面做好,一个是数据闭环(Data Driven),另一个是基于规则的方法

上周阿波君为大家详细介绍了「进阶课程Apollo规划技术详解——Understand More on the MP Difficulty」。详细地讲解了Apollo EM planner规划框架,以及解决优化问题的常用方法:离散化的方式Expectation  Maximization(期望最大化)

本周阿波君将继续与大家分享Apollo控制技术详解——控制理论的相关课程。下面,我们一起进入进阶课程第27期。

目录

1.简介

2.控制模块

3.什么是控制,为什么需要控制


本节主要介绍Apollo控制相关内容,包括常用控制理论、功能限制与未来趋势、相似原理在不同模块中的应用目的是让大家了解控制模块的整体脉络及理论,通过案例讲解将理论转化成code及真正测试标准的方法。

1.简介

本次课主要介绍以下三个方面的内容:

  • 通用控制理论及其在Apollo自动驾驶平台上的应用。

  • 功能的限制和未来的趋势。

  • 类似的原理怎样应用于不同的模块。

首先我们回顾一下Apollo自动驾驶框架的基本结构,如图1所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第2张图片

                                                                          ▲图1  Apollo 软件框架

从图中可以看出,控制模块的输入一方面来自planning(规划模块),另一方面自反馈阶段信息(如localization和HD Map),此部分信息包括车辆位置、朝向、速度等。

其输出结果是控制指令,与下层模块canbus(车辆交互标准)进行交互;同时控制模块也会从底层车辆得到反馈信号(车辆本身in vehicle reference frame:速度信息、四轮转速信息、车辆健康状况信息、底盘是否报错信息、危险信息)


2.控制模块

如图2所示,控制模块包括三个部分:预处理、控制器和后处理其中,预处理部分的主要功能包括三方面,第一是对输入信号的检查,对不正常信号的过滤;第二是做一些紧急处理,第三是做一些滤波操作,例如信号的平滑等。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第3张图片

                                                               ▲图2 控制模块的组成

控制器主要功能包括:模型建立、系统识别和分析控制器/观察器设计以及参数调优等功能,如图3所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第4张图片

                                                                 ▲图3 控制器的主要功能

后处理部分将信号发送给执行器,包括限制的处理以及信号滤波如图4所示。因为油门、刹车、转向这种执行器本身有上下限、滞后(回滞曲线),所以需要对信号进行一些相关处理。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第5张图片

                                                                           ▲图4 后处理


3.什么是控制,为什么需要控制

控制主要是为了弥补数学模型和物理世界执行之间的不一致性对于自动驾驶而言,规划的轨迹和车辆的实际运行轨迹并不完全一致,控制器按照规划轨迹在条件允许下尽可能地调节车辆本身。为了能够安全、舒适的行驶,自动驾驶系统对性能的要求需要控制模块,主要体现在以下几个方面,如图5所示。

  • 首先是稳定性,包括在所有场景下的车辆行为稳定和安全。

  • 其次是稳定状态的行为,减少或者消除规划和实际车辆行为的差别。

  • 最后是瞬时状态的行为。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第6张图片

                                                                 ▲图5 自动驾驶系统对性能的要求

具体而言,自动驾驶系统是否满足性能要求可以从三个角度去评测:时域、频域以及discrete domain(离散域)时域是指输出在时间轴上应该满足的要求。其衡量的指标包括steady state gain、rising time、setting time、overshoot和undershoot。每个指标对应的具体含义如图6所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第7张图片

                                                            ▲图6 控制模块在时域上的性能要求

类似的,系统在频域里也需要满足一定的要求。在频域空间,X轴是输入频率,Y轴是输出跟输入的比例理想状态下输出和输入比例应该为1。系统性能在频域中的评价指标包括pass band、cutoff frequency等,如图7所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第8张图片

                                                                   ▲图7 频域的评判指标

除了时域和频域的要求,还需要满足discrete domain的要求。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第9张图片

                                                                     ▲图8 时域和频域的相互关系

对系统来说,在time domain跟frequency domain中的系统需求是可以等价转换的。系统在时域中的要求、响应、数学表达跟频域是可以相互对应的。

此外,系统性能要求还有一些其它的考量指标,如图9所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第10张图片

                                                   ▲图9 满足系统性能要求的额外考量指标

前面介绍了自动驾驶系统需要满足一些性能需求,如果没有控制器的话,这些性能指标可能难以满足,这就是为什么在自动驾驶系统中需要引入控制器的原因。

那么怎么样设计出好的控制模块呢?最简单的控制器就是PID控制器,即比例、积分、微分控制,它是一个model free的控制方法,也就是说PID控制具有通用性。PID控制的基本原理如图10所示。

Apollo进阶课程㉗丨Apollo控制技术详解——控制理论_第11张图片

                                                                                  ▲图10  PID 控制器

U是参考量,它和反馈信号之间的差距用error 表示,即图中的e。比例控制P的意思是该控制量与误差成比例,用kp*e(t表示。当kp比较小的时候,接近终值的速度会非常慢,如右图的红线所示,但是它有超调与undershoot现象。当kp设置比较大时,则达到稳态速度变快,但会超调,如右图紫色曲线所示。如果系统中存在损耗,比如汽车上坡的动力或者摩擦损耗,使得比例控制每次增加的控制量就等于或者小于损耗时,出现稳态误差,这就是引入积分控制的目的,它可以将之前的误差进行积分,消除稳态误差。而微分控制的目的是使系统更快的从瞬态转化为稳态系统的控制量就是P+I+D三项的和。

你可能感兴趣的:(无人驾驶汽车进阶)