Apollo进阶课程㉗丨Apollo控制技术详解——控制理论
原文链接:进阶课程㉗丨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控制技术详解——控制理论相关推荐
- Apollo进阶课程㉙丨Apollo控制技术详解——控制器的类型
原文链接:进阶课程㉙丨Apollo控制技术详解--控制器的类型 控制主要是为了弥补数学模型和物理世界执行之间的不一致性.对于自动驾驶而言,规划的轨迹和车辆的实际运行轨迹并不完全一致,控制器按照规划轨迹 ...
- Apollo进阶课程㉘丨Apollo控制技术详解——基于模型的控制方法
原文链接:进阶课程㉘丨Apollo控制技术详解--基于模型的控制方法 PID控制是一个在工业控制应用中常见的反馈回路部件,由比例单元P.积分单元I和微分单元D组成.PID控制的基础是比例控制:积分控制 ...
- Apollo进阶课程㉖丨Apollo规划技术详解——Understand More on the MP Difficulty
原文链接:进阶课程㉖丨Apollo规划技术详解--Understand More on the MP Difficulty EM是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,EM的算法流程 ...
- Apollo进阶课程㉕丨Apollo规划技术详解——Optimization Inside Motion Planning
原文链接:进阶课程㉕丨Apollo规划技术详解--Optimization Inside Motion Planning 在自动驾驶软件的开发中,运动规划是最核心的模块之一.它将综合感知.定位和地图等 ...
- Apollo进阶课程㉔丨Apollo 规划技术详解——Motion Planning Environment
原文链接:进阶课程㉔丨Apollo 规划技术详解--Motion Planning Environment 自动驾驶汽车核心技术包括环境感知.行为决策.运动规划与控制等方面.其中,行为决策系统.运动规 ...
- Apollo进阶课程㉓丨Apollo规划技术详解——Motion Planning with Environment
原文链接:进阶课程㉓丨Apollo规划技术详解--Motion Planning with Environment 当行为层决定要在当前环境中执行的驾驶行为时,其可以是例如巡航-车道,改变车道或右转, ...
- Apollo进阶课程㉒丨Apollo规划技术详解——Motion Planning with Autonomous Driving
原文链接:进阶课程㉒丨Apollo规划技术详解--Motion Planning with Autonomous Driving 自动驾驶车辆的规划决策模块负责生成车辆的行驶行为,是体现车辆智慧水平的 ...
- Apollo进阶课程㉑丨Apollo规划技术详解——Basic Motion Planning and Overview
原文链接:进阶课程㉑丨Apollo规划技术详解--Basic Motion Planning and Overview 运动规划(Motion Planning)就是在给定的位置A与位置B之间为机器人 ...
- Apollo进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术
目录 1.百度无人车定位进化历程 2.百度自动驾驶应用的定位技术 2.1GNSS定位技术 2.2载波定位技术 2.3激光点云定位技术 2.4视觉定位技术 原文链接:进阶课程 ⑮丨Apollo自动定位技 ...
最新文章
- Flume基础及Flume高质量博客合集
- 2019年全球数字化转型现状研究报告
- 家庭扫地机器人竞争升级 带手臂提供移动服务或是未来方向
- 网络流 增广路 回退
- Linux搭建私有Git服务器以及ssh免密登陆配置
- WCF入门到精通(二)——契约
- php微信支付接口开发程序(概念篇)
- 数据库连接和乱码问题
- mysql的安全管理_MySQL安全管理
- python 在线培训费用-Python人工智能在线培训班学费多少钱?
- 弘辽科技:直通车总集篇(下篇)
- 关于电脑QQ能上网,但是浏览器不能上网的问题的详细图文解决方法
- Java常见面试题含答案(第一期)
- java中上传本地图片
- electron-updater更新遇到的问题 The URL protocol of the current origin (‘app://.‘) is not supported
- MyCat分库分表和读写分离
- An operation is not implemented: not implemented被坑之路[Kotlin]
- Ubuntu如何备份和恢复系统
- 关于登陆和注册的几个问题
- 文件上传(upload)
热门文章
- Elegant Construction HDU-5813 构造
- oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)
- android 日历仿IOS,基于Android week view仿小米和iphone日历效果
- python书写风格_以下两种风格 Python 写法,请问大家倾向哪种:)
- 好用的cnn网络_DPCNN,究竟是多么牛逼的网络呢?
- 大学生计算机python_非计算机专业的大学生,想学习Python需要多长时间
- php 判断修改成功,PHP判断文件是否被修改实例
- ubuntu 远程桌面
- gentoo 安装时的网络配置
- A20 init.sun7i.rc 文件