15000 FPS的实时运动生成:GR00T-WholeBodyControl中MotionBricks潜空间生成模型抢先体验
【免费下载链接】GR00T-WholeBodyControlWelcome to GR00T Whole-Body Control (WBC)! This is a unified platform for developing and deploying advanced humanoid controllers. This includes: Decoupled WBC models used in NVIDIA Isaac-Gr00t, Gr00t N1.5 and N1.6 and GEAR-SONIC项目地址: https://gitcode.com/gh_mirrors/gr/GR00T-WholeBodyControl
GR00T-WholeBodyControl 中的MotionBricks是一个实时运动生成框架:它用大规模潜空间(latent)生成主干 + 直观的"智能原语(smart primitives)",在 Unitree G1 人形机器人上实现 15,000 FPS 的高质量零样本运动合成,让你像搭积木一样快速构建复杂动画与机器人动作。本文带你快速上手这个模块的交互演示、模型架构和训练管线。
一、MotionBricks 是什么?为什么值得关注?
MotionBricks 是 GR00T-WholeBodyControl 仓库中的一个子项目(位于motionbricks/目录),主打两点:
- 🧠模块化潜空间生成架构:由 VQVAE 运动分词器 + Pose 模型 + Root 模型三部分组成,把连续运动离散化、模块化,推理极快;
- 🕹️智能原语控制:用 WASD + 风格键即可实时切换"僵尸步""受伤走""拳击行走""手撑爬行"等风格,还能做捡剑、跳长椅、坐下等物体交互动作。
它面向动画创作与机器人控制两个场景——上面的 teaser 图上半部分是游戏引擎中的人形动画,下半部分就是 G1 真机同款骨骼上的实时生成结果。
二、三大模型组件:VQVAE 分词器、Pose 模型与 Root 模型
MotionBricks 的核心思想是"根运动(root)与身体姿态(pose)解耦 + 离散 token 化",三个组件各司其职:
| 组件 | 作用 | 源码位置 |
|---|---|---|
| VQVAE(运动分词器) | 把 413 维的每帧运动特征编码为离散 codebook token,支持重建与条件生成 | motionbricks/vqvae/models/motion_vqvae.py |
| Pose 模型 | 给定根轨迹与稀疏姿态约束,预测离散 pose token | motionbricks/motion_backbone/models/pose_model.py |
| Root 模型 | 从稀疏约束出发,预测连续的全局根轨迹(位置 + 朝向) | motionbricks/motion_backbone/models/root_model.py |
运动表示方面,当前配置使用DualRootGlobalJoints表示法跑在G1Skeleton34(Unitree G1 的 34 关节骨骼)上:每帧特征向量共 418 维,拆分为 414 维全局子集(供 Root 模型)和 413 维局部子集(供 Pose/分词器),两者通过无损失转换互转。详细推导可阅读官方文档:
- 运动表示与坐标系规范:docs/motion_representation.md
- 双根表示实现:dual_root_global_joints.py
三、快速上手:一键运行 15000 FPS 交互演示
1. 环境要求
- Python 3.10+、CUDA GPU、Git LFS
2. 克隆仓库并安装依赖
git lfs install git clone https://gitcode.com/gh_mirrors/gr/GR00T-WholeBodyControl cd GR00T-WholeBodyControl/motionbricks conda create -n motionbricks python=3.10 -y conda activate motionbricks pip install -e . # Linux 键盘输入需要 pip install pynput python-xlib💡 预训练 checkpoint(约 2.2 GB)默认不随普通克隆下载,需要时可执行
git lfs pull --include="motionbricks/out/**"从仓库根目录拉取。文件校验命令见 motionbricks/README.md 的 Setup 章节。
3. 启动交互式演示
DISPLAY=:1 python scripts/interactive_demo_g1.py启动后会弹出 MuJoCo 视图,用键盘即可实时驱动 G1 机器人,左键拖拽可改变相机视角。演示入口在 scripts/interactive_demo_g1.py,其中还包含了一个"禁用 MuJoCo 快捷键冲突"的 X11 键捕获技巧。
四、键盘控制清单:方向键 + 10 种运动风格
移动控制(方向相对相机):W前进 /A左移 /S后退 /D右移
运动风格原语:
| 键 | 风格 |
|---|---|
V | 慢走 |
Z/B | 手撑爬行 / 肘撑爬行 |
X | 拳击行走 |
R/C | 潜行 / 蹲伏潜行 |
T | 受伤行走 |
E | 欢快舞蹈行走 |
F/G/Q | 僵尸步 / 持枪走 / 受惊走 |
不按风格键时,默认行为是:不动 = 待机,按 WASD = 行走。风格可实时混合切换,演示控制器每隔 8 帧重新生成一次 token 序列,保证画面流畅衔接。
五、从动画到真机:智能原语的更多玩法
除了行走类原语,MotionBricks 还支持物体交互原语:捡剑、跳跃翻越、坐下、跌倒等。下面这个演示中,机器人实时"生成"了拾起并挥动剑的动作——注意这不是播放预录动画,而是每帧由潜空间模型在线推理出来的。
这些"智能原语"的意义在于:上层应用(游戏引擎、遥操作、GR00T N1.5/N1.6 等)只需发出风格 + 意图,底层就能输出连续、自然、零样本的关节轨迹,极大降低了人形机器人动作设计的门槛。
六、训练自己的模型:三步训练管线
仓库为三个组件都提供了训练脚本(默认使用合成数据 synthetic_dataset.py,无需真实数据集即可跑通全流程):
python scripts/train_vqvae.py # 训练 VQVAE 运动分词器 python scripts/train_pose.py # 训练 Pose 模型(需先有 VQVAE 权重) python scripts/train_root.py # 训练 Root 模型(独立)想在自己的动作数据或其他机器人上训练?官方给了两条路径建议:
- 复用 MotionBricks 的运动表示(G1Skeleton34),只需替换数据加载器;
- 自建数据管线,仅把 VQVAE/Pose/Root 的建模结构当参考(官方更推荐,因为 tokenizer 对运动表示没有强限制)。
详细指南见:docs/adding_your_own_dataset.md,关键代码入口包括特征计算的 motion_features.py 和最小数据集接口 synthetic_dataset.py。
七、写在最后:它在整个仓库里的位置
MotionBricks 与 GEAR-SONIC 一起,构成了 NVIDIA GR00T 全身控制计划的两大支柱:前者提供"实时生成任意运动"的能力,后者提供"把运动落到真机"的全身控制策略。按照路线图,MotionBricks 将更深地嵌入 GEAR-SONIC 的训练管线中,形成完整的"生成 → 跟踪 → 部署"闭环。
上手建议:
- 🚀 想快速看效果:先跑
interactive_demo_g1.py,10 分钟体验 15,000 FPS 实时生成; - 🔬 想理解原理:精读 motion_representation.md 中的特征维度表;
- 🏋️ 想二次开发:从 train_vqvae.py 的合成数据路径切入,替换为自己的 Dataset 即可。
【免费下载链接】GR00T-WholeBodyControlWelcome to GR00T Whole-Body Control (WBC)! This is a unified platform for developing and deploying advanced humanoid controllers. This includes: Decoupled WBC models used in NVIDIA Isaac-Gr00t, Gr00t N1.5 and N1.6 and GEAR-SONIC项目地址: https://gitcode.com/gh_mirrors/gr/GR00T-WholeBodyControl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考