Apollo Control学习

10 篇文章 0 订阅
3 篇文章 1 订阅

 

反馈控制是无人车最底层的软件算法模块,包括横向控制和纵向控制两个部分。

横向控制主要用于车辆方向盘的控制

纵向控制则主要负责车辆油门、刹车的控制

横向控制根据上层运动规划输出的路径、曲率等信息进行跟踪控制,以减少跟踪误差,同时保证车辆行驶的稳定性和舒适性。

 

控制模块的作用是根据规划(planning模块)生成的轨迹,计算出汽车的油门,刹车和方向盘信号,控制汽车按照规定的轨迹行驶。

 

根据汽车动力学和运动学对车辆进行建模,采用串级PID或模型预测控制(MPC)方法实现控制过程。

 

  • 输入 - Chassis(车辆状态信息), LocalizationEstimate(位置信息), ADCTrajectory(planning模块规划的轨迹)
  • 输出 - ControlCommand(油门,刹车,方向盘)

 

汽车纵向控制(串级PID)

采用串级PID的方式实现纵向控制过程,采用位置环作为PID外环,外环输出期望速度作为内环速度环的控制量,最后产生需要的加速度控制量。

 

 

 

加速度控制量与油门的关系通过校准表得到。

apollo采用的是在实际的汽车行驶过程中记录不同速度下,不同的油门值对汽车的加速度的影响,从而得到一张表格,最后通过查表的方式来得到具体的油门和刹车值大小。

这个表的生成需要测试每种油门以及每种速度下的表现,但是表不可能列出无限连续的数据,因此最后还是需要通过插值的方式来得到结果。

汽车横向控制(LQR)

横向控制算法比较多:

1. 纯跟踪控制算法(Pure Pursuit)

2. 后轮反馈控制算法(Rear wheel feedback)

3. 前轮反馈控制(Front wheel feedback)

纵向控制主要是控制速度,而横向控制主要是控制方向。

横向控制根据上层运动规划输出的路径、曲率等信息进行跟踪控制,以减少跟踪误差,同时保证车辆行驶的稳定性和舒适性。

根据是否基于运动模型进行控制可以分为:无模型的横向控制方法和基于模型的横向控制方法。

汽车的横向控制主要是通过控制方向盘的转角来控制汽车行驶的角度。

PID主要的缺点是不适合泊车和曲率比较大的情况。

 

更多的横向控制见《走进自动驾驶横向控制,你需要这篇超长综述》

https://zhuanlan.zhihu.com/p/46377932

LQR期望的响应特性就是跟踪偏差能够快速、稳定地趋近于零,并保持平衡,同时前轮转角控制输入又尽可能小,这就是一个典型的多目标优化最优控制问题。且优化的目标函数可以表示为跟踪过程累计的跟踪偏差与累计的控制输入的加权和。

Q为半正定的状态加权矩阵,矩阵元素变大意味着希望跟踪偏差能够快速趋近于零。

R为正定的控制加权矩阵,矩阵元素变大意味着希望控制输入能够尽可能小。

 

 

其中这里的P代表黎卡提方程的解,这个可以通过A,B,Q,R算出。

 

为了防止稳态误差,加入前馈控制输入量,前馈控制考虑了路径的曲率及车辆的转向不足特性。

 

 

MPC算法思想:

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

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

这个方法可以与之前学过的DWA方法进行比较学习。

这里可以看出LQR和MPC在工作时域的差别,LQR主要是固定时域内进行计算和估计,单个时域内只计算一次,而MPC采用滑动窗口的思想。

各种控制算法的比较:

从上图中可以看出,各种控制器都存在一定的局限性,这主要是因为:

1、对车辆运动模型的简化处理。如只考虑车辆的运动学模型或简化为二自由度动力 学模型。

2、未考虑横向和纵向控制的耦合特性。仅仅将横向和纵向独立控制,而并无法将纵横向控制协同处理、分析,从而限制了横向控制算法的跟踪性能。

 

可以从以下几个方面进行优化处理:

1、整车动力学的精确建模。

2、控制模型参数的有效估计。

3、基于学习方法的车辆控制策略。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值