Skip to content

A simulation benchmark in MuJoCo for dexterous grasping

Notifications You must be signed in to change notification settings

JYChen18/DexGraspBench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DexGraspBench

A standard and unified simulation benchmark in MuJoCo for dexterous grasping, aimed at enabling a fair comparison across different grasp synthesis methods, proposed in BODex: Scalable and Efficient Robotic Dexterous Grasp Synthesis Using Bilevel Optimization [ICRA 2025].

Project pagePaper | Grasp synthesis code

Introduction

Main Usage

  • Replay and test open-loop grasping poses/trajectories in parallel.

  • Each grasping data point only needs to include:

    • Object (must be pre-processed by MeshProcess): obj_scale, obj_pose, obj_path.
    • Hand: approach_qpos (optional), pregrasp_qpos, grasp_qpos, squeeze_qpos.
  • For a quick start, some example data is provided in the output/example_shadow directory, which can be directly evaluated with the following line after installing.

bash script/example.sh

Highlight

  • Comprehensive Evaluation Metrics: Includes simulation success rate, analytic force closure metrics, penetration depth, contact quality, data diversity, and more.
  • Diverse Experimental Settings: Covers various robotic hands (e.g., Allegro, Shadow, Leap, UR10e+Shadow), data formats (e.g., motion sequences, static poses), and scenarios (e.g., tabletop lifting, force-closure testing).
  • Multiple Baseline Methods: Includes optimization-based grasp synthesis approaches (e.g., DexGraspNet, FRoGGeR, SpringGrasp, BODex) and data-driven baselines (e.g., CVAE, Diffusion Model, Normalizing Flow).
  • Reproducible and Standardized Testing: The hand assets are sourced from MuJoCo_Menagerie, with modification details provided in the assets/hand directory.

Getting Started

Installation

  1. Clone the third-party library MuJoCo Menagerie.
git submodule update --init --recursive --progress
  1. Install the python environment via Anaconda.
conda create -n DGBench python=3.10 
conda activate DGBench
pip install numpy==1.26.4
conda install pytorch==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia 
pip install mujoco
pip install trimesh
pip install hydra-core
pip install transforms3d
pip install matplotlib
pip install scikit-learn
pip install usd-core
pip install imageio
pip install 'qpsolvers[clarabel]'

Running

  1. (Optional) Download our pre-processed object assets DGN_obj_processed.zip and DGN_obj_split.zip from here and organize the unzipped folders as below. Alternatively, new object assets can be pre-processed using MeshProcess.
assets/object/DGN_obj
|- processed_data
|  |- core_bottle_1a7ba1f4c892e2da30711cdbdbc73924
|  |_ ...
|- valid_split
|  |- all.json
|  |_ ...
  1. (Optional) Synthesize new grasp data with BODex and convert to our supported format. There are also some all-in-one scripts in the script directory to test BODex's grasps.
python src/main.py task=format task.data_path=${YOUR_PATH_TO_BODEX_OUTPUT}
  1. Evaluate synthesized grasps.
python src/main.py task=eval
  1. Calculate statistics after evaluation.
python src/main.py task=stat

Visualization

We provide two methods to visualize the synthesized grasps. The first method is through OpenUSD.

python src/main.py task=vusd

The other method is to save OBJ files.

python src/main.py task=vobj

Changelog

The main branch serves as our standard benchmark, with some adjustments to the settings compared to the BODex paper, aimed at improving the practicality. Key changes include increasing the object mass from 30g to 100g, raising the hand's kp from 1 to 5, and supporting more diverse object assets. One can further reduce friction coefficients miu_coef (currently 0.6 for tangential and 0.02 for torsional) to increase difficulty.

The original benchmark version is available in the baseline branch. This branch also includes code to test other grasp synthesis baselines, such as DexGraspNet, FRoGGeR, SpringGrasp.

Future Plan

  • Incorporate visual/tactile feedback to support close-loop evaluation.
  • Add support for other physics simulators, such as MJX and the IPC-based simulator.

The detailed updating timeline is unclear.

Citation

If you find this project useful, please consider citing:

@article{chen2024bodex,
  title={BODex: Scalable and Efficient Robotic Dexterous Grasp Synthesis Using Bilevel Optimization},
  author={Chen, Jiayi and Ke, Yubin and Wang, He},
  journal={arXiv preprint arXiv:2412.16490},
  year={2024}
}

About

A simulation benchmark in MuJoCo for dexterous grasping

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published