lipm_walking::Pendulum Struct Reference

State of the inverted pendulum model. More...

#include <lipm_walking/Pendulum.h>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW Pendulum (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. More...
 
void completeIPM (const Contact &plane)
 Complete inverted pendulum inputs (ZMP and natural frequency) from contact plane. More...
 
void integrateCoMJerk (const Eigen::Vector3d &comddd, double dt)
 Integrate constant CoM jerk for a given duration. More...
 
void integrateIPM (Eigen::Vector3d zmp, double lambda, double dt)
 Integrate in floating-base inverted pendulum mode with constant inputs. More...
 
void reset (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. More...
 
void resetCoMHeight (double height, const Contact &contact)
 Reset CoM height above a given contact plane. More...
 
const Eigen::Vector3d & com () const
 CoM position in the world frame. More...
 
const Eigen::Vector3d & comd () const
 CoM velocity in the world frame. More...
 
const Eigen::Vector3d & comdd () const
 CoM acceleration in the world frame. More...
 
Eigen::Vector3d dcm () const
 Divergent component of motion. More...
 
double omega () const
 Natural frequency. More...
 
const Eigen::Vector3d & zmp () const
 Zero-tilting moment point. More...
 
const Eigen::Vector3d & zmpd () const
 Velocity of the zero-tilting moment point. More...
 

Protected Attributes

Eigen::Vector3d com_
 Position of the center of mass. More...
 
Eigen::Vector3d comd_
 Velocity of the center of mass. More...
 
Eigen::Vector3d comdd_
 Acceleration of the center of mass. More...
 
Eigen::Vector3d comddd_
 Jerk of the center of mass. More...
 
Eigen::Vector3d zmp_
 Position of the zero-tilting moment point. More...
 
Eigen::Vector3d zmpd_
 Velocity of the zero-tilting moment point. More...
 
double omega_
 Natural frequency in [Hz]. More...
 

Detailed Description

State of the inverted pendulum model.

Definition at line 40 of file Pendulum.h.

Constructor & Destructor Documentation

lipm_walking::Pendulum::Pendulum ( 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
comCoM position.
comdCoM velocity.
comddCoM acceleration.

Definition at line 34 of file Pendulum.cpp.

Member Function Documentation

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

CoM position in the world frame.

Definition at line 112 of file Pendulum.h.

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

CoM velocity in the world frame.

Definition at line 120 of file Pendulum.h.

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

CoM acceleration in the world frame.

Definition at line 128 of file Pendulum.h.

void lipm_walking::Pendulum::completeIPM ( const Contact plane)

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

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

Definition at line 88 of file Pendulum.cpp.

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

Divergent component of motion.

Definition at line 136 of file Pendulum.h.

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

Integrate constant CoM jerk for a given duration.

Parameters
comdddCoM jerk.
dtIntegration step.

Definition at line 71 of file Pendulum.cpp.

void lipm_walking::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.

Definition at line 52 of file Pendulum.cpp.

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

Natural frequency.

Definition at line 144 of file Pendulum.h.

void lipm_walking::Pendulum::reset ( 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
comCoM position.
comdCoM velocity.
comddCoM acceleration.

Definition at line 39 of file Pendulum.cpp.

void lipm_walking::Pendulum::resetCoMHeight ( double  height,
const Contact contact 
)

Reset CoM height above a given contact plane.

Parameters
heightCoM height above contact plane.
contactContact plane.

Definition at line 79 of file Pendulum.cpp.

const Eigen::Vector3d& lipm_walking::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).

Definition at line 155 of file Pendulum.h.

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

Velocity of the zero-tilting moment point.

Definition at line 163 of file Pendulum.h.

Member Data Documentation

Eigen::Vector3d lipm_walking::Pendulum::com_
protected

Position of the center of mass.

Definition at line 169 of file Pendulum.h.

Eigen::Vector3d lipm_walking::Pendulum::comd_
protected

Velocity of the center of mass.

Definition at line 170 of file Pendulum.h.

Eigen::Vector3d lipm_walking::Pendulum::comdd_
protected

Acceleration of the center of mass.

Definition at line 171 of file Pendulum.h.

Eigen::Vector3d lipm_walking::Pendulum::comddd_
protected

Jerk of the center of mass.

Definition at line 172 of file Pendulum.h.

double lipm_walking::Pendulum::omega_
protected

Natural frequency in [Hz].

Definition at line 175 of file Pendulum.h.

Eigen::Vector3d lipm_walking::Pendulum::zmp_
protected

Position of the zero-tilting moment point.

Definition at line 173 of file Pendulum.h.

Eigen::Vector3d lipm_walking::Pendulum::zmpd_
protected

Velocity of the zero-tilting moment point.

Definition at line 174 of file Pendulum.h.