RobWorkProject  23.9.11-
Public Types | Static Public Member Functions | List of all members
QPSolver Class Reference

Class providing an algorithms for solving the quadratic optimization problem associated with the QPController. More...

#include <QPSolver.hpp>

Public Types

enum  Status { SUCCESS = 0 , SUBOPTIMAL , FAILURE }
 Enumeration used to indicate status.
 

Static Public Member Functions

static Eigen::VectorXd inequalitySolve (const Eigen::MatrixXd &G, const Eigen::VectorXd &d, Eigen::MatrixXd &A, const Eigen::VectorXd &b, const Eigen::VectorXd &xstart, Status &status)
 

Detailed Description

Class providing an algorithms for solving the quadratic optimization problem associated with the QPController.

Member Function Documentation

◆ inequalitySolve()

static Eigen::VectorXd inequalitySolve ( const Eigen::MatrixXd &  G,
const Eigen::VectorXd &  d,
Eigen::MatrixXd &  A,
const Eigen::VectorXd &  b,
const Eigen::VectorXd &  xstart,
Status status 
)
static

Solves the quadratic problem of minimizing 1/2 x^T.G.x+d^T.x subject to A.x>=b The method used is an iterative method from "Numerical Optimization" by Jorge Nocedal and Stephen J. Wright, Springer 1999. In this implementation we'll require that b<= s.t. x=0 is a feasible initial value

Parameters
G[in] The G matrix. It is required that G is n times n and is positive semidefinite
d[in] Vector of length n
A[in] Matrix used to represent the linear inequality constraints. The dimensions should be m times n
b[in] Vector with the lower limit for the constraints. We'll assume that b<=0. The length of b should be m
xstart[in] Default start configuration of the iterative algorithm
status[out] Gives the status of the solving

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