#include <mc_planning/Pendulum.h>
|
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 |
|
|
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 |
|
State of the inverted pendulum model.
◆ 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
-
lambda | Pendulum constant. lambda = gravity/(height above ground) |
com | CoM position. |
comd | CoM velocity. |
comdd | CoM acceleration. |
◆ 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,n | Contact 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
-
comddd | CoM jerk. |
dt | Integration 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
-
zmp | Zero-tilting Moment Point, i.e. net force application point. |
lambda | Normalized stiffness of the pendulum. |
dt | Duration of integration step. |
◆ omega()
double mc_planning::Pendulum::omega |
( |
| ) |
const |
|
inline |
◆ 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
-
lambda | Pendulum constant. lambda = gravity/(height above ground) |
com | CoM position. |
comd | CoM velocity. |
comdd | CoM 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
-
height | CoM 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.
◆ 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: