aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar > Struct Template Reference

Free-space multibody forward dynamics, using Pinocchio. More...

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

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

Public Types

using Scalar = _Scalar
 
using Base = ODEAbstractTpl<Scalar>
 
using BaseData = ODEDataTpl<Scalar>
 
using ContDataAbstract = ContinuousDynamicsDataTpl<Scalar>
 
using Data = MultibodyFreeFwdDataTpl<Scalar>
 
using Manifold = proxsuite::nlp::MultibodyPhaseSpace<Scalar>
 
using ManifoldPtr = shared_ptr<Manifold>
 
- Public Types inherited from aligator::dynamics::ODEAbstractTpl< _Scalar >
using Scalar = _Scalar
 
using Base = ContinuousDynamicsAbstractTpl<Scalar>
 
using Data = ODEDataTpl<Scalar>
 
- Public Types inherited from aligator::dynamics::ContinuousDynamicsAbstractTpl< _Scalar >
using Scalar = _Scalar
 
using Manifold = ManifoldAbstractTpl<Scalar>
 
using ManifoldPtr = shared_ptr<Manifold>
 
using Data = ContinuousDynamicsDataTpl<Scalar>
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
const Manifoldspace () const
 
int ntau () const
 
 MultibodyFreeFwdDynamicsTpl (const ManifoldPtr &state, const MatrixXs &actuation)
 
 MultibodyFreeFwdDynamicsTpl (const ManifoldPtr &state)
 
bool isUnderactuated () const
 Determine whether the system is underactuated.
 
Eigen::Index getActuationMatrixRank () const
 
virtual void forward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Evaluate the ODE vector field: this returns the value of \(\dot{x}\).
 
virtual 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
 
- 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
 
virtual void evaluate (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xdot, Data &data) const =0
 Evaluate the vector field at a point \((x, u)\).
 
virtual void computeJacobians (const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xdot, Data &data) const =0
 Differentiate the vector field.
 

Public Attributes

ManifoldPtr space_
 
MatrixXs actuation_matrix_
 
- 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::MultibodyFreeFwdDynamicsTpl< _Scalar >

Free-space multibody forward dynamics, using Pinocchio.

This is described in state-space \(\mathcal{X} = T\mathcal{Q}\) (the phase space \(x = (q,v)\)) using the differential equation

\[ \dot{x} = f(x, u) = \begin{bmatrix} v \\ a(q, v, \tau(u)) \end{bmatrix} \]

where \(\tau(u) = Bu\), \(B\) is a given actuation matrix, and \(a(q,v,\tau)\) is the acceleration computed from the ABA algorithm.

Definition at line 24 of file multibody-free-fwd.hpp.

Member Typedef Documentation

◆ Scalar

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

Definition at line 26 of file multibody-free-fwd.hpp.

◆ Base

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

Definition at line 28 of file multibody-free-fwd.hpp.

◆ BaseData

template<typename _Scalar >
using aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::BaseData = ODEDataTpl<Scalar>

Definition at line 29 of file multibody-free-fwd.hpp.

◆ ContDataAbstract

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

Definition at line 30 of file multibody-free-fwd.hpp.

◆ Data

template<typename _Scalar >
using aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::Data = MultibodyFreeFwdDataTpl<Scalar>

Definition at line 31 of file multibody-free-fwd.hpp.

◆ Manifold

template<typename _Scalar >
using aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::Manifold = proxsuite::nlp::MultibodyPhaseSpace<Scalar>

Definition at line 32 of file multibody-free-fwd.hpp.

◆ ManifoldPtr

template<typename _Scalar >
using aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::ManifoldPtr = shared_ptr<Manifold>

Definition at line 33 of file multibody-free-fwd.hpp.

Constructor & Destructor Documentation

◆ MultibodyFreeFwdDynamicsTpl() [1/2]

template<typename _Scalar >
aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::MultibodyFreeFwdDynamicsTpl ( const ManifoldPtr & state,
const MatrixXs & actuation )

◆ MultibodyFreeFwdDynamicsTpl() [2/2]

template<typename _Scalar >
aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::MultibodyFreeFwdDynamicsTpl ( const ManifoldPtr & state)

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

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

◆ space()

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

Definition at line 40 of file multibody-free-fwd.hpp.

◆ ntau()

template<typename _Scalar >
int aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::ntau ( ) const
inline

Definition at line 41 of file multibody-free-fwd.hpp.

◆ isUnderactuated()

template<typename _Scalar >
bool aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::isUnderactuated ( ) const
inline

Determine whether the system is underactuated.

This is the case when the actuation matrix rank is lower to the velocity dimension.

Definition at line 52 of file multibody-free-fwd.hpp.

◆ getActuationMatrixRank()

template<typename _Scalar >
Eigen::Index aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::getActuationMatrixRank ( ) const
inline

Definition at line 57 of file multibody-free-fwd.hpp.

◆ forward()

template<typename _Scalar >
virtual void aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _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 >
virtual void aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _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::MultibodyFreeFwdDynamicsTpl< _Scalar >::createData ( ) const
virtual

Create a data holder instance.

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

Member Data Documentation

◆ space_

template<typename _Scalar >
ManifoldPtr aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::space_

Definition at line 37 of file multibody-free-fwd.hpp.

◆ actuation_matrix_

template<typename _Scalar >
MatrixXs aligator::dynamics::MultibodyFreeFwdDynamicsTpl< _Scalar >::actuation_matrix_

Definition at line 38 of file multibody-free-fwd.hpp.


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