  PYROBOCOP is a lightweight Python-based package for control and optimization
of robotic systems described by nonlinear Differential Algebraic Equations
(DAEs). In particular, the package can handle systems with contacts that are
described by complementarity constraints and provides a general framework for
specifying obstacle avoidance constraints. The package performs direct
transcription of the DAEs into a set of nonlinear equations by performing
orthogonal collocation on finite elements. The resulting optimization problem
belongs to the class of Mathematical Programs with Complementarity Constraints
(MPCCs). MPCCs fail to satisfy commonly assumed constraint qualifications and
require special handling of the complementarity constraints in order for
NonLinear Program (NLP) solvers to solve them effectively. PYROBOCOP provides
automatic reformulation of the complementarity constraints that enables NLP
solvers to perform optimization of robotic systems. The package is interfaced
with ADOLC for obtaining sparse derivatives by automatic differentiation and
IPOPT for performing optimization. We demonstrate the effectiveness of our
approach in terms of speed and flexibility. We provide several numerical
examples for several robotic systems with collision avoidance as well as
contact constraints represented using complementarity constraints. We provide
comparisons with other open source optimization packages like CasADi and Pyomo .
