写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝


🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~

文章目录
  • 一、车辆运动控制架构
  • 1、整体架构
  • 2、底层控制器的选取
  • 2、控制策略总结
  • 二、车辆运动控制输出
  • 1、控制量的选取策略
  • 2、一阶与二阶微分组合的应用场景分析
  • 3、MPC车辆控制关键要素
  • a)模型选择
  • b)目标函数选择
  • c)约束选择
  • d)底层控制器选择
  • 三、经典车辆模型
  • 1、运动学自行车模型 (kinematics bicycle model)
  • 2、动力学自行车模型 (Dynamic bicycle model):
  • 四、曲线坐标车辆模型 (Curvilinear Coordinates vehicle model)
  • 1、模型状态量
  • a)参考轨迹
  • b)车辆自身
  • 2、模型输入量
  • a)积分比微分准确
  • b)输入项和舒适度相关
  • 五、车辆模型推导
  • 1、车辆运动和参考轨迹之间的关系
  • 2、与自行车模型的结合
  • 六、模型特点
  • 1、非线性模型
  • 2、横纵向耦合
  • 3、描述车辆运动与参考轨迹之间的关系
  • 七、车辆侧偏角的计算
  • 八、MPC的模型选取
  • 1、要求精确度
  • 2、要求快速性

一、车辆运动控制架构

1、整体架构

  本文深入研究如何应用 MPC 进行车辆控制,先看如下架构图:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域

  运动规划模块生成参考路径,同时给出速度参考并构建约束,约束中包含了上层对车辆安全性能的考量,包括安全的驾驶范围。接下来把参考路径和约束作为输入给到 MPC 里, MPC 根据输入的约束和参考路径进行优化。

  MPC 可以根据当前反馈的测量值和模型预测在一定时域内的车辆 预测轨迹(predicted trajectory),同时生成一系列 最优解的控制序列(Optimal control horzion),把其中第一个控制量发给车量的 底层控制器(Low level control),最终产生油门、刹车来控制车辆运动。

2、底层控制器的选取

部分情况下底层控制器不是必需的:

  • 若 MPC 运算足够快,则不需要使用底层控制器也可以直接产生油门、刹车和方向盘的指令。
  • 若 MPC 问题构架复杂,运算量较大,长时间下很难保证系统的实时性,这种情况下需要加入底层控制器避免延时的问题,常用底层控制器:PID,可运行在高频架构下,保证抗干扰性能。

2、控制策略总结

  • MPC 的作用是在有限时域内,对车辆轨迹不断迭代优化,并产生相应的轨迹追踪控制信号,每当收到新的反馈,就需要基于MPC进行新的优化,保证优化的实时性;
  • 好的模型会让 MPC 生成高质量的预测状态从而保证准确性和有效性;
  • 构建的约束会对提高优化解的安全性;
  • 目标函数可以更好选取需要优化的量,从而最大限度保证车辆达到预期行驶的方向和轨迹追踪。

二、车辆运动控制输出

1、控制量的选取策略

  下面考虑MPC输出给底层控制器的变量选择什么,在不同的应用下有不同的选择:





速度

加速度

加加速度

转角

转角速度

转角加速度

  比如可以选择加速度和转角速度,那么就是控制加速度和转向角变化率
  一般来讲,在把 MPC 运用到耦合的横向和纵向运动的,必须都存在这两方面的控制量。

2、一阶与二阶微分组合的应用场景分析

控制量的选取有如下组合:

  • 速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_02
  • 加速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_02
  • 加加速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_02

具体使用一阶微分的组合还是二阶微分的组合,要根据不同的应用场景。

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_05 转角加速度),可以保证速度和加速度具有连续性和平滑性,并且可以有针对性优化加加速度(跃度)和转角加速度

3、MPC车辆控制关键要素

  总的来说,用 MPC 进行车辆控制,需要注意以下几个方面:

a)模型选择

  选择合理的模型构建系统,预测未来信息,针对不同应用场景选择不同的颗粒度。

b)目标函数选择

  保证轨迹追踪的实时性、车辆控制效率、舒适度。

c)约束选择

  保证安全性和模型准确性(满足模型、驱动力限制)。

d)底层控制器选择

  基于底层控制器加入引擎关系、动力模型、执行器模型、轮胎力模型等。


三、经典车辆模型

1、运动学自行车模型 (kinematics bicycle model)

  一个准确的模型可以让我们求解最优控制量时,使预测误差和实际误差比较小。但同时也会导致问题变复杂,所以 MPC 设计很重要的就是选择合适的模型,根据具体问题权衡模型的简化和准确程度。

  运动学自行车模型如下:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_06


  只需要四个参数就可以描述车辆的运动轨迹:【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_07

2、动力学自行车模型 (Dynamic bicycle model):

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_08


  需要更多、更复杂的变量来精准描述车辆模型:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_09

包括车辆侧边角等参数。

实际使用要根据不同应用场景选择模型:

  • 在低速情况下,使用运动学模型就足够了。
  • 在高速情况下,比如赛车场景,需要快速且能过急转弯,就必须考虑轮胎侧滑和摩擦的影响,需要使用动力学模型。

总而言之,要结合具体问题选择适合的模型。


四、曲线坐标车辆模型 (Curvilinear Coordinates vehicle model)

  下面来介绍一个能够有效描述车辆与参考轨迹之间关系的车辆模型:曲线坐标车辆模型(Curvilinear Coordinates Vehicle Model)

  该模型描述车辆相对轨迹的速度与车辆自身速度之间的关系,与轨迹之间的横向误差、轨迹曲率之间的关系。

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_10

下面来看一下这个模型的这个状态量和输入量都有哪些?

1、模型状态量

  模型的状态量是由两部分组成:①参考轨迹②车辆自身

a)参考轨迹

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_11 描述。在任意一点用 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_12【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_13 表示当前点的轨迹朝向。把 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_14 的方向平移到车辆当前点的位置,可以得到 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_15 和车辆自身 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_16 之间的夹角,就是车辆当前朝向相对参考轨迹匹配点的朝向 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_17。车辆的参考轨迹是绕着转动中心以 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_18 的速度转动,旋转半径为 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_19,车辆与匹配点之间沿着垂直于轨迹切线方向的距离为 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_20

b)车辆自身

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_21 是横向 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_16 和纵向 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_23 的合成速度,加速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_24 是车辆在行进方向的速度变化,转向角为 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_25 ,由此构成了 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_26 个状态变量的模型:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_27其中,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_28 为车辆沿参考轨迹的行驶距离,n车辆与参考点的横向误差,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_17 为车辆当前的航向,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_21 为车辆的速度,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_24 为车辆行驶方向上的加速度,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_25 为转向角,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_33 为转向速率。
  其中有些变量是为了描述约束而建立,并不是要把所有变量都给底层控制器。

2、模型输入量

  下面来研究模型的输入量:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_34
  选用加加速度(jerk) 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_35 和转角加速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_36 来作为输入量,这就是 加加速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_02的控制量组合。

为什么要来选择这两个参数作为输入量?

a)积分比微分准确

  如果求出了速度,再把它二次微分求加加速度的话,这个加加速度会包含很多噪声,而其反向操作——积分会准确得多。反之如果拿到了加加速度,可以反向积分求加速度以及速度, 同样对于转向角也一样。

b)输入项和舒适度相关

  可以有针对的去优化 加加速度转角加速度,因为这两项和舒适度息息相关。


五、车辆模型推导

下面来介绍整个模型是如何推导的。

1、车辆运动和参考轨迹之间的关系

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_38

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_15,方向和 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_14 的切线方向一致,大小等于车辆自身坐标系下纵向速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_16 和横向速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_23【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_15 方向上的分量之和:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_44
  车辆沿参考轨迹的运动速度可以通过参考点旋转半径 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_45 减去车辆与参考点之间的距离 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_20,再乘以旋转速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_18 , 参考轨迹点的行进速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_14等于【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_45 乘以旋转速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_18 ,联立起来,可以写成如下形式:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_51这样就可以建立起参考轨迹 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_52 和车辆速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_53

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_54 来代替旋转半径的倒数 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_55,可以得到用曲率 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_54 来表示参考轨迹 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_52 和车辆速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_53 之间的关系:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_59这样就建立起了车辆运动和参考轨迹之间的关系。

2、与自行车模型的结合

  下面将车辆运动和参考轨迹之间的关系与 自行车模型(Bicycle model) 结合:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_60

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_61,可以得到其与 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_53 关系 ,把这两个式子带进去:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_63其中,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_64 就是车辆速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_21 和轨迹参考点速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_14

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_67 就是 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_53 沿着横向的分量,可以写成如下形式:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_69车头朝向的旋转速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_17 就是车本身的旋转速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_19 和参考系旋转速度 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_72 之差。用 r 来代表车自身的旋转速度,可以写作 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_73【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_74 是车辆的旋转半径,由于【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_75,把 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_45 换成 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_54,那么就是等于 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_78,这样就可以写成 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_79,那么可以推导出如下关系:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_80把刚才的推导整理一下,可以得到以下车辆模型:
【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_81


六、模型特点

1、非线性模型

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_82 在里面,所以是非线性模型

2、横纵向耦合

  其最大特点是把纵向和横向运动耦合起来,也就是在 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_14 里和 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_20

3、描述车辆运动与参考轨迹之间的关系

  该模型给很好地描述了车辆运动和参考轨迹之间的关系


七、车辆侧偏角的计算

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_21 直接可以测得,当前航向 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_17 可以通过两个 朝向相减得到,【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_20 可以通过相对距离计算。 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_54 是个轨迹里自带的属性,其中唯一需要计算的就是 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_89,根据自行车模型的几何关系得到:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_90


  根据互余可知 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_91,所以 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_92,可以得到

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_93同时还知道【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_时域_94,根据三角关系可得 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_95。在 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_96 中应用正弦定理:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_97把这个式子展开,分母同除以【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_98,得到以下关系:

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_运动控制_99可计算出

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_算法_100因此可得 【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_人工智能_61

【MPC】模型预测控制 | 在车辆控制中的应用(一)曲线坐标车辆模型_应用场景_102其他量都可以实时计算出来,那么就可以建立起曲线坐标车辆模型


八、MPC的模型选取

  用什么模型构建MPC,要根据需求或具体情况来进行分析:

1、要求精确度

  • 非线性(Nonlinearity)
  • 动力学模型(Dynamics)
  • 横纵向耦合(Coupled)

2、要求快速性

  • 线性(Linear)
    使用二次规划QP求解。
  • 运动学模型(Kinematics)
    适用于低速情况,忽略轮胎特性和轮胎刚度,牺牲部分准确度。
  • 解耦合(Decoupled)
    降低模型复杂度,求解起来更快速。但这种方法存在缺点:缺少横纵向之间的联系,需要在后续增加把横纵向联合起来的过程,或者是在前期的运动规划模块中解决。

模型选取需要取舍,并不是越准确或越快越好,要有效选择适合的模型


后记:
🌟 感谢您耐心阅读这篇关于 曲线坐标车辆模型 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀