Template Struct CoulombFrictionConeTpl

Struct Documentation

template<typename _Scalar>
struct CoulombFrictionConeTpl

3d Coulomb friction cone.

Public Types

typedef _Scalar Scalar
typedef DualCoulombFrictionConeTpl<Scalar> DualCone
typedef Eigen::Matrix<Scalar, 3, 1> Vector3

Public Functions

inline explicit CoulombFrictionConeTpl(const Scalar mu)

Default constructor.

Parameters:

mu[in] Friction coefficient

CoulombFrictionConeTpl(const CoulombFrictionConeTpl &other) = default

Copy constructor.

CoulombFrictionConeTpl &operator=(const CoulombFrictionConeTpl &other) = default

Copy operator.

inline bool operator==(const CoulombFrictionConeTpl &other) const

Comparison operator.

inline bool operator!=(const CoulombFrictionConeTpl &other) const

Difference operator.

template<typename Vector3Like>
inline bool isInside(const Eigen::MatrixBase<Vector3Like> &f, const Scalar prec = Scalar(0)) const

Check whether a vector x lies within the cone.

Parameters:

f[in] vector to check (assimilated to a force vector).

template<typename Vector3Like> inline  PINOCCHIO_EIGEN_PLAIN_TYPE (Vector3Like) project(const Eigen

Project a vector x onto the cone.

Project a vector x onto the cone with a matric specified by the diagonal matrix R.

\param[in] x a 3d vector to project.
\param[in] R a 3d vector representing the diagonal of the weights matrix. The tangential
components (the first two) of R should be equal.

Compute the complementary shift associted to the Coulomb friction cone for complementarity satisfaction in complementary problems.

Compute the radial projection associted to the Coulomb friction cone.

\param[in] f a force vector.

Parameters:
  • x[in] a 3d vector to project.

  • v[in] a dual vector.

Public Members

Scalar mu