跳到主要内容
深度视觉赋能足式机器人极限运动与跑酷技术解析 | 极客日志
Python AI 算法
深度视觉赋能足式机器人极限运动与跑酷技术解析 深度视觉技术使足式机器人突破本体感知局限,实现跳箱、跨越深沟等极限跑酷动作。文章梳理了从盲行到视觉辅助的运动控制演进,重点分析 Extreme Parkour、WMP、VMTS 及 PIE 四个开源项目的技术架构。涵盖教师 - 学生蒸馏、世界模型、隐式 - 显式双重估计等核心方案,对比了四足与人形机器人的视觉运控差异,为 sim-to-real 迁移提供关键技术参考。
PentesterX 发布于 2026/4/10 更新于 2026/4/23 1 浏览1. 引言:为什么需要深度视觉
在过去数年间,基于强化学习的足式机器人运动控制取得了长足进展。早期的工作——以 ETH 的 legged_gym 框架和 IsaacGym 并行训练环境为代表——已经证明,仅依靠本体感知(关节编码器、IMU 等)就能训练出在连续复杂地形上鲁棒行走的策略。这类方法通常被称为"Blind Locomotion",即机器人不借助任何外部视觉传感器,完全依赖对自身状态的感知来适应地形变化。DreamWaQ(KAIST, ICRA 2023)等工作进一步证明,通过非对称 Actor-Critic 框架配合隐式地形估计,四足机器人甚至可以在户外多样地形上实现长距离鲁棒行走。
然而,Blind Locomotion 存在一个根本性的局限:机器人无法预知前方地形的具体形态。当面对跳箱、深沟、高台阶等需要提前规划动量和轨迹的极限地形时,纯本体感知的策略往往力不从心。跑酷(Parkour)场景要求机器人在接近障碍物之前就判断出障碍物的高度、宽度和距离,并据此调整步态、积累动量、选择起跳时机。这些决策必须依赖对前方环境的主动感知——深度视觉由此成为从"能走"到"能跑酷"的关键技术跳板。
本文将系统梳理近年来将深度视觉引入足式机器人跑酷运动控制的代表性工作,重点分析三个开源项目——Extreme Parkour(CMU)、WMP(SJTU)和 VMTS(2025)——的技术架构与实现细节,并深入解读 PIE(ZJU, RAL 2024)框架的隐式 - 显式估计机制及其与 AMP 运动先验的结合路径。
2. 技术背景:深度视觉在足式运控中的演进
2.1 从特权信息到可部署感知
足式机器人强化学习运控的核心难题在于 sim-to-real gap。在仿真环境中,策略可以直接访问地形高度图、摩擦系数、接触力等"特权信息"(Privileged Information),但这些信息在真实部署时无法获取 。为解决这一矛盾,研究者发展出了两条主要技术路线:
第一条是教师 - 学生(Teacher-Student)框架。ETH 在 2020 年的工作(Learning quadrupedal locomotion over challenging terrain, Science Robotics)首次提出了这一范式:教师策略在仿真中利用特权信息学习最优行为,随后通过在线模仿学习(DAgger)将知识蒸馏给仅使用可观测数据的学生策略。学生策略通常引入一个额外的编码器,从历史本体观测中隐式估计那些无法直接获取的环境信息。
第二条是非对称 Actor-Critic 框架。KAIST 在 2022 年的工作(Concurrent Training of a Control Policy and a State Estimator, RAL)提出了一种更简洁的方案:Actor 网络仅接收可观测信息,而 Critic 网络在训练时直接使用特权信息的真实值。这种非对称结构避免了两阶段训练的复杂性,同时保留了特权信息对价值估计的指导作用。DreamWaQ 进一步在此基础上引入了 beta-VAE 来学习隐式地形表征 。
2.2 深度相机的引入
当任务从连续地形行走升级为跑酷时,仅靠本体感知的隐式估计已不足以提供足够的环境信息。深度相机(如 Intel RealSense)的引入为策略提供了前方地形的显式几何信息。但深度图像的引入也带来了新的挑战:
仿真中的深度渲染开销:IsaacGym 的 GPU 相机渲染需要额外的计算资源,且渲染频率通常低于控制频率
深度图像的噪声与延迟:真实深度相机存在测量噪声、边缘失真和固有延迟
高维输入的处理:原始深度图像维度远高于本体观测,需要高效的特征提取网络
sim-to-real 的视觉域差异:仿真渲染的深度图与真实深度图之间存在系统性差异
针对这些挑战,研究者发展出了多种技术方案。其中最具代表性的是"scandots-to-depth 蒸馏"范式:先用地形扫描点(scandots,即仿真中直接采样的地形高度值)训练基础策略,再训练一个深度编码器将真实深度图像映射到与 scandots 编码器相同的隐空间,从而实现从特权感知到可部署视觉感知的迁移。
2.3 训练框架的技术栈
当前主流的深度视觉跑酷训练框架基本遵循以下技术栈:
仿真环境:IsaacGym (NVIDIA, GPU 并行)
训练框架:legged_gym + rsl_rl (ETH 开源)
RL 算法:PPO (Proximal Policy Optimization)
网络结构:MLP Actor-Critic + CNN/Transformer 深度编码器
部署格式:ONNX / TorchScript JIT
这一技术栈最早由 ETH 在 2021 年的里程碑工作(Learning to Walk in Minutes Using Massively Parallel Deep Reinforcement Learning, CoRL)中确立,此后被几乎所有后续工作所采用或改进。IsaacGym 提供的 GPU 并行仿真能力使得数千个环境可以同时运行,将训练时间从数天压缩到数小时。
3. 全网深度视觉跑酷项目梳理
最近人形机器人如火如荼,其中基于强化学习和 sim-to-real 的运控算法更是关键。但人形机器人的强化学习运控算法也是从四足机器人的运控算法中迭代而来。本节首先梳理 RL 足式运控的技术演进脉络——从四足到人形的关键论文,再聚焦深度视觉跑酷的代表性工作。
**背景提示:**在 IsaacGym(2021 年)之前,大多数训练基于 ETH 开源的 RaiSim 框架,使用 CPU 采样。基于 IsaacGym 的开源训练代码基本源自 ETH 开发的 legged_gym + rsl_rl 项目。Domain randomization ≈ Dynamics randomization,前者强调测试和训练时的环境差异(来自 domain adaptation 领域),后者强调机器人/环境的动态模型属性,基本可以混用。RL 足式运控的核心难点在于 sim-to-real gap。方案上大致经历了 SysID → 电机模型 → Teacher-Student → 非对称框架 的演进,同步引入 domain randomization 来缩小迁移 gap。算法和仿真能 cover 的 sim-to-real gap 有限,机器人本体性能参数(电气设计、电机稳定性、扭矩、驱动延迟)以及 URDF 准确性,都决定了算法迁移到本体的能力上限。大部分成功迁移的机器人都是串联杆机构,因为并联杆和软体机器人难以被现有刚体模拟器准确建模。
3.1 RL 足式运控技术演进脉络
3.1.1 ETH Robotics System Lab 系列 ETH 首先在 ANYmal 四足机器人上证明了基于强化学习的运控算法的有效性,这一系列工作奠定了整个领域的技术基础。
1. Learning Agile and Dynamic Motor Skills for Legged Robots (Science Robotics, 2019)
强化学习做四足运控的奠基之作。通过利用 real 数据训练的电机网络模型在 sim 中补偿的方式训练策略模型,配合 RL + dynamics randomization,成功在 ANYmal 上部署,实现了鲁棒的 locomotion 策略,包括以特定速度奔跑、跌倒恢复等。
2. Learning quadrupedal locomotion over challenging terrain (Science Robotics, 2020)
同样是奠基之作。首次提出两阶段教师 - 学生框架:教师策略利用模拟器里的特权信息学习最优运动策略,再通过在线模仿学习(DAgger)蒸馏给可部署的学生策略(引入额外 encoder 估计隐式特权信息)。同时提出地形课程学习,实现鲁棒的复杂连续地形行走。注意此时 ETH 的控制策略还比较复杂——网络仅用于辅助足端轨迹生成,还需借助 IK 求解得到最终 target joints,现在主流工作都是直接用策略输出 target joints。
3. Learning to Walk in Minutes Using Massively Parallel Deep RL (CoRL, 2021)
真正意义上的里程碑工作。首次开发和验证了 IsaacGym 并行训练 + domain randomization 的强化学习运控训练方案,开源了 legged_gym 项目。这一技术栈此后被几乎所有后续工作所采用。
4. Learning robust perceptive locomotion for quadrupedal robots in the wild (Science Robotics, 2022)
将外部视觉信号集成到足式 locomotion 策略中的标志性工作。在 ANYmal 上集成本体感知和外部视觉信号,通过学习从深度相机估计局部高程图,实现了楼梯、隧道、雪山、浓雾、森林、碎岩等极端条件下的鲁棒行走。给出了"学习带外感知策略"的完整范例——策略不直接使用原始深度图,而是先编码为局部高程图估计。这一思路深刻影响了后续所有视觉跑酷工作。
5. Elevation Mapping for Locomotion and Navigation using GPU (IROS, 2022)
提出利用 GPU 高效构建高程图的方法,通过接收外部传感器点云信息和位姿信息快速构建周围地形高程图。代码已开源。但在复杂环境中里程计漂移仍是实时建图最大的挑战。
6. Advanced Skills through Multiple Adversarial Motion Priors in RL (ICRA, 2023)
增强版本的 AMP,允许多种可离散切换的风格。在轮腿四足机器人上展示了躲避、行走,以及在四足和双足模式(站立)之间切换的风格。
7. Curiosity-Driven Learning of Joint Locomotion and Manipulation Tasks (CoRL, 2023)
主要亮点在于用轮腿四足学习了用腿当 manipulator 的 loco-manipulation 策略。
8. Learning Agile Locomotion on Risky Terrains (IROS, 2024)
可能是第一篇基于 RL 运控走离散地形的工作(虽然不是全向行走),demo 效果很不错。
9. ANYmal Parkour: Learning agile navigation for quadrupedal robots (Science Robotics, 2024)
提出多层级框架(感知模块 + 导航模块 + 运动模块),首篇实现 ANYmal 四足机器人动态跑酷。感知模块重建环境信息,导航模块驱动运动模块选择合适的运动技能。
10. DTC: Deep Tracking Control (Science Robotics, 2024)
将 Model-based 和 Learning-based 方法有效结合。上层 TO 模块根据环境和动力学实时优化机身与足端轨迹,底层 RL 模块严格跟踪上层优化轨迹,实现了梅花桩、深沟、野外废墟等极端地形的精确运动。改善了此前将运动控制制定为机身速度跟踪而牺牲灵活落足点选择的不足。
3.1.2 KAIST 系列 韩国 KAIST 的机器人学者开发了很多经典的强化学习运控算法方案,主要在 Raibo(MIT Mini Cheetah)和宇树机器狗上验证。
1. Concurrent Training of a Control Policy and a State Estimator for Dynamic and Robust Legged Locomotion (RAL, 2022)
提出一阶段的非对称学习方式(无需教师 - 学生):策略网络同时训练一个关键状态估计器(估计 linear velocity、foot height、contact probability,输入为历史可观测数据),而 critic 直接拿到关键状态真实值,配合 dynamics randomization 和 PPO 训练。最终策略可成功穿越多样的连续复杂地形。
2. DreamWaQ: Learning Robust Quadrupedal Locomotion With Implicit Terrain Imagination via Deep RL (ICRA, 2023)
非对称强化学习结构,状态估计器从可观测信息中估计速度和隐式地形信息 z,利用β-VAE 学习。在宇树 A1 上实现了鲁棒的长距离多样户外地形行走。证明了非对称 Actor-Critic 框架可以实现四足机器人在复杂环境中的鲁棒运动,运动能力甚至可以超过特权学习中学生策略的能力。
3. Learning quadrupedal locomotion on deformable terrain (Science Robotics, 2023)
针对当前 simulator 仅能仿真刚性接触动力学的局限,修改了 RaiSim 底层接触动力学计算模型,建模了 granular media 颗粒接触动力学,实现了 Raibo 在沙滩和海绵垫等松软地形的敏捷鲁棒运动。采用非对称训练框架,进一步证明了该框架的有效性。此后非对称成为腿足式机器人强化学习运控的主流框架。
4. A Learning Framework for Diverse Legged Robot Locomotion Using Barrier-Based Style Rewards (ICRA, 2025)
通过引入松弛对数障碍函数方法,设计了基于运动模式特征的软约束奖励机制,有效引导机器人趋向预设运动形态参数(周期性步态生成、关节运动范围限制等)。值得注意的是本文未使用运动先验却生成了多种仿生四足步态,其中四足站立的仿人行走和模拟动物奔跑 Gallop 步态令人印象深刻。
5. Learning-based legged locomotion: state of the art and future perspectives (IJRR, 2025)
一篇基于学习方法的腿足式机器人运动控制综述,系统概括了过去几年学术界和工业界的研究成果并展望了未来发展方向。来自 Gatech。
3.1.3 其他关键贡献 除 ETH 和 KAIST 外,还有很多研究者在足式机器人运控算法上做出了重要贡献。
1. Sim-to-Real: Learning Agile Locomotion For Quadruped Robots (RSS, 2018)
同样算强化学习做四足运控的奠基之作,启发了 ETH 的 ANYmal 系列。基于 Ghost Robotics 的 Minitaur 四足机器人,提出了 RL + 解析式电机模型 + dynamics randomization 解决 sim-to-real 迁移问题,实现了灵巧的 locomotion 行为。
2. Learning Agile Robotic Locomotion Skills by Imitating Animals (UCB, RSS, 2020)
在宇树早期的 Leika 狗上,基于 Motion Retargeting 和 DeepMimic 的 motion tracking 方案,学习动物自然风格的运动行为。代码已开源。
3. Sim-to-Real Learning of All Common Bipedal Gaits via Periodic Reward Composition (ICRA, 2021)
较早提出了基于概率周期函数定义的足式步态(站立、行走、跳跃、跑步、单脚跳),在 Cassie 上测试。为每种步态单一训练策略,以及一个多步态切换策略。被后续很多工作参考。
4. AMP: Adversarial Motion Priors for Stylized Physics-Based Character Control (UCB, SIGGRAPH, 2021)
虽非足式机器人工作,但框架本身有重要迁移价值。用 GAN 作为隐式 metric 获得风格引导奖励来学习控制策略,后被广泛应用于四足和人形机器人的自然运动学习。
5. RMA: Rapid Motor Adaptation for Legged Robots (CMU, RSS, 2021)
整体方案接近 ETH 的教师 - 学生框架,teacher-student + adaptation module。没有使用地形课程,通过随机采样地形 + domain randomization + RaiSim 并行训练,在宇树 A1 上实现了无外感知的复杂连续地形穿越。代码已开源。
6. Walk These Ways: Tuning Robot Control for Generalization with Multiplicity of Behavior (MIT, CoRL, 2022)
在宇树 Go1 上定义并实现了可细粒度调整步态的鲁棒 locomotion 策略,可控参数包括速度、步态(pronking、trotting、bounding、pacing、galloping)、步频、机身高度、俯仰角、触地时间、抬腿高度等。代码已开源。
7. Rapid Locomotion via Reinforcement Learning (MIT, RSS, 2022)
提出速度网格自适应采样课程,机器人可根据自身运动能力最大程度挖掘速度上限,避免了手工调整速度课程,最大限度减少专家知识干预。代码已开源。
8. Adversarial Motion Priors Make Good Substitutes for Complex Reward Functions (UCB, ICRA, 2022)
首次将 AMP 方法应用到四足机器人,仅通过任务奖励和风格奖励就能学会自然运动行为,推动了后续基于模仿学习的四足运控研究。代码已开源。WMP 项目直接引用了该工作的开源实现(AMP_for_hardware)。
9. Deep Whole-Body Control: Learning a Unified Policy for Manipulation and Locomotion (CMU, CoRL, 2022)
在宇树 Go1 + WidowX 机械臂上首次利用强化学习运控实现臂 - 腿协同控制(基于遥操作)。基于 RMA 提出了 ROA,将环境隐变量 z 由两阶段估计变为一阶段在线估计。基于 IsaacGym + rsl_rl 开发,代码已开源。
10. Learning robust and Agile Legged Locomotion Using Adversarial Motion Priors (SJTU, RAL, 2023)
使用教师 - 学生训练框架,在仅用本体感知的情况下在宇树 Go1 上实现了鲁棒的复杂连续地形行走。亮点在于使用 AMP 引导四足机器人在复杂地形上也能学习到自然步态运动,自然步态数据利用轨迹优化在平地上生成。WMP 项目的 AMP 集成方案直接参考了该工作。
11. Lifelike Agility and Play on Quadrupedal Robots using RL and Generative Pre-trained Models (Tencent, Nature Machine Intelligence, 2023)
利用生成模型的强大表现能力,在预训练阶段学习来自动物的大规模运动数据,在第二阶段的环境交互中复用第一阶段所学运动技能。是腾讯 Robotics X 的经典代表作。
12. Learning Agile Skills via Adversarial Imitation of Rough Partial Demonstrations (CoRL, 2023)
从部分不完整的动作演示中学习四足机器人的动态运动,数据集来源于人为手工操作机器人收集,在低成本机器人上实现了后空翻动作。
13. Extreme Parkour with Legged Robots (CMU, ICRA, 2024) & Robot Parkour Learning (Stanford+上海期智,CoRL, 2024)
两篇同期工作,用 domain randomization + 外感知将宇树 A1 四足机器人的连续地形 locomotion 能力推到极致,可实现跳箱、翻越、夹缝行走等多种行为。两者均为本文重点分析的开源项目。
14. Visual Whole-Body Control for Legged Loco-Manipulation (UCSD, CoRL, 2024)
在宇树 B1 + Z1 机械臂上首次验证了基于视觉输入的、基于模仿学习和强化学习训练的双层策略、利用 sim-to-real 方式实现自动移动抓取任务的可行性。基于 IsaacGym + rsl_rl 开发,代码已开源。
15. PIE: Parkour with Implicit-Explicit Learning Framework for Legged Robots (ZJU, RAL, 2024)
跑酷运动的 plus 版本,进一步提高了四足机器人运动的动态能力,实现了在挑战环境中的高速运动并成功迁移到野外环境。本文第七节将详细分析其技术架构。
16. Expressive Whole-Body Control for Humanoid Robots (UCSD, RSS, 2024) & Exbody2 (2024)
基于 motion sequence retargeting 学习人形机器人的运动序列,实现了表达性丰富的全身控制。
17. Open-TeleVision: Teleoperation with Immersive Active Visual Feedback (UCSD, CoRL, 2024)
开源的基于 VR 人形机器人遥操作框架(上半身)。后续 Mobile-TeleVision(arxiv:2412.07773 )工作展示了全身控制方式,其中 locomotion 控制器结合了 Exbody 的方式。
18. HOVER: Versatile Neural Whole-Body Controller for Humanoid Robots (CMU, ICRA, 2025)
总结和统一了几种现有的人形机器人全身控制方式(root velocity tracking、joint angle tracking、key-point tracking 等)。
19. HugWBC: A Unified and General Humanoid Whole-Body Controller for Fine-Grained Locomotion (SJTU+上海 AI Lab, 2025)
在人形上实现了可细粒度调整步态的鲁棒 locomotion 策略,可控参数包括步态(走、跳、站、单脚跳)、步频、机身高度、俯仰角、触地时间、抬腿高度等。基于多项式足端轨迹引导的抬腿奖励引导出自然步态,利用上肢介入课程实现上肢自由控制,可作为可扩展的基础人形控制器。某种意义上是人形版的 Walk These Ways。
20. Learning Humanoid Standing-up Control across Diverse Postures (上海 AI Lab, RSS, 2025)
效果很好的倒地起身。同期另一篇 Learning Getting-Up Policies for Real-World Humanoid Robots(arxiv:2502.12152 ,UIUC, RSS, 2025)也解决了类似问题。
21. BeyondMimic: From Motion Tracking to Versatile Humanoid Control via Guided Diffusion (Berkeley+Stanford, 2025)
效果很好的 motion tracking,调试和部署都做得不错。还包括一个 guided diffusion 做 task-specific control at test time using simple cost functions。
3.2 四足深度视觉跑酷代表作 以下工作直接将深度视觉引入足式机器人跑酷或极限地形运动,是本文后续章节深度分析的核心对象。ETH 2022 年的视觉 locomotion 工作(见 3.1.1 第 4 篇)为这些工作奠定了技术基础。
Extreme Parkour with Legged Robots (CMU, ICRA 2024)
由 Xuxin Cheng 等人提出,是四足机器人视觉跑酷的里程碑工作之一。该方法采用两阶段训练:第一阶段用地形扫描点(scandots)作为特权信息训练基础策略,第二阶段将前置深度相机的图像通过 CNN 编码器蒸馏到与 scandots 相同的隐空间。在宇树 A1 四足机器人上实现了跳箱(高度达机器人身高两倍)、跨越深沟(宽度达机器人体长两倍)、倒立、斜坡攀爬等极限动作。整个系统使用单一神经网络策略,从深度图像直接输出关节指令,无需人工遥操作。
Robot Parkour Learning (Stanford + 上海期智,CoRL 2024)
由 Ziwen Zhuang 等人提出,与 Extreme Parkour 同期发表。该方法同样基于深度相机的端到端视觉策略,但在训练策略上有所不同:采用了从软动力学约束(允许穿透障碍物)到硬动力学约束的渐进式训练方法。在低成本四足机器人上实现了攀爬、跳跃、匍匐、挤过窄缝等多种跑酷技能,且单一端到端策略可以在真实环境中自主选择和执行合适的跑酷动作。该工作获得了 CoRL 2023 最佳系统论文提名。
PIE: Parkour with Implicit-Explicit Learning Framework for Legged Robots (ZJU, RAL 2024)
由浙江大学团队提出,是 DreamWaQ 方法在跑酷场景下的重要拓展。PIE 的核心创新在于提出了一种多头自编码器(multi-head auto-encoder)机制,将本体感知的历史观测和深度图像通过 MLP 编码器、CNN 编码器和 Transformer 编码器进行跨模态融合,再经过 GRU 实现时序记忆,同时输出速度估计、足端离地高度、高度图显式估计和隐式环境变量四个头。这种隐式 - 显式双重估计机制使得低成本四足机器人能够在障碍物高度达自身三倍、间隙宽度达自身三倍的极限场景中完成跑酷,并成功实现了零样本 sim-to-real 迁移。
ANYmal Parkour (ETH, Science Robotics, 2024)
ETH 提出的多层级跑酷框架(感知 + 导航 + 运动),首篇实现 ANYmal 动态跑酷。详见 3.1.1 第 9 篇。
WMP: World Model-based Perception for Visual Legged Locomotion (SJTU, 2024)
由上海交通大学团队提出,创新性地将世界模型(World Model)引入视觉足式运控。不同于直接将深度图像编码为隐变量的传统方法,WMP 基于 DreamerV3 框架构建了一个环境世界模型,通过 RSSM(循环状态空间模型)学习环境动态的内部表征。世界模型的确定性状态(200 维)作为额外特征输入策略网络,同时结合 AMP(对抗运动先验)保证运动自然性。该方法在仿真和真实环境中均超越了现有基线方法。
3.3 人形深度视觉运控方向 Humanoid Parkour Learning (CoRL 2024)
由 Ziwen Zhuang 等人将四足跑酷的经验拓展到人形机器人,在 CoRL 2024 上发表。该工作将深度视觉跑酷的技术路线从四足延伸到了人形平台,面临的额外挑战包括更高的自由度、更复杂的平衡控制以及上肢协调。
VMTS: Vision-Assisted Teacher-Student RL for Multi-Terrain Locomotion in Bipedal Robots (2025)
针对双足机器人的视觉辅助教师 - 学生强化学习框架。该工作在 PointFoot 双足机器人上实现了基于深度视觉的多地形行走,采用了教师 - 学生架构配合深度编码器,支持 MoE(混合专家)和 PIE 等多种策略架构。其特色在于使用 Warp 框架进行 GPU 加速的光线投射深度渲染,以及针对双足步态的精细化奖励设计。
3.4 技术基础工作总结 以下表格汇总了为深度视觉跑酷提供关键技术基础的工作(详细介绍见 3.1 节):
工作 年份 来源 核心贡献 与深度视觉跑酷的关系 Sim-to-Real Agile Locomotion 2018 RSS RL+ 电机模型+DR 的 sim2real 奠定四足 RL 运控基础 Learning Agile Motor Skills 2019 ETH 电机网络补偿+DR ANYmal 系列起点 Teacher-Student Framework 2020 ETH 教师 - 学生+DAgger 蒸馏 蒸馏范式的源头 Imitating Animals 2020 UCB Motion Retargeting+DeepMimic 动物运动模仿先驱 AMP 2021 UCB GAN 隐式风格奖励 为跑酷自然运动提供先验 IsaacGym+legged_gym 2021 ETH GPU 并行训练框架 所有后续工作的技术栈基础 RMA 2021 CMU 快速电机适应+adaptation module Teacher-Student 的 CMU 变体 Periodic Reward Composition 2021 ICRA 周期函数定义步态 双足步态设计参考 Walk These Ways 2022 MIT 细粒度步态可控 locomotion 步态切换参考 Rapid Locomotion 2022 MIT 速度自适应采样课程 课程学习设计参考 AMP for Hardware 2022 UCB AMP 首次应用于四足 WMP 项目直接引用 Concurrent Training 2022 KAIST 非对称 Actor-Critic 框架 PIE/DreamWaQ 的框架基础 Elevation Mapping 2022 ETH GPU 高效高程图构建 地形感知基础工具 Perceptive Locomotion 2022 ETH 深度相机估计高程图 视觉跑酷的直接前驱 DreamWaQ 2023 KAIST β-VAE 隐式地形估计 PIE 的直接前驱 AMP Agile Locomotion 2023 SJTU AMP+ 复杂地形自然步态 WMP 的 AMP 方案参考 DTC 2024 ETH Model-based+Learning-based 精确落足点控制思路 HugWBC 2025 SJTU 人形细粒度步态控制 人形版 Walk These Ways
3.5 开源项目间的引用关系 通过分析三个核心开源项目的代码和致谢,可以清晰看到技术传承脉络:
ETH legged_gym + rsl_rl (2021 )
├── Extreme Parkour (CMU, 2024 )
│ └── 被 WMP 致谢引用
├── WMP (SJTU, 2024 )
│ ├── 引用 dreamerv3-torch (NM512)
│ ├── 引用 AMP_for_hardware (UCB)
│ └── 引用 Robot Parkour Learning (ZiwenZhuang)
└── VMTS (2025 )
├── 支持 PIE 架构(来自 ZJU)
└── 支持 MoE 架构
这一引用关系图揭示了几个重要事实:(1)ETH 的 legged_gym 是整个生态的根基,三个项目均基于此构建;(2)WMP 是引用最广泛的项目,融合了 DreamerV3、AMP 和 Parkour 三条技术线;(3)VMTS 作为最新的工作,集成了 PIE 等前沿架构,代表了该领域的最新技术整合趋势。
4. 开源项目深度分析:Extreme Parkour
4.1 整体架构 Extreme Parkour 项目由 CMU 的 Xuxin Cheng 等人开发,基于 ETH 的 legged_gym + rsl_rl 框架构建,针对宇树 A1 四足机器人。项目的核心设计思想是将视觉跑酷问题分解为两个阶段:先用特权信息训练一个强大的基础策略,再通过知识蒸馏将视觉编码器对齐到特权编码器的隐空间。
extreme-parkour/
legged_gym/
envs/
scripts/
utils/
rsl_rl/
algorithms/
modules/
runners/
4.2 两阶段训练流程 基础策略使用 132 维的地形扫描点(scandots)作为特权地形感知输入。这些扫描点是在机器人周围 12x11 的网格上直接采样的地形高度值,覆盖范围为前方 1.2 米、两侧各 0.75 米。扫描点通过一个专用的 Scan Encoder 编码为 32 维隐变量:
Actor 网络的完整输入由四部分拼接而成:本体观测(53 维)、scan_latent(32 维)、显式特权信息(3 维:地形等级、摩擦系数、基座质量)和隐式特权隐变量(4 维)。Actor 输出 12 维动作,对应 A1 四足机器人的 12 个关节目标角度。
python train.py --exptid xxx-xx-DESCRIPTION --device cuda:0
第二阶段冻结基础策略的 Actor 权重,训练一个深度编码器将前置深度相机的图像映射到与 Scan Encoder 相同的 32 维隐空间。深度编码器的架构分为两层:
蒸馏损失函数的核心是让深度编码器的输出逼近 scandots 编码器的输出:
depth_encoder_loss = ||scandots_latent - depth_latent||_2
python train.py --exptid yyy-yy-DESCRIPTION --device cuda:0 \
--resume --resumeid xxx-xx --delay --use_camera
4.3 深度相机处理流水线 IsaacGym GPU 相机渲染 (106 x60 原始分辨率) -> 裁剪边缘 (左右各 30px , 底部 2px ) -> 双三次插值缩放至 87 x58 -> 深度范围裁剪 [0, 2m] -> 归一化:(depth - near) / (far - near) - 0.5 -> 2 帧堆叠 (时序信息)
4.4 地形系统与奖励设计 Extreme Parkour 的地形系统是其成功的关键因素之一。项目定义了 19 种地形类型,其中跑酷相关地形占 80% 的比例:
hurdle (跨栏): 20 %
flat (平地): 20 %
step (台阶): 20 %
gap (间隙): 20 %
其他地形:20 %
地形采用课程学习(Curriculum Learning)机制,共 10 个难度等级,40 列不同地形变体。机器人根据表现自动升降难度等级。
tracking_goal_vel = 1.5
tracking_yaw = 0.5
lin_vel_z = -1.0
ang_vel_xy = -0.05
collision = -10.0
action_rate = -0.1
feet_edge = -1.0
dof_error = -0.04
值得注意的是,项目使用了"仅保留正奖励"(only_positive_rewards=True)的策略,将负的总奖励裁剪为零,避免了早期终止导致的训练不稳定问题。
4.5 Domain Randomization 为缩小 sim-to-real gap,项目实施了全面的域随机化:
friction_range = [0.6 , 2.0 ]
added_mass_range = [0. , 3. ] kg
added_com_range = [-0.2 , 0.2 ] m
motor_strength_range = [0.8 , 1.2 ]
push_interval = 8s
max_push_vel = 0.5 m/s
此外,第二阶段训练中引入了渐进式动作延迟(action delay),从 0 步逐渐增加到 5 步,模拟真实部署中的通信和计算延迟。
5. 开源项目深度分析:WMP
5.1 核心思想:用世界模型替代蒸馏 WMP(World Model-based Perception)的设计哲学与 Extreme Parkour 截然不同。Extreme Parkour 采用"先用特权信息训练,再蒸馏到视觉"的两阶段范式,而 WMP 则提出了一个更为根本的问题:能否让机器人像动物一样,通过建立对环境的内部模型来学习运动策略?
传统的教师 - 学生蒸馏方法存在一个固有的"信息瓶颈"——学生策略的性能上限受限于蒸馏过程中的信息损失。WMP 通过引入世界模型绕过了这一瓶颈:世界模型直接从深度图像和本体感知中学习环境动态的内部表征,策略网络则基于这一表征做出决策。
5.2 项目架构 WMP 项目在 legged_gym + rsl_rl 的基础上增加了 dreamer 模块,形成了三模块协同的架构:
WMP/
legged_gym/
envs/a1/
scripts/
dreamer/
models.py
networks.py
configs.yaml
rsl_rl/
runners/wmp_runner.py
modules/actor_critic.py
modules/depth_predictor.py
algorithms/amp_discriminator.py
datasets/
5.3 世界模型的构建与训练 WMP 的世界模型基于 DreamerV3 的 RSSM(Recurrent State Space Model)架构,但针对足式运控场景做了适配。世界模型的核心组件包括:
世界模型的训练与策略训练交替进行。在每个训练迭代中,世界模型首先从收集到的轨迹数据中学习环境动态,然后策略网络利用世界模型提供的 200 维确定性状态特征作为额外输入来更新策略。
5.4 策略网络与 AMP 集成 WMP 的策略网络(ActorCriticWMP)在标准 Actor-Critic 基础上增加了世界模型特征的处理通道:
AMP(Adversarial Motion Prior)的集成是 WMP 的另一个重要特色。AMP 判别器从运动捕捉数据中学习自然运动的分布,为策略提供风格奖励,确保机器人在执行跑酷动作时保持自然的运动姿态:
amp_reward_coef = 0.5 * 0.02
amp_task_reward_lerp = 0.3
amp_discr_hidden_dims = [1024 , 512 ]
amp_replay_buffer_size = 1000000
amp_num_preload_transitions = 2000000
python legged_gym/scripts/train.py --task=a1_amp --headless --sim_device=cuda:0
5.5 深度预测器:辅助任务 WMP 还引入了一个深度预测器(Depth Predictor)作为辅助训练任务。该模块从本体感知状态预测深度图像,其目的是增强本体感知编码器对环境几何信息的敏感性:
learning_rate = 3e-4
training_interval = 10
training_iterations = 1000
batch_size = 1024
loss_scale = 100
5.6 数据流总览 IsaacGym 仿真 (4096 并行环境)
| v
观测:[本体感知 (33 ) + 特权信息 (53 ) + 高度图 (187 ) + 动作 (12 )]
深度相机:64 x64 深度图像 (每 5 步更新)
| v
世界模型编码器:本体感知 + 深度图 -> 隐状态
RSSM: 生成 200 维确定性状态特征
| v
策略网络:历史观测 + WM 特征 -> 12 维关节动作
Critic: 特权观测 -> 价值估计
AMP 判别器:评估运动自然性 -> 风格奖励
| v
PPO + AMP 联合损失 -> 更新策略
深度预测器:本体感知 -> 预测深度图 (辅助任务)
6. 开源项目深度分析:VMTS
6.1 从四足到双足:新的挑战 VMTS(Vision-assisted Multi-Task Student)是 2025 年发表的工作,将深度视觉辅助的强化学习运控从四足机器人拓展到了双足(PointFoot)机器人。双足机器人相比四足面临更严峻的平衡控制挑战:支撑多边形更小、重心更高、步态周期中存在单腿支撑相,这些因素使得策略对环境感知的精度要求更高。VMTS 的核心贡献在于设计了一套适配双足机器人的视觉辅助教师 - 学生框架,并支持多种策略架构的灵活切换。
6.2 项目架构与策略类型 VMTS 基于 pointfoot-legged-gym 框架构建,支持四种策略架构:
pointfoot-legged-gym/
legged_gym/
envs/pointfoot/
point_foot.py
reward.py
flat/pointfoot_flat_config.py
mixed_terrain/pointfoot_rough_config.py
scripts/
train.py
play.py
export_policy_as_onnx.py
ActorCriticTS:标准教师 - 学生架构,教师使用特权观测,学生使用本体感知历史
ActorCriticMoe:混合专家(Mixture of Experts)架构,多个专家网络处理不同地形
ActorCriticMoeS:MoE 的学生版本
ActorCriticPie:集成 PIE 隐式 - 显式估计机制的架构
6.3 深度视觉的 Warp 渲染 VMTS 的一个技术特色是使用 NVIDIA Warp 框架进行 GPU 加速的光线投射深度渲染,而非 IsaacGym 内置的相机渲染。Warp 渲染的优势在于更高的灵活性和更低的延迟:
深度编码器将 58x87 的深度图像编码为 121 维隐变量,该隐变量与本体感知观测拼接后输入策略网络:
depth_image = env.depth_buffer[:,-2 ]
depth_latent = depth_encoder(depth_image, student_obs[:,-29 :])
actions = policy_depth(combined_obs, depth_latent)
depth_encoder.detach_hidden_states()
6.4 双足步态奖励设计 VMTS 针对双足机器人设计了超过 30 个奖励函数,其中步态相关的奖励尤为精细。双足行走的核心难点在于步态周期的稳定性——机器人需要在单腿支撑相和双腿支撑相之间平滑切换,同时保持重心在支撑多边形内。
_reward_feet_contact_number()
_reward_feet_air_time()
_reward_target_feet_height()
_reward_no_fly()
_reward_feet_alignment_x()
_reward_feet_alignment_y()
_reward_action_rate()
_reward_action_smoothness()
_reward_dof_acc()
步态相位通过正弦函数生成参考接触模式,目标抬腿高度随步态周期在 0 到最大值之间变化,周期约 0.5 秒。这种基于相位的步态生成方式避免了手工设计步态状态机的复杂性。
6.5 三个项目的对比总结 特性 Extreme Parkour WMP VMTS 机器人平台 宇树 A1(四足) 宇树 A1(四足) PointFoot(双足) 视觉方案 scandots 蒸馏到深度 世界模型 + 深度 教师 - 学生 + 深度 训练阶段 两阶段 单阶段(交替训练) 两阶段 深度编码器 CNN+GRU DreamerV3 RSSM CNN+RNN 运动先验 无 AMP 无/可选 PIE 深度分辨率 87x58 64x64 58x87 隐变量维度 32 200(WM)+32 121 并行环境数 6144 4096 4096
7. PIE 框架详解:隐式 - 显式双重估计
7.1 设计动机 PIE(Parkour with Implicit-Explicit Learning Framework)的设计出发点是一个实际观察:在跑酷场景中,机器人需要在接近障碍物边缘时做出精确判断,而深度相机在边缘区域的测量恰恰最不可靠——存在严重的噪声、遮挡和延迟。如果策略完全依赖深度图像的显式地形重建,那么在最关键的决策时刻反而最容易失败。
PIE 的解决方案是同时维护两套估计:显式估计直接重建高度图,提供可解释的地形几何信息;隐式估计通过 VAE 学习一个压缩的环境表征,捕捉那些难以显式建模的环境特性 (如摩擦、地形材质、动态障碍物等)。两套估计互为补充,共同输入策略网络。
7.2 网络架构 PIE 采用与 DreamWaQ 相同的非对称 Actor-Critic 框架,但在估计器(Estimator)的设计上做了根本性的改进。整个系统由策略网络、价值网络和多头自编码器三部分组成。
策略网络(Actor) 的输入由四个分量拼接而成:
策略输入 = [本体观测 o_t (45 维), 速度估计 v_hat_t (3 维), 高度图显式估计 z_t^m (低维压缩), 隐式环境变量 z_t (隐变量维度)]
输出:12 维关节目标角度
其中本体观测包含身体角速度(3 维)、本体坐标系下的重力矢量(3 维)、速度指令(3 维)、关节位置(12 维)、关节角速度(12 维)和上一帧动作(12 维)。
价值网络(Critic) 在训练时使用特权观测,包括本体观测、真实线速度和真实高度图扫描点:
Critic 输入 = [本体观测 o_t, 真实线速度 v_t, 真实高度图 m_t]
输出:状态价值估计 V(s)
7.3 多头自编码器:PIE 的核心创新 PIE 最关键的技术贡献是其多头自编码器(Multi-Head Auto-Encoder)。该模块负责从本体感知历史和深度图像中同时提取显式和隐式的环境表征。理解这一模块的设计逻辑,是理解 PIE 整体架构的关键。
编码器(Encoder) 的输入包括两个模态:历史本体观测序列(H2=10 个时间步)和历史深度图像序列(H1=2 帧)。两个模态分别通过各自的特征提取器处理后,再通过 Transformer 编码器进行跨模态融合:
首先,CNN 编码器处理的是原始深度图像而非预处理后的高度图,这意味着网络需要自行学习从透视深度图中提取地形几何信息。这一设计选择的背后逻辑是:高度图的构建本身就是一个有损过程,直接从深度图学习可以保留更多原始几何信息。
其次,Transformer 编码器的引入使得本体感知和视觉感知之间可以进行双向的注意力交互——本体感知可以"询问"视觉信息中与当前运动状态相关的部分,视觉信息也可以利用本体感知来消歧。具体而言,当机器人正在执行跳跃动作时,本体感知中的高角速度和关节加速度信号会引导注意力机制关注深度图像中的着陆区域;反过来,当深度图像检测到前方有深沟时,视觉特征会通过注意力机制影响本体感知的编码,使其更关注与跳跃准备相关的状态量。
最后,GRU 层赋予了整个估计器时序记忆能力,使其能够在深度图像暂时不可用或严重噪声时,依靠历史信息维持合理的估计。这一点在实际部署中尤为重要——深度相机在快速运动时容易产生运动模糊,在强光或反射表面上容易失效,GRU 的记忆机制为这些退化场景提供了鲁棒性保障。
解码器(Decoder) 包含四个解码头,分别对应显式和隐式两类估计:
地形显式估计头:将 z_t^m 通过 MLP 解码器重建高维高度图 m_t。这是最直接的地形感知输出,策略网络可以据此判断前方障碍物的几何形态
状态隐式估计头:将 GRU 的完整隐状态通过 MLP 解码器预测下一步本体观测 o_{t+1}。这一预测任务迫使隐式表征捕捉环境动态——只有理解了地形的物理特性(摩擦、弹性、坡度等),才能准确预测机器人在该地形上的下一步状态
速度显式估计头:直接输出线速度估计 v_hat_t(3 维),为策略提供当前运动状态的精确反馈
足端高度显式估计头:输出各足端离地高度 h_hat_t^f(4 维,对应四条腿),为精确的落足点控制提供依据
这四个头的设计体现了 PIE 的核心哲学:显式估计提供可解释、可直接使用的物理量(高度图、速度、足端高度),隐式估计则通过预测任务学习那些难以直接测量的环境特性。两者互为补充,共同构成策略决策的信息基础。
7.4 训练损失函数 PIE 的总损失函数由五项组成,体现了 VAE 框架下显式与隐式估计的联合优化:
L = D_KL(q(z_t | o_t^H1, d_t^H2) || p(z_t))
+ MSE(o_hat_{t+1 }, o_{t+1 })
+ MSE(m_hat_t, m_t)
+ MSE(v_hat_t, v_t)
+ MSE(h_hat_t^f, h_t^f)
KL 散度项约束隐变量 z_t 的后验分布 q(z_t | o_t^H1, d_t^H2) 接近标准正态先验 p(z_t) = N(0, I)。这一正则化有两个目的:一是防止隐空间退化为确定性映射(即编码器忽略输入直接输出固定值),二是保证隐空间的连续性和平滑性,使得相似的环境状态被映射到隐空间中相近的区域。PIE 采用 beta-VAE 的思路,通过一个可调的 beta 系数控制 KL 项的强度——权重过大会导致 posterior collapse,权重过小则失去正则化效果。
下一步状态预测损失 MSE(o_hat_{t+1}, o_{t+1}) 是驱动隐式估计学习的核心。这一损失要求 GRU 的隐状态必须包含足够的环境动态信息,才能准确预测机器人在当前地形上的下一步状态。例如,在高摩擦地面上机器人的减速更快,在弹性地面上着地后会有反弹,在斜坡上重力分量会导致侧向漂移。这些物理特性无法通过高度图显式表达,但会直接影响下一步状态,因此隐式估计被迫学习这些信息。
高度图重建损失 MSE(m_hat_t, m_t) 驱动显式地形估计的学习。需要注意的是,高度图的维度通常在 100-200 之间,其 MSE 的量级远大于 3 维速度估计的 MSE。因此在实际训练中,需要对各项损失进行归一化或加权。一种常见的做法是将高度图重建损失除以高度图维度,使其与其他损失项在同一量级。
速度估计损失和足端高度估计损失则提供了直接可用的物理量监督,量级较小但梯度信号清晰,有助于在训练早期快速建立有意义的表征。
这五项损失与 PPO 的策略梯度损失联合优化,完整的训练目标可以写为:
L_total = L_PPO(策略梯度 + 价值函数) + alpha_kl * D_KL(q || p) + alpha_pred * MSE(o_hat_{t+1 }, o_{t+1 }) + alpha_map * MSE(m_hat_t, m_t) / dim(m) + alpha_vel * MSE(v_hat_t, v_t) + alpha_foot * MSE(h_hat_t^f, h_t^f)
目录
1. 引言:为什么需要深度视觉 2. 技术背景:深度视觉在足式运控中的演进 2.1 从特权信息到可部署感知 2.2 深度相机的引入 2.3 训练框架的技术栈 3. 全网深度视觉跑酷项目梳理 3.1 RL 足式运控技术演进脉络 3.1.1 ETH Robotics System Lab 系列 3.1.2 KAIST 系列 3.1.3 其他关键贡献 3.2 四足深度视觉跑酷代表作 3.3 人形深度视觉运控方向 3.4 技术基础工作总结 3.5 开源项目间的引用关系 4. 开源项目深度分析:Extreme Parkour 4.1 整体架构 4.2 两阶段训练流程 Scan Encoder 结构(rslrl/modules/actorcritic.py) 输入:132 维 scandots 网络:132 -> 256 -> 256 -> 256 -> 32 (Tanh 激活) 输出:32 维隐变量 scan_latent 训练 10-15k 迭代,RTX 3090 上约 8-10 小时 6144 个并行环境,每步 32 个时间步 = 196,608 个 transition/batch 深度 CNN 骨干网络(rslrl/modules/depthbackbone.py) DepthOnlyFCBackbone58x87: Conv2d(1, 32, kernel=5) -> MaxPool2d(2) -> ELU Conv2d(32, 64, kernel=3) -> ELU -> Flatten Linear(642539, 128) -> ELU Linear(128, 32) 输出:32 维深度特征 循环深度骨干网络(RecurrentDepthBackbone): [深度特征 (32) + 本体观测 (53)] -> MLP(128 -> 32) -> GRU(input=32, hidden=512) -> MLP(512 -> 34) # 32 维隐变量 + 2 维辅助输出 -> Tanh 蒸馏损失(rsl_rl/algorithms/ppo.py) 训练 5-10k 迭代,RTX 3090 上约 5-10 小时 4.3 深度相机处理流水线 相机安装位置:[0.27, 0, 0.03] (机器人前方) 俯仰角范围:[-5°, 5°] 水平视场角:87° 更新频率:每 5 个控制步更新一次 4.4 地形系统与奖励设计 跑酷地形分布 核心奖励项及权重 4.5 Domain Randomization 域随机化参数 5. 开源项目深度分析:WMP 5.1 核心思想:用世界模型替代蒸馏 5.2 项目架构 5.3 世界模型的构建与训练 世界模型架构(dreamer/models.py) 输入观测空间: prop: (33,) -- 本体感知(关节位置/速度、基座状态) image: (64, 64, 1) -- 深度图像 RSSM 参数: dyn_deter = 200 -- 确定性状态维度(输出给策略的特征) dyn_stoch = 32 -- 随机状态维度 dyn_hidden = 200 -- 隐藏层维度 dyn_discrete = False -- 使用连续隐变量 编码器:MultiEncoder 本体感知分支:MLP(33 -> hidden -> feature) 深度图像分支:CNN(64x64x1 -> feature) 解码器:从隐状态重建观测 奖励头:从隐状态预测任务奖励 5.4 策略网络与 AMP 集成 ActorCriticWMP 网络结构 Actor 输入:历史观测 (5 步) + 世界模型特征 (200 维) 编码器:[256, 128] hidden dims WM 编码器:[64, 64] hidden dims Actor 主干:[256, 128, 64] -> 12 维动作 Critic 输入:特权观测(含真实高度图和接触力) Critic 主干:[512, 256, 128] -> 1 维价值估计 AMP 配置(a1ampconfig.py) 训练约 23GB GPU 显存,建议至少 10k 迭代 5.5 深度预测器:辅助任务 深度预测器配置 5.6 数据流总览 6. 开源项目深度分析:VMTS 6.1 从四足到双足:新的挑战 6.2 项目架构与策略类型 6.3 深度视觉的 Warp 渲染 深度渲染配置 分辨率:58 x 87 像素 渲染方式:Warp GPU 光线投射(ray casting) 深度缓冲:[numenvs, historyframes, 58, 87] 图像处理:torchvision BICUBIC 插值缩放 推理时的深度处理流程(play.py) depth_latent: 121 维 6.4 双足步态奖励设计 步态相关核心奖励(reward.py) 足端放置奖励 运动平滑性奖励 6.5 三个项目的对比总结 7. PIE 框架详解:隐式 - 显式双重估计 7.1 设计动机 7.2 网络架构 7.3 多头自编码器:PIE 的核心创新 7.4 训练损失函数 相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online