mc_planning::Pendulum Struct Reference

#include <mc_planning/Pendulum.h>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW Pendulum ()
 Creates an empty pendulum. Call reset. More...
 
 Pendulum (double lamda, const Eigen::Vector3d &com=Eigen::Vector3d::Zero(), const Eigen::Vector3d &comd=Eigen::Vector3d::Zero(), const Eigen::Vector3d &comdd=Eigen::Vector3d::Zero())
 
void completeIPM (const Eigen::Vector3d &p, const Eigen::Vector3d &n)
 
void integrateCoMJerk (const Eigen::Vector3d &comddd, double dt)
 
void integrateIPM (Eigen::Vector3d zmp, double lambda, double dt)
 
void reset (double lambda, const Eigen::Vector3d &com, const Eigen::Vector3d &comd=Eigen::Vector3d::Zero(), const Eigen::Vector3d &comdd=Eigen::Vector3d::Zero())
 
void resetCoMHeight (double height, const Eigen::Vector3d &p, const Eigen::Vector3d &n)
 
const Eigen::Vector3d & com () const
 
const Eigen::Vector3d & comd () const
 
const Eigen::Vector3d & comdd () const
 
Eigen::Vector3d dcm () const
 
double omega () const
 
const Eigen::Vector3d & zmp () const
 
const Eigen::Vector3d & zmpd () const
 

Protected Attributes

Eigen::Vector3d com_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d comd_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d comdd_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d comddd_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d zmp_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d zmpd_ = Eigen::Vector3d::Zero()
 
double omega_ = 0
 

Detailed Description

State of the inverted pendulum model.

Constructor & Destructor Documentation

◆ Pendulum() [1/2]

EIGEN_MAKE_ALIGNED_OPERATOR_NEW mc_planning::Pendulum::Pendulum ( )

◆ Pendulum() [2/2]

mc_planning::Pendulum::Pendulum ( double  lamda,
const Eigen::Vector3d &  com = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  comd = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  comdd = Eigen::Vector3d::Zero() 
)

Initialize state from CoM position and its derivatives.

Parameters
lambdaPendulum constant. lambda = gravity/(height above ground)
comCoM position.
comdCoM velocity.
comddCoM acceleration.

Member Function Documentation

◆ com()

const Eigen::Vector3d& mc_planning::Pendulum::com ( ) const
inline

CoM position in the world frame.

◆ comd()

const Eigen::Vector3d& mc_planning::Pendulum::comd ( ) const
inline

CoM velocity in the world frame.

◆ comdd()

const Eigen::Vector3d& mc_planning::Pendulum::comdd ( ) const
inline

CoM acceleration in the world frame.

◆ completeIPM()

void mc_planning::Pendulum::completeIPM ( const Eigen::Vector3d &  p,
const Eigen::Vector3d &  n 
)

Complete inverted pendulum inputs (ZMP and natural frequency) from contact plane.

Parameters
p,nContact plane in which the ZMP is considered.
Note
The current CoM position and acceleration are used to compute the ZMP in the desired plane.

◆ dcm()

Eigen::Vector3d mc_planning::Pendulum::dcm ( ) const
inline

Divergent component of motion.

◆ integrateCoMJerk()

void mc_planning::Pendulum::integrateCoMJerk ( const Eigen::Vector3d &  comddd,
double  dt 
)

Integrate constant CoM jerk for a given duration.

Parameters
comdddCoM jerk.
dtIntegration step.

◆ integrateIPM()

void mc_planning::Pendulum::integrateIPM ( Eigen::Vector3d  zmp,
double  lambda,
double  dt 
)

Integrate in floating-base inverted pendulum mode with constant inputs.

Parameters
zmpZero-tilting Moment Point, i.e. net force application point.
lambdaNormalized stiffness of the pendulum.
dtDuration of integration step.

◆ omega()

double mc_planning::Pendulum::omega ( ) const
inline

Natural frequency.

◆ reset()

void mc_planning::Pendulum::reset ( double  lambda,
const Eigen::Vector3d &  com,
const Eigen::Vector3d &  comd = Eigen::Vector3d::Zero(),
const Eigen::Vector3d &  comdd = Eigen::Vector3d::Zero() 
)

Reset to a new state from CoM position and its derivatives.

Parameters
lambdaPendulum constant. lambda = gravity/(height above ground)
comCoM position.
comdCoM velocity.
comddCoM acceleration.

◆ resetCoMHeight()

void mc_planning::Pendulum::resetCoMHeight ( double  height,
const Eigen::Vector3d &  p,
const Eigen::Vector3d &  n 
)

Reset CoM height above a given contact plane.

Parameters
heightCoM height above contact plane.
(p,n)Contact plane defined by a point on the surface and its normal

◆ zmp()

const Eigen::Vector3d& mc_planning::Pendulum::zmp ( ) const
inline

Zero-tilting moment point.

Note
In the linear inverted pendulum mode, the ZMP coincides with the centroidal moment pivot (CMP) or its extended version (eCMP).

◆ zmpd()

const Eigen::Vector3d& mc_planning::Pendulum::zmpd ( ) const
inline

Velocity of the zero-tilting moment point.

Member Data Documentation

◆ com_

Eigen::Vector3d mc_planning::Pendulum::com_ = Eigen::Vector3d::Zero()
protected

Position of the center of mass

◆ comd_

Eigen::Vector3d mc_planning::Pendulum::comd_ = Eigen::Vector3d::Zero()
protected

Velocity of the center of mass

◆ comdd_

Eigen::Vector3d mc_planning::Pendulum::comdd_ = Eigen::Vector3d::Zero()
protected

Acceleration of the center of mass

◆ comddd_

Eigen::Vector3d mc_planning::Pendulum::comddd_ = Eigen::Vector3d::Zero()
protected

Jerk of the center of mass

◆ omega_

double mc_planning::Pendulum::omega_ = 0
protected

Natural frequency in [Hz]

◆ zmp_

Eigen::Vector3d mc_planning::Pendulum::zmp_ = Eigen::Vector3d::Zero()
protected

Position of the zero-tilting moment point

◆ zmpd_

Eigen::Vector3d mc_planning::Pendulum::zmpd_ = Eigen::Vector3d::Zero()
protected

Velocity of the zero-tilting moment point


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