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.
- : Add visualization notebook
- : Update code documentation
- : Refactor training and eval code
- : Push inference code and model checkpoint
- : Conda env working fine
- : Initial release
Run the following commands
conda create --name dagdiff -y python=3.8
conda activate dagdiffInstall 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.3Install remaining packages
pip install -r requirements.txt
pip install -e . # installing se3dif module
pip install huggingface_hubRun 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 datasetUnzip 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.
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.objUse viz_grasp.ipynb to visualize the generated grasps and the denoising trajectory.
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.yamlStart 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']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
-
[1] CGDF
G. Singh et al., “Constrained 6-DoF Grasp Generation on Complex Shapes for Improved Dual-Arm Manipulation”, IROS 2024.
https://ieeexplore.ieee.org/abstract/document/10802268 -
[2] DAVIL
M. F. Karim et al., “Da-Vil: Adaptive Dual-Arm Manipulation with Reinforcement Learning and Variable Impedance Control”, ICRA 2025.
https://ieeexplore.ieee.org/abstract/document/11127487 -
[3] DG16M
M. F. Karim et al., “DG16M: A Large-Scale Dataset for Dual-Arm Grasping with Force-Optimized Grasps”, IROS 2025.
https://ieeexplore.ieee.org/document/11246970 -
[4] DAGDiff
M. F. Karim et al., “DAGDiff: Guiding Dual-Arm Grasp Diffusion to Stable and Collision-Free Grasps”, ICRA 2026.
https://arxiv.org/abs/2509.21145
Our codebase is built upon the existing works of SE(3)-diff and CGDF. We thank the authors for releasing the code.
@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},
}


