21m/s!UZH RPG组T-RO新作AC-MPC:微分MPC赋能强化学习,实现超人级无人机竞速

21m/s!UZH RPG组T-RO新作AC-MPC:微分MPC赋能强化学习,实现超人级无人机竞速

「MPC+RL」

目录

01 主要方法

 1. 整体架构:RL决策 + MPC执行

 2. Actor设计:学习代价而非动作

3. Critic设计与模型预测价值扩展

02  实验结果

1.训练效率与极限性能:学得更快,飞得更猛

 2.鲁棒性:无惧风扰与参数偏差

 3.可解释性:打开 RL 的黑盒

 4.真实世界部署:零样本迁移的 21m/s

03  总结


在机器人控制领域,长期存在着模型驱动(MPC)与数据驱动(RL)的路线之争。前者理论完备但依赖人工调参,后者探索力强却受困于黑盒不可解释性。苏黎世大学 RPG 组的这项 T-RO 最新工作,为这一争论提供了一个优雅的融合解

论文提出的 AC-MPC 架构,创造性地将可微 MPC嵌入到 Actor-Critic 框架的策略网络末端。这不仅让无人机跑出了 21m/s 的超人级速度,更重要的是解决了两大痛点:

1. 鲁棒性突破:利用 MPC 内置的动力学先验,算法在面对风扰和模型参数失配等 OOD场景时,展现出了纯神经网络无法比拟的稳定性。 

2. 理论可解释性:论文通过实证分析揭示了一个惊人的数学联系,Critic 网络学到的 Value Function 的 Hessian 矩阵,与 MPC 学到的 Cost 矩阵高度相关。这意味着 RL 真正学会了控制成本的二阶曲率,打通了价值函数与优化目标之间的壁垒。

这篇文章不仅是工程上的胜利,更是对学习型控制(Learning-based Control)内部机理的一次精彩剖析。

图片

图1| MPC与RL对比图

01 主要方法

论文提出了一种将模型预测控制(MPC)作为可微层嵌入到强化学习(RL)Actor-Critic框架中的新方法。其核心思想并非用神经网络直接输出控制量,而是让神经网络学习当前状态下最优的控制目标是什么,然后交由内置动力学模型的MPC求解器去计算具体的控制指令。

 1. 整体架构:RL决策 + MPC执行

传统RL直接从观测映射到动作,缺乏物理约束;传统MPC依赖人工设计的Cost Function,难以适应复杂任务。AC-MPC结合两者:Critic网络负责长期的价值评估,Actor网络被拆解为神经代价图(Neural Cost Map)和“可微MPC(Differentiable MPC)两部分。

图片

图2| AC-MPC 架构图解。与传统RL不同,AC-MPC的Actor网络并不直接输出动作。它首先通过一个神经网络预测出当前最优的二次型代价函数参数,然后将这些参数连同当前状态输入到一个可微MPC层中。该层利用四旋翼动力学模型求解优化问题,最终输出满足物理约束的控制指令。

 2. Actor设计:学习代价而非动作

AC-MPC 的 Actor 不直接学习控制策略,而是学习一个从观测到 MPC 代价函数的映射。具体流程为 Actor 接收当前观测(如状态、赛道门位置),输出定义 MPC 优化目标的二次型参数

$Q_k$

$p_k$

。这相当于让 Actor 在每一时刻动态调整 MPC 的优化目标。

在获得 Actor 输出的二次型参数后,AC-MPC 通过求解以下最优控制问题来生成动作。由于 AC-MPC 可微,该 Actor 的输出支持梯度反向传播。优化目标公式如下:

$ J_{QP}(x) = \sum_{k=0}^{N} \left( \begin{bmatrix} x_k \\ u_k \end{bmatrix}^T Q_k(s) \begin{bmatrix} x_k \\ u_k \end{bmatrix} + p_k(s)^T \begin{bmatrix} x_k \\ u_k \end{bmatrix} \right) $

其中,

$s_k$

是 Actor 的观测输入,

$Q_k(s)$

$p_k(s)$

是神经网络的输出,

$x_k, u_k$

分别是系统状态和控制动作,满足动力学约束

$x_{k+1} = f(x_k, u_k)$

最终的控制动作为 MPC 的最优解,为了实现充分探索,AC-MPC 在训练阶段会叠加高斯噪声,在部署阶段则直接执行 MPC 解。

3. Critic设计与模型预测价值扩展

为了进一步提高采样效率,论文引入了模型预测价值扩展(MPVE)技术。由于MPC求解器会预测未来 H 步的状态序列,这些预测信息被用来辅助Critic的学习,减少对真实环境采样的依赖,并缓解价值估计的方差。MPVE的价值估计公式如下:

$\hat{V}(s_0) = \sum_{t=0}^{H-1} \gamma^t \hat{r}(s_t, u_t) + \gamma^H V_\omega(\hat{s}_H)$

其中,

$\hat{s}$

$\hat{r}$

来自 MPC 内部模型的预测,而非环境交互。这种设计使得 Critic 能更准确地评估当前策略的长期价值,同时利用 MPC 的预测能力加速训练收敛。


图3| 价值函数与飞行轨迹可视化。图中颜色代表Critic网络评估的价值(黄色为高价值区)。可以看到,AC-MPC学到的价值函数就像一个势能场,引导无人机穿越赛道门。当无人机穿过一个门后,高价值区域会迅速切换指向下一个门,体现了Critic通过学习Cost Function实现了类似离散模式切换的高级决策能力。

02  实验结果

论文在仿真环境和真实世界中进行了广泛的验证,不仅证明了 AC-MPC 能达到与 SOTA 强化学习同等的超人级速度,更在鲁棒性和数据效率上展现了压倒性优势。

1.训练效率与极限性能:学得更快,飞得更猛

在无人机竞速任务中,AC-MPC 展现了极高的采样效率。特别是在高难度的 SplitS(垂直S弯) 和 Vertical(垂直飞行) 赛道中,AC-MPC 能够利用 MPC 内部的动力学先验,比纯神经网络(AC-MLP)更快地收敛到高分奖励区域。此外,在控制指令层面,AC-MPC 能够更一致地触及无人机的物理极限(如推力饱和),通过极致地压榨性能来实现时间最优飞行。

图片

图4| 推力指令饱和度对比。AC-MPC(橙线)能够持续且稳定地将推力打到最大值(饱和),充分利用无人机的物理性能;而 AC-MLP(绿线)的推力输出则显得犹豫和波动,难以维持极限飞行。

图片

图5| 不同赛道下的训练曲线对比。在简单的水平赛道(左)上两者表现相当;但在高难度的垂直赛道(中)和 SplitS 赛道(右)中,AC-MPC(蓝/黄线)凭借动力学先验,展现出了比 AC-MLP(红线)更高的采样效率和最终性能上限。

 2.鲁棒性:无惧风扰与参数偏差

由于MPC具有较强的抗扰动能力,即使面对在训练中未见过的强风干扰,或者无人机自身的质量、惯量发生巨大变化时,AC-MPC 依然能保持极高的成功率,而无需重新训练。

图片

图6| 抗干扰能力可视化。(A) 在垂直飞行中施加 1.5 倍重力的侧向风扰。纯 RL 方法(AC-MLP)和传统 MPC 均告坠毁,只有自适应 L1-MPC 和本文的 AC-MPC 成功穿越,且 AC-MPC 速度更快。(B) 面对初始位置的随机变化,AC-MPC(中)的轨迹一致性显著优于 AC-MLP(左)。

图片

图7| 动力学参数泛化测试。在未重新训练的情况下,测试不同质量(Mass)和转动惯量(Inertia)下的飞行成功率。红线为训练时的标称值。可以看到,AC-MPC(橙线)在参数大幅偏离标称值时仍能保持近 100% 的成功率,而 AC-MLP(蓝线)则迅速崩溃。

 3.可解释性:打开 RL 的黑盒

除性能验证外,论文还深入探究了Critic 网络到底学到了什么。通过线性探测实验,作者发现 Critic 网络学到的价值函数的 Hessian 矩阵,与 Actor 网络学到的 MPC 代价矩阵高度相关。这证明了 RL 确实学到了符合物理直觉的控制代价。

图片

图8| 价值函数与 MPC 代价矩阵的关联性分析。(A) 预测的 Q 矩阵与真实的 Q 矩阵高度吻合,说明 Critic 深刻理解了控制任务的代价结构。(B) 3D 视图下,MPC 的代价函数曲面(上)与 Critic 的价值函数曲面(下)形状惊人一致,验证了两者在数学本质上的统一性。

 4.真实世界部署:零样本迁移的 21m/s

最终,基于 AC-MPC 训练好的策略在无任何处理的情况下,通过零样本迁移直接部署在真实的竞速无人机上。在复杂的 SplitS 赛道中,AC-MPC 达到了 21m/s 的峰值速度,不仅追平了 SOTA 的纯 RL 方法,更证明了该架构在现实物理世界中的可行性与安全性。

图片

图9| 真实世界飞行轨迹。AC-MPC 在圆形赛道(左)和 SplitS 赛道(右)的真实飞行数据(实线)与仿真数据(虚线)高度重合。AC-MPC在真实环境中跑出了 21m/s 的峰值速度,实现了从仿真到现实的完美复刻。

03  总结

UZH RPG组的 AC-MPC 工作提出了一种将可微MPC无缝嵌入到Actor-Critic 强化学习框架的全新范式。该方法打破了传统学习动作的桎梏,转而让策略网络学习 MPC 的内部代价函数,从而在保留 RL 强大探索与端到端优化能力的同时,充分利用了物理模型处理约束和动态规划的优势。

实验证明,AC-MPC 不仅在真实世界无人机竞速中实现了与 SOTA 纯 RL 方法持平的 21m/s 超人级速度,更在抗风扰和参数泛化等非分布场景下展现出压倒性的鲁棒性,为机器人从仿真到现实的零样本迁移提供了一条可解释且高效的新路径。

论文题目:Actor-Critic Model Predictive Control: Differentiable Optimizationmeets Reinforcement Learning for Agile Flight

论文作者:Angel Romero, Elie Aljalbout, Yunlong Song, Davide Scaramuzza

论文地址:https://ieeexplore.ieee.org/document/11301631

代码地址:https://github.com/uzh-rpg/acmpc public

Read more

【Git】Git临时回退查看版本?这3种安全方式必收藏

Git临时回退查看版本?这3种安全方式必收藏 平时开发中,有没有遇到过这样的场景:突然想查看项目某个历史版本的代码,比如确认之前某个功能的实现逻辑,或者排查是否是后续提交引入的bug,但又不想影响当前的开发进度,更怕不小心改乱了提交历史? 其实Git早就为我们准备了“临时查看历史版本”的安全方案,核心原则就是:不修改当前分支的提交历史!今天就把最实用的3种方式整理出来,从简单到进阶,新手也能轻松上手~ 一、最常用:git checkout 游离头指针(新手首选) 这是我平时用得最多的一种方式,操作简单,安全性拉满。它的核心是让Git进入“分离头指针(detached HEAD)”状态,简单说就是:临时“跳”到历史提交点查看代码,当前分支的所有内容都会原封不动保留。 步骤拆解,一步都不踩坑 1. 第一步:找到目标提交的ID 首先得知道要回退到哪个版本吧?用下面的命令查看简洁的提交历史,就能找到对应的“版本身份证”——提交ID(前7位就够用): git log --oneline

By Ne0inhk
GitHub访问加速全攻略:开发者必备的5种提速方案(亲测有效)!!!

GitHub访问加速全攻略:开发者必备的5种提速方案(亲测有效)!!!

文章目录 * 一、为什么GitHub这么慢?(先搞懂原理) * 1.1 网络延迟的罪魁祸首 * 1.2 DNS污染问题 * 二、5大加速方案实测对比(附详细步骤) * 2.1 镜像站大法(新手首选) * 2.2 修改Hosts文件(永久生效) * 2.3 Git配置代理(程序员必备) * 2.4 使用Gitee中转(适合大项目) * 2.5 终极方案:GitHub加速器(黑科技) * 三、避坑指南(血泪经验) * 3.1 不要用盗版加速器! * 3.2 SSH连接比HTTPS更快 * 3.3 大文件用Git LFS * 四、速度测试对比(单位:

By Ne0inhk
2026 Git 安装流程和基础使用步骤(保姆级教程)

2026 Git 安装流程和基础使用步骤(保姆级教程)

文章目录 * 前言 * 一、 Git 下载与保姆级安装步骤 * 二、 环境配置 * 配置 Notepad++ 为默认编辑器 * 三、 从零开始:Git 基础工作流 * 四、 新手必看:高频“翻车”坑点与解决方案 前言 Git 工具大家应该挺熟悉的,Git 是管理代码的工具,无论是在搭建前后端分离的复杂架构,还是在调试庞大的深度学习模型,一个清晰、规范的版本控制系统能帮你避开无数次“代码重构”带来的崩溃。Git 工具在大学期间实训时和工作中都会用到,那么今天在新电脑上手把手安装 Git 工具。 一、 Git 下载与保姆级安装步骤 前往 Git 官方网站(https://git-scm.com/),如下图点击 下载最新的 64-bit Git for Windows

By Ne0inhk
如何在VS code中为GitHub Copilot 添加SKill

如何在VS code中为GitHub Copilot 添加SKill

官方链接:Use Agent Skills in VS Code 准备 这里如果要用VS code的Agent Skills记得更新VsCode,下面这个版本及之后的就可以使用 配置Skill Crtl + Shift + P找到设置并打开,搜索chat.useAgentSkills即可 在Github Copilot 聊天框中打开配置自定义智能体,点击+创建新的自定义智能体 之后需要选择是为这个项目创建Skill.md还是所有项目都可用的Skill.md了,之后写入自己的Skill内容就行。 这里是我自己添加的一个Skill.md 添加之后,就会在聊天这里选对应的Skill了,之后就会用这个Skill进行自己的相关分析 使用示例 好啦,快去创建自己的SKill吧!!

By Ne0inhk