SIPCC_ICRA2021

Mengchao Zhang

03/21/2021

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.

drawingdrawing

File structure

├── 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

Dependencies

This package requires

  1. Numpy/Scipy

  2. OSQP for quadratic program (QP) solving. OSQP can be installed using

pip install osqp

Other solvers might be supported in the future.

  1. The Klampt 0.8.x Python API (https://klampt.org) to be installed. pip install klampt may work.

  2. cvxopt. Cvxopt can be installed using

pip install cvxopt

  1. sklearn can be installed using

pip install scikit-learn

  1. pyoptsparse: https://mdolab-pyoptsparse.readthedocs-hosted.com/en/latest/install.html

  2. SNOPT: http://www.sbsi-sol-optimize.com/asp/sol_snopt.html