This repository is the implementation code of the paper "Dynamic Handover: Throw and Catch with Bimanual Hands"(Paper, Website, Presentation) by Binghao Huang*, Yuanpei Chen*, Tianyu Wang, Yuzhe Qin, Yaodong Yang, Nikolay Atanasov, Xiaolong Wang. In this repo, we provide our full implementation code of simulation.
- python 3.8
conda create -n rlgpu3 python=3.8
conda activate rlgpu3
- IsaacGym (tested with
Preview Release 3/4
andPreview Release 4/4
). Follow the instruction to download the package.
tar -xvf IsaacGym_Preview_4_Package.tar.gz
cd isaacgym/python
pip install -e .
(test installation) python examples/joint_monkey.py
- Dynamic Handover
git clone https://github.com/cypypccpy/dynamic_handover.git
cd dynamic_handover
pip install -r requirements.txt
pip install -e .
- Trained checkpoint. Download from Link.
run this line in dexteroushandenvs
folder:
python train.py --task=AllegroHandDynamicHandover --algo=mappo --num_envs=2048 --seed 22
To select an algorithm, pass --algo=ppo/mappo
as an argument. For example, if you want to use ppo algorithm, run this line in dexteroushandenvs
folder:
python train.py --task=AllegroHandDynamicHandover --algo=ppo --num_envs=2048 --seed 22
The trained model will be saved to logs
folder and the goal estimator will be saved to traj_e
folder.
To load a trained model and only perform inference (no training), pass --play
as an argument, and pass --model_dir
to specify the trained models which you want to load:
python train.py --task=AllegroHandDynamicHandover --algo=ppo --num_envs=20 --seed 22 --play --model_dir=<path_to_checkpoint_folder>
By default, the goal estimator will automatically load the model.pt
in the traj_e
folder. If you want to use our trained checkpoint and its corresponding goal estimator, unzip the downloaded file and manually place the model.pt
in the traj_e
folder and specify the --model_dir
to the checkpoint folder.
We thank the list of contributors from the Bi-DexHands.
Please cite Dynamic Handover if you use this repository in your publications:
@article{huang2023dynamic,
title={Dynamic handover: Throw and catch with bimanual hands},
author={Huang, Binghao and Chen, Yuanpei and Wang, Tianyu and Qin, Yuzhe and Yang, Yaodong and Atanasov, Nikolay and Wang, Xiaolong},
journal={arXiv preprint arXiv:2309.05655},
year={2023}
}
Licensed under the MIT License