self_drive car_学习笔记--第11课:控制理论_鸿_H的博客-CSDN博客
一、框架图
- 控制输入:主要来源于规划模块以及反馈阶段信息(如localization和HD Map)
- ----轨迹线reference【速度、加速度、位置】
- ----定位信息【自身位置状态】
- ----地图信息【环境信息,自身在环境位置信息】
- ----车辆反馈信息
- 控制输出:控制指令(油门、刹车、方向盘),与canbus进行交互
- canbus 车辆交互:(交互标准)
- ----Chassis(底盘)
- ----速度、四轮转速
- ----底盘健康状况
- ----底盘报错
- ----自动驾驶状态
- 控制模块也会从底层车辆得到反馈信号(车辆本身in vehicle reference frame:速度信息、四轮转速信息、车辆健康状况信息、底盘是否报错信息、危险信息)
- simulated model,车辆的运动学和动力学模型,控制模块如果是基于模型的控制算法的话,需要首先对车辆建模,同时仿真中需要车辆在环。
- ----运动学模型【车,根据轨迹以及运动方向,判断该车下一时刻会出现在哪里】
- ----动力学模型【车,在整个环境中的受力情况,包括干扰、风力、摩擦系数等造成的力学信息】
二、控制模块细分流程图
控制流程:预处理——控制器——后处理
-
预处理
- ----数据清洗:不正常信号、planning异常值【对于异常数据,去除或者报错】
- ----合理性检查:定位信息、车辆底盘信号
- ----紧急处理:前方突然出现障碍物(emergency stop)【例如无人车前侧安装的超声传感器,直接连接到control模块,应付紧急障碍物】
- 做一些滤波操作,例如信号的平滑等。----信号smooth:去除信号噪声【传感器的信号都是带有噪声】,lag Compensation【滞后信号补偿,这是由于信号传递过程中,信号传递过程中有些滞后,需要做一些补偿,消除一些传递误差】
-
控制器
- ----建模【建立一个车辆模型,目的提供一个控制对象】
- ----系统参数辨识【控制可修复一些细微细小的错误,而这些错误对应的值是无法精确得到,这时候就需要系统辨识,利用一些方法,猜算出这些值也就是对应的系统参数】
- ----控制观测器设计【观测器,指的是有些控制方法在反馈的基础上,要添加更多观测信息,才能确定其反馈值是否符合控制输入;控制观测器可理解为整个控制器的一套方法;其设计非常重要,决定控制器性能】
- ----参数Fine Tuning【参数调节,与深度学习的超参的调差方式(一般是试验试错方式)不一样,而其一般是依据一些数学原理对参数调整进行指导,但也有试错试验方式来调整的
-
后处理
- 将信号发送给执行器(限制处理(饱和受限)以及信号滤波)
- 油门、刹车、转向这种执行器本身有上下限、滞后(回滞曲线),所以需要对信号进行一些相关处理。
- 将信号发送给执行器(限制处理(饱和受限)以及信号滤波)
-
控制:在车辆允许的条件下让车辆尽可能按照规划的技术路径走,弥补数学模型和物理世界执行之间的不一致性。
- 稳定性,包括所有场景下的车辆行为稳定和安全(稳)
- 稳定状态的行为,减少或消除规划和实际车辆行为的差别(稳态性能(准):静态误差)
- 瞬时状态的行为,避免超调过大或者不收敛。(动态性能:快(ts、超调))
- 其它问题(控制问题、规控一体化):振动(超调大、鲁棒差、)、漂移(速度大)、柔性控制。
三、控制器设计
- 步骤
- 滤波器设计
- 线性与非线性
- 数字滤波与模拟信号滤波
- 离散滤波和连续滤波
- 对频域信号细分为低通滤波和高通滤波
- 根据实现方式,分为高斯滤波、卡尔曼滤波、贝叶斯滤波(预测、跟踪)
- 控制器设计
- 观察器设计
- 滤波器设计