BipedalLocomotion::TSID::AngularMomentumTask class

AngularMomentumTask is a concrete implementation of the TSIDLinearTask.

Please use this element if you want to control the Centroidal angular momentum of the robot. The task represents the following equation

\[ \sum \begin{bmatrix} S(p_{C_k} - x & I_{3 \times 3} \end{bmatrix} f_k = \dot{h} ^ * _\omega \]

where the suffix $S$ is the skew operator. $p_{C_k}$ is the position of the contact $k$ , $x$ is the CoM position, $f_k$ is the contact wrench expressed in mixed representation. Finally $\dot{h} ^ * _\omega$ is the desired rate of change of the angular momentum. The angular momentum rate of change is computed by a Proportional controller in $\mathbb{R}^3$ .

Base classes

struct TSIDLinearTask
TSIDLinearTask specializes a LinearTask in the case of Task based Inverse Dynamics.

Public functions

auto initialize(std::weak_ptr<const ParametersHandler::IParametersHandler> paramHandler) -> bool override
Initialize the AngularMomentumTask.
auto setKinDyn(std::shared_ptr<iDynTree::KinDynComputations> kinDyn) -> bool override
Set the kinDynComputations object.
auto setVariablesHandler(const System::VariablesHandler& variablesHandler) -> bool override
Set the set of variables required by the task.
auto update() -> bool override
Update the content of the element.
auto setSetPoint(Eigen::Ref<const Eigen::Vector3d> angularMomentum, Eigen::Ref<const Eigen::Vector3d> angularMomentumDerivative) -> bool
Set the desired reference point.
auto size() const -> std::size_t override
Get the size of the task.
auto type() const -> Type override
The AngularMomentumTask is an equality task.
auto isValid() const -> bool override
Determines the validity of the objects retrieved with getA() and getB()

Function documentation

bool BipedalLocomotion::TSID::AngularMomentumTask::initialize(std::weak_ptr<const ParametersHandler::IParametersHandler> paramHandler) override

Initialize the AngularMomentumTask.

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

bool BipedalLocomotion::TSID::AngularMomentumTask::setKinDyn(std::shared_ptr<iDynTree::KinDynComputations> kinDyn) override

Set the kinDynComputations object.

Parameters
kinDyn pointer to a kinDynComputations object.
Returns True in case of success, false otherwise.

bool BipedalLocomotion::TSID::AngularMomentumTask::setVariablesHandler(const System::VariablesHandler& variablesHandler) override

Set the set of variables required by the task.

Parameters
variablesHandler reference to a variables handler.
Returns True in case of success, false otherwise.

The variables are stored in the System::VariablesHandler.

bool BipedalLocomotion::TSID::AngularMomentumTask::update() override

Update the content of the element.

Returns True in case of success, false otherwise.

bool BipedalLocomotion::TSID::AngularMomentumTask::setSetPoint(Eigen::Ref<const Eigen::Vector3d> angularMomentum, Eigen::Ref<const Eigen::Vector3d> angularMomentumDerivative)

Set the desired reference point.

Parameters
angularMomentum desired centroidal angular momentum.
angularMomentumDerivative desired rate of change of the centroidal angular momentum.
Returns True in case of success, false otherwise.

std::size_t BipedalLocomotion::TSID::AngularMomentumTask::size() const override

Get the size of the task.

Returns the size of the task.

(I.e the number of rows of the vector b)

Type BipedalLocomotion::TSID::AngularMomentumTask::type() const override

The AngularMomentumTask is an equality task.

Returns the type of the task.

bool BipedalLocomotion::TSID::AngularMomentumTask::isValid() const override

Determines the validity of the objects retrieved with getA() and getB()

Returns True if the objects are valid, false otherwise.