This package contains code accompanying the paper "[Semi-Infinite Programming with Complementarity Constraints for Pose Optimization with Pervasive Contact]" by M. Zhang, K. Hauser, in the International Conference on Robotics and Automation (ICRA), 2021.
├── data World, robot, and object files for running the example code
| └─── ...
├── README.md This file
├── graspopt.py An example program using SIPCC solving grasping planning problem
└── sipcc/ The core Python module
├── geometryopt.py SIP code for collision-free constraints between geometries, for objects, robot poses, and robot trajectories.
├── __init__.py Tells Python that this is a module
├── sip.py Generic semi-infinite programming code
├── sipcc.py Generic semi-infinite programming with complementarity constraint solving code
├── sipcc_problem.py Generic semi-infinite programming with complementarity constraint problem defination
├── graspingopt.py SIPCC code for grasping planning
├── mpcc.py MPCC problem solver (currently only has an SNOPT interface, may add our own MPCC solver in the future)
└── objective.py Generic objectives for optimization problems
This package requires
-
Numpy/Scipy
-
OSQP for quadratic program (QP) solving. OSQP can be installed using
pip install osqp
Other solvers might be supported in the future.
-
The Klampt 0.8.x Python API (https://klampt.org) to be installed.
pip install klampt
may work. -
cvxopt. Cvxopt can be installed using
pip install cvxopt
- sklearn can be installed using
pip install scikit-learn