Official implementation of the paper Humanoid Goalkeeper: Learning from Position Conditioned Task-Motion Constraints by
Junli Ren*, Junfeng Long*, Tao Huang, Huayi Wang, Zirui Wang, Feiyu Jia, Wentao Zhang, Jingbo Wang†, Ping Luo†, Jiangmiao Pang†
Clone this repository
git clone https://github.com/InternRobotics/Goalkeeper.git
cd GoalkeeperCreate a conda environment:
conda create -n gk python=3.8
conda activate gkDownload and install Isaac Gym:
cd isaacgym/python && pip install -e .Install rsl_rl (PPO implementation) and legged gym and other requirements:
cd rsl_rl && pip install -e . && cd ..
cd legged_gym && pip install -e . && cd ..
pip install -r requirements.txtTraining:
cd legged_gym/legged_gym/scripts/
python train.py --exptid=xxxEvaluation:
cd legged_gym/legged_gym/scripts/
python play.py --exptid=xxxNote: Switch to the
escapebranch to train and evaluate the escape task.
Note: For a quick try, two reference checkpoints are available in
legged_gym/resources/weight/. Copy one to your experiment log directory (e.g.,logs/<EXPT_ID>/) to directly evaluate the policy.
ImportError: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
# Replace /path_to_conda_env_gk with your actual conda env path
sudo cp /path_to_conda_env_gk/lib/libpython3.8.so.1.0 /usr/lib/CUDA out of memory
GPU limitation, try less environments.
- GPU: on RTX 4090 (24G)
- Goalkeeper task: typically ~ 20k episodes to converge
- Escape task: ~ 40k episodes for stable jump-escape motion
For any questions, please email junlir@connect.hku.hk. We will respond as soon as possible.
If you find our work useful, please consider citing:
@article{ren2025humanoidgoalkeeper,
title={Humanoid Goalkeeper: Learning from Position Conditioned Task-Motion Constraints},
author={Ren, Junli, Long, Jungfeng, Huang, Tao and Wang, Huayi, Wang, Zirui and Jia, Feiyu, Zhang, Wentao and Wang, Jingbo, Ping Luo and Pang, Jiangmiao},
year={2025}
}
The code is licensed under the CC BY-NC-SA 4.0 International License 
