aligator  0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar > Struct Template Reference

Nonlinear centroidal forward dynamics. More...

#include <aligator/modelling/dynamics/centroidal-fwd.hpp>

Inheritance diagram for aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >:
[legend]
Collaboration diagram for aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
using Base = ODEAbstractTpl<Scalar>
using BaseData = ContinuousDynamicsDataTpl<Scalar>
using ContDataAbstract = ContinuousDynamicsDataTpl<Scalar>
using Data = CentroidalFwdDataTpl<Scalar>
using Manifold = ::aligator::VectorSpaceTpl<Scalar>
using Matrix3s = Eigen::Matrix<Scalar, 3, 3>
using ContactMap = ContactMapTpl<Scalar>
Public Types inherited from aligator::dynamics::ODEAbstractTpl< _Scalar >
using Scalar = _Scalar
using Base = ContinuousDynamicsAbstractTpl<Scalar>
using Data = ContinuousDynamicsDataTpl<Scalar>
Public Types inherited from aligator::dynamics::ContinuousDynamicsAbstractTpl< _Scalar >
using Scalar = _Scalar
using Manifold = ManifoldAbstractTpl<Scalar>
using ManifoldPtr = xyz::polymorphic<Manifold>
using Data = ContinuousDynamicsDataTpl<Scalar>

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
const Manifoldspace () const
 CentroidalFwdDynamicsTpl (const Manifold &state, const double mass, const Vector3s &gravity, const ContactMap &contact_map, const int force_size)
void forward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Evaluate the ODE vector field: this returns the value of \(\dot{x}\).
void dForward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Evaluate the vector field Jacobians.
shared_ptr< ContDataAbstractcreateData () const
 Create a data holder instance.
Public Member Functions inherited from aligator::dynamics::ODEAbstractTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
virtual ~ODEAbstractTpl ()=default
void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xdot, Data &data) const override
void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xdot, Data &data) const override
 Differentiate the vector field.
Public Member Functions inherited from aligator::dynamics::ContinuousDynamicsAbstractTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
int ndx () const
int nu () const
const Manifoldspace () const
 Return a reference to the state space.
 ContinuousDynamicsAbstractTpl (ManifoldPtr space, const int nu)
virtual ~ContinuousDynamicsAbstractTpl ()=default

Public Attributes

Manifold space_
std::size_t nk_
double mass_
Vector3s gravity_
ContactMap contact_map_
int force_size_
Public Attributes inherited from aligator::dynamics::ODEAbstractTpl< _Scalar >
const int nu_
 Control space dimension.
ManifoldPtr space_
 State space.
Public Attributes inherited from aligator::dynamics::ContinuousDynamicsAbstractTpl< _Scalar >
ManifoldPtr space_
 State space.
const int nu_
 Control space dimension.

Detailed Description

template<typename _Scalar>
struct aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >

Nonlinear centroidal forward dynamics.

This is described in state-space \(\mathcal{X} = T\mathcal{Q}\) (the phase space \(x = (c,h,L)\) with c CoM position, h linear momentum) and L angular momentum) using the differential equation

\[ \dot{x} = f(x, u) = F_x * x + F_u(x) * u \]

as described by the Newton-Euler law of momentum.

Definition at line 24 of file centroidal-fwd.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::Scalar = _Scalar

Definition at line 26 of file centroidal-fwd.hpp.

◆ Base

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::Base = ODEAbstractTpl<Scalar>

Definition at line 28 of file centroidal-fwd.hpp.

◆ BaseData

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::BaseData = ContinuousDynamicsDataTpl<Scalar>

Definition at line 29 of file centroidal-fwd.hpp.

◆ ContDataAbstract

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::ContDataAbstract = ContinuousDynamicsDataTpl<Scalar>

Definition at line 30 of file centroidal-fwd.hpp.

◆ Data

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::Data = CentroidalFwdDataTpl<Scalar>

Definition at line 31 of file centroidal-fwd.hpp.

◆ Manifold

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::Manifold = ::aligator::VectorSpaceTpl<Scalar>

Definition at line 32 of file centroidal-fwd.hpp.

◆ Matrix3s

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::Matrix3s = Eigen::Matrix<Scalar, 3, 3>

Definition at line 33 of file centroidal-fwd.hpp.

◆ ContactMap

template<typename _Scalar>
using aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::ContactMap = ContactMapTpl<Scalar>

Definition at line 34 of file centroidal-fwd.hpp.

Constructor & Destructor Documentation

◆ CentroidalFwdDynamicsTpl()

template<typename _Scalar>
aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::CentroidalFwdDynamicsTpl(const Manifold &state,
const doublemass,
const Vector3s &gravity,
const ContactMap &contact_map,
const intforce_size )

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename _Scalar>
aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)

◆ space()

template<typename _Scalar>
const Manifold & aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::space()const
inline

Definition at line 45 of file centroidal-fwd.hpp.

◆ forward()

template<typename _Scalar>
void aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::forward(const ConstVectorRef &x,
const ConstVectorRef &u,
BaseData &data ) const
virtual

Evaluate the ODE vector field: this returns the value of \(\dot{x}\).

Implements aligator::dynamics::ODEAbstractTpl< _Scalar >.

◆ dForward()

template<typename _Scalar>
void aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::dForward(const ConstVectorRef &x,
const ConstVectorRef &u,
BaseData &data ) const
virtual

Evaluate the vector field Jacobians.

Implements aligator::dynamics::ODEAbstractTpl< _Scalar >.

◆ createData()

template<typename _Scalar>
shared_ptr< ContDataAbstract > aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::createData()const
virtual

Create a data holder instance.

Reimplemented from aligator::dynamics::ContinuousDynamicsAbstractTpl< _Scalar >.

Member Data Documentation

◆ space_

template<typename _Scalar>
Manifold aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::space_

Definition at line 38 of file centroidal-fwd.hpp.

◆ nk_

template<typename _Scalar>
std::size_t aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::nk_

Definition at line 39 of file centroidal-fwd.hpp.

◆ mass_

template<typename _Scalar>
double aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::mass_

Definition at line 40 of file centroidal-fwd.hpp.

◆ gravity_

template<typename _Scalar>
Vector3s aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::gravity_

Definition at line 41 of file centroidal-fwd.hpp.

◆ contact_map_

template<typename _Scalar>
ContactMap aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::contact_map_

Definition at line 42 of file centroidal-fwd.hpp.

◆ force_size_

template<typename _Scalar>
int aligator::dynamics::CentroidalFwdDynamicsTpl< _Scalar >::force_size_

Definition at line 43 of file centroidal-fwd.hpp.


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