谈一谈自动驾驶中的MPC控制

作者 | FrancisZhao   编辑 | 汽车人

原文链接:https://zhuanlan.zhihu.com/p/97862929

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【规划控制】技术交流群

本文只做学术分享,如有侵权,联系删文

本故事纯属扯犊子,如有雷同,请接着扯。

26095a109c8deac2b32a5445d3e6d797.png

目前的车辆控制中,最火的控制器就是MPC了。在学校,如果你不做MPC控制,不懂MPC控制,是绝对不好意思说是做车辆控制的。MPC坐稳了学界中车辆控制器中的第一把交椅,但是在业界中呢?

三个字:不咋地。

业界中最火的还是LQR+PID。。。

这就要聊聊MPC到底哪里比LQR强了,我认为,MPC最大的优势就是可以有不等式约束。

举一个栗子。

你要上一个两米高的屋顶,直接蹦肯定上不去,容易腿摔折,咋办呢?首先你要知道自己的弹跳能力,比如小于半米,超过了就蹦不上去了,所以你要弄来三个相差半米的台阶,蹦四次就能上房揭瓦了。

MPC控制器就能够直接按照一定的约束计算出台阶以及你该咋蹦。

那为什么在业界中MPC还不咋地呢?

我们先不谈MPC控制器的参数调节难度和稳定性的问题(这问题忒大了)。就看必要性。

来,看图, apollo 的L3的模块图。

fda6b5f7b423f8ccc30f95be6e495308.png

可以看到control的上游模块是planning,其中planning就包括motion planning(MP)。

MP的作用就是规划一条安全舒适可行驶轨迹

注意四个加粗词。

安全的意思就是避免撞上马路牙子和其他车。

舒适的意思就是要尽量满足人的舒适性要求。

可行驶的意思就是给出的这条轨迹是控制能够跟随的。

轨迹就是带时间信息的,把控制的输入定死了,不许耍花样。

那还MPC啥了?MP模块把台阶给你铺好了,把梯子给你搭好了,如果你说这个台阶不合适,那就反应给MP,最终MP就会给你一个最合适的台阶,这就是MP模块的职责。

所以,这时候control模块的任务就是伺服了,就是要尽快减少误差,执行10Hz的MP指令。

一个伺服控制是不需要在控制中再做一遍规划求最优的,台阶是不需要重复的铺两遍的。因此,MPC就显得非常鸡肋了。

你可能会说,那一套是L3的,L2中很多是没有MP模块的,这时候MPC就有用了吧?

答案是依然没有用,因为L2的主控芯片要跑很多东西,并且算力都不强,跑一个MPC的求解器是非常大的负担,团队会同意你加一个这个东西吗?

你可能又会说,百度Apollo不也做MPC算法了吗?没用他们能做吗?

答案是做了也不用,Apollo的横向默认控制器是LQR,纵向默认控制器是双环PID。

8bcc20bc01cfdd62a9c5dd2b08f5d04d.png
Apollo默认的纵向控制器
dfcb2ecaebf62b28365af434d798a9ec.png
Apollo默认的横向控制器

既然都不用,那他们为什么还做呢?因为那时候他们没有量产车。要知道,车辆控制的工作量不是在设计控制器,而是调节最优的参数,是和底层的EPS ESP互相磨合打交道,是要处理上万辆车出现的各种异常情况,这些看起来很low很琐碎的事情是非常关键的,占据了工程师大量的时间。

他们没有量产,在MKZ上做这些是没有意义的。那总要干一点创新的吧,那就干MPC吧,好不好用做一做就知道了。做完发现不好用,默认控制器还是PID+LQR吧

因此在以量产为目的车辆控制,很少有用MPC的,反正孤陋寡闻的我是没听过。

另外一个原因是,现在的传统PID+LQR的控制器已经足够用了,PID等传统算法有各种优化的方法,可以加各种小trick,足够满足性能需求了。因此,没听说哪一家被控制卡住脖子了。

前一段时间面试了应聘车辆控制的应届生。十个有九个说是做MPC控制的,剩下一个是做机械的(不好意思我就喜欢黑机械的,开玩笑的啊)。一问控制理论的基础,观测器滤波器之类的啥也不知道,不知道是不是这几年就MPC调参来着。

当然不能怪学生们。你导师申请课题,是“应用于自动驾驶的双环PID”,还是“应用在自动驾驶的智能模型预测控制”更容易获批呢?

这造成了学界和业界的巨大脱节,学界叶公好龙,业界因循守旧,互相骂对方,S,B。

所以对于学生来说,车辆控制要不要学MPC呢?我觉得不仅要学,还要好好学,并且最好编程实现一下。学学凸优化,学学ROS,学学C++,这样为以后转行脱离控制圈提供了很多的便利。毕竟要人往上游模块走,条条大路通CS。

盗图自:
https://blog.csdn.net/u013914471/article/details/82775091 https://paul.pub/apollo-plannin

① 全网独家视频课程

BEV感知、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署协同感知语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

0e0d0b35f069550b8151f1901e2120f7.png 视频官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

2aa952fd99a6fc80316d21679a1144ab.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

d68a04274f9b80e96d430440ae9aea17.jpeg

④【自动驾驶之心】平台矩阵,欢迎联系我们!

331938ec1f3110530adb578f87befa94.jpeg

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值