/mano_pybullet

Porting the MANO hand model to the PyBullet simulator

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

mano_pybullet

MANO-based hand models for the PyBullet simulator.

Install

From source code

git clone https://github.com/ikalevatykh/mano_pybullet.git
cd mano_pybullet
pip install -e .

or if you plan to use OpenAI gym environments:

pip install -e .[gym]

Run tests

export MANO_MODELS_DIR='/path/to/mano_v*_*/models/'
pytest

Download MANO models

  • Register at the MANO website and download the models.
  • Unzip the file mano_v*_*.zip: unzip mano_v*_*.zip
  • Set environment variable: export MANO_MODELS_DIR=/path/to/mano_v*_*/models/

Hand models

The package provides MANO-based rigid hand model.

TeaTime

Gym environments

The package also provides several OpenAI gym environments:

  • HandEnv - base environment with one or two hands on the scene.

  • HandObjectEnv - base environment with hands and an object on the scene.

  • HandLiftEnv - environment where the target is to lift an object.

HandLiftEnv

  • HandPushEnv - environment where the target is to push an object.

HandPushEnv

Graphical debugging

python -m mano_pybullet.tools.gui_control

usage: GUI debug tool [-h] [--dofs DOFS] [--left-hand] [--right-hand] [--visual-shapes] [--no-visual-shapes] [--self-collisions] [--no-self-collisions]

optional arguments:

  • -h, --help show help message and exit
  • --dofs DOFS number of degrees of freedom (20 or 45) [default=20]
  • --left-hand show left hand
  • --right-hand show right hand [default]
  • --visual-shapes show visual shapes [default]
  • --no-visual-shapes hide visual shapes
  • --self-collisions enable self collisions [default]
  • --no-self-collisions disable self collisions

Citation

If you find mano_pybullet useful in your research, please cite the repository using the following BibTeX entry.

@Misc{kalevatykh2020mano_pybullet,
  author =       {Kalevatykh, Igor et al.},
  title =        {mano_pybullet - porting the MANO hand model to the PyBullet simulator},
  howpublished = {Github},
  year =         {2020},
  url =          {https://github.com/ikalevatykh/mano_pybullet}
}

License

mano_pybullet is released under the GPLv3.