Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Model Predictive Path Integral

  • 又称: MPPI, MPPI control, information-theoretic MPC, path integral MPC
  • 类别: Control › Feedback control
  • 标签: model-predictive-control, sampling-based-control, optimal-control, gpu-computing, navigation

一种基于采样的模型预测控制方法,它通过动力学模型模拟许多随机扰动的控制序列,并按代价加权对其求平均,以选择下一个动作。

定义

模型预测路径积分(Model Predictive Path Integral,MPPI)控制是一种基于采样的模型预测控制形式,由 Grady Williams、Evangelos Theodorou 及其同事提出,其中一个被广泛引用的 2016 年演示是一辆小比例自主拉力赛车在土路赛道上高速行驶。与其他模型预测控制器一样,MPPI 在一个短时域内规划一串控制输入,执行其中第一个,并在下一个时间步重新规划。它的独特之处在于规划的计算方式。

在每一步,MPPI 从上一次的控制序列出发,通过加入随机噪声生成大量扰动后的版本。每个扰动序列都通过动力学模型进行推演(rollout)以预测由此产生的轨迹,并用代价函数为该轨迹打分。新的控制序列是所有样本的加权平均,权重按照一个温度参数随代价呈指数下降。低代价样本在平均中占主导,同时更新保持平滑。

该方法源自路径积分控制理论,这一理论把一类随机最优控制问题与对采样轨迹的期望联系起来。在实践中,MPPI 的主要吸引力在于它不需要梯度:动力学模型和代价函数可以是非线性的、不连续的或学习得到的,只要它们能被多次求值即可。各次推演彼此独立,因此能很好地在 GPU 上并行。

其代价在于计算开销会随样本数量和时域长度增长,并且对噪声水平和温度敏感。噪声太小,控制器探索不足;噪声太大,指令会变得抖动,因此常常对采样序列或输出进行平滑。

为何重要

MPPI 让机器人能够使用复杂的或学习得到的动力学模型,以及难以求导的代价(例如障碍物地图和地形风险)进行规划。由于其推演并行运行,它重新规划的速度足以满足实时运行的地面车辆、无人机和足式机器人的需要。

主要应用

  • 高速和越野自动驾驶
  • 移动机器人的局部导航,包括 ROS 2 Nav2 导航栈
  • 敏捷的四旋翼控制
  • 使用学习得到的动力学模型和世界模型进行规划
  • 带有非光滑接触代价的操作和运动

实际应用

把 MPPI 用于户外导航的团队,通常在机载 GPU 上运行它,每个周期在几秒的时域内采样许多控制序列。每个序列都通过车辆模型传播,这个模型可以是运动学模型或动力学模型,也可以是学习得到的正向动力学模型,并根据一个综合了朝目标的进展、障碍物和可通行性代价以及控制平滑度的代价进行打分。现有开源实现,包括 ROS 2 Nav2 导航栈中的 MPPI 控制器。大部分工程工作都花在代价函数和采样参数上:团队在仿真中整定噪声协方差和温度,然后在硬件上确认车辆不会振荡,并且对新出现的障碍物反应迅速。

常见误解

  • MPPI 只是随机搜索 — 它利用随机性进行探索,但其按代价加权的平均是从随机最优控制理论推导出来的
  • 更多样本总能弥补糟糕的表现 — 设计不当的代价函数或整定不佳的噪声和温度会限制结果,无论样本数量多少
  • MPPI 不需要模型 — 它依赖动力学模型来预测每一次推演;不需要的只是模型的梯度

谁需要了解

  • 自动驾驶车辆和移动机器人控制工程师
  • 无人机和四旋翼控制开发者
  • 把学习得到的模型与规划相结合的研究人员
  • 配置局部控制器的 Nav2 用户

相关技术

  • 模型预测控制(Model Predictive Control)
  • Nav2
  • 交叉熵方法(Cross-Entropy Method)
  • iLQR
  • 正向动力学模型(Forward Dynamics Model)
  • CUDA

相关术语

  • Model Predictive Control
  • Trajectory Planning
  • Reinforcement Learning

相关项目

  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。