Jipeng Kong*,
Xinzhe Liu*,
Yuhang Lin,
Jinrui Han,
Sören Schwertfeger,
Chenjia Bai†,
Xuelong Li†
* First Author † Corresponding Author
This repository contains the official implementation for **Learning Soccer Skills for Humanoid Robots: A Progressive Perception-Action Framework **.
Soccer is a challenging task for humanoid robots, requiring tightly integrated perception and whole-body control. We propose PAiD (Perception-Action integrated Decision-making), a progressive framework with three stages: motion-skill acquisition via human motion tracking, lightweight perception-action integration for positional generalization, and physics-aware sim-to-real transfer. Experiments on the Unitree G1 show robust, human-like kicking across static/rolling balls, varied positions, disturbances, and indoor/outdoor scenarios.
This repository contains:
- Core task/environment code:
source/whole_body_tracking/soccer - Training & play python entrypoints:
scripts/rsl_rl - Shell helpers:
shell - MuJoCo sim2sim rollout code:
exp - Motion datasets and labels:
motions
The kick motions used in our paper are publicly released in motions.
-
Install Isaac Lab v2.1.1 by following the installation guide. We recommend using the Pip installation.
-
Clone this repository:
# Option 1: SSH
git clone git@github.com:TeleHuman/HumanoidSoccer.git
# Option 2: HTTPS
git clone https://github.com/TeleHuman/HumanoidSoccer.git- Using a Python interpreter that has Isaac Lab installed, install the library
pip install -e source/whole_body_trackingTrain the default rolling-ball soccer policy with the progressive helper:
bash shell/progressive_soccer_train_play.sh testpython scripts/rsl_rl/play_multi.py --task Tracking-Flat-G1-SoccerMoving-RNN-v0 \
--motion_path motions/soccer-standard \
--load_run <run-name> \
--num_envs 1 bash shell/progressive_soccer_train_play.sh testThis helper first trains the motion-tracking stage with run name test, then resumes it for the rolling-ball soccer stage. Override the defaults with RUN_NAME=..., LOAD_RUN=<run-name>, NUM_ENVS=..., or MIMIC_MAX_ITERATIONS=....
python scripts/rsl_rl/play_multi.py --task Tracking-Flat-G1-SoccerMoving-RNN-v0 \
--motion_path motions/soccer-standard \
--load_run <run-name> \
--num_envs 1 Run a visualized MuJoCo sim2sim rollout:
python exp/mujoco_soccer_experiment.py \
--policy ckp/policy_30000.onnx \
--motion-path motions/soccer-standard \
--num-trials 1 \
--visualizeSee exp/README.md for ONNX export, batch sim2sim evaluation, output files, and offline trajectory metrics.
- Release PAiD training code
- Release PAiD motion dataset
- Release PAiD ckpt and sim2sim code
- Release PAiD domain randomization code
If you find this work useful in your research, please consider citing:
@misc{kong2026learningsoccerskillshumanoid,
title={Learning Soccer Skills for Humanoid Robots: A Progressive Perception-Action Framework},
author={Jipeng Kong and Xinzhe Liu and Yuhang Lin and Jinrui Han and Sören Schwertfeger and Chenjia Bai and Xuelong Li},
year={2026},
eprint={2602.05310},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2602.05310}
}This codebase is under CC BY-NC 4.0 license. You may not use the material for commercial purposes, e.g., to make demos to advertise your commercial products.
For further collaborations or discussions, please feel free to reach out to:
- First Author: Jipeng Kong kongjp2024@shanghaitech.edu.cn , Xinzhe Liu liuxzh2023@shanghaitech.edu.cn.
- Corresponding Author (Chenjia Bai): baicj@chinatelecom.cn
