Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
G

GMR

> 编程语言
Open source

[ICRA 2026] GMR: General Motion Retargeting. Retarget human motions into diverse humanoid robots in real time on CPU. Retargeter for TWIST.

2.5K stars0 likes0 views
WebsiteGitHub

About

[ICRA 2026] GMR: General Motion Retargeting. Retarget human motions into diverse humanoid robots in real time on CPU. Retargeter for TWIST.

GMR: General Motion Retargeting

Key features of GMR:

  • Real-time high-quality retargeting, unlock the potential of real-time whole-body teleoperation, i.e., TWIST.
  • Carefully tuned for good performance of RL tracking policies.
  • Support multiple humanoid robots and multiple human motion data formats (See our table below).

[!NOTE] If you want this repo to support a new robot or a new human motion data format, send the robot files (.xml, .urdf, and meshes) / human motion data to Yanjie Ze or create an issue, we will support it as soon as possible. And please make sure the robot files you sent can be open-sourced in this repo.

This repo is licensed under the MIT License.

News & Updates

  • 2026-01-21: GMR now supports Xsens BVH offline data.
  • 2026-01-12: GMR now supports Fourier GR3, the 17th humanoid robot in the repo.
  • 2025-12-02: GMR now supports TWIST2, which utilizes XRoboToolkit SDK.
  • 2025-11-17: To join our community for discussions, you can add my WeChat contact QR Code with info like "[GMR] [Your Name] [Your Affiliation]".
  • 2025-11-08: [MimicKit] from Jason Peng now supports GMR format. Check here.
  • 2025-10-15: Now supporting PAL Robotics' Talos, the 15th humanoid robot.
  • 2025-10-14: GMR now supports Nokov BVH data.
  • 2025-10-14: Add a doc on ik config. See DOC.md
  • 2025-10-09: Check TWIST open-sourced code for RL motion tracking.
  • 2025-10-02: Tech report for GMR is now on arXiv.
  • 2025-10-01: GMR now supports converting GMR pickle files to CSV (for beyondmimic), check scripts/batch_gmr_pkl_to_csv.py.
  • 2025-09-25: An introduction on GMR is available on Bilibili.
  • 2025-09-16: GMR now supports to use GVHMR for extracting human pose from monocular video and retargeting to robot.
  • 2025-09-12: GMR now supports Tienkung, the 14th humanoid robot in the repo.
  • 2025-08-30: GMR now supports Unitree H1 2 and PND Adam Lite, the 12th and 13th humanoid robots in the repo.
  • 2025-08-28: GMR now supports Booster T1 for both 23dof and 29dof.
  • 2025-08-28: GMR now supports using exported offline FBX motion data from OptiTrack.
  • 2025-08-27: GMR now supports Berkeley Humanoid Lite, the 11th humanoid robot in the repo.
  • 2025-08-24: GMR now supports Unitree H1, the 10th humanoid robot in the repo.
  • 2025-08-24: GMR now supports velocity limits for the robot motors, use_velocity_limit=True by default in GeneralMotionRetargeting class (and we use 3*pi as the velocity limit by default); we also add printing of robot DoF/Body/Motor names and their IDs by default, and you can access them via robot_dof_names, robot_body_names, and robot_motor_names attributes.
  • 2025-08-10: GMR now supports Booster K1, the 9th robot in the repo.
  • 2025-08-09: GMR now supports Unitree G1 with Dex31 hands.
  • 2025-08-07: GMR now supports Galexea R1 Pro (this is a wheeled humanoid robot!) and KUAVO, the 7th and 8th humanoid robots in the repo.
  • 2025-08-06: GMR now supports HighTorque Hi, the 6th humanoid robot in the repo.
  • 2025-08-04: Initial release of GMR. Check our twitter post.

Demos

Demo 1
Retargeting LAFAN1 dancing motion to 5 robots.
Demo 2
Galexea R1 Pro robot (view 1).
Demo 3
Galexea R1 Pro robot (view 2).
Demo 4
Switching robots by changing one argument.
Demo 5
HighTorque robot doing a twist dance.
Demo 6
Kuavo robot picking up a box.
Demo 7
Unitree H1 robot doing a ChaCha dance.
Demo 8
Booster T1 robot jumping (view 1).
Demo 9
Booster T1 robot jumping (view 2).
Demo 10
Unitree H1-2 robot jumping.
Demo 11
PND Adam Lite robot.
Demo 12
Tienkung robot walking.
Demo 13
Extracting human pose (GVHMR + GMR).
▶ Watch on Bilibili
Demo 14
PAL Robotics’ Talos robot fighting.
Demo 15
(Optional placeholder if you add a new one later!)
Coming soon...

Supported Robots and Data Formats

Assigned ID Robot/Data Format Robot DoF SMPLX (AMASS, OMOMO) BVH LAFAN1 FBX (OptiTrack) BVH Nokov PICO (XRoboToolkit) More formats coming soon
0 Unitree G1 unitree_g1 Leg (2*6) + Waist (3) + Arm (2*7) = 29 ✅ ✅ ✅ ✅ ✅
1 Unitree G1 with Hands unitree_g1_with_hands Leg (2*6) + Waist (3) + Arm (2*7) + Hand (2*7) = 43 ✅ ✅ ✅ TBD TBD
2 Unitree H1 unitree_h1 Leg (2*5) + Waist (1) + Arm (2*4) = 19 ✅ TBD TBD TBD TBD
3 Unitree H1 2 unitree_h1_2 Leg (2*6) + Waist (1) + Arm (2*7) = 27 ✅ TBD TBD TBD TBD
4 Booster T1 booster_t1 TBD ✅ TBD TBD TBD
5 Booster T1 29dof booster_t1_29dof TBD ✅ ✅ TBD TBD
6 Booster K1 booster_k1 Neck (2) + Arm (2*4) + Leg (2*6) = 22 ✅ TBD TBD TBD
7 Stanford ToddlerBot stanford_toddy TBD ✅ ✅ TBD TBD
8 Fourier N1 fourier_n1 TBD ✅ ✅ TBD TBD
9 ENGINEAI PM01 engineai_pm01 TBD ✅ ✅ TBD TBD
10 HighTorque Hi hightorque_hi Head (2) + Arm (2*5) + Waist (1) + Leg (2*6) = 25 ✅ TBD TBD TBD
11 Galaxea R1 Pro galaxea_r1pro (this is a wheeled robot!) Base (6) + Torso (4) + Arm (2*7) = 24 ✅ TBD TBD TBD
12 Kuavo kuavo_s45 Head (2) + Arm (2*7) + Leg (2*6) = 28 ✅ TBD TBD TBD
13 Berkeley Humanoid Lite berkeley_humanoid_lite (need further tuning) Leg (2*6) + Arm (2*5) = 22 ✅ TBD TBD TBD
14 PND Adam Lite pnd_adam_lite Leg (2*6) + Waist (3) + Arm (2*5) = 25 ✅ TBD TBD TBD
15 Tienkung tienkung Leg (2*6) + Arm (2*4) = 20 ✅ TBD TBD TBD
16 PAL Robotics' Talos pal_talos Head (2) + Arm (2*7) + Waist (2) + Leg (2*6) = 30 ✅ TBD TBD TBD
17 Fourier GR3 fourier_gr3 Head (2) + Arm (2*7) + Waist (3) + Leg (2*6) = 31 ✅ TBD TBD TBD
More robots coming soon !
18 AgiBot A2 agibot_a2 TBD TBD TBD TBD TBD
19 OpenLoong openloong TBD TBD TBD TBD TBD

Installation

[!NOTE] The code is tested on Ubuntu 22.04/20.04.

First create your conda environment:

bash
conda create -n gmr python=3.10 -y
conda activate gmr

Then, install GMR:

bash
pip install -e .

After installing SMPLX, change ext in smplx/body_models.py from npz to pkl if you are using SMPL-X pkl files.

And to resolve some possible rendering issues:

bash
conda install -c conda-forge libstdcxx-ng -y

Data Preparation

[SMPLX body model] download SMPL-X body models to assets/body_models from SMPL-X and then structure as follows:

bash
- assets/body_models/smplx/
-- SMPLX_NEUTRAL.pkl
-- SMPLX_FEMALE.pkl
-- SMPLX_MALE.pkl

[AMASS motion data] download raw SMPL-X data to any folder you want from AMASS. NOTE: Do not download SMPL+H data.

[OMOMO motion data] download raw OMOMO data to any folder you want from this google drive file. And process the data into the SMPL-X format using scripts/convert_omomo_to_smplx.py.

[LAFAN1

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Python

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言