Template Class FrictionConeTpl

Class Documentation

template<typename _Scalar>
class FrictionConeTpl

This class encapsulates a friction cone.

A friction cone is a 3D cone that characterizes feasible contact wrench. The friction cone defines a linearized version (pyramid) with a predefined number of facets.

/sa WrenchConeTpl

Public Types

typedef MathBaseTpl<Scalar> MathBase
typedef MathBase::Vector3s Vector3s
typedef MathBase::Matrix3s Matrix3s
typedef MathBase::VectorXs VectorXs
typedef MathBase::MatrixXs MatrixXs
typedef MathBase::MatrixX3s MatrixX3s
typedef MathBase::Quaternions Quaternions

Public Functions

FrictionConeTpl(const Matrix3s &R, const Scalar mu, std::size_t nf = 4, const bool inner_appr = true, const Scalar min_nforce = Scalar(0.), const Scalar max_nforce = std::numeric_limits<Scalar>::infinity())

Initialize the wrench cone.

Parameters:
  • R[in] Rotation matrix that defines the cone orientation w.r.t. the inertial frame

  • mu[in] Friction coefficient

  • nf[in] Number of facets (default 4)

  • inner_appr[in] Label that describes the type of friction cone approximation (inner/outer)

  • min_nforce[in] Minimum normal force (default 0.)

  • max_nforce[in] Maximum normal force (default inf number))

FrictionConeTpl(const FrictionConeTpl<Scalar> &cone)

Initialize the wrench cone.

Parameters:

cone[in] Friction cone

explicit FrictionConeTpl()

Initialize the friction cone.

~FrictionConeTpl()
void update()

Update the matrix and bound of friction cone inequalities in the world frame.

This matrix-vector pair describes the linearized Coulomb friction model as follow: \( -ub \leq A \times w \leq -lb \), where wrench, \( w \), is expressed in the inertial frame located with axes parallel to those of the world frame.

DEPRECATED ("Use update()", void update(const Vector3s &normal, const Scalar mu, const bool inner_appr=true, const Scalar min_nforce=Scalar(0.), const Scalar max_nforce=std::numeric_limits< Scalar >::infinity()))
template<typename NewScalar>
FrictionConeTpl<NewScalar> cast() const

Cast the friction cone to a different scalar type.

It is useful for operations requiring different precision or scalar types.

Template Parameters:

NewScalar – The new scalar type to cast to.

Returns:

FrictionConeTpl<NewScalar> An friction conel with the new scalar type.

const MatrixX3s &get_A() const

Return the matrix of friction cone.

const VectorXs &get_ub() const

Return the upper bound of the friction cone.

const VectorXs &get_lb() const

Return the lower bound of the friction cone.

std::size_t get_nf() const

Return the number of facets.

const Matrix3s &get_R() const

Return the surface normal vector.

const Scalar get_mu() const

Return the friction coefficient.

bool get_inner_appr() const

Return the label that describes the type of friction cone approximation (inner/outer)

const Scalar get_min_nforce() const

Return the minimum normal force.

const Scalar get_max_nforce() const

Return the maximum normal force.

void set_R(const Matrix3s &R)

Modify the rotation matrix that defines the cone orientation w.r.t. the inertial frame.

Note that you need to run update for updating the inequality matrix and bounds.

void set_mu(const Scalar mu)

Modify friction coefficient.

Note that you need to run update for updating the inequality matrix and bounds.

void set_inner_appr(const bool inner_appr)

Modify the label that describes the type of friction cone approximation (inner/outer)

Note that you need to run update for updating the inequality matrix and bounds.

void set_min_nforce(const Scalar min_nforce)

Modify the maximum normal force.

Note that you need to run update for updating the inequality matrix and bounds.

void set_max_nforce(const Scalar max_nforce)

Modify the maximum normal force.

Note that you need to run update for updating the inequality matrix and bounds.

FrictionConeTpl<Scalar> &operator=(const FrictionConeTpl<Scalar> &other)

Public Members

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Friends

template<class Scalar>
friend std::ostream &operator<<(std::ostream &os, const FrictionConeTpl<Scalar> &X)