Go to the documentation of this file.
16 #include <RBDyn/Jacobian.h>
38 bool addVirtualContact(
const ContactId & contactId);
41 bool removeVirtualContact(
const ContactId & contactId);
44 void resetVirtualContacts();
55 bool addDofContact(
const ContactId & contactId,
const Eigen::MatrixXd & dof);
61 bool removeDofContact(
const ContactId & contactId);
66 bool hasDoFContact(
const ContactId &
id)
const;
72 const Eigen::MatrixXd & dofContact(
const ContactId & contactId);
78 void resetDofContacts();
92 std::set<ContactCommon> contactCommonInContact(
const std::vector<rbd::MultiBody> & mbs,
const SolverData & data);
113 void updateDofContacts();
116 virtual void updateNrVars(
const std::vector<rbd::MultiBody> & mbs,
const SolverData & data)
override;
118 virtual std::string descEq(
const std::vector<rbd::MultiBody> & mbs,
int line)
override;
121 virtual int nrEq()
const override;
122 virtual int maxEq()
const override;
124 virtual const Eigen::MatrixXd & AEq()
const override;
125 virtual const Eigen::VectorXd & bEq()
const override;
130 ContactSideData(
int rI,
int aDB,
double s,
const rbd::Jacobian & j,
const sva::PTransformd & Xbp)
131 : robotIndex(rI), alphaDBegin(aDB), bodyIndex(j.jointsPath().back()), sign(s), jac(j), X_b_p(Xbp)
144 const Eigen::MatrixXd & d,
149 const sva::PTransformd & X_bb,
150 const sva::PTransformd & X_bcf,
152 : contacts(std::move(csds)), dof(d), r1Index(r1), r2Index(r2), b1Index(b1), b2Index(b2), X_b1_b2(X_bb),
153 X_b1_cf(X_bcf), contactId(cId)
155 revDof = Eigen::Matrix6d::Zero();
157 for(
int j = 0; j < 6; ++j)
159 bool dof_j_active =
false;
160 for(
int r = 0; r < dof.rows(); ++r) { dof_j_active = dof_j_active || dof(r, j) == 1; }
161 if(!dof_j_active) { revDof(j, j) = 1; }
165 void update(
const std::vector<rbd::MultiBodyConfig> & mbcs);
205 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
206 const std::vector<rbd::MultiBodyConfig> & mbcs,
209 virtual std::string nameEq()
const override;
224 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
225 const std::vector<rbd::MultiBodyConfig> & mbcs,
228 virtual std::string nameEq()
const override;
248 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
249 const std::vector<rbd::MultiBodyConfig> & mbcs,
252 virtual std::string nameEq()
const override;
Definition: QPSolverData.h:27
Definition: GenQPUtils.h:18
Definition: QPSolver.h:163