[2023.10.1]Universal Humanoid Motion Representations for Physics-Based Control
Link: [2310.04582] Universal Humanoid Motion Representations for Physics-Based Control
核心本质
这篇论文的核心本质,是建立了一套业界通用的成熟运动控制范式(Pipeline),用以解决动画数据与物理控制之间的巨大鸿沟(Gap)。
1. 核心目标
- 构建一个统一的运动表示(Unified Motion Representation):使用隐变量 z 作为通用语言,同时支撑动作的自然多样性与物理的稳定性。
2. 核心困境(为什么需要这套范式)
- MoCap 生成模型(如 CVAE):动作自然、丰富、像人,但物理不稳定,仿真里会摔倒。
- 纯轨迹优化(TO/MPC):物理极其稳定、可控制,但动作单调死板,无法覆盖 MoCap 里的复杂动作,且计算缓慢。
- 矛盾:追求多样性就不稳,追求稳定就不多样。
3. 解决方案与关键流程(取其精华)
作者没有抛弃任何一方,而是用三级跳的策略,完善了一套成熟范式:
第一阶段:建立动作先验(Motion Prior)
- 手段:利用大规模 MoCap 数据(如 AMASS)训练 CVAE。
- 作用:让网络从无标签数据中自动学习动作的隐语义 z。这一步决定了智能体能做的动作广度与多样性。
第二阶段:成熟的轨迹优化与蒸馏(Distillation)
- 手段:作者自研了一套非常成熟、高质量的全身轨迹优化器。它虽然慢,但能在物理仿真里算出稳定、自然、物理正确的参考轨迹。
- 关键操作:利用这套优化器作为"老师",对 CVAE 的解码器(Decoder)进行知识蒸馏。
- 目的:在不破坏统一表示 z 的前提下,把物理稳定性灌进网络。
第三阶段:高层强化学习(High-level RL)
- 手段:固定蒸馏好的 Decoder 作为底层执行器,训练上层 RL 策略。
- 作用:RL 只负责输出指令 z,实现简单、灵活的高层语义控制。
4. 最终成果与贡献
- 统一表示 z:现在的 z 既代表了 MoCap 里的丰富动作语义,也代表了物理上的可执行状态。
- 范式确立:这篇论文真正的历史贡献,是定型并普及了这套 Prior(先验)+ Distillation(蒸馏)+ RL(高层控制) 的标准流水线。后来所有人做基于物理的角色控制,基本都在沿用这套成熟的框架。
5. 不可回避的局限性(因果真相)
- 虽然动作变稳了,但天花板依然被轨迹优化器锁死。
- 因为依赖轨迹优化生成数据,所以该系统能做的动作,依然仅限简单的 Locomotion(走路、跑步、转向等)。
- 复杂的跳跃、翻滚、交互动作,受限于优化器的求解能力,这套框架暂时无法覆盖。
详细技术流程
阶段 1:Motion Prior(动作先验)—— CVAE 训练
作用:从动作捕捉数据学习统一、丰富的语义隐空间 z
- 网络:Conditional VAE(CVAE)
- 训练数据:原始 MoCap 动作数据(AMASS),无标签,包含走路、跑、蹲、转身等大量人类动作
- 输入:动画姿态序列:当前帧姿态 $s_t$
- 输出:
- 预测下一帧动画姿态 $\hat{s}_{t+1}$
- 同时输出隐变量 z(动作语义表示)
- 目标:重建动画姿态,学习自然动作规律,z 代表动作风格/类型
阶段 2:Motion Distillation(动作蒸馏)—— Decoder 微调
作用:把物理稳定性灌进网络,保留 z 不变
- 用到的关键模块:作者自研的成熟、高质量、全身轨迹优化器(Trajectory Optimizer)
- 轨迹优化器的作用:以 MoCap 为参考,在物理仿真中计算出稳定、不摔倒、符合动力学的姿态序列
- 蒸馏训练数据:轨迹优化器生成的物理稳定姿态序列(不是原始 MoCap)
- 网络:只使用阶段 1 训练好的 CVAE Decoder(解码器)
- Decoder 输入:当前物理状态 $s_t$ + 隐变量 z
- Decoder 输出:下一帧目标姿态(直接作为 PD 控制器的目标)
- 训练目标:让 Decoder 输出尽量逼近轨迹优化器的稳定姿态
- 注意:这一步只微调 Decoder,不改变 z 的语义空间。
阶段 3:High-level Control(高层强化学习)
作用:学习用 z 控制角色完成任务
- 底层网络:蒸馏后的 Decoder 被完全固定,当作控制器,不再训练
- 上层网络:RL 策略网络(Policy Network)
- RL 输入:环境观测(角色状态、目标位置、速度等)
- RL 输出:隐变量 z(送给 Decoder)
- 训练数据:强化学习与物理仿真交互产生的交互数据
- 目标:让 RL 学会输出合适的 z,使角色完成导航、避障、稳定运动等高层任务