Template Class CoPSupportTpl

Class Documentation

template<typename _Scalar>
class CoPSupportTpl

This class encapsulates a center of pressure support of a 6d contact.

A CoP support defines a rectangular region that characterizes feasible CoP position.

/sa FrictionConeTpl, WrenchConeTpl

Public Types

typedef MathBaseTpl<Scalar> MathBase
typedef MathBase::Vector2s Vector2s
typedef MathBase::Vector3s Vector3s
typedef MathBase::Vector4s Vector4s
typedef MathBase::Matrix3s Matrix3s
typedef MathBase::Matrix46s Matrix46s
typedef MathBase::Quaternions Quaternions

Public Functions

CoPSupportTpl(const Matrix3s &R, const Vector2s &box)

Initialize the center of pressure support.

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

  • box[in] Dimension of the foot surface dim = (length, width)

CoPSupportTpl(const WrenchConeTpl<Scalar> &support)

Initialize the center of pressure support.

Parameters:

support[in] Center of pressure support

CoPSupportTpl(const CoPSupportTpl<Scalar> &support)

Initialize the center of pressure support.

Parameters:

support[in] Center of pressure support

explicit CoPSupportTpl()

Initialize the center of pressure support.

~CoPSupportTpl()
void update()

Update the matrix of center of pressure inequalities in the world frame.

This matrix-vector pair describes the center of pressure model as follow: \( -ub \leq A \times w \leq -lb \), where wrench, \( w \), is expressed in the inertial frame located at the center of the rectangular foot contact area (length, width) with axes parallel to those of the world frame.

template<typename NewScalar>
CoPSupportTpl<NewScalar> cast() const

Cast the wrench 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:

CoPSupportTpl<NewScalar> A CoP support region with the new scalar type.

const Matrix46s &get_A() const

Return the matrix of center of pressure support.

const Vector4s &get_ub() const

Return the upper bound of the center of pressure support.

const Vector4s &get_lb() const

Return the lower bound of the center of pressure support.

const Vector2s &get_box() const

Return dimension of the center of pressure support (length, width)

const Matrix3s &get_R() const

Return the rotation matrix that defines the support orientation w.r.t. the inertial frame.

void set_R(const Matrix3s &R)

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

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

void set_box(const Vector2s &box)

Modify dimension of the center of pressure support (length, width)

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

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

Public Members

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Friends

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