Train a Unitree G1 humanoid robot controller to walk, run, or turn while moving in a human-like way.
Use included pretrained motion prior checkpoints to skip the pretraining step and start policy training right away.
Study how multiplying task reward and motion-quality reward, instead of adding them, changes training behavior.
| suz-tsinghua/smp | viitor-ai/viitor-voice-nar | lynote-ai/ai-detector-skill | |
|---|---|---|---|
| Stars | 133 | 133 | 134 |
| Language | Python | Python | Python |
| Setup difficulty | hard | moderate | easy |
| Complexity | 5/5 | 4/5 | 2/5 |
| Audience | researcher | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Requires a physics simulation setup with mjlab and GPU-based reinforcement learning training.
This repository contains a reproduction of a research technique for training humanoid robots to move in a natural, human-like way. It was built as a course project at Tsinghua University. The specific robot is the Unitree G1, a two-legged humanoid robot. The method being reproduced comes from a 2025 academic paper called SMP (Score-Matching Motion Priors). The core idea is to teach a robot controller two things at once: complete a task, and move the way a human would. The "motion prior" part is a small generative model trained on recorded human movement data. Once trained, this model is frozen and used as a guide during the reinforcement learning phase, where the robot's control policy is trained through trial and error in a physics simulation. The guide provides a score at each step indicating how human-like the current motion looks, and the policy is rewarded for keeping that score high while also completing its assigned task. Four tasks are included: walking or running forward at a commanded speed, steering toward a commanded direction and facing angle, walking to a specific location in the world, and standing up from a fallen position. Pretrained motion prior checkpoints for all four tasks are included in the repository, so you can start training the downstream policy immediately without running the pretraining step yourself. One notable design choice in this reproduction is how the task reward and the motion quality reward are combined. The original paper adds them together with separate weights, which can make tuning difficult. This version multiplies them instead, meaning the policy only earns a high reward when both the task progress and the motion quality are simultaneously high. Either factor collapsing to near zero collapses the total reward, which the README argues removes a tricky balancing knob and prevents the policy from succeeding at one objective while ignoring the other. The project uses a Python reinforcement learning framework called mjlab and the uv package manager for dependency management.
A course-project reproduction of SMP (Score-Matching Motion Priors), training a Unitree G1 humanoid robot to move naturally using a human-motion-guided reinforcement learning reward.
Mainly Python. The stack also includes Python, mjlab, uv.
The README does not state a license.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.