mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration Struct Reference

Parameters for the external wrenches. More...

#include <mc_rbdyn/lipm_stabilizer/StabilizerConfiguration.h>

Public Member Functions

void load (const mc_rtc::Configuration &config)
 
mc_rtc::Configuration save () const
 

Public Attributes

bool addExpectedCoMOffset = false
 
bool subtractMeasuredValue = false
 Subtract the measured external wrenches instead of target ones. More...
 
bool modifyCoMErr = false
 Modify CoM depending on the error of the external wrenches in target and measurement. More...
 
bool modifyZMPErr = false
 Modify ZMP depending on the error of the external wrenches in target and measurement. More...
 
bool modifyZMPErrD = false
 Modify ZMP velocity depending on the error velocity of the external wrenches in target and measurement. More...
 
bool excludeFromDCMBiasEst = false
 
double comOffsetErrCoMLimit = 0.1
 Limit of CoM offset error handled by CoM modification. More...
 
double comOffsetErrZMPLimit = 0.1
 Limit of CoM offset error handled by ZMP modification [m]. More...
 
double extWrenchSumLowPassCutoffPeriod = 0.05
 Cutoff period for the low-pass filter of the sum of the measured external wrenches. More...
 
double comOffsetLowPassCutoffPeriod = 0.05
 Cutoff period for the low-pass filter of CoM offset. More...
 
double comOffsetLowPassCoMCutoffPeriod = 1.0
 Cutoff period for the low-pass filter of CoM offset to extract CoM modification. More...
 
double comOffsetDerivatorTimeConstant = 1.0
 Time window for the stationary offset filter of the CoM offset derivator. More...
 

Detailed Description

Parameters for the external wrenches.

The external forces affect the two layers, i.e., pattern generation and stabilization control.

For the pattern generation, if the external forces are not taken into account in the input target CoM, an offset is added by feedforward from the target external forces. This feature is enabled by setting addExpectedCoMOffset to true. For the stabilization control, the error between the target external forces and the measured external forces is compensated by the CoM strategy and the ZMP strategy. High-frequency errors are handled by the ZMP strategy, while low-frequency errors are handled by the CoM strategy. The CoM strategy is enabled when modifyCoMErr is set to true. The ZMP strategy is enabled when modifyZMPErr is set to true. Strictly speaking, the ZMP strategy also depends on the derivative of the external force error, and when modifyZMPErrD is true, the corresponding compensation is also enabled. However, the effect of the compensation related to the derivative is not dominant and is affected by the measured external force noise, so it is recommended to try with modifyZMPErrD false first.

If there are additional biases and unknown external forces that are not predicted nor measured, the DCM bias estimator could be used. In that case, if one of addExpectedCoMOffset, modifyCoMErr or modifyZMPErr is true, it is highly recommended to set excludeFromDCMBiasEst to true. It will exclude the expected/measured external forces from the computation of the bias and prevent them to be twice compensated for.

CommOffsetDerivatorTimeConstant is a time constant for calculating this derivative. The maximum amounts of modification for CoM strategy and ZMP strategy are comOffsetErrCoMLimit and comOffsetErrZMPLimit, respectively.

The total measured external force is passed through the low-pass filter of the cutoff period exitWenchSumLowPassCutoffPeriod. Then, from the error between the target external forces and the measured external forces, the amounts of compensation for the CoM strategy and ZMP strategy are calculated using two low-pass filters. One is a low-pass filter of the cutoff period comOffsetLowPassCutoffPeriod (High-LPF), and the other is a low-pass filter of the cutoff period comOffsetLowPassCoMCutoffPeriod (Low-LPF). Make the comOffsetLowPassCoMCutoffPeriod larger than the comOffsetLowPassCutoffPeriod. The CoM strategy deals with the error components that pass through the High-LPF and pass through the Low-LPF. The ZMP strategy deals with the error components that pass the High-LPF but do NOT pass the Low-LPF.

  • If you want the StabilizerTask to deal with external forces in a simple way (i.e., the pattern generator does not take external forces into account), then set addExpectedCoMOffset, modifyCoMErr, modifyZMPErr to true.
  • modifyZMPErrD should theoretically be true, but it depends on the derivative of the measured external forces, so it becomes sensitive to the noises in the measurement noise.
  • If you want to use the DCM bias estimator then if the pattern generator takes the forces into account or if one of addExpectedCoMOffset, modifyCoMErr or modifyZMPErr is true, set excludeFromDCMBiasEst to true.
  • subtractMeasuredValue is a more experimental and the option inspired from https://github.com/stephane-caron/lipm_walking_controller/discussions/28 Normally set to false.

Member Function Documentation

◆ load()

void mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::load ( const mc_rtc::Configuration config)
inline

◆ save()

mc_rtc::Configuration mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::save ( ) const
inline

Member Data Documentation

◆ addExpectedCoMOffset

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::addExpectedCoMOffset = false

Whether to add the CoM offset expected from the external wrenches. Should be false if the target CoM generated by the pattern generator already considers the external wrenches, true otherwise.

◆ comOffsetDerivatorTimeConstant

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::comOffsetDerivatorTimeConstant = 1.0

Time window for the stationary offset filter of the CoM offset derivator.

◆ comOffsetErrCoMLimit

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::comOffsetErrCoMLimit = 0.1

Limit of CoM offset error handled by CoM modification.

◆ comOffsetErrZMPLimit

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::comOffsetErrZMPLimit = 0.1

Limit of CoM offset error handled by ZMP modification [m].

◆ comOffsetLowPassCoMCutoffPeriod

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::comOffsetLowPassCoMCutoffPeriod = 1.0

Cutoff period for the low-pass filter of CoM offset to extract CoM modification.

◆ comOffsetLowPassCutoffPeriod

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::comOffsetLowPassCutoffPeriod = 0.05

Cutoff period for the low-pass filter of CoM offset.

◆ excludeFromDCMBiasEst

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::excludeFromDCMBiasEst = false

Exclude external forces from DCM Bias estimation (should be used when the pg/stabilizer is actively compensating for those measured forces)

◆ extWrenchSumLowPassCutoffPeriod

double mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::extWrenchSumLowPassCutoffPeriod = 0.05

Cutoff period for the low-pass filter of the sum of the measured external wrenches.

◆ modifyCoMErr

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::modifyCoMErr = false

Modify CoM depending on the error of the external wrenches in target and measurement.

◆ modifyZMPErr

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::modifyZMPErr = false

Modify ZMP depending on the error of the external wrenches in target and measurement.

◆ modifyZMPErrD

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::modifyZMPErrD = false

Modify ZMP velocity depending on the error velocity of the external wrenches in target and measurement.

◆ subtractMeasuredValue

bool mc_rbdyn::lipm_stabilizer::ExternalWrenchConfiguration::subtractMeasuredValue = false

Subtract the measured external wrenches instead of target ones.


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