OpenHand Simulator

Description

OpenHand is a simulation toolkit based in OpenRAVE. OpenRAVE is an open architecture targeting a simple integration of simulation, visualisation, planning, scripting and control of robot systems. With OpenRAVE we are able to simulate different hands and objects, generate grasp hypotheses and simulate them.

OpenHand allows us to evaluate these grasp hypotheses using different quality metrics. Also, OpenHand, in contrast to OpenRAVE, presents an User Interface (UI) which allows to:

    • Configure the parameters for grasp hypotheses generation
    • Determine the number of hypotheses to be generated
    • Set the grasp generation method, following an uniform or random distribution
    • Manually generate grasp hypotheses over an object surface
    • Evaluate grasp hypotheses using different quality metrics
    • Compare the functional performance of robotic hand models
    • Simulate a virtual model of the human hand and arm

OpenHand libraries includes:

    • User Interface: This interface allows the user to perform most of the common grasping tasks available in openrave through command-line functions
    • Quality Metrics library: this python library has the implementation of 10 different common quality metrics used for grasping. This metrics can be used either trough the OpenHand UI or importing the library directly in your code.
    • Utilities library: this python library implements some utilities needed by OpenHand to simulate and perform grasps. It includes also an upper layer over the some native functions of openrave.
    • Human hand library: this is a C++ library which includes the simulation of a human hand, parameters and characteristics of the hand can be easily configured through OpenHand UI.

The OpenHand tool has 4 different main modules. With these different modules, the user is capable to perform different experiments, and evaluate different grasp-related characteristics: grasp generation parameters, hand performances, object’s graspability, grasp types, etc.

Generate Grasps This module allows the user to generate different sets of grasps using a wide variety of artificial hand models and objects. It allows to configure different parameters for the grasp generation and also to generate grasp poses manually. The grasps generated in this module are stored in experiments using hdf5 file format.

Evaluate Grasps With this module, you can load the different grasp experiments generated in the generate grasps module and evaluate them. It shows also the predicted successfulness of the grasp. The results of this grasp evaluation are shown in the UI and stored in the hdf5 file of the experiment.

Benchmark Hands This module allows to evaluate the performance of different robotic hand models. The evaluation of a hand requires a set of different grasp hypotheses and evaluates them in order to estimate the expected performance of the hand.

Human Hand This modules allows to load a virtual model of a human hand and arm, parameters such as hand length or width can be easily configured. With this module you can set the values for different joints of the hand and define different grasp postures. It allows you to load different objects models, perform and evaluate grasps. It is also possible to set different grasp types and configure which fingers will be closing for each grasp.

Download

OpenHand is avalaible in a GitHub Repository: https://github.com/Cescuder/OpenHand-Simulator