Learning-based Model Predictive Control for Autonomous Racing
这篇来自ETH的论文讲述了一个data-driven MPC for racing的算法系统构建。核心思路是使用GP(高斯过程)补偿动力学模型的不确定性与建模误差,然后用根据此不确定性构建非线性优化问题作为MPC的框架进行求解。文章第二章介绍了GP模型以及稀疏GP回归算法。从第三节开始按顺序说明了名义动力学模型、GP补偿问题表述、MPC损失函数表述、带有预测不确定性的MPC约束函数表述、解耦MPC与GP并简化MPC计算的方法、简化GP迭代计算的方法。
名字动力学模型
对于Racing Car,这里选择的动力学建模是较为精确的动力学模型,并且轮胎模型选择的是Pacejka模型(具体看公式)
积分使用的是RK4,
GP模型回归问题描述
GP模型的输入为 名义运动学的预测结果与实际测量结果的差值就是GP的目标输出。 其中说明只有一部分值需要补偿(其实只有xy方向加速度还有角加速度需要补偿),为伪逆.
均值与方差的传递
损失函数
这里不誊抄其公式,原因是由于Racing的性质使得它只需要绕圈,损失函数与基础的非线性MPC没有本质区别。
带有不确定性的约束
距离轨迹点的偏离概率大于对应的距离偏差值为 其中表达位移分量的covariance矩阵。为取特征值操作,为表达卡方分布。根号里面的意思是,先取最大特征值,也就是偏差矩阵中取出主方向的方差值,然后卡方分布表达的是正态分布平方值的概率分布。
最后约束可以表达为 实际运算时只对前几步有效。
其他关于力、输入、输入变化率的固定约束这里不再誊写。
计算考虑
由于约束中带有方差,所以会和实际采取的控制结果耦合,这里采取了一个实时运算的简化。由于上一时刻的优化结果会保存到这一时刻,因而可以近似认为优化前后的控制输入差不会太大,进而方差的传递只以本时刻第一次的结果为准,本时刻后续迭代优化不再改变方差。
在线学习GP补偿参数
作者开发了一套在线选择数据添加、选择数据替换、去除outlier的算法,这里不复述。