#include <mc_tasks/lipm_stabilizer/ZMPCC.h>
ZMP Compensation Control (ZMPCC)
CoM admittance based on ZMP Compensation Control. This approach is based on Section 6.2.2 of Dr Nagasaka's PhD thesis "体幹位置コンプライアンス制御によるモデル誤差吸収" (1999) from https://sites.google.com/site/humanoidchannel/home/publication.
◆ ZMPCCConfiguration
◆ addToGUI()
void mc_tasks::lipm_stabilizer::ZMPCC::addToGUI |
( |
mc_rtc::gui::StateBuilder & |
gui, |
|
|
const std::vector< std::string > & |
category |
|
) |
| |
◆ addToLogger()
void mc_tasks::lipm_stabilizer::ZMPCC::addToLogger |
( |
mc_rtc::Logger & |
logger, |
|
|
const std::string & |
name |
|
) |
| |
◆ apply()
void mc_tasks::lipm_stabilizer::ZMPCC::apply |
( |
Eigen::Vector3d & |
com, |
|
|
Eigen::Vector3d & |
comd, |
|
|
Eigen::Vector3d & |
comdd |
|
) |
| |
Apply ZMPCC in-place to the com.
- Parameters
-
com | Desired CoM position |
comd | Desired CoM velocity |
comdd | Desired CoM acceleration |
◆ config()
Returns ZMPCC configuration
◆ configure()
Configures ZMPCC parameters
- Parameters
-
- Note
- this configuration may be modified interactively by the GUI elements
◆ enabled() [1/2]
bool mc_tasks::lipm_stabilizer::ZMPCC::enabled |
( |
| ) |
const |
|
inline |
Returns whether ZMPCC compensation is enabled
◆ enabled() [2/2]
void mc_tasks::lipm_stabilizer::ZMPCC::enabled |
( |
bool |
state | ) |
|
|
inline |
Enable/Disable ZMPCC
- Parameters
-
state | Whether zmpcc is enabled
- true: compute ZMPCC compensation
- false: ZMPCC compensation gains are set to zero, and the integrator gradually leaks to zero
|
◆ removeFromGUI()
void mc_tasks::lipm_stabilizer::ZMPCC::removeFromGUI |
( |
mc_rtc::gui::StateBuilder & |
gui, |
|
|
const std::vector< std::string > & |
category |
|
) |
| |
◆ removeFromLogger()
void mc_tasks::lipm_stabilizer::ZMPCC::removeFromLogger |
( |
mc_rtc::Logger & |
logger, |
|
|
const std::string & |
name |
|
) |
| |
◆ reset()
void mc_tasks::lipm_stabilizer::ZMPCC::reset |
( |
| ) |
|
Resets everything to zero
◆ update()
void mc_tasks::lipm_stabilizer::ZMPCC::update |
( |
const Eigen::Vector3d & |
distribZMP, |
|
|
const Eigen::Vector3d & |
measuredZMP, |
|
|
const sva::PTransformd & |
zmpFrame, |
|
|
double |
dt |
|
) |
| |
Compute CoM offset due to ZMPCC compensation
- Parameters
-
distribZMP | Distributed ZMP target |
measuredZMP | Measured ZMP |
zmpFrame | Frame in which the ZMP is computed |
dt | Control timestep |
◆ comAccel_
Eigen::Vector3d mc_tasks::lipm_stabilizer::ZMPCC::comAccel_ = Eigen::Vector3d::Zero() |
|
protected |
Additional CoM acceleration from ZMPCC
◆ comOffset_
Eigen::Vector3d mc_tasks::lipm_stabilizer::ZMPCC::comOffset_ = Eigen::Vector3d::Zero() |
|
protected |
Additional CoM position offset from ZMPCC
◆ comVel_
Eigen::Vector3d mc_tasks::lipm_stabilizer::ZMPCC::comVel_ = Eigen::Vector3d::Zero() |
|
protected |
Additional CoM velocity from ZMPCC
◆ config_
Configuration of ZMPCC gains and parameters
◆ enabled_
bool mc_tasks::lipm_stabilizer::ZMPCC::enabled_ = true |
|
protected |
◆ error_
Eigen::Vector3d mc_tasks::lipm_stabilizer::ZMPCC::error_ = Eigen::Vector3d::Zero() |
|
protected |
Error between distributed and measured ZMP
◆ integrator_
Leaky integrator for the CoM offset added by ZMPCC
The documentation for this struct was generated from the following file:
- include/mc_tasks/lipm_stabilizer/ZMPCC.h