aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
results.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
aligator/core/traj-opt-problem.hpp
"
4
#include "
aligator/solvers/results-base.hpp
"
5
6
namespace
aligator
{
7
8
template
<
typename
Scalar>
9
struct
ResultsFDDPTpl
final :
ResultsBaseTpl
<Scalar> {
10
11
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
12
using
Base
=
ResultsBaseTpl<Scalar>
;
13
using
BlockXs
= Eigen::Block<MatrixXs, -1, -1>;
14
15
using
Base::gains_
;
16
using
Base::us
;
17
using
Base::xs
;
18
19
ResultsFDDPTpl
()
20
:
Base
() {}
21
explicit
ResultsFDDPTpl
(
const
TrajOptProblemTpl<Scalar>
&problem);
22
};
23
24
template
<
typename
Scalar>
25
ResultsFDDPTpl<Scalar>::ResultsFDDPTpl
(
26
const
TrajOptProblemTpl<Scalar>
&problem) {
27
if
(!problem.
checkIntegrity
())
28
ALIGATOR_RUNTIME_ERROR
(
"Problem failed integrity check."
);
29
using
StageModel =
StageModelTpl<Scalar>
;
30
31
const
std::size_t nsteps = problem.
numSteps
();
32
xs
.resize(nsteps + 1);
33
us
.resize(nsteps);
34
35
problem.
initializeSolution
(
xs
,
us
);
36
37
gains_
.resize(nsteps);
38
39
for
(std::size_t i = 0; i < nsteps; i++) {
40
const
StageModel &sm = *problem.
stages_
[i];
41
42
const
int
ndx = sm.ndx1();
43
const
int
nu = sm.nu();
44
45
gains_
[i].setZero(nu, ndx + 1);
46
}
47
this->
m_isInitialized
=
true
;
48
}
49
50
}
// namespace aligator
51
52
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
53
#include "./results.txx"
54
#endif
ALIGATOR_RUNTIME_ERROR
#define ALIGATOR_RUNTIME_ERROR(...)
Definition
exceptions.hpp:8
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
results-base.hpp
aligator::ResultsBaseTpl< Scalar >::us
std::vector< VectorXs > us
Definition
results-base.hpp:34
aligator::ResultsBaseTpl< Scalar >::Scalar
Scalar Scalar
Definition
results-base.hpp:11
aligator::ResultsBaseTpl< Scalar >::ResultsBaseTpl
ResultsBaseTpl()
Definition
results-base.hpp:36
aligator::ResultsBaseTpl< Scalar >::xs
std::vector< VectorXs > xs
Definition
results-base.hpp:32
aligator::ResultsBaseTpl< Scalar >::gains_
std::vector< MatrixXs > gains_
Definition
results-base.hpp:30
aligator::ResultsBaseTpl< Scalar >::m_isInitialized
bool m_isInitialized
Definition
results-base.hpp:16
aligator::ResultsFDDPTpl::xs
std::vector< VectorXs > xs
States.
Definition
results-base.hpp:32
aligator::ResultsFDDPTpl::Base
ResultsBaseTpl< Scalar > Base
Definition
results.hpp:12
aligator::ResultsFDDPTpl::ResultsFDDPTpl
ResultsFDDPTpl()
Definition
results.hpp:19
aligator::ResultsFDDPTpl::us
std::vector< VectorXs > us
Controls.
Definition
results-base.hpp:34
aligator::ResultsFDDPTpl::gains_
std::vector< MatrixXs > gains_
Riccati gains.
Definition
results-base.hpp:30
aligator::ResultsFDDPTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::ResultsFDDPTpl::BlockXs
Eigen::Block< MatrixXs, -1, -1 > BlockXs
Definition
results.hpp:13
aligator::StageModelTpl
A stage in the control problem.
Definition
stage-model.hpp:23
aligator::TrajOptProblemTpl
Trajectory optimization problem.
Definition
traj-opt-problem.hpp:102
aligator::TrajOptProblemTpl::initializeSolution
void initializeSolution(std::vector< VectorXs > &xs, std::vector< VectorXs > &us) const
Execute the initialization strategy to generate an initial candidate solution to the problem.
Definition
traj-opt-problem.hpp:237
aligator::TrajOptProblemTpl::checkIntegrity
bool checkIntegrity() const
aligator::TrajOptProblemTpl::stages_
std::vector< xyz::polymorphic< StageModel > > stages_
Stages of the control problem.
Definition
traj-opt-problem.hpp:122
aligator::TrajOptProblemTpl::numSteps
std::size_t numSteps() const
traj-opt-problem.hpp
include
aligator
solvers
fddp
results.hpp
Generated by
1.17.0