Simple-Robotics/proxsuite

The Advanced Proximal Optimization Toolbox

What it solves

ProxSuite is a collection of numerically robust and efficient numerical solvers for optimization problems, specifically Linear Programs (LPs) and Quadratic Programs (QPs). It provides scalable optimizers that can handle dense, sparse, or matrix-free problems, which is particularly useful for high-performance robotics applications and other numerical optimization contexts.

How it works

The library is built on revisited primal-dual proximal algorithms. It is implemented as a C++ template library that is cache-friendly and header-only, ensuring high performance. It offers a unified API for various matrix factorization backends and advanced warm-starting options. It also includes specialized features for handling box constraints, nonconvex QPs, and parallelized batch solving of QPs.

Who it’s for

It is designed for researchers and engineers working in robotics, optimal control, and numerical optimization. It provides bindings for Python and Julia for prototyping, while maintaining C++ performance for deployment.

Highlights

  • High Performance: A C++ template library optimized for cache efficiency and vectorization support.
  • Versatile Solvers: Supports dense, sparse, and matrix-free backends, as well as nonconvex QPs and LPs.
  • Differentiable Optimization: Includes QPLayer, which allows a QP to be used as a layer within PyTorch learning architectures by differentiating over the primal and dual solutions.
  • Broad Integration: Integrated into ecosystems like CVXPY, CasADi, and TSID.
  • ** uma** Cross-platform support for Windows, Mac OS X, and Linux.

Related

  • Project
  • Project
  • Project
  • Project
  • Project