wbc
wbc::QPOASESSolver Class Reference

The QPOASESSolver class is a wrapper for the qp-solver qpoases (see https://www.coin-or.org/qpOASES/doc/3.0/manual.pdf). It solves problems of shape: More...

#include <QPOasesSolver.hpp>

Inheritance diagram for wbc::QPOASESSolver:
wbc::QPSolver

Public Member Functions

 QPOASESSolver ()
 
virtual ~QPOASESSolver ()
 
virtual void solve (const wbc::HierarchicalQP &hierarchical_qp, Eigen::VectorXd &solver_output, bool allow_warm_start=true)
 solve Solve the given quadratic program
 
void setMaxNoWSR (const uint &n)
 
uint getMaxNoWSR ()
 
int getReturnValue ()
 
int getNoWSR ()
 
qpOASES::Options getOptions ()
 
void setOptions (const qpOASES::Options &opt)
 
const qpOASES::SQProblem & getSQProblem ()
 
- Public Member Functions inherited from wbc::QPSolver
 QPSolver ()
 
virtual ~QPSolver ()
 
void reset ()
 reset Enforces reconfiguration at next call to solve()
 

Protected Attributes

qpOASES::Options options
 
qpOASES::SQProblem sq_problem
 
int n_wsr
 
int actual_n_wsr
 
qpOASES::returnValue ret_val
 
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > H
 
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > A
 
size_t nc
 
size_t nv
 
- Protected Attributes inherited from wbc::QPSolver
bool configured
 

Detailed Description

The QPOASESSolver class is a wrapper for the qp-solver qpoases (see https://www.coin-or.org/qpOASES/doc/3.0/manual.pdf). 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. & lb(\mathbf{Ax}) \leq \mathbf{Ax} \leq ub(\mathbf{Ax})& \\ & lb(\mathbf{x}) \leq \mathbf{x} \leq ub(\mathbf{x})& \\ \end{array} \]

Reference: Ferreau, H.J., Kirches, C., Potschka, A. et al. qpOASES: a parametric active-set algorithm for quadratic programming. Math. Prog. Comp. 6, 327–363 (2014). https://doi.org/10.1007/s12532-014-0071-1

Solver parameters:

  • Check qpOASES::Options
  • Different sets of default options can be selected:
    • options.setToDefault( );
    • options.setToReliable( ); // for maximum reliability
    • options.setToMPC( ); // for maximum speed

Constructor & Destructor Documentation

◆ QPOASESSolver()

wbc::QPOASESSolver::QPOASESSolver ( )

◆ ~QPOASESSolver()

wbc::QPOASESSolver::~QPOASESSolver ( )
virtual

Member Function Documentation

◆ getMaxNoWSR()

uint wbc::QPOASESSolver::getMaxNoWSR ( )
inline

Get the maximum number of working set recalculations to be performed during the initial homotopy

◆ getNoWSR()

int wbc::QPOASESSolver::getNoWSR ( )
inline

Get number of working set recalculations actually performed

◆ getOptions()

qpOASES::Options wbc::QPOASESSolver::getOptions ( )
inline

Return current solver options

◆ getReturnValue()

int wbc::QPOASESSolver::getReturnValue ( )

Retrieve the return value from the last QP calculation

◆ getSQProblem()

const qpOASES::SQProblem & wbc::QPOASESSolver::getSQProblem ( )
inline

Get Quadratic program

◆ setMaxNoWSR()

void wbc::QPOASESSolver::setMaxNoWSR ( const uint & n)
inline

Set the maximum number of working set recalculations to be performed during the initial homotopy

◆ setOptions()

void wbc::QPOASESSolver::setOptions ( const qpOASES::Options & opt)

Set new solver options

◆ solve()

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

solve Solve the given quadratic program

Parameters
hierarchical_qpDescription of the hierarchical quadratic program to solve.
solver_outputsolution of the quadratic program

Implements wbc::QPSolver.

Member Data Documentation

◆ A

Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> wbc::QPOASESSolver::A
protected

◆ actual_n_wsr

int wbc::QPOASESSolver::actual_n_wsr
protected

◆ H

Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> wbc::QPOASESSolver::H
protected

◆ n_wsr

int wbc::QPOASESSolver::n_wsr
protected

◆ nc

size_t wbc::QPOASESSolver::nc
protected

◆ nv

size_t wbc::QPOASESSolver::nv
protected

◆ options

qpOASES::Options wbc::QPOASESSolver::options
protected

◆ ret_val

qpOASES::returnValue wbc::QPOASESSolver::ret_val
protected

◆ sq_problem

qpOASES::SQProblem wbc::QPOASESSolver::sq_problem
protected

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