Skip to content

cypypccpy/dynamic_handover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Handover

Table of Content

Overview

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.

Installation

  • python 3.8
conda create -n rlgpu3 python=3.8
conda activate rlgpu3
  • IsaacGym (tested with Preview Release 3/4 and Preview 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.

Training

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.

Evaluation

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.

Acknowledgement

We thank the list of contributors from the Bi-DexHands.

Citations

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}
}

License

Licensed under the MIT License