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-semi-euler.hpp
Go to the documentation of this file.
1
#pragma once
6
7
#include "
aligator/modelling/dynamics/integrator-explicit.hpp
"
8
9
namespace
aligator
{
10
namespace
dynamics
{
11
template
<
typename
Scalar>
struct
IntegratorSemiImplDataTpl
;
16
template
<
typename
_Scalar>
17
struct
IntegratorSemiImplEulerTpl
:
ExplicitIntegratorAbstractTpl
<_Scalar> {
18
using
Scalar
= _Scalar;
19
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
20
using
Base
=
ExplicitIntegratorAbstractTpl<Scalar>
;
21
using
BaseData
=
ExplicitDynamicsDataTpl<Scalar>
;
22
using
Data
=
IntegratorSemiImplDataTpl<Scalar>
;
23
using
ODEType
=
ODEAbstractTpl<Scalar>
;
24
using
ODEData
=
ContinuousDynamicsDataTpl<Scalar>
;
25
using
Base::space_next_
;
26
28
Scalar
timestep_
;
29
30
IntegratorSemiImplEulerTpl
(
const
xyz::polymorphic<ODEType> &cont_dynamics,
31
const
Scalar
timestep);
32
33
void
forward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
34
BaseData
&data)
const
;
35
36
void
dForward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
37
BaseData
&data)
const
;
38
39
shared_ptr<BaseData>
createData
()
const
{
40
return
std::make_shared<Data>(*
this
);
41
}
42
};
43
44
template
<
typename
Scalar>
45
struct
IntegratorSemiImplDataTpl
:
ExplicitIntegratorDataTpl
<Scalar> {
46
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
47
using
Model
=
IntegratorSemiImplEulerTpl<Scalar>
;
48
using
Base
=
ExplicitIntegratorDataTpl<Scalar>
;
49
using
ODEData
=
ContinuousDynamicsDataTpl<Scalar>
;
50
51
MatrixXs
Jtmp_xnext2
;
52
MatrixXs
Jtmp_u
;
53
54
explicit
IntegratorSemiImplDataTpl
(
const
Model
&integrator)
55
:
Base
(integrator)
56
,
Jtmp_xnext2
(integrator.
ndx1
(), integrator.
ndx1
())
57
,
Jtmp_u
(integrator.
ndx1
(), integrator.
nu
) {
58
Jtmp_xnext2
.setZero();
59
Jtmp_u
.setZero();
60
}
61
62
using
Base::dx_
;
63
using
Base::xnext_
;
64
};
65
66
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
67
extern
template
struct
IntegratorSemiImplEulerTpl<context::Scalar>;
68
extern
template
struct
IntegratorSemiImplDataTpl<context::Scalar>;
69
#endif
70
71
}
// namespace dynamics
72
}
// 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 >::ndx1
int ndx1
Definition
explicit-dynamics.hpp:66
aligator::ExplicitDynamicsDataTpl< Scalar >::xnext_
VectorXs xnext_
Definition
explicit-dynamics.hpp:91
aligator::ExplicitDynamicsDataTpl< Scalar >::nu
int nu
Definition
explicit-dynamics.hpp:66
aligator::dynamics::ContinuousDynamicsDataTpl
Data struct for ContinuousDynamicsAbstractTpl.
Definition
continuous-dynamics-abstract.hpp:64
aligator::dynamics::ExplicitIntegratorAbstractTpl< Scalar >::space_next_
polymorphic< Manifold > space_next_
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::IntegratorSemiImplDataTpl
Definition
integrator-semi-euler.hpp:45
aligator::dynamics::IntegratorSemiImplDataTpl::Model
IntegratorSemiImplEulerTpl< Scalar > Model
Definition
integrator-semi-euler.hpp:47
aligator::dynamics::IntegratorSemiImplDataTpl::Base
ExplicitIntegratorDataTpl< Scalar > Base
Definition
integrator-semi-euler.hpp:48
aligator::dynamics::IntegratorSemiImplDataTpl::Jtmp_xnext2
MatrixXs Jtmp_xnext2
Definition
integrator-semi-euler.hpp:51
aligator::dynamics::IntegratorSemiImplDataTpl::ODEData
ContinuousDynamicsDataTpl< Scalar > ODEData
Definition
integrator-semi-euler.hpp:49
aligator::dynamics::IntegratorSemiImplDataTpl::Jtmp_u
MatrixXs Jtmp_u
Definition
integrator-semi-euler.hpp:52
aligator::dynamics::IntegratorSemiImplDataTpl::IntegratorSemiImplDataTpl
IntegratorSemiImplDataTpl(const Model &integrator)
Definition
integrator-semi-euler.hpp:54
aligator::dynamics::IntegratorSemiImplDataTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::IntegratorSemiImplEulerTpl
Semi-implicit Euler integrator .
Definition
integrator-semi-euler.hpp:17
aligator::dynamics::IntegratorSemiImplEulerTpl::ODEData
ContinuousDynamicsDataTpl< Scalar > ODEData
Definition
integrator-semi-euler.hpp:24
aligator::dynamics::IntegratorSemiImplEulerTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::IntegratorSemiImplEulerTpl::Data
IntegratorSemiImplDataTpl< Scalar > Data
Definition
integrator-semi-euler.hpp:22
aligator::dynamics::IntegratorSemiImplEulerTpl::dForward
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Compute the Jacobians of the forward dynamics.
aligator::dynamics::IntegratorSemiImplEulerTpl::IntegratorSemiImplEulerTpl
IntegratorSemiImplEulerTpl(const xyz::polymorphic< ODEType > &cont_dynamics, const Scalar timestep)
aligator::dynamics::IntegratorSemiImplEulerTpl::Base
ExplicitIntegratorAbstractTpl< Scalar > Base
Definition
integrator-semi-euler.hpp:20
aligator::dynamics::IntegratorSemiImplEulerTpl::forward
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the forward discrete dynamics.
aligator::dynamics::IntegratorSemiImplEulerTpl::createData
shared_ptr< BaseData > createData() const
Definition
integrator-semi-euler.hpp:39
aligator::dynamics::IntegratorSemiImplEulerTpl< Scalar >::timestep_
Scalar timestep_
Definition
integrator-semi-euler.hpp:28
aligator::dynamics::IntegratorSemiImplEulerTpl::BaseData
ExplicitDynamicsDataTpl< Scalar > BaseData
Definition
integrator-semi-euler.hpp:21
aligator::dynamics::IntegratorSemiImplEulerTpl::Scalar
_Scalar Scalar
Definition
integrator-semi-euler.hpp:18
aligator::dynamics::IntegratorSemiImplEulerTpl::ODEType
ODEAbstractTpl< Scalar > ODEType
Definition
integrator-semi-euler.hpp:23
aligator::dynamics::ODEAbstractTpl
Base class for ODE dynamics .
Definition
ode-abstract.hpp:14
include
aligator
modelling
dynamics
integrator-semi-euler.hpp
Generated by
1.17.0