原文链接:进阶课程㉗丨Apollo控制技术详解——控制理论

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

决策问题通常用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所示。

                                                                                                图1  Apollo 软件框架

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

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


2.控制模块

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

                                                                                                图2 控制模块的组成

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

                                                                                                图3 控制器的主要功能

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

                                                                                                        图4 后处理


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

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

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

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

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

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

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

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

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

                                                                                                图7 频域的评判指标

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

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

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

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

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

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

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

                                                                                                图10  PID 控制器

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

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

  1. Apollo进阶课程㉙丨Apollo控制技术详解——控制器的类型

    原文链接:进阶课程㉙丨Apollo控制技术详解--控制器的类型 控制主要是为了弥补数学模型和物理世界执行之间的不一致性.对于自动驾驶而言,规划的轨迹和车辆的实际运行轨迹并不完全一致,控制器按照规划轨迹 ...

  2. Apollo进阶课程㉘丨Apollo控制技术详解——基于模型的控制方法

    原文链接:进阶课程㉘丨Apollo控制技术详解--基于模型的控制方法 PID控制是一个在工业控制应用中常见的反馈回路部件,由比例单元P.积分单元I和微分单元D组成.PID控制的基础是比例控制:积分控制 ...

  3. Apollo进阶课程㉖丨Apollo规划技术详解——Understand More on the MP Difficulty

    原文链接:进阶课程㉖丨Apollo规划技术详解--Understand More on the MP Difficulty EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程 ...

  4. Apollo进阶课程㉕丨Apollo规划技术详解——Optimization Inside Motion Planning

    原文链接:进阶课程㉕丨Apollo规划技术详解--Optimization Inside Motion Planning 在自动驾驶软件的开发中,运动规划是最核心的模块之一.它将综合感知.定位和地图等 ...

  5. Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment

    原文链接:进阶课程㉔丨Apollo 规划技术详解--Motion Planning Environment 自动驾驶汽车核心技术包括环境感知.行为决策.运动规划与控制等方面.其中,行为决策系统.运动规 ...

  6. Apollo进阶课程㉓丨Apollo规划技术详解——Motion Planning with Environment

    原文链接:进阶课程㉓丨Apollo规划技术详解--Motion Planning with Environment 当行为层决定要在当前环境中执行的驾驶行为时,其可以是例如巡航-车道,改变车道或右转, ...

  7. Apollo进阶课程㉒丨Apollo规划技术详解——Motion Planning with Autonomous Driving

    原文链接:进阶课程㉒丨Apollo规划技术详解--Motion Planning with Autonomous Driving 自动驾驶车辆的规划决策模块负责生成车辆的行驶行为,是体现车辆智慧水平的 ...

  8. Apollo进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview

    原文链接:进阶课程㉑丨Apollo规划技术详解--Basic Motion Planning and Overview 运动规划(Motion Planning)就是在给定的位置A与位置B之间为机器人 ...

  9. Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

    目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技 ...

最新文章

  1. Flume基础及Flume高质量博客合集
  2. 2019年全球数字化转型现状研究报告
  3. 家庭扫地机器人竞争升级 带手臂提供移动服务或是未来方向
  4. 网络流 增广路 回退
  5. Linux搭建私有Git服务器以及ssh免密登陆配置
  6. WCF入门到精通(二)——契约
  7. php微信支付接口开发程序(概念篇)
  8. 数据库连接和乱码问题
  9. mysql的安全管理_MySQL安全管理
  10. python 在线培训费用-Python人工智能在线培训班学费多少钱?
  11. 弘辽科技:直通车总集篇(下篇)
  12. 关于电脑QQ能上网,但是浏览器不能上网的问题的详细图文解决方法
  13. Java常见面试题含答案(第一期)
  14. java中上传本地图片
  15. electron-updater更新遇到的问题 The URL protocol of the current origin (‘app://.‘) is not supported
  16. MyCat分库分表和读写分离
  17. An operation is not implemented: not implemented被坑之路[Kotlin]
  18. Ubuntu如何备份和恢复系统
  19. 关于登陆和注册的几个问题
  20. 文件上传(upload)

热门文章

  1. Elegant Construction HDU-5813 构造
  2. oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)
  3. android 日历仿IOS,基于Android week view仿小米和iphone日历效果
  4. python书写风格_以下两种风格 Python 写法,请问大家倾向哪种:)
  5. 好用的cnn网络_DPCNN,究竟是多么牛逼的网络呢?
  6. 大学生计算机python_非计算机专业的大学生,想学习Python需要多长时间
  7. php 判断修改成功,PHP判断文件是否被修改实例
  8. ubuntu 远程桌面
  9. gentoo 安装时的网络配置
  10. A20 init.sun7i.rc 文件