template<typename _Derived>
BipedalLocomotion::ContinuousDynamicalSystem::LieGroupDynamics class

LieGroupDynamics describes the dynamics of a LieGroup.

In details, given an element of a Lie group $X \in G$ and a vector of its Lie Algebra $ x \in \mathrm{g}$ , LieGroupDynamics implements

\[ \dot{X} = x X \]

where $\dot{X} \in T_X G$ with $T_X G$ is the Tangent space of $G$ at $X$ .

The LieGroupDynamics inherits from a generic DynamicalSystem where the State is described by a BipedalLocomotion::GenericContainer::named_tuple

NameTypeDescription
LieGroup_DerivedThe Lie group considered by the dynamics

The StateDerivative is described by a BipedalLocomotion::GenericContainer::named_tuple

NameTypeDescription
Tangent_Derived::TangentElement of the tangent vector in Left trivialized

The Input is described by a BipedalLocomotion::GenericContainer::named_tuple

NameTypeDescription
Tangent_Derived::TangentElement of the tangent vector in Left trivialized

Base classes

template<class _Derived>
class DynamicalSystem<LieGroupDynamics<_Derived>>
DynamicalSystem defines a continuous time dynamical system, i.e.

Public types

using State = typename DynamicalSystem<LieGroupDynamics<_Derived>>::State
using Input = typename DynamicalSystem<LieGroupDynamics<_Derived>>::Input
using StateDerivative = typename DynamicalSystem<LieGroupDynamics<_Derived>>::StateDerivative

Public functions

auto setState(const State& state) -> bool
Set the state of the dynamical system.
auto getState() const -> const State&
Get the state to the dynamical system.
auto setControlInput(const Input& controlInput) -> bool
Set the control input to the dynamical system.
auto dynamics(const std::chrono::nanoseconds& time, StateDerivative& stateDerivative) -> bool
Computes the floating based system dynamics.

Function documentation

template<typename _Derived>
bool BipedalLocomotion::ContinuousDynamicalSystem::LieGroupDynamics<_Derived>::setState(const State& state)

Set the state of the dynamical system.

Parameters
state tuple containing a const reference to the state elements.
Returns true in case of success, false otherwise.

template<typename _Derived>
const State& BipedalLocomotion::ContinuousDynamicalSystem::LieGroupDynamics<_Derived>::getState() const

Get the state to the dynamical system.

Returns the current state of the dynamical system

template<typename _Derived>
bool BipedalLocomotion::ContinuousDynamicalSystem::LieGroupDynamics<_Derived>::setControlInput(const Input& controlInput)

Set the control input to the dynamical system.

Parameters
controlInput the value of the control input used to compute the system dynamics.
Returns true in case of success, false otherwise.

template<typename _Derived>
bool BipedalLocomotion::ContinuousDynamicalSystem::LieGroupDynamics<_Derived>::dynamics(const std::chrono::nanoseconds& time, StateDerivative& stateDerivative)

Computes the floating based system dynamics.

Parameters
time the time at witch the dynamics is computed.
stateDerivative
Returns true in case of success, false otherwise.

It return $f(x, u, t)$ .