Overview: ContactSDF is an method model that uses signed distance functions (SDFs) to approximate multi-contact model, including both collision detection and time-stepping routines. ContactSDF achieves a closed-form state prediction and end-to-end differentiability, enabling efficient model learning and optimization for contact-rich manipulation.
Check the [Preprint], [Website], [Youtube video] for more information.
-
Casadi 3.6.5
pip install casadi==3.6.5
-
Mujoco 3.1.6
pip install mujoco==3.1.6
This repo has been tested with the dependencies from the above version in a Ubuntu 20.04 system, other package version should also work.
Directly run the manipulation test with the pre-trained ContactSDF model on the three-ball case and the Allegro hand case. Each case contains three objects, cube, foambrick and stick). Use the following script to run the manipulation, for example in Linux, go to the root directory of the project and run the following command:
Three-ball manipulation
python3 test_cube.py
Allegro on-palm manipulation
python3 test_allegro_stick.py
Switch to other objects by replacing the object name in the script.
You can also learn the ContactSDF model from scratch, use the following command to test:
python3 learning/cases/cube/learn.py
Switch to other objects by replacing the object name in the script.
For questions, please contact Wen Yang (wenyang@asu.edu)
If you find ContactSDF or this code repo helpful in your work, please consider citing:
@article{yang2024contactsdf,
title={ContactSDF: Signed Distance Functions as Multi-Contact Models for Dexterous Manipulation},
author={Yang, Wen and Jin, Wanxin},
journal={arXiv preprint arXiv:2408.09612},
year={2024}
}