mc_tasks::lipm_stabilizer::ZMPCC Struct Reference

#include <mc_tasks/lipm_stabilizer/ZMPCC.h>

Collaboration diagram for mc_tasks::lipm_stabilizer::ZMPCC:

Public Types

using ZMPCCConfiguration = mc_rbdyn::lipm_stabilizer::ZMPCCConfiguration
 

Public Member Functions

void reset ()
 
void enabled (bool state)
 
bool enabled () const
 
void configure (const ZMPCCConfiguration &config)
 
const ZMPCCConfigurationconfig () const
 
void update (const Eigen::Vector3d &distribZMP, const Eigen::Vector3d &measuredZMP, const sva::PTransformd &zmpFrame, double dt)
 
void apply (Eigen::Vector3d &com, Eigen::Vector3d &comd, Eigen::Vector3d &comdd)
 Apply ZMPCC in-place to the com. More...
 
void addToGUI (mc_rtc::gui::StateBuilder &gui, const std::vector< std::string > &category)
 
void removeFromGUI (mc_rtc::gui::StateBuilder &gui, const std::vector< std::string > &category)
 
void addToLogger (mc_rtc::Logger &logger, const std::string &name)
 
void removeFromLogger (mc_rtc::Logger &logger, const std::string &name)
 

Protected Attributes

ZMPCCConfiguration config_
 
Eigen::Vector3d comAccel_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d comOffset_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d comVel_ = Eigen::Vector3d::Zero()
 
Eigen::Vector3d error_ = Eigen::Vector3d::Zero()
 
mc_filter::LeakyIntegrator< Eigen::Vector3d > integrator_
 
bool enabled_ = true
 

Detailed Description

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.

Member Typedef Documentation

◆ ZMPCCConfiguration

Member Function Documentation

◆ 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
comDesired CoM position
comdDesired CoM velocity
comddDesired CoM acceleration

◆ config()

const ZMPCCConfiguration& mc_tasks::lipm_stabilizer::ZMPCC::config ( ) const
inline

Returns ZMPCC configuration

◆ configure()

void mc_tasks::lipm_stabilizer::ZMPCC::configure ( const ZMPCCConfiguration config)
inline

Configures ZMPCC parameters

Parameters
configZMPCC 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
stateWhether 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
distribZMPDistributed ZMP target
measuredZMPMeasured ZMP
zmpFrameFrame in which the ZMP is computed
dtControl timestep

Member Data Documentation

◆ 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_

ZMPCCConfiguration mc_tasks::lipm_stabilizer::ZMPCC::config_
protected

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_

mc_filter::LeakyIntegrator<Eigen::Vector3d> mc_tasks::lipm_stabilizer::ZMPCC::integrator_
protected

Leaky integrator for the CoM offset added by ZMPCC


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