A Python implementation for GPDMink: gradient-parameterized deformable Minkowski sums between convex bodies with smooth bounding surface.
"Gradient-parameterized deformable Minkowski sum with applications on contact detection" Article link, Supplimentary Video
Scripts for demonstrating the usage of this package. The plots correspond to the illustrative figures in the article.
demo_minkowski_sum.py: Demonstrate GPDMink algorithm for: (1) bodies with linear transformations; (2) only one body has nonlinear deformation (e.g., tapering and bending); (3) both bodies have nonlinear deformations. Corresponding figures in the article: Figs. 1, 3, 4, 5.demo_superquadrics.py: Demonstrate superquadrics with linear and nonlinear deformations. Corresponding figures in the article: Fig. 2.demo_collision_detection.py: Demonstrate CFC collision detection between two convex bodies with smooth bounding surface, one of which has nonlinear deformation. Also includes cost values at each iteration. Corresponding figures in the article: Fig. 6.
Unit test files are located in /test folder
test_minkowski_sum.py: Unit test forGPDMinkowskiSumfunction. Compute gradient-parameterized deformable Minkowski sums between two convex bodies with smooth surface: (1) in canonical form, (2) with linear transformations, (3) when at most one body has nonlinear deformation (e.g., tapering) and (4) when both bodies have nonlinear deformations (using nonlinear least-squares, takes longer time).test_collision_detection.py: Unit test forCollisionDetectionfunctions.test_ellipsoid.py: Unit test forEllipsoidclass. Compute closest points between two ellipsoids and plot them.test_superquadrics.py: Unit test forSuperQuadricsclass. Generate points on superquadric surface and plot two superquadrics.
GeometryModel: Superclass for defining geometric modelsSuperQuadrics: Implementations of methods for superquadric modelEllipsoid: Implementations of methods for ellipsoidal model
GPDMinkowskiSum: Functions to compute Minkowski sums using the proposed methods (exact closed-form and approximated).NonlinearDeformation: Functions to compute surface points and gradients after nonlinear deformations (e.g., tapering, bending, twisting).CollisionDetection: Functions for CFC collision detection.Utilities: Utility functions.
If you find our work useful, please consider citing:
@article{ruan2025gradient,
title={Gradient-parameterized deformable Minkowski sum with applications on contact detection},
author={Ruan, Sipu and Mei, Jundong},
journal={Multibody System Dynamics},
year={2025},
publisher={Springer}
}
- Compute closed-form Minkowski sums (canonical and with linear transformation):
Ruan, S. and Chirikjian, G. S.. Closed-form Minkowski sums of convex bodies with smooth positively curved boundaries. Computer-Aided Design, 143, 103133.