Human Demonstration
For Whole Body Control#
对于 WBC (whole body control) 来说, human demonstration 是人形机器人运动的最终目标 (毕竟如果人形机器人没必要运动得像人, 那也没必要把机器人做得像人是不是).
而且 tracking human demonstration 已经有很多成熟的方案了. 控制算法从 DeepMimic 1 起步, 到近几年的 GMT 2, BeyondMimic 3, OmniRetarget 4, SONIC 5, 从单一 trajectory 的 motion tracking 到大规模的学习整合, 让人形机器人的 locomotion 越来越动作丰富, 能力也越来越鲁棒, 所以很多人会说 Humanoid 已经 solved 了. 当然也有人觉得还没有完全解决, 但不可否认的是, 相比 manipulation, 尤其是 contact-rich manipulation, locomotion 确实已经大幅领先了.
故本文将主要 focus on dexterous hand manipulation, 分析对 dexterous hand manipulation 来说 human demonstration 是否真的有用, 到底有什么用.
For Contact-Rich Manipulation#
首先分析一下, 为什么对于 locomotion 来说 learning from human 相对简单: 其实就是 contact 简单.
大多数时候, locomotion 只有双脚接触地面. 这样的接触逻辑使得在物理仿真中建模 humanoid 和世界的接触相对容易, 也带来了很小的 sim2real gap. 但是一旦需要和物体接触, sim2real gap 就会迅速变大. 毕竟物理仿真器里的 contact 是对真实世界的高度简化, 即便保留下来的那部分物理参数也和真实世界差得很远, 学出来的 policy 很容易在真实世界的复杂接触环境里 OOD 然后失败.
当然这其实不是 learning from human 独有的难点, 而是任何 sim2real 问题里都内禀存在的困难. 比如用 RL 做 reward shaping, 让机械手抓起一个锤子再敲钉子, 这个 setting 下我们没有用 human demonstration, 不过将 policy deploy 到真实世界中依然会因为复杂 contacts 很难成功.
但是这件事促使我们思考: 当 simple motion tracking 遇到 contact-rich manipulation 时会变得极其困难, 那 human demonstration 是不是根本没用, 还是说应该换一种方式来使用 human demonstration?
What Can Human Demonstration Do?#
在这方面, 我觉得 human demonstration 可能可以往两个方向扩展.
第一个方向非常 straightforward, human demonstration 可以提供 high level semantic information.
比如 human demonstration 可以告诉我们, 开门要推门把手, 而不是把门踹开; 拿茶壶时应该抓把手, 而不是抓茶壶嘴. 大部分大规模使用 human demonstration 的工作其实都是这个思路. 比如 ObjDex 6 不直接利用 human demonstration 的手指信息, 而是只用 wrist 作为机器人灵巧手的大致方向 guidance, 很明显主要利用的是 high level 语义信息. 还有最近的 EgoScale 7, 大规模的 human video pre-training 先让模型学到大致的语义信息, 然后再用少且昂贵的真机数据把这些语义信息和真正的 robot action 对齐起来.
第二个方向是, human demonstration 在更 low level 的 control 上也能帮上忙.
人类运动在精细控制层面同样提供了丰富信号, 尤其是触觉信号. 这些信号可以大幅帮助任何输出 robot action 的 policy 收缩探索空间, 给出大致正确的探索梯度方向, 避免 policy 在 action space 里胡乱探索. 无论是在物理仿真中, 还是真实世界的 real RL 里, human demonstration 都可能让策略更快收敛到既能完成 task, 动作又自然, human-like 的解上. 至少在物理仿真里, 这一点是成立的.
我对 human demonstration 的思考大致就是这些. 最根本的逻辑是, human demonstration 肯定在 high level 和 low level 都提供了很强的真实世界的物理 prior. 从具体解决方案上讲, human demonstration 可以说提供了一个 coarse motion prior. 既然机械手和人手的 morphology 相近, 理论上只要在 human demonstration 附近做少量探索, 就有机会以比较自然的姿态完成任务.
One More Thing#
这件事和 real RL 是否也有类似的哲学呢?
如果把 pre-trained VLA 也看作一种 coarse motion prior, 那 real RL 算法在真实世界中的探索其实就是在用真实 dynamics 去矫正这个 prior. 最近的 RLT 8 也可以这样理解: 它在 VLA 输出动作的附近, 针对最难的那一小段 trajectory 做真实世界探索和 human feedback 矫正. 那么, 这个真实世界探索过程是否也可以用 human demonstration 来引导呢? 毕竟 human demonstration 同样采集自真实世界, 而且还有很强的 scale-up 潜力.
Footnotes#
DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills. https://xbpeng.github.io/projects/DeepMimic/index.html ↗ ↩
GMT: General Motion Tracking for Humanoid Whole-Body Control. https://gmt-humanoid.github.io/ ↗ ↩
BeyondMimic: From Motion Tracking to Versatile Humanoid Control via Guided Diffusion. https://beyondmimic.github.io/ ↗ ↩
OmniRetarget: Interaction-Preserving Data Generation for Humanoid Whole-Body Loco-Manipulation and Scene Interaction. https://omniretarget.github.io/ ↗ ↩
SONIC: Supersizing Motion Tracking for Natural Humanoid Whole-Body Control. https://nvlabs.github.io/GEAR-SONIC/ ↗ ↩
Object-Centric Dexterous Manipulation from Human Motion Data. https://sites.google.com/view/obj-dex ↗ ↩
EgoScale: Scaling Dexterous Manipulation with Diverse Egocentric Human Data. https://research.nvidia.com/labs/gear/egoscale/ ↗ ↩
Precise Manipulation with Efficient Online RL. https://www.pi.website/research/rlt ↗ ↩