aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
linear-discrete-dynamics.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
aligator/core/explicit-dynamics.hpp
"
4
#include "
aligator/core/vector-space.hpp
"
5
6
namespace
aligator
{
7
8
namespace
dynamics
{
9
11
template
<
typename
_Scalar>
12
struct
LinearDiscreteDynamicsTpl
:
ExplicitDynamicsModelTpl
<_Scalar> {
13
using
Scalar
= _Scalar;
14
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
15
const
MatrixXs
A_
;
16
const
MatrixXs
B_
;
17
const
VectorXs
c_
;
18
19
using
Base
=
ExplicitDynamicsModelTpl<Scalar>
;
20
using
Data
=
ExplicitDynamicsDataTpl<Scalar>
;
21
using
VectorSpaceType
=
VectorSpaceTpl<Scalar, Eigen::Dynamic>
;
22
24
LinearDiscreteDynamicsTpl
(
const
MatrixXs &A,
const
MatrixXs &B,
25
const
VectorXs &c)
26
:
Base
(
VectorSpaceType
((int)A.cols()), (int)B.cols())
27
,
A_
(A)
28
,
B_
(B)
29
,
c_
(c) {}
30
31
void
forward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
32
Data
&data)
const
{
33
data.xnext_ =
c_
;
34
data.xnext_.noalias() +=
A_
* x;
35
data.xnext_.noalias() +=
B_
* u;
36
}
37
38
void
dForward
(
const
ConstVectorRef &,
const
ConstVectorRef &,
Data
&)
const
{}
39
40
shared_ptr<Data>
createData
()
const
{
41
shared_ptr<Data> data =
Base::createData
();
42
data->Jx() =
A_
;
43
data->Ju() =
B_
;
44
return
data;
45
}
46
};
47
48
}
// namespace dynamics
49
50
}
// namespace aligator
explicit-dynamics.hpp
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::ExplicitDynamicsModelTpl< Scalar >::createData
virtual shared_ptr< Data > createData() const
Definition
explicit-dynamics.hpp:51
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::VectorSpaceTpl
Standard Euclidean vector space.
Definition
vector-space.hpp:13
aligator::dynamics::LinearDiscreteDynamicsTpl::c_
const VectorXs c_
Definition
linear-discrete-dynamics.hpp:17
aligator::dynamics::LinearDiscreteDynamicsTpl::LinearDiscreteDynamicsTpl
LinearDiscreteDynamicsTpl(const MatrixXs &A, const MatrixXs &B, const VectorXs &c)
Constructor with state manifold and matrices.
Definition
linear-discrete-dynamics.hpp:24
aligator::dynamics::LinearDiscreteDynamicsTpl::Base
ExplicitDynamicsModelTpl< Scalar > Base
Definition
linear-discrete-dynamics.hpp:19
aligator::dynamics::LinearDiscreteDynamicsTpl::dForward
void dForward(const ConstVectorRef &, const ConstVectorRef &, Data &) const
Compute the Jacobians of the forward dynamics.
Definition
linear-discrete-dynamics.hpp:38
aligator::dynamics::LinearDiscreteDynamicsTpl::B_
const MatrixXs B_
Definition
linear-discrete-dynamics.hpp:16
aligator::dynamics::LinearDiscreteDynamicsTpl::A_
const MatrixXs A_
Definition
linear-discrete-dynamics.hpp:15
aligator::dynamics::LinearDiscreteDynamicsTpl::Data
ExplicitDynamicsDataTpl< Scalar > Data
Definition
linear-discrete-dynamics.hpp:20
aligator::dynamics::LinearDiscreteDynamicsTpl::createData
shared_ptr< Data > createData() const
Definition
linear-discrete-dynamics.hpp:40
aligator::dynamics::LinearDiscreteDynamicsTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::LinearDiscreteDynamicsTpl::Scalar
_Scalar Scalar
Definition
linear-discrete-dynamics.hpp:13
aligator::dynamics::LinearDiscreteDynamicsTpl::forward
void forward(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const
Evaluate the forward discrete dynamics.
Definition
linear-discrete-dynamics.hpp:31
aligator::dynamics::LinearDiscreteDynamicsTpl::VectorSpaceType
VectorSpaceTpl< Scalar, Eigen::Dynamic > VectorSpaceType
Definition
linear-discrete-dynamics.hpp:21
vector-space.hpp
include
aligator
modelling
linear-discrete-dynamics.hpp
Generated by
1.17.0