TurboMPC: Fast, Scalable, and Differentiable Model Predictive Control on the GPU
作者: Gabriel Bravo-Palacios, Jianghan Zhang, Zachary Pestrikov, Brian Plancher, Thomas Lew
分类: cs.RO
发布日期: 2026-06-23
🔗 代码/项目: GITHUB
💡 一句话要点
提出TurboMPC以解决GPU上高效可微的模型预测控制问题
🎯 匹配领域: 支柱一:机器人控制 (Robot Control) 支柱二:RL算法与架构 (RL & Architecture)
关键词: 模型预测控制 可微分求解器 GPU加速 机器人技术 强化学习 约束优化 贝叶斯优化
📋 核心要点
- 现有的模型预测控制方法在GPU上运行效率低,难以满足机器人应用的需求。
- TurboMPC是一个全新的可微分MPC求解器,专为GPU设计,支持多种约束和复杂成本函数。
- 实验结果显示,TurboMPC在多种任务中实现了显著的速度提升,尤其在汽车驾驶中表现突出。
📝 摘要(中文)
随着机器人技术日益依赖GPU进行并行仿真、大规模学习和神经网络推理,模型预测控制(MPC)需要在这一硬件上高效运行。本文提出TurboMPC,一个完全在GPU上运行的可微分MPC求解器,支持状态和控制不等式约束、隐式积分器、跨时间耦合成本和松弛变量。TurboMPC结合了序列二次规划(SQP)、交替方向乘子法(ADMM)内核求解器、隐式微分和共同设计的JAX-CUDA实现,以提高效率和易用性。在仿真中,TurboMPC在约束规划、类人模仿学习和强化学习任务中验证,分别实现了对比现有CPU和GPU可微求解器的高达15倍和58倍的加速。我们还在全规模汽车上部署TurboMPC,通过贝叶斯优化对MPC参数进行批量GPU加速调优,显著提高了驾驶速度。
🔬 方法详解
问题定义:本文旨在解决现有模型预测控制(MPC)方法在GPU上运行效率低下的问题,尤其是在处理复杂约束和成本函数时的性能瓶颈。
核心思路:TurboMPC通过在GPU上实现可微分的MPC求解,结合序列二次规划(SQP)和交替方向乘子法(ADMM),以提高求解速度和效率,同时支持多种约束条件。
技术框架:TurboMPC的整体架构包括多个模块:首先是输入处理模块,接着是SQP和ADMM求解器,最后是通过JAX-CUDA实现的高效计算模块,确保在GPU上快速执行。
关键创新:TurboMPC的主要创新在于其完全在GPU上运行的能力,结合了隐式微分技术,使得求解过程不仅快速而且可微分,适用于复杂的机器人控制任务。
关键设计:在设计中,TurboMPC采用了灵活的参数设置,支持多种损失函数和网络结构,能够处理高达8000个节点的规划地平线,同时保持对车辆的控制。具体的实现细节包括对约束的处理和松弛变量的引入。
🖼️ 关键图片
📊 实验亮点
TurboMPC在仿真中实现了对比现有CPU和GPU可微求解器的高达15倍和58倍的速度提升。此外,在全规模汽车的最短时间赛车任务中,通过贝叶斯优化调优MPC参数,显著提高了驾驶速度,展示了其实际应用价值。
🎯 应用场景
TurboMPC在机器人控制、自动驾驶和复杂系统优化等领域具有广泛的应用潜力。其高效的求解能力和可微分特性使其能够在实时控制和学习任务中发挥重要作用,推动智能系统的发展。
📄 摘要(原文)
Robotics increasingly relies on GPUs for parallel simulation, large-scale learning, and neural-network inference. For model predictive control (MPC) to scale with this paradigm, solvers must run efficiently on this hardware while remaining fast, differentiable, and compatible with expressive MPC formulations used in robotics. We present TurboMPC, a differentiable MPC solver that runs entirely on the GPU and supports state and control inequality constraints, implicit integrators, cross-time-coupled costs, and slack variables. TurboMPC combines sequential quadratic programming (SQP), an alternating direction method of multipliers (ADMM) inner solver, implicit differentiation, and a co-designed JAX-CUDA implementation for efficiency and ease of use. In simulation, we validate TurboMPC on constrained planning, humanoid imitation learning, and reinforcement learning with neural-network cost function tasks, achieving up to $15\times$ and $58\times$ speedups over state-of-the-art CPU and GPU differentiable solvers, respectively. We deploy TurboMPC on a full-scale car for minimum-time racing and find that batched, GPU-accelerated tuning of MPC parameters via Bayesian optimization yields significantly faster driving than a hand-tuned baseline. TurboMPC also scales to planning horizons of over $8000$ knot points while maintaining control of the vehicle. We open-source TurboMPC at: https://github.com/ToyotaResearchInstitute/turbompc