tasks::qp::ContactConstrCommon Class Reference

#include <Tasks/QPContactConstr.h>

Inheritance diagram for tasks::qp::ContactConstrCommon:

Classes

struct  ContactCommon
 

Public Member Functions

bool addVirtualContact (const ContactId &contactId)
 
bool removeVirtualContact (const ContactId &contactId)
 Remove a virtual contact. More...
 
void resetVirtualContacts ()
 Remove all virtual contact. More...
 
bool addDofContact (const ContactId &contactId, const Eigen::MatrixXd &dof)
 
bool removeDofContact (const ContactId &contactId)
 
bool hasDoFContact (const ContactId &id) const
 
const Eigen::MatrixXd & dofContact (const ContactId &contactId)
 
void resetDofContacts ()
 

Protected Member Functions

std::set< ContactCommoncontactCommonInContact (const std::vector< rbd::MultiBody > &mbs, const SolverData &data)
 

Protected Attributes

std::set< ContactIdvirtualContacts_
 
std::map< ContactId, Eigen::MatrixXd > dofContacts_
 

Detailed Description

Manage modifier on contact constraint.

Member Function Documentation

◆ addDofContact()

bool tasks::qp::ContactConstrCommon::addDofContact ( const ContactId contactId,
const Eigen::MatrixXd &  dof 
)

Free some degree of freedom of a contact like in the BoundedSpeedConstr.

\[ \bar{v} = S v \]

with \( v \) the velocity in the UnilateralContact and BilateralContact \( cf \) frame.

Parameters
dof\( S \in \mathbb{R}^{n \times 6} \)
See also
BoundedSpeedConstr
ContactConstr::updateDofContacts

◆ addVirtualContact()

bool tasks::qp::ContactConstrCommon::addVirtualContact ( const ContactId contactId)

Add a virtual contact. A virtual contact don't have any motion constraint apply on it (move freely). It can be seen like a Dof contact with \( S \in \mathbb{R}^{0 \times 6} \)

◆ contactCommonInContact()

std::set<ContactCommon> tasks::qp::ContactConstrCommon::contactCommonInContact ( const std::vector< rbd::MultiBody > &  mbs,
const SolverData data 
)
protected

◆ dofContact()

const Eigen::MatrixXd& tasks::qp::ContactConstrCommon::dofContact ( const ContactId contactId)

Get the DoF of a contact

See also
addDofContact

◆ hasDoFContact()

bool tasks::qp::ContactConstrCommon::hasDoFContact ( const ContactId id) const

Check if a DoF has specific DoF

◆ removeDofContact()

bool tasks::qp::ContactConstrCommon::removeDofContact ( const ContactId contactId)

Remove a Dof contact.

See also
ContactConstr::updateDofContacts

◆ removeVirtualContact()

bool tasks::qp::ContactConstrCommon::removeVirtualContact ( const ContactId contactId)

Remove a virtual contact.

◆ resetDofContacts()

void tasks::qp::ContactConstrCommon::resetDofContacts ( )

Remove all Dof contact.

See also
ContactConstr::updateDofContacts

◆ resetVirtualContacts()

void tasks::qp::ContactConstrCommon::resetVirtualContacts ( )

Remove all virtual contact.

Member Data Documentation

◆ dofContacts_

std::map<ContactId, Eigen::MatrixXd> tasks::qp::ContactConstrCommon::dofContacts_
protected

◆ virtualContacts_

std::set<ContactId> tasks::qp::ContactConstrCommon::virtualContacts_
protected

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