Class eiQuadProgBackEnd

Inheritance Relationships

Base Type

Class Documentation

class eiQuadProgBackEnd : public OpenSoT::solvers::BackEnd

The eiQuadProgBackEnd class implements a back-end based on eiQuadProg by B.

Stepehn https://www.cs.cmu.edu/~bstephe1/eiquadprog.hpp

Public Types

typedef MatrixPiler VectorPiler

Public Functions

eiQuadProgBackEnd(const int number_of_variables, const int number_of_constraints, const double eps_regularisation = EIQUADPROG_DEFAULT_EPS_REGULARISATION)
~eiQuadProgBackEnd()
virtual bool initProblem(const Eigen::MatrixXd &H, const Eigen::VectorXd &g, const Eigen::MatrixXd &A, const Eigen::VectorXd &lA, const Eigen::VectorXd &uA, const Eigen::VectorXd &l, const Eigen::VectorXd &u)

PURE VIRTUAL METHODS:

initProblem initialize the QP problem and get the solution, the dual solution, bounds and constraints. The QP problem has the following structure:

 min = ||Hx - g||
st. lA <= Ax <= uA l <= x <= u

Parameters
  • HTask Matrix

  • gTask references

  • AConstraint Matrix

  • lA – lower constraint Eigen::VectorXd

  • uA – upper constraint Eigen::VectorXd

  • l – lower bounds

  • u – upper bounds

Returns

true if the problem can be solved

virtual bool solve()

solve the QP problem

Returns

true if the QP problem is solved (implementation should use internally _solution)

virtual double getObjective()

getObjective to retrieve the value of the objective function

Returns

the value of the objective function at the optimum

virtual boost::any getOptions()

getOptions return the options of the QP problem

Returns

options, a boost::any object since we do not know the type of the object which depends on the solver

virtual void setOptions(const boost::any &options)

setOptions of the QP problem.

Parameters

options, a – boost::any object since we do not know the type of the object which depends on the solver

virtual bool setEpsRegularisation(const double eps)

setEpsRegularisation OVERWRITES the actual eps regularisation factor

Parameters

eps – the new regularisation factor

Returns

false if eps < 0

inline virtual double getEpsRegularisation()

getEpsRegularisation return internal solver eps

Returns

eps value