Skip to content

DAG-Diff/dual-arm-grasp-diffusion

Repository files navigation

DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps

Accepted at ICRA 2026

This is the official repository for DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps. The codebase and the documentation is still in progress.

Check the [Project Website] for more results and updates.

TODO

  • : Add visualization notebook
  • : Update code documentation
  • : Refactor training and eval code
  • : Push inference code and model checkpoint
  • : Conda env working fine
  • : Initial release

1. Installation

Creating the Conda Env

Run the following commands

conda create --name dagdiff -y python=3.8
conda activate dagdiff

Install Packages

conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118  torchaudio==2.0.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.0.1+118.html # will take some time to install 
conda install conda-forge::suitesparse
conda install -c conda-forge scikit-sparse
pip install theseus-ai==0.1.3

Install remaining packages

pip install -r requirements.txt
pip install -e . # installing se3dif module
pip install huggingface_hub

2. Download Dataset

Run the following command to download the dataset from huggingface (or get it manually from faizalkarim/dagdiff-dataset).

huggingface-cli download faizalkarim/dagdiff-dataset --repo-type dataset

Unzip the folders (grasps.zip, meshes.zip, sdf.zip) and the final folder should look like:

dagdiff-dataset
├── train_final.txt
├── test_final.txt
|
├── grasps/
│   ├── 554fa306799d623af7248d9dbed7a7b8.h5
│   ├── c2ad96f56ec726d270a43c2d978e502e.h5
│   ├── ....
|
├── meshes/
│   ├── 554fa306799d623af7248d9dbed7a7b8.obj
│   ├── c2ad96f56ec726d270a43c2d978e502e.obj
│   ├── ....
|
└── sdf/
    ├── 554fa306799d623af7248d9dbed7a7b8.h5
    ├── c2ad96f56ec726d270a43c2d978e502e.h5
    └── ....

Use viz_dataset.ipynb to visualize the the dataset.

3. Inference

For inference, first download the model checkpoint from link and place it in ./checkpoint directory. The same path needs to be provided in ./configs/dual_arm_params.yaml as inference_checkpoint. Two example object meshes are stored in ./try_meshes directory which can be used to run the model.

Once done, run the following command to generate dual-arm grasps.

CUDA_VISIBLE_DEVICES=0 python3 scripts/sample/generate_dual_6d_grasp_poses.py \
--n_grasps 300 \
--model dual_arm_params \
--input ./try_meshes/monitor.obj

Use viz_grasp.ipynb to visualize the generated grasps and the denoising trajectory.

4. Training

First, copy the path of the data dir in dual_arm_params.yaml as given below.

grasps_dir: <PATH>/dagdiff-dataset/grasps/
meshes_dir: <PATH>/dagdiff-dataset/meshes/
sdf_dir: <PATH>/dagdiff-dataset/sdf/
train_meshes_list: <PATH>/dagdiff-dataset/train_final.txt/
val_meshes_list: <PATH>/dagdiff-dataset/test_final.txt/

Train the model using the command:

python3 trainer_script.py --config dual_arm_params.yaml

Start the training from a pretrained checkpoint by specifying the checkpoint path in dual_arm_params.yaml. It also contains other hyperparameters which can be modified as required.

pretrained_checkpoint:
    path: <PATH to checkpoint>
    to_load: ['all'] # or ['none', 'vision_encoder', 'feature_encoder', 'dual_energy_net', 'classifier', 'collision_predictor']

5. Research Progression

Our research is part of a continuing line of projects. To see how it has developed over time, take a look at our earlier works:

[1] CGDF ───────────────┐
           |            |  
           |            v
           ├─────> [3] DG16M ────> [4] DAGDiff
           |
           |
[2] DAVIL ─┘
References

6. Acknowledgment

Our codebase is built upon the existing works of SE(3)-diff and CGDF. We thank the authors for releasing the code.

7. 📜 Cite

@article{DAGDiff,
      title={DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps}, 
      author={Md Faizal Karim and Vignesh Vembar and Keshab Patra and Gaurav Singh and Nagamanikandan Govindan and K Madhava Krishna},
      year={2026},
      eprint={2509.21145},
      url={https://arxiv.org/abs/2509.21145}, 
}

About

[ICRA 2026] Official codebase for DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors