Official implementation of TrajBooster
See the code
TrajBooster leverages abundant existing robot manipulation datasets to enhance humanoid whole-body manipulation capabilities. Our approach retargets end-effector trajectories from diverse robots to target humanoids using a specialized retargeting model. We then perform post-pre-training on a pre-trained Vision-Language-Action (VLA) model with this retargeted data, followed by fine-tuning with minimal real-world data. This methodology significantly reduces the burden of human teleoperation while improving action space comprehension and zero-shot skill transfer capabilities.
This repository provides the official implementation of TrajBooster, featuring:
Note: This repository builds upon our previous work at OpenWBC. If you find this work useful for your research or projects, please consider giving both repositories a β star to support our ongoing open-source contributions to the robotics community!
This comprehensive guide covers three essential deployment phases:
π‘ Quick Start: We provide a PPT (Post-Pre-Trained) model for immediate deployment. Follow the sequential steps below for complete project reproduction.
π¬ Advanced Users: Interested in retargeting model training? Jump directly to Bonus: Retargeting Model Training
For deployment issues, you could reference these excellent projects first:
g1_deploy/
β
βββ avp_teleoperation/ # Upper-body control & image transmission
β
βββ Hardware/ # Wrist camera hardware specs (optional)
β
βββ HomieDeploy/ # Lower-body locomotion control
1. π· Wrist Camera Setup (Recommended)
g1_deploy/Hardware/2. 𦡠Lower-Body Control Configuration
g1_deploy/HomieDeploy/ to Unitree G1 onboard computerg1_deploy/HomieDeploy/README.md3. ποΈ Upper-Body Control Setup
Configure AVP Teleoperation: Set up avp_teleoperation following the instructions in g1_deploy/avp_teleoperate/README.md. Configure the tv conda environment and set up the required certificates.
Dual Deployment: Deploy the system on both your local PC (image client) and the G1 robot (image server).
On the Unitree robot terminal, run:
cd avp_teleoperate/teleop/
python image_server/image_server.py
On your PC, run:
cd avp_teleoperate/teleop/
python image_server/image_client.py
If you can see the video feed properly, the setup is working correctly. You can then close the image_client program and proceed with the following operations.
Collect Teleoperation Data (On Your PC):
(tv) unitree@Host:~/avp_teleoperate/teleop$ python teleop_data_collecting.py --arm=G1_29 --hand=dex3 --task_dir='./utils/data' --record
Follow the interaction methods described in g1_deploy/avp_teleoperate/README.md to have the operator perform corresponding interactions using the Apple Vision Pro headset.
Follow setup instructions in OpenWBC_to_Lerobot/README.md
Convert collected teleoperation data to LeRobot format:
python convert_3views_to_lerobot.py \
--input_dir /path/to/input \
--output_dir ./lerobot_dataset \
--dataset_name "YOUR_TASK" \
--robot_type "g1" \
--fps 30
Utilize your collected and processed teleoperation data for model fine-tuning:
π Detailed Instructions: VLA_model/gr00t_modified_for_OpenWBC/README.md
Training Pipeline: Post-train our PPT (Post-Pre-Trained) Model with your domain-specific data
# Terminal 1 (on Unitree G1)
cd avp_teleoperate/teleop/image_server
python image_server.py
π Verification: Test image stream on local PC with
python image_client.py, then close before proceeding
A. β οΈ CRITICAL - System Reset
Execute: L1+A β L2+R2 β L2+A β L2+B
Expected: Arms hang (L2+A) β Arms down (L2+B)
B. Initialize Robot Control
# Terminal 2 (on Unitree G1)
cd unitree_sdk2/build/bin
./g1_control eth0 # or eth1 depending on network configuration
C. Launch Policy Inference
# Terminal 3 (on Unitree G1)
python g1_gym_deploy/scripts/deploy_policy_infer.py
D. Legs Activation
R2 (robot stands)R2 again (activate autonomous mode)β οΈ SAFETY NOTICE: Ensure complete understanding of all system components before deployment. Improper usage may result in hardware damage or safety hazards.
E. Start VLA Model Server
python scripts/G1_inference.py \
--arm=G1_29 \
--hand=dex3 \
--model-path YOUR_MODEL_PATH \
--goal YOUR_TASK \
--frequency 20 \
--vis \
--filt
π For detailed instructions, please refer to: retargeting_model/README.md
| Resource | Description | Link |
|---|---|---|
| Dataset | 35-hour AgibotβUnitreeG1 retargeted data (~30GB) | π€ HuggingFace |
| Model | Pre-trained PPT model checkpoint (~6GB) | π€ HuggingFace |
| Paper | Full technical details and evaluation | π arXiv |
| Base Code | Underlying deployment framework | π WBC_Deploy |
If you find our work helpful, please consider citing:
@article{liu2025trajbooster,
title={TrajBooster: Boosting Humanoid Whole-Body Manipulation via Trajectory-Centric Learning},
author={Liu, Jiacheng and Ding, Pengxiang and Zhou, Qihang and Wu, Yuxuan and Huang, Da and Peng, Zimian and Xiao, Wei and Zhang, Weinan and Yang, Lixin and Lu, Cewu and Wang, Donglin},
journal={arXiv preprint arXiv:2509.11839},
year={2025}
}
We thank the open-source robotics community and all contributors who made this work possible.
Jupyter Notebook
39.8%
C++
30.3%
Python
29.5%
Official implementation of TrajBooster
See the code
TrajBooster leverages abundant existing robot manipulation datasets to enhance humanoid whole-body manipulation capabilities. Our approach retargets end-effector trajectories from diverse robots to target humanoids using a specialized retargeting model. We then perform post-pre-training on a pre-trained Vision-Language-Action (VLA) model with this retargeted data, followed by fine-tuning with minimal real-world data. This methodology significantly reduces the burden of human teleoperation while improving action space comprehension and zero-shot skill transfer capabilities.
This repository provides the official implementation of TrajBooster, featuring:
Note: This repository builds upon our previous work at OpenWBC. If you find this work useful for your research or projects, please consider giving both repositories a β star to support our ongoing open-source contributions to the robotics community!
This comprehensive guide covers three essential deployment phases:
π‘ Quick Start: We provide a PPT (Post-Pre-Trained) model for immediate deployment. Follow the sequential steps below for complete project reproduction.
π¬ Advanced Users: Interested in retargeting model training? Jump directly to Bonus: Retargeting Model Training
For deployment issues, you could reference these excellent projects first:
g1_deploy/
β
βββ avp_teleoperation/ # Upper-body control & image transmission
β
βββ Hardware/ # Wrist camera hardware specs (optional)
β
βββ HomieDeploy/ # Lower-body locomotion control
1. π· Wrist Camera Setup (Recommended)
g1_deploy/Hardware/2. 𦡠Lower-Body Control Configuration
g1_deploy/HomieDeploy/ to Unitree G1 onboard computerg1_deploy/HomieDeploy/README.md3. ποΈ Upper-Body Control Setup
Configure AVP Teleoperation: Set up avp_teleoperation following the instructions in g1_deploy/avp_teleoperate/README.md. Configure the tv conda environment and set up the required certificates.
Dual Deployment: Deploy the system on both your local PC (image client) and the G1 robot (image server).
On the Unitree robot terminal, run:
cd avp_teleoperate/teleop/
python image_server/image_server.py
On your PC, run:
cd avp_teleoperate/teleop/
python image_server/image_client.py
If you can see the video feed properly, the setup is working correctly. You can then close the image_client program and proceed with the following operations.
Collect Teleoperation Data (On Your PC):
(tv) unitree@Host:~/avp_teleoperate/teleop$ python teleop_data_collecting.py --arm=G1_29 --hand=dex3 --task_dir='./utils/data' --record
Follow the interaction methods described in g1_deploy/avp_teleoperate/README.md to have the operator perform corresponding interactions using the Apple Vision Pro headset.
Follow setup instructions in OpenWBC_to_Lerobot/README.md
Convert collected teleoperation data to LeRobot format:
python convert_3views_to_lerobot.py \
--input_dir /path/to/input \
--output_dir ./lerobot_dataset \
--dataset_name "YOUR_TASK" \
--robot_type "g1" \
--fps 30
Utilize your collected and processed teleoperation data for model fine-tuning:
π Detailed Instructions: VLA_model/gr00t_modified_for_OpenWBC/README.md
Training Pipeline: Post-train our PPT (Post-Pre-Trained) Model with your domain-specific data
# Terminal 1 (on Unitree G1)
cd avp_teleoperate/teleop/image_server
python image_server.py
π Verification: Test image stream on local PC with
python image_client.py, then close before proceeding
A. β οΈ CRITICAL - System Reset
Execute: L1+A β L2+R2 β L2+A β L2+B
Expected: Arms hang (L2+A) β Arms down (L2+B)
B. Initialize Robot Control
# Terminal 2 (on Unitree G1)
cd unitree_sdk2/build/bin
./g1_control eth0 # or eth1 depending on network configuration
C. Launch Policy Inference
# Terminal 3 (on Unitree G1)
python g1_gym_deploy/scripts/deploy_policy_infer.py
D. Legs Activation
R2 (robot stands)R2 again (activate autonomous mode)β οΈ SAFETY NOTICE: Ensure complete understanding of all system components before deployment. Improper usage may result in hardware damage or safety hazards.
E. Start VLA Model Server
python scripts/G1_inference.py \
--arm=G1_29 \
--hand=dex3 \
--model-path YOUR_MODEL_PATH \
--goal YOUR_TASK \
--frequency 20 \
--vis \
--filt
π For detailed instructions, please refer to: retargeting_model/README.md
| Resource | Description | Link |
|---|---|---|
| Dataset | 35-hour AgibotβUnitreeG1 retargeted data (~30GB) | π€ HuggingFace |
| Model | Pre-trained PPT model checkpoint (~6GB) | π€ HuggingFace |
| Paper | Full technical details and evaluation | π arXiv |
| Base Code | Underlying deployment framework | π WBC_Deploy |
If you find our work helpful, please consider citing:
@article{liu2025trajbooster,
title={TrajBooster: Boosting Humanoid Whole-Body Manipulation via Trajectory-Centric Learning},
author={Liu, Jiacheng and Ding, Pengxiang and Zhou, Qihang and Wu, Yuxuan and Huang, Da and Peng, Zimian and Xiao, Wei and Zhang, Weinan and Yang, Lixin and Lu, Cewu and Wang, Donglin},
journal={arXiv preprint arXiv:2509.11839},
year={2025}
}
We thank the open-source robotics community and all contributors who made this work possible.
Jupyter Notebook
39.8%
C++
30.3%
Python
29.5%