Parkour in the Wild:把一堆"单技能专家"蒸馏 + RL 微调成一个全能腿足运动策略¶
📅 2025-05 · 🏛 ETH RSL + NVIDIA · 🏷 腿足运动控制/技能融合 📌 一句话省流:先分别教会四足机器人 9 个单项绝活(走、爬、跳、钻、过独木桥……),再把它们"蒸"进一张网络,最后用强化学习统一打磨——得到一个策略就能搞定各种复杂地形,而且想加新技能时往训练集里丢新地形再练一遍就行。 ≈ 打比方:先请 9 个专项教练各教一门课,再让一个"全能学生"把 9 门课都学下来(蒸馏),最后让学生上真实场地自我磨炼(RL 微调);以后遇到没学过的关卡,把关卡加进训练场再练一轮,老本事不丢、新本事学会。 🎬 演示:论文配套 supplementary video(ANYmal D 在搜救废墟实拍;txt 提及但未给独立链接,最稳入口为 arXiv 页) 🔬 全文精读 + 全表数字 + 消融:详读-ParkourInTheWild
🧰 对我们(可用性速判)¶
- 对我们的用处:这是"通用 + 可扩展技能库"怎么落地的一个干净样板——它正对应瑞士 Flexion 公司 Reflect 栈的中层运动层 / 模块化技能库("general & extensible skill")。三段式流水线(单技能专家→蒸馏成一张网→RL 微调,靠"加地形再练"扩展)可直接当我们理解/设计运动技能库的思路参考。详见 追踪-Flexion-Reflect。
- 真实性(前期):高。IJRR 2025 正式发表(期刊,非预印本)+ 真机 ANYmal D 在搜救场地实拍 + 充分消融与基线对比 → 证据 A。
- 训练/微调资源:GPU 大规模并行仿真(Isaac/RSL-RL 血统,但论文未给具体 GPU×时长);不需采真机数据,全程仿真训练 + 自定义深度噪声模型做 sim-to-real。
- 能借多少(开源):⚠️ txt 中未给出代码/权重/数据链接(不编造);可借的是方法配方与工程细节(DAgger 蒸馏、4 路深度图 CNN+LSTM+MLP 架构、深度噪声模型五步、critic 预训练稳定 RL 微调)。作者血统挂 RSL-RL(arXiv 2509.10771)开源库,但本论文未声明随附代码。
- 可用性结论:仅思路借鉴 / 方法可复刻(自有仿真+RL 基建可复刻流水线;无官方放出代码权重,非"直接可用")。
亮点¶
- 核心方法 = 三段式:① RL 单独训 9 个地形专家(用 elevation map 特权信息);② DAgger 在线蒸馏成一张"基础策略",且把感知模态换成 4 路机载深度相机(学生要自己从深度图推地形);③ RL 微调,在 9 个旧地形 + 15 个真实废墟 3D 扫描的新地形上统一打磨。
- 蒸馏后会掉点(平均 -10.4%),RL 微调后反超专家(平均 +3.1%):蒸馏只是"能模仿但不精、不会泛化"的基础模型;RL 微调把它补成"在已知地形超过专家、还能泛化到没见过的废墟"。
- 可扩展是真卖点:想加新技能,只需把新地形加进训练集再微调一轮;实验证明从已微调策略继续练,比从头练更快更好,且老地形性能基本不掉(持续学习不遗忘)。
- 端到端深度图感知 + 自定义噪声模型:抛弃易受状态估计漂移影响的高程图/3D 重建,直接吃深度图;靠五步噪声模型(裁剪/边缘噪声/Perlin 空洞/盲区/高斯模糊)过 sim-to-real。
- 涌现"主动感知"行为:RL 微调后策略学会主动离障碍物远一点、调整身姿,把障碍物顶端纳入相机视野——专家(用完美高程图)不需要这么做,是 RL 自己长出来的。
🧬 与其他工作的关系¶
- 承接谁:直接接 ANYmal Parkour(Hoeller et al. 2023)——沿用其 5 个技能(走/爬上/爬下/跳/钻)和位置式任务描述(Rudin 2022a),并把分层(hierarchical)方法作为被对比、被超越的旧路线。
- 区别/推进:Hoeller 2023 是分层(高层选技能、硬切换,不能融合动作);本文改为蒸馏 + RL 微调,能融合技能、能扩展、规模化到 9→更多技能不崩。新增 4 个技能(跳矮墙、踏脚石、过窄梁、爬乱石堆)。
- 同期撞车:Cheng et al. 2024(Extreme Parkour,单策略训多障碍)、Zhuang et al. 2023 / Caluwaerts 2023(Barkour,蒸馏专家成单策略)——但那些只训有限新技能、不展示对新地形的泛化与可持续扩展。
关键数字(每条带来源 [n])¶
- [1] 9 个基础地形/技能:走、爬上、爬下、跳、过桌(钻)、乱石堆、矮墙、窄梁、踏脚石。📄
- [2] 微调阶段新增 15 个真实搜救场地 3D 扫描地形(蒸馏阶段未见)。📄
- [3] 蒸馏后相对专家平均掉 10.4% 成功率;RL 微调后平均比对应专家高 3.1%。📄
- [4] 泛化样例(成功率,蒸馏 πD → 微调 πRL):Parkour line 5.8→98.5;Scanned meshes(test) 14.9→94.9;Gap-climb 10.2→82.0;Climb down on stones 11.3→54.4,再单独微调(πRL*) 升到 92.4。📄
- [5] 重复微调实验:新地形仅占采样 3%,但"全地形一起练"比"只练新地形"最终更好;老地形性能基本不变。📄
- [6] 真机:ANYmal D,用 6 个深度相机中的 4 个(Realsense D435i),不用 Lidar/外部传感器;全部计算在机载 CPU 上 50Hz,深度图 15Hz 更新。📄
- [7] 评测口径:仿真 1000 次 rollout、随机地形、90% 最大训练难度。📄
🔎 证据与可信度(源头决定权重,见 _卡片规范)¶
- 论文:arXiv 2505.11164,IJRR 2025 正式发表(International Journal of Robotics Research)。
- 代码:txt 未给链接(待查,不编造);作者另有开源库 RSL-RL(arXiv 2509.10771),但本文未声明随附。
- 数据:未开放(真实 3D 扫描地形 + 仿真,未见数据发布说明)。
- 第三方评阅/复现:期刊同行评审已过(IJRR);未见公开独立复现帖。
- 证据等级:A → 权重:高(结论可放心引用;"代码可借多少"打折,标待查)。
🧪 复现条件与成本(暂不亲做,只估)¶
- 硬件:ANYmal D(科研级四足,数十万元级)+ 机载深度相机;训练端需 GPU 并行仿真集群。
- 数据:无需采真机示范;需自建/获取真实地形 3D 扫描(论文用搜救训练场扫描)。
- 算力:大规模并行 RL(Isaac/RSL-RL 路线);论文未给 GPU 数量×步数(不编造)。
- 时间估计:单技能专家各需专门 curriculum/调参("一次性"成本),整条流水线含蒸馏+多轮微调,工程量大(作者自陈调参量"仍然可观")。
- 侧证判价值:数据未开 / 代码未见 / 期刊已评审 / 硬件不易得(ANYmal) / 样本量充分(1000 rollout + 真机实拍)。
💡 我的批注 / 判断¶
- 为什么收它:作者 Nikita Rudin = Flexion(Reflect 软件栈)CEO,他自称这是"最后一篇博士工作"后即去创业。这篇正好把 Flexion 宣传里那句"general & extensible skill(通用可扩展技能库)"落到具体方法——三段式 + "加地形再练"扩展,几乎就是 Reflect 中层运动层的技术原型。盯 Flexion 时,这是能看到的、最接近其运动层思路的公开论文(公司本身未发论文,见 追踪-Flexion-Reflect)。🤖
- 诚实的点:作者没吹"完美"——明说蒸馏会掉点、RL 微调仍不稳要靠三个技巧、Climb-down-on-stones 这类技能组合仍会失败、真机用膝盖落地多→磨损快、LSTM 长时记忆不足。这种"如实写局限"正是我们想要的证据质量。
- 对我们的迁移点(即便不做腿足):① "专家分别训→蒸馏成基础模型→RL 微调"这套技能融合范式对触觉×VLA 的"多技能合一"有参照价值;② 靠加数据/地形持续扩展且不遗忘的工程做法;③ 端到端原始传感(深度图)+ 噪声模型过 sim-to-real 的思路。🤖
- 辨析:这里的 "skill" 和 Claude Code 的 "Agent Skills" 是一回事吗?(🤖我们整理,不一定全对,下分两层)
- ✅ 明确结论(这个有把握):不是同一个东西,是同名不同物。本文的 skill = 学出来的控制策略(神经网络权重),输出关节力矩/位置的高频连续控制;而且 Parkour 是把多专家蒸馏"合并"进一张网络,运行时是单一策略——恰恰不是"按需加载独立模块"。Claude 的 Agent Skill = 一包自然语言指令(SKILL.md)+ 可选脚本,按需读进 LLM 上下文(progressive disclosure,省 token)。两者连"加载"的含义都不同:一个把行为编码进权重,一个把指令读进上下文。
- 🔶 推测/我们的解读(仅是分析视角,非论文或官方主张):在更高一层架构上两者同构——都是"一个协调者从可扩展的能力库里挑/排能力来用"。Reflect 顶层 VLM 调度运动技能 ≈ LLM agent 挑选/加载 skill 或 tool。这个"分层 + 模块化能力库 + 大脑路由"的范式在机器人和 LLM agent 两侧反复出现,但机制完全不同,别把类比当等同。
- ⚠️ 口径:Reflect v1.0 官方用 "modular skill library" 措辞(像运行时可组合模块),但本文实测是"蒸馏成单网"——两者不完全一致,可能是 v0→v1.0 演进或营销措辞,未下死结论。见 追踪-Flexion-Reflect。
- ⏱ 时间线(已核):本文用 "skill" 早于 Claude 的 Skills 功能——Parkour 发表 2025-05(arXiv 2505.11164)vs Anthropic Agent Skills 发布 2025-10-16(2025-12-18 转开放标准)。✅ 早约 5 个月。但更要紧的事实:RL/机器人语境里 "skill"(技能库、分层 RL、options 框架)是几十年的老术语,远早于两者——所以这只是两个领域独立沿用同一个常用词,不存在谁借谁。先后顺序也不证明任何影响关系。(来源:Anthropic Agent Skills;arXiv 2505.11164)🤖
来源编号¶
- [1]-[7] 均出自 📄 Parkour in the Wild, arXiv 2505.11164(IJRR 2025),具体见 详读-ParkourInTheWild 各节。