15 #include <tasks/config.hh>
17 #include <SpaceVecAlg/SpaceVecAlg>
40 FrictionCone(
const Eigen::Matrix3d & frame,
int nrGen,
double mu,
double direction = 1.);
62 const std::string & r1BodyName,
63 const std::string & r2BodyName,
64 int ambiguityId = -1);
66 bool operator==(
const ContactId & cId)
const;
67 bool operator!=(
const ContactId & cId)
const;
69 bool operator<(
const ContactId & cId)
const;
100 const std::string & r1BodyName,
101 const std::string & r2BodyName,
102 std::vector<Eigen::Vector3d> r1Points,
103 const Eigen::Matrix3d & r1Frame,
104 const sva::PTransformd & X_b1_b2,
107 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
127 const std::string & r1BodyName,
128 const std::string & r2BodyName,
130 std::vector<Eigen::Vector3d> r1Points,
131 const Eigen::Matrix3d & r1Frame,
132 const sva::PTransformd & X_b1_b2,
135 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
149 std::vector<Eigen::Vector3d> r1Points,
150 const Eigen::Matrix3d & r1Frame,
151 const sva::PTransformd & X_b1_b2,
154 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
157 Eigen::Vector3d force(
const Eigen::VectorXd & lambda,
int p,
const FrictionCone & c)
const;
159 Eigen::Vector3d force(
const Eigen::VectorXd & lambda,
const FrictionCone & c)
const;
168 sva::ForceVecd force(
const Eigen::VectorXd & lambda,
169 const std::vector<Eigen::Vector3d> & r_b_pi,
173 int nrLambda(
int point)
const;
175 int nrLambda()
const;
182 Eigen::Vector3d sForce(
const Eigen::VectorXd & lambda,
int point,
const FrictionCone & c)
const;
187 Eigen::Vector3d sForce(
const Eigen::VectorXd & lambda,
const FrictionCone & c)
const;
192 sva::ForceVecd sForce(
const Eigen::VectorXd & lambda,
193 const std::vector<Eigen::Vector3d> & r_b_pi,
200 int sNrLambda(
int point)
const;
209 void construct(
const Eigen::MatrixXd & r1Frame,
int nrGen,
double mu);
236 const std::string & r1BodyName,
237 const std::string & r2BodyName,
238 std::vector<Eigen::Vector3d> r1Points,
239 const std::vector<Eigen::Matrix3d> & r1Frames,
240 const sva::PTransformd & X_b1_b2,
243 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
263 const std::string & r1BodyName,
264 const std::string & r2BodyName,
266 std::vector<Eigen::Vector3d> r1Points,
267 const std::vector<Eigen::Matrix3d> & r1Frames,
268 const sva::PTransformd & X_b1_b2,
271 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
285 std::vector<Eigen::Vector3d> r1Points,
286 const std::vector<Eigen::Matrix3d> & r1Frames,
287 const sva::PTransformd & X_b1_b2,
290 const sva::PTransformd & X_b1_cf = sva::PTransformd::Identity());
298 Eigen::Vector3d force(
const Eigen::VectorXd & lambda,
int point,
const std::vector<FrictionCone> & c)
const;
300 Eigen::Vector3d force(
const Eigen::VectorXd & lambda,
const std::vector<FrictionCone> & c)
const;
309 sva::ForceVecd force(
const Eigen::VectorXd & lambda,
310 const std::vector<Eigen::Vector3d> & r_b_pi,
311 const std::vector<FrictionCone> & c_pi_b)
const;
314 int nrLambda(
int point)
const;
316 int nrLambda()
const;
323 Eigen::Vector3d sForce(
const Eigen::VectorXd & lambda,
int point,
const std::vector<FrictionCone> & c)
const;
328 Eigen::Vector3d sForce(
const Eigen::VectorXd & lambda,
const std::vector<FrictionCone> & c)
const;
333 sva::ForceVecd sForce(
const Eigen::VectorXd & lambda,
334 const std::vector<Eigen::Vector3d> & r_b_pi,
335 const std::vector<FrictionCone> & c_pi_b)
const;
341 int sNrLambda(
int point)
const;
350 void construct(
const std::vector<Eigen::Matrix3d> & r1Frames,
int nrGen,
double mu);