aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
dynamics.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include "
aligator/fwd.hpp
"
6
#include "
aligator/third-party/polymorphic_cxx14.h
"
7
8
namespace
aligator
{
14
template
<
typename
_Scalar>
struct
DynamicsModelTpl
{
15
using
Scalar
= _Scalar;
16
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
17
using
Data
=
DynamicsDataTpl<Scalar>
;
18
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
19
21
xyz::polymorphic<Manifold>
space_
;
23
xyz::polymorphic<Manifold>
space_next_
;
25
const
int
ndx1
;
27
const
int
nu
;
29
const
int
ndx2
;
30
32
const
Manifold
&
space
()
const
{
return
*
space_
; }
34
const
Manifold
&
space_next
()
const
{
return
*
space_next_
; }
36
virtual
bool
isExplicit
()
const
{
return
false
; }
37
38
inline
int
nx1
()
const
{
return
space_
->nx(); }
39
inline
int
nx2
()
const
{
return
space_next_
->nx(); }
40
47
DynamicsModelTpl
(xyz::polymorphic<Manifold>
space
,
const
int
nu
);
48
56
DynamicsModelTpl
(xyz::polymorphic<Manifold>
space
,
const
int
nu
,
57
xyz::polymorphic<Manifold>
space_next
);
58
59
virtual
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
60
const
ConstVectorRef &xn,
Data
&)
const
= 0;
61
62
virtual
void
computeJacobians
(
const
ConstVectorRef &x,
63
const
ConstVectorRef &u,
64
const
ConstVectorRef &xn,
Data
&)
const
= 0;
65
66
virtual
void
computeVectorHessianProducts
(
const
ConstVectorRef &x,
67
const
ConstVectorRef &u,
68
const
ConstVectorRef &xn,
69
const
ConstVectorRef &lbda,
70
Data
&data)
const
;
71
72
virtual
shared_ptr<Data>
createData
()
const
;
73
74
virtual
~DynamicsModelTpl
() =
default
;
75
};
76
77
template
<
typename
_Scalar>
struct
DynamicsDataTpl
{
78
using
Scalar
= _Scalar;
79
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
80
81
const
int
ndx1
;
82
const
int
nu
;
83
const
int
ndx2
;
85
const
int
nvar
=
ndx1
+
nu
+
ndx2
;
86
88
VectorXs
value_
;
89
VectorRef
valref_
;
91
MatrixXs
jac_buffer_
;
93
MatrixRef
Jx_
;
95
MatrixRef
Ju_
;
97
MatrixRef
Jy_
;
98
99
/* Vector-Hessian product buffers */
100
101
MatrixXs
Hxx_
;
102
MatrixXs
Hxu_
;
103
MatrixXs
Hxy_
;
104
MatrixXs
Huu_
;
105
MatrixXs
Huy_
;
106
MatrixXs
Hyy_
;
107
108
explicit
DynamicsDataTpl
(
const
DynamicsModelTpl<Scalar>
&model);
109
DynamicsDataTpl
(
const
int
ndx1
,
const
int
nu
,
const
int
ndx2
);
110
virtual
~DynamicsDataTpl
() =
default
;
111
};
112
113
}
// namespace aligator
114
115
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
116
#include "aligator/core/dynamics.txx"
117
#endif
fwd.hpp
Forward declarations.
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
polymorphic_cxx14.h
aligator::DynamicsDataTpl
Definition
dynamics.hpp:77
aligator::DynamicsDataTpl< Scalar >::Hxx_
MatrixXs Hxx_
Definition
dynamics.hpp:101
aligator::DynamicsDataTpl::DynamicsDataTpl
DynamicsDataTpl(const int ndx1, const int nu, const int ndx2)
aligator::DynamicsDataTpl< Scalar >::Huu_
MatrixXs Huu_
Definition
dynamics.hpp:104
aligator::DynamicsDataTpl< Scalar >::Hyy_
MatrixXs Hyy_
Definition
dynamics.hpp:106
aligator::DynamicsDataTpl< Scalar >::nvar
const int nvar
Definition
dynamics.hpp:85
aligator::DynamicsDataTpl< Scalar >::Hxy_
MatrixXs Hxy_
Definition
dynamics.hpp:103
aligator::DynamicsDataTpl< Scalar >::Scalar
Scalar Scalar
Definition
dynamics.hpp:78
aligator::DynamicsDataTpl::~DynamicsDataTpl
virtual ~DynamicsDataTpl()=default
aligator::DynamicsDataTpl< Scalar >::ndx2
const int ndx2
Definition
dynamics.hpp:83
aligator::DynamicsDataTpl< Scalar >::ndx1
const int ndx1
Definition
dynamics.hpp:81
aligator::DynamicsDataTpl< Scalar >::Huy_
MatrixXs Huy_
Definition
dynamics.hpp:105
aligator::DynamicsDataTpl< Scalar >::Jy_
MatrixRef Jy_
Definition
dynamics.hpp:97
aligator::DynamicsDataTpl::DynamicsDataTpl
DynamicsDataTpl(const DynamicsModelTpl< Scalar > &model)
aligator::DynamicsDataTpl< Scalar >::value_
VectorXs value_
Definition
dynamics.hpp:88
aligator::DynamicsDataTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::DynamicsDataTpl< Scalar >::nu
const int nu
Definition
dynamics.hpp:82
aligator::DynamicsDataTpl< Scalar >::jac_buffer_
MatrixXs jac_buffer_
Definition
dynamics.hpp:91
aligator::DynamicsDataTpl< Scalar >::Jx_
MatrixRef Jx_
Definition
dynamics.hpp:93
aligator::DynamicsDataTpl< Scalar >::valref_
VectorRef valref_
Definition
dynamics.hpp:89
aligator::DynamicsDataTpl< Scalar >::Hxu_
MatrixXs Hxu_
Definition
dynamics.hpp:102
aligator::DynamicsDataTpl< Scalar >::Ju_
MatrixRef Ju_
Definition
dynamics.hpp:95
aligator::DynamicsModelTpl
Dynamics model: describes system dynamics through an implicit relation .
Definition
dynamics.hpp:14
aligator::DynamicsModelTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::DynamicsModelTpl::space
const Manifold & space() const
State space for the input.
Definition
dynamics.hpp:32
aligator::DynamicsModelTpl< Scalar >::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
dynamics.hpp:18
aligator::DynamicsModelTpl::createData
virtual shared_ptr< Data > createData() const
aligator::DynamicsModelTpl< Scalar >::space_
xyz::polymorphic< Manifold > space_
Definition
dynamics.hpp:21
aligator::DynamicsModelTpl::DynamicsModelTpl
DynamicsModelTpl(xyz::polymorphic< Manifold > space, const int nu, xyz::polymorphic< Manifold > space_next)
Constructor for dynamics. This constructor assumes same dimension for the current and next state.
aligator::DynamicsModelTpl< Scalar >::Scalar
Scalar Scalar
Definition
dynamics.hpp:15
aligator::DynamicsModelTpl::isExplicit
virtual bool isExplicit() const
Check if this dynamics model is implicit or explicit.
Definition
dynamics.hpp:36
aligator::DynamicsModelTpl::computeJacobians
virtual void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const =0
aligator::DynamicsModelTpl< Scalar >::space_next_
xyz::polymorphic< Manifold > space_next_
Definition
dynamics.hpp:23
aligator::DynamicsModelTpl< Scalar >::Data
DynamicsDataTpl< Scalar > Data
Definition
dynamics.hpp:17
aligator::DynamicsModelTpl::evaluate
virtual void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, Data &) const =0
aligator::DynamicsModelTpl::space_next
const Manifold & space_next() const
State space for the output of this dynamics model.
Definition
dynamics.hpp:34
aligator::DynamicsModelTpl< Scalar >::ndx2
const int ndx2
Definition
dynamics.hpp:29
aligator::DynamicsModelTpl::nx2
int nx2() const
Definition
dynamics.hpp:39
aligator::DynamicsModelTpl< Scalar >::nu
const int nu
Definition
dynamics.hpp:27
aligator::DynamicsModelTpl< Scalar >::ndx1
const int ndx1
Definition
dynamics.hpp:25
aligator::DynamicsModelTpl::~DynamicsModelTpl
virtual ~DynamicsModelTpl()=default
aligator::DynamicsModelTpl::DynamicsModelTpl
DynamicsModelTpl(xyz::polymorphic< Manifold > space, const int nu)
Constructor for dynamics.
aligator::DynamicsModelTpl::computeVectorHessianProducts
virtual void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &xn, const ConstVectorRef &lbda, Data &data) const
aligator::DynamicsModelTpl::nx1
int nx1() const
Definition
dynamics.hpp:38
aligator::ManifoldAbstractTpl
Base class for manifolds, to use in cost funcs, solvers...
Definition
manifold-base.hpp:11
include
aligator
core
dynamics.hpp
Generated by
1.17.0