详读 · Learning to Walk in Minutes(数千并行环境 + 单 GPU 分钟级 RL + sim-to-real)¶
卡片版见 卡片-LearnToWalkInMinutes。本页是全文精读:动机 → 方法(逐模块) → 实验(全表数字) → 消融 → 局限 → 核心洞见 → 外部评价 → 审稿人视角 → 对我们。 来源:arXiv 2109.11978(v3, 2022-08-19)· 项目页 legged_gym · CoRL 2021。 作者:Nikita Rudin(ETH Zurich & NVIDIA)、David Hoeller(ETH & NVIDIA)、Philipp Reist(NVIDIA)、Marco Hutter(ETH)。 语境锚点:本文一/二作 Rudin、Hoeller 即后来 Flexion Robotics 的 CEO/CTO,本文是其技术血统的源头之一,详见 追踪-Flexion-Reflect。
0. 一句话定位¶
证明一个复杂的真实机器人任务(四足在挑战性地形上行走)可以在单块工作站 GPU 上、用数千并行仿真机器人、于分钟级训成并迁移到真机。它不是新算法,而是一套"端到端 GPU 管线(Isaac Gym)+ 为大规模并行重调的 PPO + game-inspired 自动课程 + sim2real 配方"的系统性方案与工程洞见集合。卖点是把同类感知运动策略的训练时间从 12–120 小时压到 <20 分钟(平地 <4 分钟),并开源全部训练代码(legged_gym),由此奠定了后续 Isaac Lab / RSL-RL 的范式。
1. 问题与动机¶
- DRL 训练太慢、迭代太贵:复杂任务需要海量数据,多在仿真训。当前模拟器训一个 agent 常需数天到数周——OpenAI 方块重定向训了最多 14 天、解魔方策略数月[4]。而 DRL 还要反复调超参(串行重训),训练时间直接决定"到部署的时间"和策略质量。
- 腿足感知运动此前很慢:盲走鲁棒策略 12 小时[16];学习+最优控制结合的感知运动 82h[17]、88h[18];全学习鲁棒感知运动 120h[19]。本文目标是把这类任务压到分钟级,且带 sim-to-real 这一更严苛的验证。
- 为什么 CPU 并行不够:主流模拟器(MuJoCo[5]/Bullet[6]/Raisim[7])为 CPU 设计,并行度有限。传统"千 CPU 分布式"做法[4,9]靠平均梯度、批大小到百万级以改善学习动力学,但不优化总训练时间。多进程 CPU 又受核数/内存限制。
- 切入点:用 NVIDIA Isaac Gym[8]——仿真与训练都在 GPU 上,单仿真可并行数千机器人,端到端避开 PCIe 数据搬运瓶颈(PCIe 可比 GPU 处理慢达 50 倍[21])。本文在 [10][12] 基础上把并行推得更远 + 优化训练算法 + 应用到真实机器人难题。
2. 方法详解¶
2.1 大规模并行 GPU 仿真(系统基础)¶
- on-policy RL 分两步:数据收集 + 策略更新。更新(反向传播)在 GPU 上天然好并行;难的是数据收集——每步含策略推理、仿真、奖励/观测计算。传统管线把仿真和奖励/观测放 CPU,导致 GPU 推理因通信瓶颈不划算。
- Isaac Gym 方案:用 PhysX 引擎在单仿真里并行数千机器人,管线全部向量化、数据全程留在 GPU,大幅减少拷贝、提升吞吐。
- 共享地形 mesh 的工程技巧:单仿真只能用一张共同地形网格,reset 时不易换地形。解决:把所有地形类型与难度等级拼成一整张大网格,靠物理移动机器人到网格不同位置来"换地形/换难度"。
- 吞吐瓶颈(附录 A.1):仿真本身最耗时且随机器人数缓慢增长;观测/奖励计算次之;策略与执行器网络推理近乎常数时间。增加并行机器人数会降低收集固定样本所需总时间(学习步本身与机器人数无关)。
2.2 为大规模并行重调的 PPO(核心洞见)¶
基于自研 PPO[22] 实现,所有操作与数据都在 GPU。关键修改:
- 批大小 B = n_robots × n_steps:因 n_robots 增大几个数量级,必须取很小的 n_steps 才能让 B 合理、训练快。但 n_steps 不能任意小——需要连贯的时序轨迹(GAE[23] 需多步奖励)。本任务实测 低于 25 步(0.5s 仿真时间)算法就难以收敛。
- n_steps ≠ episode 最大长度:超时 reset 的最大 episode 长度定为 20s;环境到时才 reset,不是每次迭代后 reset,所以一条 episode 可跨多次策略更新。这反过来限制了能并行的机器人总数,无法榨干 GPU 全部算力。
- 超大 mini-batch 反而好:本任务用几万样本量级的 mini-batch(部署配置 24576),比通常"最佳实践"大得多,能稳住学习且不增加总训练时间。
2.3 Reset 处理:time-out bootstrapping¶
- 机器人摔倒/超时都要 reset。PPO 的 critic 预测"无限期折扣奖励和",reset 破坏无限期假设。失败/到目标的 reset critic 能预测(没问题);但超时 reset 不可预测(观测里不含 episode 时间)。
- 解法:区分两种终止模式,对超时情形用 critic 自身预测自举(bootstrap)补上"未来无限期折扣奖励和"。该思路见 [24],但未被标准 Gym 接口[25]/Stable-Baselines[26] 实现(它们默认环境永不超时或只在 batch 末超时)。本文因每 batch 步数少、meaningful episode 跨多 batch,必须改 Gym 接口检测超时并自举。
- 效果(附录 A.2,Fig.10):不做自举 critic loss 更高、总奖励更低;做了在平地/粗糙地形上总奖励提升约 10%–20%。
2.4 任务、地形与 game-inspired 课程¶
- 任务:四足跟随基座朝向 + 线速度指令走过挑战性地形。主实验机为 ANYbotics ANYmal C。
- 5 类程序化地形(Fig.2,均为 8m 边长方块):平地、斜坡(最高 25°)、随机粗糙(起伏 ±0.1m)、离散障碍(高度 ±0.2m)、楼梯(梯宽 0.3m / 梯高 0.2m)。坡与梯做成金字塔形以便各方向通过。
- game-inspired 自动课程:每个机器人分到一种地形 + 一个难度等级(level)。楼梯/障碍的台阶高度从 5cm 渐增到 20cm,坡度从 0°→25°。规则:
- 走出当前地形边界 → 升级(下次 reset 到更难地形);
- episode 结束时移动距离 < 目标速度要求距离的一半 → 降级;
- 通关最高级 → 随机回炉到某一级,增加多样性、防灾难性遗忘。
- 优点:难度按各机器人表现自适应、无需任何外部调参、对每类地形单独调难度,且天然给出训练进度的可视化/定量反馈。
- 为何适配大规模并行:几千机器人当前的课程进度就直接是策略性能分布,无需像 [30] 那样用 generator 网络去学;无 particle filter 的重采样/重生成地形开销,近零处理成本。
- 训练进度(Fig.3):4000 机器人,500 次更新后已能过斜坡、下楼梯,但爬楼梯/越障还需更多迭代;1000 次更新后所有地形都到最高级并散布全图;总训 1500 次更新让策略收敛到最高性能。
2.5 观测、动作、奖励¶
- 观测:基座线/角速度、重力向量测量、关节位置/速度、上一步动作、以及基座周围网格采样的 108 个地形高度测量(每个是地形面到基座高度的距离)。
- 奖励:9 项加权和(附录 A.3 表 2)。主项鼓励跟随指令速度、抑制其他轴的基座速度;为平滑自然运动还惩罚关节力矩、关节加速度、关节目标变化(action rate)、碰撞;并加一项鼓励更长步幅(更美观)。膝/胫/足-竖直面接触算碰撞,基座接触算"撞毁"并 reset。所有地形用同一套奖励训单一策略。
- 关键权重(×dt):线速度跟踪 1.0、角速度跟踪 0.5、z 向线速度惩罚 4.0、xy 角速度 0.05、关节运动 0.001、力矩 0.00002、action rate 0.25、碰撞 0.001、feet air time(步幅)系数见表 2。
- 动作:解释为期望关节位置,送给 PD 控制器产出电机力矩。奖励与动作空间都不含步态相关元素(不指定 gait),与 [16][20] 不同。
2.6 网络、PPO 超参与执行器模型¶
- PPO 超参(附录 A.4,表 3):batch 98304 (4096×24)、mini-batch 24576 (4096×6)、epochs 5、clip 0.2、entropy 系数 0.01、折扣 0.99、GAE 0.95、目标 KL 0.01、自适应学习率(按 KL 散度调,Alg.1:KL>2×目标则 α/1.5 下限 1e-5,KL<0.5×目标则 1.5×α 上限 1e-2)。
- 执行器网络:ANYmal 用串联弹性执行器(动力学难建模),沿 [1] 用神经网络从关节位置指令算力矩。但简化输入——不再拼接固定时间步的历史送前馈网,而是只把当前测量送一个 LSTM。代价是策略拿不到执行器时序信息;作者试过多种给策略加记忆的方式,发现不提升最终性能。
- 时间步(附录 A.1.1):策略 50Hz;仿真步不能小于 0.005s(即 4 个仿真步/策略步),下限由执行器网络(近似离散 PD)失稳决定,非仿真本身。
2.7 Sim-to-Real 配方¶
- 域随机化:地面摩擦系数每机器人均匀采样 [0.5, 1.25];每 10s 随机推一次,基座 x/y 方向加速到 ±1 m/s;观测加噪(噪声幅度基于真机实测,附录 A.5:关节位置 ±0.01 rad、关节速度 ±1.5 rad/s、基座线速度 ±0.01 m/s、角速度 ±0.2 rad/s、投影重力 ±0.05、地形高度 ±0.1m)。
- 接触优化(附录 A.1.2):只保留必要碰撞体(足、胫、膝、基座);高度场转三角网格并修正竖直面;把机器人在地形上分散摆放降低 PhysX 接触检测负载——训练初到末仿真时间有 2 倍差异(学会少摔后接触/reset 减少)。
3. 实验数字(全量)¶
3.1 大规模并行的影响(§4.1,Fig.4)¶
- 为用总奖励做单一指标,去掉课程(否则策略变强→难度升→奖励反降),简化任务(减小楼梯/障碍最大台阶)。
- 基线:
n_robots=20000, n_steps=50 → batch 1M,性能最好但训练相对慢。 - 固定 batch、增机器人数(→每机器人步数降):从 128(旧 CPU 并行水平)增到 16384(粗糙地形上单 GPU 接近可仿真上限)。
- 两个效应:
- 机器人太多 → 每机器人时间horizon太小 → 性能骤降;batch 越大该拐点越靠后(能用更多机器人)。
- 机器人太少 → 样本因每机器人步数多而高度相似、多样性差(偏离 i.i.d. 假设)→ 性能缓降。
- 训练时间:到 4000 机器人近线性扩展,之后吞吐增益放缓。
- 结论(Fig.4c):本任务 2048–4096 机器人 + batch ≈100k 或 ≈200k 是最佳权衡(图中左上"绿色"理想区)。
3.2 仿真性能(§4.2,Fig.5)¶
- 部署策略配置:4096 机器人 + batch 98304 + 1500 次更新,<20 分钟训成(训练机:i9-11900k CPU + NVIDIA RTX A6000 GPU)。
- 前进速度指令 0.75 m/s、侧向 [−0.1, 0.1] m/s,测穿越成功率(成功=过地形且基座无接触):
- 楼梯:阶高 0.2m(最难、接近机器人运动学极限)近 100% 成功。
- 离散障碍:更难,成功率随高度稳步下降(注:相邻障碍正负相间,实际最大落差是标称高度两倍)。
- 坡:>25° 爬不上,但学会以中等成功率滑下。
- 涌现步态:奖励/动作空间简单、不指定 gait,但策略总收敛到 trotting(对角小跑);常有拖腿、基座过高/过低等 artifact,调奖励权重后可满足约束并迁移真机。
3.3 多机型泛化(§4.2,Fig.6)¶
- ANYmal C + 固定机械臂(+约 20% 重量)、ANYmal B(尺寸相近、运动学/动力学不同):无需改奖励/超参重训,性能相近。
- Unitree A1(更小、重量约 1/4、不同腿构型):去掉 ANYdrive 执行器模型、降 PD 增益与力矩惩罚、改默认关节配置 → 可训出动态策略解同样地形。
- Agility Cassie(双足):需额外加"单脚站立"奖励才能走出步态;加上后可在同样地形训练。
3.4 Sim-to-Real(§4.3,Fig.7)¶
- 真机上策略固定:从传感器算观测→喂策略→动作直接作为目标关节位置送电机,不加任何滤波或约束满足检查。地形高度从机器人用 Lidar 扫描建的高程图查询。
- 高程图远不完美 → sim 与 real 间鲁棒性下降,问题主要在高速时出现 → 真机最大线速度指令从 0.75 降到 0.6 m/s。
- 真机可上下楼梯、动态越障(Fig.7 + 补充视频)。作者指出 [19](Wild ANYmal)用 teacher-student 获得了恶劣条件下的卓越鲁棒性,计划未来合并两种方法。
3.5 资源占用(附录 A.1,Fig.8/9)¶
- 显存:4096 机器人开渲染 9GB / 不渲染 6GB;平地降到 7GB / 5GB。
- 学习迭代各子步时间随机器人数变化见 Fig.8(仿真最耗时、推理近常数)。
4. 消融小结¶
- 机器人数 × batch(Fig.4):见 §3.1——存在双向拐点,最优在 2048–4096 机器人 / batch 100k–200k。
- time-out bootstrapping(Fig.10):去掉则 critic loss 升、总奖励降;保留奖励提升约 10–20%。
n_steps下限:低于 25 步(0.5s)算法难收敛(GAE 需多步)。- 执行器记忆机制:给策略加各种记忆不提升最终性能 → 故用极简"当前测量→LSTM 执行器网"。
- 时间步下限:0.005s(4 仿真步/策略步),由执行器网稳定性而非仿真决定。
5. 局限 / 存疑(诚实,多为作者自陈)¶
- 不追求最强鲁棒性:作者明确说本文目的不是拿到绝对最优/最鲁棒策略,而是证明"分钟级训成且可用";要更鲁棒需叠加 teacher-student([19])等技术(列为 future work)。
- 真机证据偏定性:Fig.7 是样例展示 + 视频,无大规模真机 trial 统计;且必须降速到 0.6 m/s、依赖不完美的 Lidar 高程图,state estimation 漂移会出问题。
- 坡度/越障有硬上限:>25° 坡爬不动;离散障碍成功率随高度持续下降。
- 盲点:观测含 108 维地形高度采样(特权/外感知信息),真机靠高程图近似——这正是 sim-real gap 的主要来源。
- 任务范围:仅 locomotion(行走/越障跟随速度指令),未涉及操作/长时程;Cassie 需手工加奖励项才走得起来,说明配方对差异大的机体仍需人工介入。
6. 核心洞见¶
- 真正贡献是"系统 + 工程洞见"而非新算法:把 PPO 完整端到端搬上 GPU(绕开 PCIe),并系统性回答"大规模并行下超参该怎么反着调"——这套认识比任何单点 trick 更有价值。
- 训练时间本身就是一等公民:把 12–120h 压到 <20min,意义在于可反复迭代(自动调参、按实地扫描定制训练),从根本上改变 RL 落地的工作流。这是后续 Isaac Lab/RSL-RL 生态的核心卖点。
- 简单配方走得很远:简单观测/动作空间 + 直白奖励(不指定步态/不给运动基元)+ 自动课程,就能训出可迁移真机的策略;复杂性按需叠加。
- 课程"免费"利用并行:几千并行体的课程进度即性能分布,省掉了学习难度分布的额外网络/开销——并行规模本身被转化为算法优势。
7. 外部评价 / 历史影响¶
- 🌐 CoRL 2021 正式录用 + 全开源(
legged_gym:https://leggedrobotics.github.io/legged_gym/ )。证据 A。 - 🔶 奠基性影响(合理推断,基于公开生态事实):本文的
legged_gym训练框架 + 其 PPO 实现演化为广泛使用的 RSL-RL 库(Rudin/Hoeller/Hutter,arXiv 2509.10771, 2025,见 追踪-Flexion-Reflect);所依赖的 Isaac Gym 演化为 NVIDIA Isaac Lab。"数千并行环境 + 单 GPU 分钟级 RL + sim2real"已成腿足/全身控制 RL 的事实范式,被大量后续工作(包括 Rudin 本人的 Parkour in the Wild, arXiv 2505.11164)继承。 - 🔶 与作者后续的连续性:本文一/二作 Rudin、Hoeller 创立 Flexion Robotics(CEO/CTO),其 Reflect 栈"Transformer 全身控制 + RL 技能库 + GPU 并行训练引擎"几乎可确定承袭本文这一脉(待 Flexion 出论文确证;见 追踪-Flexion-Reflect)。
- ⚠️ 逐条同行评审正文本页未抓取,不引述具体评分。
8. 审稿人视角(🤖)¶
- 新颖性偏"系统集成":核心组件(PPO、GAE、自动课程、time-out 自举、域随机化、执行器网络)多为已有思路的组合与工程化;真正的新点是 game-inspired 课程 + 大规模并行下的超参再认识。属"工程说服力强、理论增量有限"的好系统论文——其影响力恰恰来自开源与可复现,而非算法独创。
- 真机证据是最弱环:sim 侧有 5-seed 大样本曲线,但真机仅样例 + 视频、需降速、无成功率统计;"可迁移真机"这一最关键 claim 的统计强度不足(作者自己也定位为"验证可用性"而非 benchmark)。
- 特权观测的 sim-real gap 被诚实暴露但未解决:108 维地形高度在仿真是真值、真机靠高程图近似,降速到 0.6 m/s 正是这个 gap 的体现;本文把解法(teacher-student)明确推给 future work。
- 泛化机型证据偏定性:A1/Cassie/带臂的迁移是"能训出来"的定性展示,缺统一指标横比;Cassie 需额外奖励项说明配方并非完全通机型即插即用。
- "分钟级"需注明口径:<4min(平地)/<20min(地形)基于特定硬件(RTX A6000)与配置(4096 机器人/1500 更新),跨硬件不可直接搬运该数字。
9. 对我们¶
- 可直接复用点(工程配方,近零成本照搬):
- 整套
legged_gym+ PPO(RSL-RL)codebase 开源,是腿足/全身控制 RL 训练的最强起点; - 大规模并行超参经验:机器人数 2048–4096、mini-batch 开到几万、
n_steps≥25、自适应 KL 学习率——这些是别处少见的实操知识; - game-inspired 自动课程 + time-out bootstrapping 两个 trick 实现简单、收益明确,可移植到我们任何 on-policy 并行训练;
- sim2real 配方(摩擦/推力/观测噪声随机化 + 执行器网络)给出可照抄的数值区间。
- 它揭示 Flexion 的什么(语境落点):本文是 Flexion 底层全身控制 + 训练引擎的技术血统源头——Reflect 三层栈最底层的 "Reflex"(Transformer 低时延全身控制 + RL 技能库)与"快速训技能"的底气,几乎就建立在本文 → Isaac Lab/RSL-RL 这条线上。读懂本文=读懂 Flexion"用什么把全身控制技能在仿真里高速训出来再迁移真机"。追踪 Flexion 时,可把"是否仍用 GPU 大规模并行 + 课程 + sim2real"作为判断其技术连续性的锚点(详见 追踪-Flexion-Reflect)。
- 对照线:与本目录走力控/实时控制的 概念-实时控制与力控、点云统一表征的 卡片-RobotSynesthesia 属不同层面——本文是"怎么把控制策略训出来"的训练引擎视角,可作为腿足/全身控制条线的基底参考。