mc_tasks::lipm_stabilizer::internal::Contact Struct Reference

This class wraps information about contact surfaces used by the stabilizer. More...

#include <mc_tasks/lipm_stabilizer/Contact.h>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW Contact ()=default
 
 Contact (const mc_rbdyn::Robot &robot, const std::string &surfaceName, double friction)
 Constructs a contact from a surface attached to the ankle frame of a robot. More...
 
 Contact (const mc_rbdyn::Robot &robot, const std::string &surfaceName, const sva::PTransformd &surfacePose, double friction)
 Constructs a Contact with user-specified surface pose. More...
 
HrepXd hrep (const Eigen::Vector3d &vertical) const
 Halfspace representation of contact area in world frame. More...
 
const Eigen::Matrix< double, 16, 6 > & wrenchFaceMatrix () const
 
Eigen::Vector3d sagittal () const
 
Eigen::Vector3d lateral () const
 
Eigen::Vector3d normal () const
 
const Eigen::Vector3d & position () const
 
double halfWidth () const
 
double halfLength () const
 
double friction () const
 
const sva::PTransformd & anklePose () const
 
Eigen::Vector3d sagital ()
 
Eigen::Vector3d lateral ()
 
Eigen::Vector3d vertical ()
 
const std::string & surfaceName () const
 
const sva::PTransformd & surfacePose () const
 
const std::vector< Eigen::Vector3d > & polygon () const
 Returns the contact polygon defined by the 4 vertices of the min/max coordinates along the surface's sagital and normal direction. More...
 
double xmin () const
 World coordinates of the point furthest back in the surface's sagital direction. More...
 
double xmax () const
 World coordinates of the point furthest front in the surface's sagital direction. More...
 
double ymin () const
 World coordinates of the point furthest right in the surface's lateral direction. More...
 
double ymax () const
 World coordinates of the point furthest left in the surface's lateral direction. More...
 

Detailed Description

This class wraps information about contact surfaces used by the stabilizer.

Constructor & Destructor Documentation

◆ Contact() [1/3]

EIGEN_MAKE_ALIGNED_OPERATOR_NEW mc_tasks::lipm_stabilizer::internal::Contact::Contact ( )
default

◆ Contact() [2/3]

mc_tasks::lipm_stabilizer::internal::Contact::Contact ( const mc_rbdyn::Robot robot,
const std::string &  surfaceName,
double  friction 
)

Constructs a contact from a surface attached to the ankle frame of a robot.

Parameters
robotRobot from which to create the contact
surfaceNameName of surface attached to the robot's ankle. It is assumed that the surface frame is defined as follows:
  • z axis going from the environment towards the robot
  • x aligned with the sagital direction
  • y axis aligned with the lateral direction
frictionsole friction

◆ Contact() [3/3]

mc_tasks::lipm_stabilizer::internal::Contact::Contact ( const mc_rbdyn::Robot robot,
const std::string &  surfaceName,
const sva::PTransformd &  surfacePose,
double  friction 
)

Constructs a Contact with user-specified surface pose.

Parameters
surfacePosePose of the contact surface frame
See also
Contact(const mc_rbdyn::Robot&, const std::string &, double);

Member Function Documentation

◆ anklePose()

const sva::PTransformd& mc_tasks::lipm_stabilizer::internal::Contact::anklePose ( ) const
inline

World position of projected ankle frame into surface frame. Orientation is that of the target contact frame.

◆ friction()

double mc_tasks::lipm_stabilizer::internal::Contact::friction ( ) const
inline

◆ halfLength()

double mc_tasks::lipm_stabilizer::internal::Contact::halfLength ( ) const
inline

◆ halfWidth()

double mc_tasks::lipm_stabilizer::internal::Contact::halfWidth ( ) const
inline

◆ hrep()

HrepXd mc_tasks::lipm_stabilizer::internal::Contact::hrep ( const Eigen::Vector3d &  vertical) const

Halfspace representation of contact area in world frame.

Parameters
verticalNormalized vector parallel to gravity

◆ lateral() [1/2]

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::lateral ( )
inline

◆ lateral() [2/2]

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::lateral ( ) const
inline

Lateral unit vector of the contact frame.

◆ normal()

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::normal ( ) const
inline

Normal unit vector of the contact frame.

◆ polygon()

const std::vector<Eigen::Vector3d>& mc_tasks::lipm_stabilizer::internal::Contact::polygon ( ) const
inline

Returns the contact polygon defined by the 4 vertices of the min/max coordinates along the surface's sagital and normal direction.

◆ position()

const Eigen::Vector3d& mc_tasks::lipm_stabilizer::internal::Contact::position ( ) const
inline

Shorthand for position.

◆ sagital()

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::sagital ( )
inline

◆ sagittal()

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::sagittal ( ) const
inline

Sagittal unit vector of the contact frame.

◆ surfaceName()

const std::string& mc_tasks::lipm_stabilizer::internal::Contact::surfaceName ( ) const
inline

◆ surfacePose()

const sva::PTransformd& mc_tasks::lipm_stabilizer::internal::Contact::surfacePose ( ) const
inline

◆ vertical()

Eigen::Vector3d mc_tasks::lipm_stabilizer::internal::Contact::vertical ( )
inline

◆ wrenchFaceMatrix()

const Eigen::Matrix<double, 16, 6>& mc_tasks::lipm_stabilizer::internal::Contact::wrenchFaceMatrix ( ) const
inline

H-representation of contact wrench cones.

See https://hal.archives-ouvertes.fr/hal-02108449/document for technical details on the derivation of this formula.

Note
Uses halfLength_, halfWidth_ computed from the surface points in findSurfaceBoundaries(), friction_: sole friction

◆ xmax()

double mc_tasks::lipm_stabilizer::internal::Contact::xmax ( ) const
inline

World coordinates of the point furthest front in the surface's sagital direction.

◆ xmin()

double mc_tasks::lipm_stabilizer::internal::Contact::xmin ( ) const
inline

World coordinates of the point furthest back in the surface's sagital direction.

◆ ymax()

double mc_tasks::lipm_stabilizer::internal::Contact::ymax ( ) const
inline

World coordinates of the point furthest left in the surface's lateral direction.

◆ ymin()

double mc_tasks::lipm_stabilizer::internal::Contact::ymin ( ) const
inline

World coordinates of the point furthest right in the surface's lateral direction.


The documentation for this struct was generated from the following file: