BipedalLocomotion::Math::ContactWrenchCone class

ContactWrenchCone computes the polyhedral approximation of the contact wrench friction cone.

A surface remains fixed with respect to the environment if the contact wrench lies in a cone described by

\[ f ^c \cdot n > 0 \quad | f ^t | \le \mu f^c \cdot n \]

where $ f^c $ is the contact force, $ n $ is the vector normal to the contact surface. $ f^t $ is the tangential force to the contact surface and $ \mu $ is the friction parameter. In addition we require CoP inside the support area and a bounded yaw torque. The ContactWrenchCone aims to compute the polyhedral approximation of $ | f ^t | \le \mu f^c \cdot n $ by splitting the base of the cone into slices while considering the contact torque constraints. The class implements the equations presented in [Stability of Surface Contacts for Humanoid Robots: Closed-Form Formulae of the Contact Wrench Cone for Rectangular Support Areas paper](https://ieeexplore.ieee.org/document/7139910). However differently from the original work, the origin of the frame attached to the contact surface is not required to be in the center of the surface.

Public functions

auto initialize(std::weak_ptr<const ParametersHandler::IParametersHandler> handler) -> bool
Initialize the Contact Wrench Cone class.
auto getA() const -> Eigen::Ref<const Eigen::MatrixXd>
Get the matrix A.
auto getB() const -> Eigen::Ref<const Eigen::VectorXd>
Get the vector B.

Function documentation

bool BipedalLocomotion::Math::ContactWrenchCone::initialize(std::weak_ptr<const ParametersHandler::IParametersHandler> handler)

Initialize the Contact Wrench Cone class.

Parameters
handler pointer to the parameter handler.
Returns true in case of success/false otherwise.

Eigen::Ref<const Eigen::MatrixXd> BipedalLocomotion::Math::ContactWrenchCone::getA() const

Get the matrix A.

Returns the matrix A.

Eigen::Ref<const Eigen::VectorXd> BipedalLocomotion::Math::ContactWrenchCone::getB() const

Get the vector B.

Returns the matrix B..