Conference
Synthesizing Physical Character-Scene Interactions
NVIDIA; Electronic Arts; Max Planck Institute for Intelligent Systems
一句话总结
用对抗式模仿学习加强化学习训练物理仿真角色,让它们在无需人工标注运动数据的前提下,自然地完成坐下、躺下、搬运等与场景物体交互的任务。
研究背景
- 领域现状:机器学习驱动的角色动画进展显著,但多数系统只在简单、同质的环境里控制角色移动,与物体的交互很有限;不少人-场景交互方法还依赖大量人工标注训练数据。
- 核心痛点:传统运动混合/编辑需要大量人工调整;数据驱动的运动学模型在训练分布外场景会产生穿模、脚滑等非物理行为且难以泛化;基于跟踪的物理方法难以组合并在多种技能间平滑切换,无法应对场景交互所需的精细调整。
- 本文 idea:在 Adversarial Motion Priors(AMP)基础上扩展,让判别器和策略网络都以场景上下文(物体信息)为条件,从而在”场景语境”下评估动作真实性(例如只有存在椅子时坐的动作才算真实),并通过随机化物体形状、位置与物理属性让策略从极少的示范泛化到大量物体。
方法
整体框架沿用 AMP 的双组件结构:一个策略网络控制角色去最大化任务奖励,一个对抗判别器区分”策略生成的运动”与”运动数据集中的真实运动”,判别器给出的分数作为风格奖励反哺策略。与既有工作的关键区别在于——判别器同时观察角色和场景中的物体,使真实性判断建立在场景语境之上。
flowchart LR
A["运动数据集<br/>(含物体位姿)"] --> D["场景条件判别器"]
E["物理仿真 (IsaacGym)"] --> S["状态 s<br/>(角色+物体特征)"]
S --> P["策略网络"]
P --> ACT["关节目标旋转 (PD 控制)"]
ACT --> E
E --> S2["下一状态"]
S2 --> D
D --> RS["风格奖励 r_S"]
RS --> P
G["任务奖励 r_G"] --> P
关键设计:
- 场景条件判别器:判别器输入不仅含角色的状态转移,还包含物体的位置与朝向。它同时评估”动作是否像人”以及”动作相对于物体是否合理”。风格奖励定义为 \(r_S(\boldsymbol{s}_t, \boldsymbol{s}_{t+1}) = -\log(1 - D(\boldsymbol{s}_t, \boldsymbol{s}_{t+1}))\),判别器训练目标沿用 AMP 的对抗损失加梯度惩罚正则项。
- 含物体的状态表示:状态包含根高度/旋转/线速度与角速度、局部关节旋转与速度、四个关键关节(双手双脚)位置,以及物体位置与朝向;旋转采用 6D 法向-切向编码,物体特征在角色局部坐标系下表示。合计 114 维状态、28 维动作(各关节的指数映射目标旋转)。由于物体在交互中会移动,角色必须实时反应。
- 总奖励构成:每步奖励为任务奖励与风格奖励的加权和 \(r_t = w_G\, r_G(\boldsymbol{s}_t, \boldsymbol{g}_t, \boldsymbol{s}_{t+1}) + w_S\, r_S(\boldsymbol{s}_t, \boldsymbol{s}_{t+1})\),其中 \(r_G\) 编码高层目标(坐到椅子上、把箱子搬到目标位置),\(r_S\) 对所有任务保持一致。
- 物体随机化 + 参考状态初始化:每个并行环境用来自 ShapeNet 的不同同类物体填充(约 350 个物体,7 个类别),并随机缩放尺寸、随机放置于 1~10 米范围、朝向在 \([0, 2\pi]\) 均匀采样;箱子还随机改变重量。参考状态初始化让角色有时靠近目标、有时远离,显著加速训练并提升自然度。这套随机化是”从少量示范泛化到大量物体”的核心。
实验结果
在坐下任务上与运动学模型 NSM、SAMP 以及基于物理的分层方法 Chao et al. 对比(成功以”接近物体时不穿模并完成任务”为准):
| 方法 | 任务 | 成功率(%) | 执行时间(s) | 精度(m) |
|---|---|---|---|---|
| NSM | Sit | 75.0 | 7.5 | 0.19 |
| SAMP | Sit | 75.0 | 7.2 | 0.06 |
| Chao et al. | Sit | 17 | - | - |
| 本文 | Sit | 93.7 | 3.7 | 0.09 |
| SAMP | Lie down | 50 | 9.5 | 0.05 |
| 本文 | Lie down | 80 | 6.9 | 0.3 |
本文在坐、躺任务的成功率显著超越先前方法;运动学模型常见脚滑/悬浮与物体穿透,Chao et al. 的物理方法接近物体时角色多半摔倒。在自身评测中(每任务 4096 次试验),坐/躺/搬运成功率均高于 90%(搬运 94.3%、带重量搬运 97.2%)。策略对外部扰动鲁棒:被 20 个 1.2kg 投射物击打或中途移动物体时,三项任务仍保持 82%~89% 的成功率。仅从 3 米内起步的参考片段,策略却能从 10 米外随机初始化完成任务。
亮点与局限
- 亮点:
- 无需人工标注即可从大规模非结构化运动数据学习场景交互,避免了运动学方法对稀缺高质量人-场景数据的依赖。
- 场景条件判别器是简洁而关键的创新:把”物体上下文”注入真实性判断,使坐/躺/搬运的语义得以正确约束。
- 物体随机化带来出色泛化——从 7 个物体的示范推广到约 350 个训练物体并测试未见物体;从单个箱子的 5 分钟示范推广到不同尺寸重量的箱子;箱子非焊接在手上,而是靠接触力驱动,更接近真实操作。
- 局限:
- 每个任务需单独训练策略,多任务 RL 仍是开放难题。
- 只处理单物体环境,复杂多物体场景需扩展状态表示(作者设想加入”虚拟眼睛”感知)。
- 泛化仅限于同类物体的尺寸/重量变化,超出训练分布过远时成功率会下降;也未涵盖跳跃等新技能的泛化。偶有角色停在物体旁或走次优路径而超时失败的情况。
延伸思考
- 场景条件判别器的思路可推广到更一般的”上下文条件模仿学习”:凡是动作真实性依赖于环境状态的任务(工具使用、双人交互、地形自适应运动),都可考虑把环境特征喂给判别器。
- 与后续可控角色工作(如同组的 CALM 等 latent 空间条件模型)结合,或许能在保留场景交互能力的同时实现指令式技能组合,缓解”每任务单独训练”的痛点。
- 加入视觉感知(虚拟眼睛/局部占据表示)以扩展到杂乱多物体场景,是把该框架推向实际游戏与仿真应用的关键一步;同时值得追问随机化范围与泛化边界之间的定量关系。