mc_solver::GenInequalityConstraintForce Class Reference

#include <mc_solver/GenInequalityConstraint.h>

Inheritance diagram for mc_solver::GenInequalityConstraintForce:
Collaboration diagram for mc_solver::GenInequalityConstraintForce:

Public Member Functions

 GenInequalityConstraintForce (const mc_solver::QPSolver &solver, const tasks::qp::ContactId &cid)
 
- Public Member Functions inherited from mc_solver::utils::GenInequalityConstraint< utils::UpdateForce >
 GenInequalityConstraint (unsigned int rIndex)
 
 GenInequalityConstraint (const tasks::qp::ContactId &cid)
 
 GenInequalityConstraint (const mc_solver::QPSolver &solver, const tasks::qp::ContactId &cid)
 
const Eigen::MatrixXd & AGenInEq () const override
 
std::string descGenInEq (const std::vector< rbd::MultiBody > &, int i) override
 

Additional Inherited Members

- Public Types inherited from mc_solver::utils::GenInequalityConstraint< utils::UpdateForce >
using Base = Constraint< tasks::qp::GenInequality, utils::UpdateForce >
 
- Protected Member Functions inherited from mc_solver::utils::Constraint< tasks::qp::GenInequality, utils::UpdateForce >
 Constraint (unsigned int rIndex)
 
 Constraint (const tasks::qp::ContactId &cid)
 
 Constraint (const mc_solver::QPSolver &solver, const tasks::qp::ContactId &cid)
 
virtual ~Constraint ()
 
void updateNrVars (const std::vector< rbd::MultiBody > &mbs, const tasks::qp::SolverData &data) override
 
void update (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const tasks::qp::SolverData &data) override
 
- Protected Member Functions inherited from mc_solver::utils::UpdateForce
 UpdateForce (const mc_solver::QPSolver &solver, const tasks::qp::ContactId &cid)
 
void updateImpl (const std::vector< rbd::MultiBody > &, const std::vector< rbd::MultiBodyConfig > &, const tasks::qp::SolverData &)
 
- Protected Member Functions inherited from mc_solver::utils::Update< UpdateNrVarsLambda >
 Update (unsigned int rIndex)
 
 Update (const tasks::qp::ContactId &cid)
 
virtual ~Update ()
 
virtual void compute ()=0
 
virtual const Eigen::MatrixXd & A () const=0
 
void updateImpl (const std::vector< rbd::MultiBody > &, const std::vector< rbd::MultiBodyConfig > &, const tasks::qp::SolverData &)
 
- Protected Member Functions inherited from mc_solver::utils::UpdateNrVarsLambda
 UpdateNrVarsLambda (const tasks::qp::ContactId &cid)
 
void updateNrVarsImpl (const std::vector< rbd::MultiBody > &mbs, const tasks::qp::SolverData &data)
 
- Protected Attributes inherited from mc_solver::utils::Update< UpdateNrVarsLambda >
Eigen::MatrixXd AFull_
 
- Protected Attributes inherited from mc_solver::utils::UpdateNrVarsLambda
tasks::qp::ContactId cid_
 
- Protected Attributes inherited from mc_solver::utils::UpdateNrVarsData
int nrVars_
 
int ABegin_
 

Detailed Description

Helper class to write a general inequality constraint for Tasks. This constraint applies to the wrench associated with a given contact.

The wrench \( \mathbf{f}_{cI} \) is expressed in the first robot (cid.r1Index) contact surface frame.

This implements \( L \le A * \mathbf{f}_{cI} \le U \)

Where \(cI\) is the contact id you provide at construction.

You must implement the following functions:

  • const Eigen::MatrixXd & A() const override; returns \(A\), must be of size (nrLines, 6)
  • void compute() override; update constraint matrix and bounds
  • int maxGenInEq() const override; number of inequality lines
  • std::string nameGenInEq() const override; descriptive name of the constraint
  • const Eigen::VectorXd & LowerGenInEq() const override; returns the lower bound \(L\)
  • const Eigen::VectorXd & UpperGenInEq() const override; returns the upper bound \(U\)

Constructor & Destructor Documentation

◆ GenInequalityConstraintForce()

mc_solver::GenInequalityConstraintForce::GenInequalityConstraintForce ( const mc_solver::QPSolver solver,
const tasks::qp::ContactId &  cid 
)
inline

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