Skip to content

linden713/humanoid_amp

Repository files navigation

Humanoid AMP


Humanoid AMP

IsaacSim IsaacLab Python License

Prerequisites

This project requires Isaac Sim and Isaac Lab installed via pip. If you haven't installed them yet, pleanse follow the instructions in Isaac Lab Installation Guide

Setup

No symbolic links or special setup required! This project works as a standalone Isaac Lab extension.

Install the repo in editable mode (mirrors the workflow used in unitree_rl_lab):

pip install -e .

We copy the train and play script from isaaclab, note you do not need to do it yourself.

bash ./sync_skrl_scripts.sh

Train

python -m humanoid_amp.train --task Isaac-G1-AMP-Walk-Direct-v0 --headless --num_envs 4096

or for dance training:

python -m humanoid_amp.train --task Isaac-G1-AMP-Dance-Direct-v0 --headless --num_envs 4096

Additional training options:

# Resume from checkpoint
python -m humanoid_amp.train --task Isaac-G1-AMP-Walk-Direct-v0 --checkpoint logs/skrl/path/to/checkpoint

Eval

python -m humanoid_amp.play --task Isaac-G1-AMP-Walk-Direct-v0 --num_envs 32 --checkpoint logs/skrl/<run>/checkpoints/Latest.ckpt

TensorBoard

python -m tensorboard.main --logdir logs/skrl/

Then open your browser to http://localhost:6006

Walk training: master branch. Dance training: dance branch.

The usage of some helper script functions is explained at the beginning of the file.

Motions Scripts

  • motion_loader.py - Load motion data from npz files and provide sampling functionality
  • motion_viewer.py - 3D visualization player for motion data
  • data_convert.py - Convert CSV motion data to npz format with interpolation and forward kinematics
  • motion_replayer.py - Replay motion data in Isaac Sim with optional recording
  • record_data.py - Recording and managing motion data utility classes
  • verify_motion.py - Verify and display npz file contents
  • visualize_motion.py - Generate interactive HTML charts to visualize motion data
  • update_pelvis_data.py - Fix pelvis posture and body center issues in replay motion by replacing pelvis data from source file

Dataset & URDF

Note: The original dataset and URDF files from Unitree Robotics have been removed by the official source.

If you're still looking for the dataset, a third-party mirror is currently available here:
lvhaidong/LAFAN1_Retargeting_Dataset

Or you can also use the data from AMASS

TODO

  • ✅ Current: Dancing motion is working
  • ✅ Test the test branch thoroughly and merge it into dance as soon as possible
  • ✅ Write a more detailed README to cover the new features and usage
  • Add clearer comments and explanations in all Python scripts

Resources

Demo - Walk Demo - Dance (Bilibili) Demo - Dance (YouTube)

Documentation

Contributions, discussions, and stars are all welcome! ❥(^_-)

About

Isaac Lab Humanoid AMP for Unitree G1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published