aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
integrator-rk2.hpp
Go to the documentation of this file.
1
2
#pragma once
3
4
#include "
aligator/modelling/dynamics/integrator-explicit.hpp
"
5
6
namespace
aligator
{
7
namespace
dynamics
{
8
template
<
typename
Scalar>
struct
IntegratorRK2DataTpl
;
9
18
template
<
typename
_Scalar>
19
struct
IntegratorRK2Tpl
:
ExplicitIntegratorAbstractTpl
<_Scalar> {
20
using
Scalar
= _Scalar;
21
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
22
using
Base
=
ExplicitIntegratorAbstractTpl<Scalar>
;
23
using
BaseData
=
ExplicitDynamicsDataTpl<Scalar>
;
24
using
Data
=
IntegratorRK2DataTpl<Scalar>
;
25
using
ODEType
=
typename
Base::ODEType
;
26
27
Scalar
timestep_
;
28
29
IntegratorRK2Tpl
(
const
xyz::polymorphic<ODEType> &cont_dynamics,
30
const
Scalar
timestep);
31
void
forward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
32
BaseData
&data)
const
;
33
void
dForward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
34
BaseData
&data)
const
;
35
36
shared_ptr<BaseData>
createData
()
const
{
37
return
std::make_shared<Data>(*
this
);
38
}
39
};
40
41
template
<
typename
Scalar>
42
struct
IntegratorRK2DataTpl
:
ExplicitIntegratorDataTpl
<Scalar> {
43
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
44
using
Base
=
ExplicitIntegratorDataTpl<Scalar>
;
45
using
ODEData
=
ContinuousDynamicsDataTpl<Scalar>
;
46
shared_ptr<ODEData>
continuous_data2
;
47
48
VectorXs
x1_
;
49
VectorXs
dx1_
;
50
51
explicit
IntegratorRK2DataTpl
(
const
IntegratorRK2Tpl<Scalar>
&integrator)
52
:
Base
(integrator)
53
,
x1_
(integrator.space_next().neutral())
54
,
dx1_
(this->
ndx1
) {
55
continuous_data2
= integrator.
ode_
->createData();
56
dx1_
.setZero();
57
}
58
59
using
Base::dx_
;
60
using
Base::Jtmp_xnext
;
61
using
Base::Ju
;
62
using
Base::Jx
;
63
using
Base::xnext_
;
64
};
65
66
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
67
extern
template
struct
IntegratorRK2Tpl<context::Scalar>;
68
extern
template
struct
IntegratorRK2DataTpl<context::Scalar>;
69
#endif
70
}
// namespace dynamics
71
}
// namespace aligator
integrator-explicit.hpp
Base definitions for explicit integrators.
aligator::dynamics
Namespace for modelling system dynamics.
Definition
centroidal-fwd.hpp:10
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::ExplicitDynamicsDataTpl
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Definition
explicit-dynamics.hpp:64
aligator::ExplicitDynamicsDataTpl< Scalar >::Ju
auto Ju()
Definition
explicit-dynamics.hpp:103
aligator::ExplicitDynamicsDataTpl< Scalar >::ndx1
int ndx1
Definition
explicit-dynamics.hpp:66
aligator::ExplicitDynamicsDataTpl< Scalar >::Jx
auto Jx()
Definition
explicit-dynamics.hpp:101
aligator::ExplicitDynamicsDataTpl< Scalar >::Jtmp_xnext
MatrixXs Jtmp_xnext
Definition
explicit-dynamics.hpp:94
aligator::ExplicitDynamicsDataTpl< Scalar >::xnext_
VectorXs xnext_
Definition
explicit-dynamics.hpp:91
aligator::dynamics::ContinuousDynamicsDataTpl
Data struct for ContinuousDynamicsAbstractTpl.
Definition
continuous-dynamics-abstract.hpp:64
aligator::dynamics::ExplicitIntegratorAbstractTpl::ode_
xyz::polymorphic< ODEType > ode_
Definition
integrator-explicit.hpp:34
aligator::dynamics::ExplicitIntegratorAbstractTpl< Scalar >::ODEType
ODEAbstractTpl< Scalar > ODEType
Definition
integrator-explicit.hpp:21
aligator::dynamics::ExplicitIntegratorAbstractTpl::ExplicitIntegratorAbstractTpl
ExplicitIntegratorAbstractTpl(const xyz::polymorphic< ODEType > &cont_dynamics)
Definition
integrator-explicit.hpp:41
aligator::dynamics::ExplicitIntegratorDataTpl< Scalar >::dx_
VectorXs dx_
Definition
integrator-explicit.hpp:61
aligator::dynamics::ExplicitIntegratorDataTpl< Scalar >::ExplicitIntegratorDataTpl
ExplicitIntegratorDataTpl(const Model &integrator)
Definition
integrator-explicit.hpp:63
aligator::dynamics::ExplicitIntegratorDataTpl< Scalar >::Scalar
Scalar Scalar
Definition
integrator-explicit.hpp:55
aligator::dynamics::IntegratorRK2DataTpl
Definition
integrator-rk2.hpp:42
aligator::dynamics::IntegratorRK2DataTpl::IntegratorRK2DataTpl
IntegratorRK2DataTpl(const IntegratorRK2Tpl< Scalar > &integrator)
Definition
integrator-rk2.hpp:51
aligator::dynamics::IntegratorRK2DataTpl::dx1_
VectorXs dx1_
Definition
integrator-rk2.hpp:49
aligator::dynamics::IntegratorRK2DataTpl::ODEData
ContinuousDynamicsDataTpl< Scalar > ODEData
Definition
integrator-rk2.hpp:45
aligator::dynamics::IntegratorRK2DataTpl::x1_
VectorXs x1_
Definition
integrator-rk2.hpp:48
aligator::dynamics::IntegratorRK2DataTpl::Base
ExplicitIntegratorDataTpl< Scalar > Base
Definition
integrator-rk2.hpp:44
aligator::dynamics::IntegratorRK2DataTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::IntegratorRK2DataTpl::continuous_data2
shared_ptr< ODEData > continuous_data2
Definition
integrator-rk2.hpp:46
aligator::dynamics::IntegratorRK2Tpl
Second-order Runge-Kutta integrator.
Definition
integrator-rk2.hpp:19
aligator::dynamics::IntegratorRK2Tpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::IntegratorRK2Tpl::createData
shared_ptr< BaseData > createData() const
Definition
integrator-rk2.hpp:36
aligator::dynamics::IntegratorRK2Tpl::timestep_
Scalar timestep_
Definition
integrator-rk2.hpp:27
aligator::dynamics::IntegratorRK2Tpl::IntegratorRK2Tpl
IntegratorRK2Tpl(const xyz::polymorphic< ODEType > &cont_dynamics, const Scalar timestep)
aligator::dynamics::IntegratorRK2Tpl::Data
IntegratorRK2DataTpl< Scalar > Data
Definition
integrator-rk2.hpp:24
aligator::dynamics::IntegratorRK2Tpl::Base
ExplicitIntegratorAbstractTpl< Scalar > Base
Definition
integrator-rk2.hpp:22
aligator::dynamics::IntegratorRK2Tpl::BaseData
ExplicitDynamicsDataTpl< Scalar > BaseData
Definition
integrator-rk2.hpp:23
aligator::dynamics::IntegratorRK2Tpl::dForward
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Compute the Jacobians of the forward dynamics.
aligator::dynamics::IntegratorRK2Tpl::forward
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the forward discrete dynamics.
aligator::dynamics::IntegratorRK2Tpl::Scalar
_Scalar Scalar
Definition
integrator-rk2.hpp:20
aligator::dynamics::IntegratorRK2Tpl::ODEType
typename Base::ODEType ODEType
Definition
integrator-rk2.hpp:25
include
aligator
modelling
dynamics
integrator-rk2.hpp
Generated by
1.17.0