comma.openpilot 的规划控制
我就我所知的内容(来自网络和实践)介绍一下,不一定全面,还请见谅与指正。
附赠自动驾驶最全的学习资料和量产经验以及1000T的资源分享:链接
一、概要:
1、控制理论中人们看世界的两种视角——时域和频域(https://www.zhihu.com/zvideo/1453089353333944321)(https://www.zhihu.com/zvideo/1440255158504153088):
分析时域问题需要用到卷积;
分析频域问题则需要拉普拉斯变换。
所以这里直接上结论:
时域的卷积 = 频域的相乘
因此时域下的卷积公式:
输出 = 输入 * 单位冲击响应,其中 * 表示卷积运算
变成了频域下的乘法公式:
L(输出) = L(输入) · L(单位冲击响应),其中L表示拉普拉斯运算, · 表示乘法运算
时域下的卷积运算 被转换成了 拉普拉斯域(s域)下的 普通乘法运算,
这大大减小了分析和控制器设计的难度(妙不可言)。
2、PID:
3、MPC:
模型预测控制(Model predictive control、MPC)是过程控制中,在满足特定限制条件时,控制过程的进阶控制方式。
模型预测控制是以过程的动态模型为基础,多半是透过系统识别得到的线性经验模型。
研究指出若使用特殊设计的类比电路,其反应时间可以更快[3]。
相似矩阵的定义是:
矩阵特征值和特征向量,如果把矩阵看作是运动,对于运动而言,最重要的当然就是运动的速度和方向,那么:
特征值就是运动的速度;
特征向量就是运动的方向。
既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(即矩阵)的特征。
代表什么:
奇异值分解中的[右奇异向量](https://zhuanlan.zhihu.com/p/29846048)
表征两个向量的夹角,表征一个向量在另一个向量上的投影,投影的值大,说明两个向量相关度高;
表示X的平方,有极值。
理解Jacobian矩阵与行列式1285 赞同 · 29 评论文章
– 控制精度取决于:1、传感器精度;2、状态估计精度;3、控制器控制精度;
– 好的控制框架应该是少调参,即减少控制算法和估计算法的 调参 参数;
– comma的控制框架 = DNN(感知识别) + Kalman(融合估计) +控制 (Kalman+MPC+PID);
– 实际测试 控制体验:平滑和自适应性好(原因:1、都是乘用车;2、控制算法搭配合理);
– Kalman负责“状态估计”(参数:初值、Q和R);
– MPC负责“优化(对刺激的反应反馈回系统)+控制”,从时间跨度上 相对于PID来 说是追求“全局优化控制”,它需要考虑耦合(时间不是静态的片面的而是互相关联的和连带的,从而影响系统本身(昨天的一个小时不等于今天的一个小时))和约束等,它的实时性相对于PID要差一些(参数:时域长度和优化目标);
– PID负责“稳定的控制住”单入单出的子系统,它的设定点来MPC,它更注重“局部控制”,它的实时性更强(参数:P、I)。
openpilot.车辆运动模型:
openpilot.MPC:
openpilot.横向控制:
openpilot.纵向控制:
openpilot.MPC.cost function:
神经网络与控制的区别:神经网络重预测(根据相关信息预测),控制重反应(根据状态动态调整)。