BipedalLocomotion::JointLevelControllers::EMAWithLimits class

Exponential Moving Average (EMA) with Joint Limits.

This class implements an Exponential Moving Average (EMA) controller that applies limits to the joint values. The EMA is computed based on the input reference and feedback signals, and the output is adjusted to respect the specified joint limits. The controller applies a scaling factor to the input signals and has options for softening the limits.

Base classes

template<class _Input, class _Output>
class BipedalLocomotion::System::Advanceable<Eigen::VectorXd, Eigen::VectorXd>
Basic class that represents a discrete system.

Constructors, destructors, conversion operators

EMAWithLimits()
Constructor.
~EMAWithLimits()
Destructor.

Public functions

auto initialize(std::weak_ptr<const BipedalLocomotion::ParametersHandler::IParametersHandler> paramHandler) -> bool override
Initialize the EMAWithLimits.
auto setInput(const EMAWithLimits::Input& input) -> bool override
Set the input of the EMAWithLimits.
auto advance() -> bool override
Perform one step of the inference given the input set.
auto getOutput() const -> const EMAWithLimits::Output& override
Get the output of the EMAWithLimits once advance has been called.
auto isOutputValid() const -> bool override
Check if the output of the EMAWithLimits is valid.
void reset()
Reset the EMAWithLimits with a new input.

Function documentation

BipedalLocomotion::JointLevelControllers::EMAWithLimits::~EMAWithLimits()

Destructor.

It is required by the pimpl implementation.

bool BipedalLocomotion::JointLevelControllers::EMAWithLimits::initialize(std::weak_ptr<const BipedalLocomotion::ParametersHandler::IParametersHandler> paramHandler) override

Initialize the EMAWithLimits.

Parameters
paramHandler pointer to the parameters handler.
Returns True in case of success, false otherwise.

bool BipedalLocomotion::JointLevelControllers::EMAWithLimits::setInput(const EMAWithLimits::Input& input) override

Set the input of the EMAWithLimits.

Parameters
input the struct containing all the inputs of the EMAWithLimits.
Returns true if case of success, false otherwise.

bool BipedalLocomotion::JointLevelControllers::EMAWithLimits::advance() override

Perform one step of the inference given the input set.

Returns true if case of success, false otherwise.

const EMAWithLimits::Output& BipedalLocomotion::JointLevelControllers::EMAWithLimits::getOutput() const override

Get the output of the EMAWithLimits once advance has been called.

Returns the output of the EMAWithLimits.

bool BipedalLocomotion::JointLevelControllers::EMAWithLimits::isOutputValid() const override

Check if the output of the EMAWithLimits is valid.

Returns true if it is valid, false otherwise.