#include <Tasks/QPContactConstr.h>
Public Member Functions | |
ContactPosConstr (double timeStep) | |
virtual void | update (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override |
virtual std::string | nameEq () const override |
![]() | |
ContactConstr () | |
void | updateDofContacts () |
virtual void | updateNrVars (const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override |
virtual std::string | descEq (const std::vector< rbd::MultiBody > &mbs, int line) override |
virtual int | nrEq () const override |
virtual int | maxEq () const override |
virtual const Eigen::MatrixXd & | AEq () const override |
virtual const Eigen::VectorXd & | bEq () const override |
![]() | |
virtual | ~ConstraintFunction () override |
void | addToSolver (QPSolver &sol) |
void | addToSolver (const std::vector< rbd::MultiBody > &mbs, QPSolver &sol) |
void | removeFromSolver (QPSolver &sol) |
![]() | |
virtual | ~Constraint () |
![]() | |
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 () |
Additional Inherited Members | |
![]() | |
void | updateNrEq () |
![]() | |
std::set< ContactCommon > | contactCommonInContact (const std::vector< rbd::MultiBody > &mbs, const SolverData &data) |
![]() | |
std::vector< ContactData > | cont_ |
Eigen::MatrixXd | fullJac_ |
Eigen::MatrixXd | dofJac_ |
Eigen::MatrixXd | A_ |
Eigen::VectorXd | b_ |
int | nrEq_ |
int | totalAlphaD_ |
double | timeStep_ |
![]() | |
std::set< ContactId > | virtualContacts_ |
std::map< ContactId, Eigen::MatrixXd > | dofContacts_ |
Contact constraint by targeting a constant frame.
\[ v + a \Delta_{dt} = \frac{\epsilon(q)}{\Delta_{dt}} \]
Where \( \epsilon \) is the error between the initial and current contact frame.
This constraint formulation is stable in all case.
tasks::qp::ContactPosConstr::ContactPosConstr | ( | double | timeStep | ) |
timeStep | Time step in second. |
|
overridevirtual |
|
overridevirtual |
Implements tasks::qp::Constraint.