wbc
wbc::ProxQPSolver Class Reference

The ProxQPSolver class is a wrapper for the qp-solver prox-qp (see https://github.com/Simple-Robotics/proxsuite). It solves problems of shape: More...

#include <ProxQPSolver.hpp>

Inheritance diagram for wbc::ProxQPSolver:
wbc::QPSolver

Public Member Functions

 ProxQPSolver ()
 
virtual ~ProxQPSolver () noexcept
 
virtual void solve (const wbc::HierarchicalQP &hierarchical_qp, Eigen::VectorXd &solver_output, bool allow_warm_start=true)
 solve Solve the given quadratic program
 
int getNter ()
 
void setOptions (proxsuite::proxqp::Settings< double > opt)
 
- Public Member Functions inherited from wbc::QPSolver
 QPSolver ()
 
virtual ~QPSolver ()
 
void reset ()
 reset Enforces reconfiguration at next call to solve()
 

Protected Attributes

std::shared_ptr< proxsuite::proxqp::dense::QP< double > > _solver_ptr
 
int _actual_n_iter
 
Eigen::MatrixXd _C_mtx
 
Eigen::VectorXd _l_vec
 
Eigen::VectorXd _u_vec
 
proxsuite::proxqp::Settings< double > settings
 
- Protected Attributes inherited from wbc::QPSolver
bool configured
 

Detailed Description

The ProxQPSolver class is a wrapper for the qp-solver prox-qp (see https://github.com/Simple-Robotics/proxsuite). It solves problems of shape:

\[ \begin{array}{ccc} min(\mathbf{x}) & \frac{1}{2} \mathbf{x}^T\mathbf{H}\mathbf{x}+\mathbf{x}^T\mathbf{g}& \\ & & \\ s.t. & \mathbf{Ax} = \mathbf{b}& \\ & \mathbf{l} \leq \mathbf{Cx} \leq \mathbf{u}& \\ \end{array} \]

Reference: Antoine Bambade, Sarah El-Kazdadi, Adrien Taylor, Justin Carpentier. PROX-QP: Yet another Quadratic Programming Solver for Robotics and beyond. RSS 2022 - Robotics: Science and Systems, Jun 2022, New York, United States. ⟨hal-03683733⟩

Parameters:

  • See proxsuite::proxqp::Setting in settings.h for all possible options and default values.

Constructor & Destructor Documentation

◆ ProxQPSolver()

wbc::ProxQPSolver::ProxQPSolver ( )

◆ ~ProxQPSolver()

virtual wbc::ProxQPSolver::~ProxQPSolver ( )
inlinevirtualnoexcept

Member Function Documentation

◆ getNter()

int wbc::ProxQPSolver::getNter ( )
inline

Get number of working set recalculations actually performed

◆ setOptions()

void wbc::ProxQPSolver::setOptions ( proxsuite::proxqp::Settings< double > opt)
inline

Set Solver options. Has to be called before first call to solve()!

◆ solve()

void wbc::ProxQPSolver::solve ( const wbc::HierarchicalQP & hierarchical_qp,
Eigen::VectorXd & solver_output,
bool allow_warm_start = true )
virtual

solve Solve the given quadratic program

Parameters
constraintsDescription of the hierarchical quadratic program to solve. Each vector entry correspond to a stage in the hierarchy where the first entry has the highest priority. Currently only one priority level is implemented.
solver_outputsolution of the quadratic program

solve problem: min 0.5 * x'Hx + g'x s.t. Ax = b l < Cx < u

Implements wbc::QPSolver.

Member Data Documentation

◆ _actual_n_iter

int wbc::ProxQPSolver::_actual_n_iter
protected

◆ _C_mtx

Eigen::MatrixXd wbc::ProxQPSolver::_C_mtx
protected

◆ _l_vec

Eigen::VectorXd wbc::ProxQPSolver::_l_vec
protected

◆ _solver_ptr

std::shared_ptr<proxsuite::proxqp::dense::QP<double> > wbc::ProxQPSolver::_solver_ptr
protected

◆ _u_vec

Eigen::VectorXd wbc::ProxQPSolver::_u_vec
protected

◆ settings

proxsuite::proxqp::Settings<double> wbc::ProxQPSolver::settings
protected

The documentation for this class was generated from the following files: