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

Second-order Runge-Kutta integrator. More...

#include <aligator/modelling/dynamics/integrator-rk2.hpp>

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

Public Types

using Scalar = _Scalar
using Base = ExplicitIntegratorAbstractTpl<Scalar>
using BaseData = ExplicitDynamicsDataTpl<Scalar>
using Data = IntegratorRK2DataTpl<Scalar>
using ODEType = typename Base::ODEType
Public Types inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
using Scalar = _Scalar
using ODEType = ODEAbstractTpl<Scalar>
using Base = ExplicitDynamicsModelTpl<Scalar>
using DerivedData = ExplicitIntegratorDataTpl<Scalar>
using Manifold = ManifoldAbstractTpl<Scalar>
using Data
Public Types inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
using Scalar = _Scalar
using Data = ExplicitDynamicsDataTpl<Scalar>
using Manifold = ManifoldAbstractTpl<Scalar>

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 IntegratorRK2Tpl (const xyz::polymorphic< ODEType > &cont_dynamics, const Scalar timestep)
void forward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Evaluate the forward discrete dynamics.
void dForward (const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
 Compute the Jacobians of the forward dynamics.
shared_ptr< BaseDatacreateData () const
Public Member Functions inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
template<typename U>
U * getDynamics ()
template<typename U>
const U * getDynamics () const
 ExplicitIntegratorAbstractTpl (const xyz::polymorphic< ODEType > &cont_dynamics)
virtual ~ExplicitIntegratorAbstractTpl ()=default
int ndx1 () const
int ndx2 () const
Public Member Functions inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 ExplicitDynamicsModelTpl (const polymorphic< Manifold > &space, const int nu)
 Constructor requires providing the next state's manifold.
const Manifoldspace () const
const Manifoldspace_next () const
int nx1 () const
int ndx1 () const
int nx2 () const
int ndx2 () const
virtual ~ExplicitDynamicsModelTpl ()=default

Public Attributes

Scalar timestep_
Public Attributes inherited from aligator::dynamics::ExplicitIntegratorAbstractTpl< _Scalar >
xyz::polymorphic< ODETypeode_
int nu
polymorphic< Manifoldspace_next_
Public Attributes inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
polymorphic< Manifoldspace_
polymorphic< Manifoldspace_next_
int nu

Additional Inherited Members

Static Public Attributes inherited from aligator::ExplicitDynamicsModelTpl< _Scalar >
static constexpr bool is_explicit = true

Detailed Description

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

Second-order Runge-Kutta integrator.

\begin{eqnarray*} x_{k+1} = x_k \oplus h f(x^{(1)}, u_k),\\ x^{(1)} = x_k \oplus \frac h2 f(x_k, u_k) \end{eqnarray*}

Definition at line 19 of file integrator-rk2.hpp.

Member Typedef Documentation

◆ Scalar

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

Definition at line 20 of file integrator-rk2.hpp.

◆ Base

template<typename _Scalar>
using aligator::dynamics::IntegratorRK2Tpl< _Scalar >::Base = ExplicitIntegratorAbstractTpl<Scalar>

Definition at line 22 of file integrator-rk2.hpp.

◆ BaseData

template<typename _Scalar>
using aligator::dynamics::IntegratorRK2Tpl< _Scalar >::BaseData = ExplicitDynamicsDataTpl<Scalar>

Definition at line 23 of file integrator-rk2.hpp.

◆ Data

template<typename _Scalar>
using aligator::dynamics::IntegratorRK2Tpl< _Scalar >::Data = IntegratorRK2DataTpl<Scalar>

Definition at line 24 of file integrator-rk2.hpp.

◆ ODEType

template<typename _Scalar>
using aligator::dynamics::IntegratorRK2Tpl< _Scalar >::ODEType = typename Base::ODEType

Definition at line 25 of file integrator-rk2.hpp.

Constructor & Destructor Documentation

◆ IntegratorRK2Tpl()

template<typename _Scalar>
aligator::dynamics::IntegratorRK2Tpl< _Scalar >::IntegratorRK2Tpl(const xyz::polymorphic< ODEType > &cont_dynamics,
const Scalartimestep )

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

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

◆ forward()

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

Evaluate the forward discrete dynamics.

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

◆ dForward()

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

Compute the Jacobians of the forward dynamics.

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

◆ createData()

template<typename _Scalar>
shared_ptr< BaseData > aligator::dynamics::IntegratorRK2Tpl< _Scalar >::createData()const
inlinevirtual

Member Data Documentation

◆ timestep_

template<typename _Scalar>
Scalar aligator::dynamics::IntegratorRK2Tpl< _Scalar >::timestep_

Definition at line 27 of file integrator-rk2.hpp.


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