Skip to content

leap-hand/LEAP_Hand_Sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LEAP Hand: Low-Cost, Efficient, and Anthropomorphic Hand

This repository contains the URDF, IsaacGym environment and sim2real deployment code for the paper "LEAP Hand: Low-Cost, Efficient, and Anthropomorphic Hand for Robot Learning" (https://arxiv.org/abs/2309.06440).

Installation

Setup a conda environment (optional)

conda create -n leapsim python=3.8
conda activate leapsim

Install Pytorch using these instructions

Download the Isaac Gym Preview 4 release from the website, then follow the installation instructions in the documentation

cd isaacgym/python
pip install -e .

Clone and install leapsim python packages

git clone https://github.com/leap-hand/LEAP_Hand_Sim
cd LEAP_Hand_Sim
pip install matplotlib gitpython numpy==1.20.3 wandb
pip install -e .

Running a pretrained policy

You can run a pretrained in-hand reorienation policy to check your install. To deploy this policy on the real hand, see the real-world deployment section below.

cd leapsim
python3 train.py wandb_activate=false num_envs=1 headless=false test=true task=LeapHandRot checkpoint=runs/pretrained/nn/LeapHand.pth

sim-deployment

Real-world deployment

  • Running in the real world requires our LEAP Hand ROS API.
  • Follow the instructions in the above link and then run roslaunch example.launch first. The hand should go to the home pose.
  • Next, in a separate window run deploy.py using:
cd leapsim
python3 deploy.py wandb_activate=false num_envs=1 headless=false test=true task=LeapHandRot checkpoint=runs/pretrained/nn/LeapHand.pth
  • The hand should go to a pre-grasp pose and then rotate a 7.5cm cube by default.

rw-deployment

Training your own policy

First, generate a cache of stable grasps for different cube sizes

for cube_scale in 0.9 0.95 1.0 1.05 1.1 
do
	bash scripts/gen_grasp.sh $cube_scale custom_grasp_cache num_envs=1024 
done

This will generate .npy files in the leapsim/cache folder. Next, train a policy using this grasp cache

python3 train.py task=LeapHandRot max_iterations=1000 task.env.grasp_cache_name=custom_grasp_cache

If you wish to not use wandb append wandb_activate=false

for cube_scale in 0.9 0.95 1.0 1.05 1.1 
do
	bash scripts/gen_grasp.sh $cube_scale custom_grasp_cache num_envs=1024 wandb_activate=false
done
python3 train.py task=LeapHandRot max_iterations=1000 task.env.grasp_cache_name=custom_grasp_cache wandb_activate=false

After training, the policy can be visualized by running

python3 train.py wandb_activate=false num_envs=1 headless=false test=true task=LeapHandRot checkpoint=runs/<checkpoint_name>/nn/LeapHand.pth

For training details of this policy refer to the LEAP hand paper section VI-D.

Citing

If you find LEAP hand or this codebase useful in your research, please cite:

@article{
	shaw2023leaphand,
	title={LEAP Hand: Low-Cost, Efficient, and Anthropomorphic Hand for Robot Learning},
	author={Shaw, Kenneth and Agarwal, Ananye and Pathak, Deepak},
	journal={Robotics: Science and Systems (RSS)},
	year={2023}
}

Acknowledgements

Check out the following amazing codebases we build upon

About

Isaac Gym repository for LEAP Hand V1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published