tasks::qp::QPSolver Class Reference

#include <Tasks/QPSolver.h>

Public Member Functions

 QPSolver ()
 
 ~QPSolver ()
 
bool solve (const std::vector< rbd::MultiBody > &mbs, std::vector< rbd::MultiBodyConfig > &mbcs)
 
bool solveNoMbcUpdate (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs)
 
void updateMbc (rbd::MultiBodyConfig &mbc, int robotIndex) const
 fill mbc with the solution of the problem More...
 
void updateConstrSize ()
 
void nrVars (const std::vector< rbd::MultiBody > &mbs, std::vector< UnilateralContact > uni, std::vector< BilateralContact > bi)
 
int nrVars () const
 
void updateTasksNrVars (const std::vector< rbd::MultiBody > &mbs) const
 call updateNrVars on all tasks More...
 
void updateConstrsNrVars (const std::vector< rbd::MultiBody > &mbs) const
 call updateNrVars on all constraints More...
 
void updateNrVars (const std::vector< rbd::MultiBody > &mbs) const
 call updateNrVars on all tasks and constraints More...
 
void addEqualityConstraint (Equality *co)
 
void removeEqualityConstraint (Equality *co)
 
int nrEqualityConstraints () const
 
void addInequalityConstraint (Inequality *co)
 
void removeInequalityConstraint (Inequality *co)
 
int nrInequalityConstraints () const
 
void addGenInequalityConstraint (GenInequality *co)
 
void removeGenInequalityConstraint (GenInequality *co)
 
int nrGenInequalityConstraints () const
 
void addBoundConstraint (Bound *co)
 
void removeBoundConstraint (Bound *co)
 
int nrBoundConstraints () const
 
void addConstraint (Constraint *co)
 
void addConstraint (const std::vector< rbd::MultiBody > &mbs, Constraint *co)
 
void removeConstraint (Constraint *co)
 
int nrConstraints () const
 
void addTask (Task *task)
 
void addTask (const std::vector< rbd::MultiBody > &mbs, Task *task)
 
void removeTask (Task *task)
 
void resetTasks ()
 
int nrTasks () const
 
void solver (const std::string &name)
 
std::string solver () const
 
const SolverDatadata () const
 
SolverDatadata ()
 
const Eigen::VectorXd & result () const
 
Eigen::VectorXd alphaDVec () const
 
Eigen::VectorXd alphaDVec (int rIndex) const
 
Eigen::VectorXd lambdaVec () const
 
Eigen::VectorXd lambdaVec (int cIndex) const
 
int contactLambdaPosition (const ContactId &cId) const
 
boost::timer::cpu_times solveTime () const
 
boost::timer::cpu_times solveAndBuildTime () const
 

Protected Member Functions

void preUpdate (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs)
 
void postUpdate (const std::vector< rbd::MultiBody > &mbs, std::vector< rbd::MultiBodyConfig > &mbcs, bool success)
 

Constructor & Destructor Documentation

◆ QPSolver()

tasks::qp::QPSolver::QPSolver ( )

◆ ~QPSolver()

tasks::qp::QPSolver::~QPSolver ( )

Member Function Documentation

◆ addBoundConstraint()

void tasks::qp::QPSolver::addBoundConstraint ( Bound co)

◆ addConstraint() [1/2]

void tasks::qp::QPSolver::addConstraint ( const std::vector< rbd::MultiBody > &  mbs,
Constraint co 
)

◆ addConstraint() [2/2]

void tasks::qp::QPSolver::addConstraint ( Constraint co)

◆ addEqualityConstraint()

void tasks::qp::QPSolver::addEqualityConstraint ( Equality co)

◆ addGenInequalityConstraint()

void tasks::qp::QPSolver::addGenInequalityConstraint ( GenInequality co)

◆ addInequalityConstraint()

void tasks::qp::QPSolver::addInequalityConstraint ( Inequality co)

◆ addTask() [1/2]

void tasks::qp::QPSolver::addTask ( const std::vector< rbd::MultiBody > &  mbs,
Task task 
)

◆ addTask() [2/2]

void tasks::qp::QPSolver::addTask ( Task task)

◆ alphaDVec() [1/2]

Eigen::VectorXd tasks::qp::QPSolver::alphaDVec ( ) const

◆ alphaDVec() [2/2]

Eigen::VectorXd tasks::qp::QPSolver::alphaDVec ( int  rIndex) const

◆ contactLambdaPosition()

int tasks::qp::QPSolver::contactLambdaPosition ( const ContactId cId) const

◆ data() [1/2]

SolverData& tasks::qp::QPSolver::data ( )

◆ data() [2/2]

const SolverData& tasks::qp::QPSolver::data ( ) const

◆ lambdaVec() [1/2]

Eigen::VectorXd tasks::qp::QPSolver::lambdaVec ( ) const

◆ lambdaVec() [2/2]

Eigen::VectorXd tasks::qp::QPSolver::lambdaVec ( int  cIndex) const

◆ nrBoundConstraints()

int tasks::qp::QPSolver::nrBoundConstraints ( ) const

◆ nrConstraints()

int tasks::qp::QPSolver::nrConstraints ( ) const

◆ nrEqualityConstraints()

int tasks::qp::QPSolver::nrEqualityConstraints ( ) const

◆ nrGenInequalityConstraints()

int tasks::qp::QPSolver::nrGenInequalityConstraints ( ) const

◆ nrInequalityConstraints()

int tasks::qp::QPSolver::nrInequalityConstraints ( ) const

◆ nrTasks()

int tasks::qp::QPSolver::nrTasks ( ) const

◆ nrVars() [1/2]

int tasks::qp::QPSolver::nrVars ( ) const

◆ nrVars() [2/2]

void tasks::qp::QPSolver::nrVars ( const std::vector< rbd::MultiBody > &  mbs,
std::vector< UnilateralContact uni,
std::vector< BilateralContact bi 
)

◆ postUpdate()

void tasks::qp::QPSolver::postUpdate ( const std::vector< rbd::MultiBody > &  mbs,
std::vector< rbd::MultiBodyConfig > &  mbcs,
bool  success 
)
protected

◆ preUpdate()

void tasks::qp::QPSolver::preUpdate ( const std::vector< rbd::MultiBody > &  mbs,
const std::vector< rbd::MultiBodyConfig > &  mbcs 
)
protected

◆ removeBoundConstraint()

void tasks::qp::QPSolver::removeBoundConstraint ( Bound co)

◆ removeConstraint()

void tasks::qp::QPSolver::removeConstraint ( Constraint co)

◆ removeEqualityConstraint()

void tasks::qp::QPSolver::removeEqualityConstraint ( Equality co)

◆ removeGenInequalityConstraint()

void tasks::qp::QPSolver::removeGenInequalityConstraint ( GenInequality co)

◆ removeInequalityConstraint()

void tasks::qp::QPSolver::removeInequalityConstraint ( Inequality co)

◆ removeTask()

void tasks::qp::QPSolver::removeTask ( Task task)

◆ resetTasks()

void tasks::qp::QPSolver::resetTasks ( )

◆ result()

const Eigen::VectorXd& tasks::qp::QPSolver::result ( ) const

◆ solve()

bool tasks::qp::QPSolver::solve ( const std::vector< rbd::MultiBody > &  mbs,
std::vector< rbd::MultiBodyConfig > &  mbcs 
)

solve the problem

Parameters
mbscurrent multibody
mbcscurrent state of the multibody and result of the solved problem

◆ solveAndBuildTime()

boost::timer::cpu_times tasks::qp::QPSolver::solveAndBuildTime ( ) const

◆ solveNoMbcUpdate()

bool tasks::qp::QPSolver::solveNoMbcUpdate ( const std::vector< rbd::MultiBody > &  mbs,
const std::vector< rbd::MultiBodyConfig > &  mbcs 
)

solve the problem but don't fill mbc. This is usefull for the python binding.

Parameters
mbscurrent multibody
mbccurrent state of the multibody

◆ solver() [1/2]

std::string tasks::qp::QPSolver::solver ( ) const

◆ solver() [2/2]

void tasks::qp::QPSolver::solver ( const std::string &  name)

◆ solveTime()

boost::timer::cpu_times tasks::qp::QPSolver::solveTime ( ) const

◆ updateConstrSize()

void tasks::qp::QPSolver::updateConstrSize ( )

◆ updateConstrsNrVars()

void tasks::qp::QPSolver::updateConstrsNrVars ( const std::vector< rbd::MultiBody > &  mbs) const

call updateNrVars on all constraints

◆ updateMbc()

void tasks::qp::QPSolver::updateMbc ( rbd::MultiBodyConfig &  mbc,
int  robotIndex 
) const

fill mbc with the solution of the problem

Parameters
mbcreslut of the solved problem
robotIndexrobot index associated with mbc

◆ updateNrVars()

void tasks::qp::QPSolver::updateNrVars ( const std::vector< rbd::MultiBody > &  mbs) const

call updateNrVars on all tasks and constraints

◆ updateTasksNrVars()

void tasks::qp::QPSolver::updateTasksNrVars ( const std::vector< rbd::MultiBody > &  mbs) const

call updateNrVars on all tasks


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