AMASS_Retargeted_for_G1
收藏数据集概述:AMASS Retargeted for Unitree G1 Humanoid
基本信息
- 数据集名称:AMASS Retargeted for G1 Humanoid (NMR + GMR)
- 许可协议:AMASS 许可协议(AMASS License)
- 任务类别:机器人学
- 标签:运动重定向、人形机器人、AMASS、SMPL-X、G1、GMR、NMR
- 数据规模:10,000 < 样本数 < 100,000
- 目标机器人:Unitree G1(29自由度身体 + 自由浮动根部)
数据集组成
数据集包含两个变体版本,分别采用不同的运动重定向管线将 AMASS 数据集中的动作重定向到 Unitree G1 29自由度人形机器人。
| 变体 | 管线 | 源数据 | 帧率 | 文件格式 | 序列数 |
|---|---|---|---|---|---|
g1/NMR/ |
NMR — 神经运动重定向 | AMASS SMPL-X 中性模型,Stage II | 30 FPS | .npz |
16,297 |
g1/GMR/ |
GMR — 通用运动重定向 (unitree_g1 29 DOF) |
AMASS SMPL-X 性别特定模型,Stage II | 30 FPS | .pkl |
17,029 |
目录结构
g1/ ├── NMR/ │ ├── ACCAD/ │ ├── BMLmovi/ │ ├── ... │ └── WEIZMANN/ └── GMR/ ├── ACCAD/ ├── BMLmovi/ ├── ... └── WEIZMANN/
g1/NMR/<数据集>/:每个运动序列一个.npz文件,文件名格式为<数据集>__<受试者>__<动作>_stageii.npz。g1/GMR/<数据集>/:镜像原始 AMASS 目录结构,例如g1/GMR/CMU/15/15_02_stageii.pkl。
变体1:NMR (g1/NMR/)
处理方法
- 使用 RayZhao/NMR 的
epoch_30.pth模型进行神经运动重定向。 - 后处理:当序列长度 > 15 帧时,应用 4 阶 Butterworth 低通滤波器(5 Hz,30 FPS)。
文件格式
每个 .npz 文件包含以下键:
| 键名 | 形状 | 数据类型 | 描述 |
|---|---|---|---|
dof |
(T, 29) |
float32 | G1 关节角度(弧度) |
root_trans |
(T, 3) |
float32 | 根部 XYZ 位置(米,Y向上) |
root_rot_quat |
(T, 4) |
float32 | 根部方向四元数 (w, x, y, z) |
source_path |
() |
str | 重定向时源 AMASS .npz 的绝对路径 |
T 为帧数,帧率 30 FPS。
加载示例
python import numpy as np data = np.load("g1/NMR/CMU/CMU__15__15_02_stageii.npz") dof = data["dof"] # (T, 29) trans = data["root_trans"] # (T, 3) quat = data["root_rot_quat"] # (T, 4), w-first
各数据集序列统计(NMR)
| 数据集 | 序列数 |
|---|---|
| ACCAD | 252 |
| BMLmovi | 1,863 |
| BMLrub | 3,060 |
| CMU | 1,981 |
| CNRS | 79 |
| DFaust | 129 |
| EKUT | 348 |
| EyesJapanDataset | 750 |
| GRAB | 675 |
| HDM05 | 215 |
| HumanEva | 28 |
| KIT | 4,231 |
| MoSh | 77 |
| PosePrior | 35 |
| SFU | 44 |
| SOMA | 69 |
| SSM | 30 |
| TCDHands | 62 |
| TotalCapture | 37 |
| Transitions | 110 |
| WEIZMANN | 2,222 |
| 总计 | 16,297 |
覆盖说明(NMR)
- 1个文件不可恢复:
BMLmovi/Subject_49_F_MoSh/Subject_49_F_19_stageii.npz— 官方 AMASS 压缩包中的对应 NPZ 文件损坏,无法重定向。
变体2:GMR (g1/GMR/)
处理方法
- 使用 GMR(通用运动重定向)
v0.2.0,目标unitree_g1(29 DOF),配置文件smplx_to_g1.json。 - 采用 Mink/MuJoCo IK 解算器,自动人体高度缩放。
- 序列重采样至 30 FPS,根部 XY 原点偏移至第一帧,最低身体链接接地于 z=0。
文件格式
每个 .pkl 文件是一个 Python pickle 字典,包含以下键:
| 键名 | 形状 | 数据类型 | 描述 |
|---|---|---|---|
fps |
标量 | float | 对齐帧率(30.0) |
root_pos |
(T, 3) |
float64 | 根部 XYZ 位置(米) |
root_rot |
(T, 4) |
float64 | 根部方向四元数 (x, y, z, w)(scipy 约定) |
dof_pos |
(T, 29) |
float64 | G1 关节角度(弧度) |
local_body_pos |
(T, 38, 3) |
float32 | 根部局部坐标系中的身体链接 XYZ 位置(使用单位根部姿态的前向运动学计算) |
link_body_list |
list[str] | — | 38个身体链接的名称(与 local_body_pos 的轴1对应) |
T 为帧数,帧率 30 FPS。dof_pos 的顺序与 GMR 打印的 G1 电机列表一致(骨盆 → 腿部 → 腰部 → 手臂)。
加载示例
python import pickle with open("g1/GMR/CMU/15/15_02_stageii.pkl", "rb") as f: data = pickle.load(f) dof_pos = data["dof_pos"] # (T, 29) root_pos = data["root_pos"] # (T, 3) root_rot = data["root_rot"] # (T, 4), x,y,z,w local_body_pos = data["local_body_pos"] # (T, 38, 3) link_body_list = data["link_body_list"] # list of 38 link names
各数据集序列统计(GMR)
| 数据集 | 序列数 |
|---|---|
| ACCAD | 247 |
| BMLmovi | 1,864 |
| BMLrub | 3,061 |
| CMU | 1,983 |
| CNRS | 79 |
| DanceDB | 151 |
| DFaust | 129 |
| EKUT | 348 |
| Eyes_Japan_Dataset | 750 |
| GRAB | 1,340 |
| HDM05 | 215 |
| HUMAN4D | 148 |
| HumanEva | 28 |
| KIT | 4,007 |
| MoSh | 77 |
| PosePrior | 35 |
| SFU | 44 |
| SOMA | 69 |
| SSM | 30 |
| TCDHands | 62 |
| TotalCapture | 37 |
| Transitions | 103 |
| WEIZMANN | 2,222 |
| 总计 | 17,029 |
覆盖说明(GMR)
- GMR 管线排除了一组手工筛选的不适合 G1 重定向的动作,包括爬行、躺卧、上楼梯、下楼梯等序列,以及匹配 GMR 仓库
assets/hard_motions/{0,1}.txt列表中的动作路径。因此部分原始 AMASS 存档中的 Stage II 文件未包含在此数据集中。
引用与许可
- 引用要求:使用本数据集时,请引用 AMASS 以及所使用的重定向管线(NMR 或 GMR),详见原始页面中的 BibTeX 引用信息。
- 许可协议:使用本数据需遵守原始 AMASS 许可协议 (https://amass.is.tue.mpg.de/license.html)。每个 AMASS 子数据集保留自身许可条款,下载任何子集均须遵守相应许可。重定向动作衍生自 AMASS,继承相同的使用限制。




