aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
explicit-dynamics-direct-sum.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include "
aligator/core/explicit-dynamics.hpp
"
6
#include "
aligator/modelling/spaces/cartesian-product.hpp
"
7
8
namespace
aligator
{
9
15
template
<
typename
_Scalar>
16
struct
DirectSumExplicitDynamicsTpl
:
ExplicitDynamicsModelTpl
<_Scalar> {
17
using
Scalar
= _Scalar;
18
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
19
using
Base
=
ExplicitDynamicsModelTpl<Scalar>
;
20
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
21
using
CartesianProduct
=
aligator::CartesianProductTpl<Scalar>
;
22
using
BaseData
=
ExplicitDynamicsDataTpl<Scalar>
;
23
24
struct
Data
;
25
26
DirectSumExplicitDynamicsTpl
(xyz::polymorphic<Base> f,
27
xyz::polymorphic<Base> g);
28
29
void
forward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
30
BaseData
&data)
const override
;
31
32
void
dForward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
33
BaseData
&data)
const override
;
34
35
shared_ptr<BaseData>
createData
()
const override
{
36
return
std::make_shared<Data>(*
this
);
37
}
38
39
xyz::polymorphic<Base>
f_
,
g_
;
40
41
private
:
44
CartesianProduct
product_space_;
45
};
46
47
template
<
typename
Scalar>
48
struct
DirectSumExplicitDynamicsTpl
<
Scalar
>::
Data
:
BaseData
{
49
shared_ptr<BaseData> data1_, data2_;
50
Data
(
DirectSumExplicitDynamicsTpl
const
&model);
51
};
52
53
template
<
typename
Scalar>
54
auto
directSum
(xyz::polymorphic<
ExplicitDynamicsModelTpl<Scalar>
>
const
&m1,
55
xyz::polymorphic<
ExplicitDynamicsModelTpl<Scalar>
>
const
&m2) {
56
return
DirectSumExplicitDynamicsTpl<Scalar>
(m1, m2);
57
}
58
59
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
60
extern
template
struct
DirectSumExplicitDynamicsTpl<context::Scalar>;
61
#endif
62
}
// namespace aligator
cartesian-product.hpp
explicit-dynamics.hpp
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::directSum
auto directSum(xyz::polymorphic< CostAbstractTpl< Scalar > > const &c1, xyz::polymorphic< CostAbstractTpl< Scalar > > const &c2)
Definition
cost-direct-sum.hpp:127
aligator::CartesianProductTpl
The cartesian product of two or more manifolds.
Definition
cartesian-product.hpp:13
aligator::DirectSumExplicitDynamicsTpl::Data
Definition
explicit-dynamics-direct-sum.hpp:48
aligator::DirectSumExplicitDynamicsTpl
Definition
explicit-dynamics-direct-sum.hpp:16
aligator::DirectSumExplicitDynamicsTpl::Scalar
_Scalar Scalar
Definition
explicit-dynamics-direct-sum.hpp:17
aligator::DirectSumExplicitDynamicsTpl< Scalar >::g_
xyz::polymorphic< Base > g_
Definition
explicit-dynamics-direct-sum.hpp:39
aligator::DirectSumExplicitDynamicsTpl::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
explicit-dynamics-direct-sum.hpp:20
aligator::DirectSumExplicitDynamicsTpl::Base
ExplicitDynamicsModelTpl< Scalar > Base
Definition
explicit-dynamics-direct-sum.hpp:19
aligator::DirectSumExplicitDynamicsTpl::createData
shared_ptr< BaseData > createData() const override
Definition
explicit-dynamics-direct-sum.hpp:35
aligator::DirectSumExplicitDynamicsTpl< Scalar >::f_
xyz::polymorphic< Base > f_
Definition
explicit-dynamics-direct-sum.hpp:39
aligator::DirectSumExplicitDynamicsTpl::forward
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Evaluate the forward discrete dynamics.
aligator::DirectSumExplicitDynamicsTpl::dForward
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const override
Compute the Jacobians of the forward dynamics.
aligator::DirectSumExplicitDynamicsTpl::CartesianProduct
aligator::CartesianProductTpl< Scalar > CartesianProduct
Definition
explicit-dynamics-direct-sum.hpp:21
aligator::DirectSumExplicitDynamicsTpl::DirectSumExplicitDynamicsTpl
DirectSumExplicitDynamicsTpl(xyz::polymorphic< Base > f, xyz::polymorphic< Base > g)
aligator::DirectSumExplicitDynamicsTpl::BaseData
ExplicitDynamicsDataTpl< Scalar > BaseData
Definition
explicit-dynamics-direct-sum.hpp:22
aligator::DirectSumExplicitDynamicsTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::ExplicitDynamicsDataTpl
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Definition
explicit-dynamics.hpp:64
aligator::ExplicitDynamicsModelTpl
Explicit forward dynamics model .
Definition
explicit-dynamics.hpp:21
aligator::ExplicitDynamicsModelTpl::Data
ExplicitDynamicsDataTpl< Scalar > Data
Definition
explicit-dynamics.hpp:24
aligator::ExplicitDynamicsModelTpl::ExplicitDynamicsModelTpl
ExplicitDynamicsModelTpl(const polymorphic< Manifold > &space, const int nu)
Constructor requires providing the next state's manifold.
Definition
explicit-dynamics.hpp:30
aligator::ManifoldAbstractTpl
Base class for manifolds, to use in cost funcs, solvers...
Definition
manifold-base.hpp:11
include
aligator
modelling
explicit-dynamics-direct-sum.hpp
Generated by
1.17.0