File size: 1,402 Bytes
b51f3fd
4cc0d6c
 
 
b51f3fd
 
7980741
b51f3fd
 
 
 
4cc0d6c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
title: Human to G1 Robot Motion Retargeting
emoji: "\U0001F916"
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: "5.23.0"
app_file: app.py
pinned: false
---

# Human → G1 Robot Motion Retargeting

Neural motion retargeting from human motion capture (SMPL-X / AMASS format) to Unitree G1 humanoid robot.

## How to Use

1. Upload an AMASS-format `.npz` file containing human motion data
2. The model will retarget the motion to G1 robot in ~5-15s (CPU)
3. View the 3D skeleton animation and download the result PKL file

## Input Format

AMASS NPZ file with the following fields:
- `trans` or `transl`: (T, 3) root translation
- `root_orient` or `global_orient`: (T, 3) root orientation (axis-angle)
- `pose_body` or `body_pose`: (T, 63) body joint rotations (21 joints × 3)
- `mocap_frame_rate` (optional): source frame rate (auto-downsampled to 30 FPS)

Coordinate system: Z-up (AMASS convention), automatically converted to Y-up internally.

## Output Format

PKL file containing:
- `dof`: (T, 29) — G1 joint angles in radians
- `root_trans`: (T, 3) — root position (Y-up, meters)
- `root_rot_quat`: (T, 4) — root rotation quaternion (wxyz format)

## Model

- Architecture: LLaMA-style Transformer (70M parameters) with VQ-VAE encoder
- Training data: paired SMPL-X ↔ G1 motion sequences
- Inference: non-autoregressive forward pass with sliding window (4s chunks, 1s overlap)