aligator  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
fwd.hpp
Go to the documentation of this file.
1
4#pragma once
5
6#include <proxsuite-nlp/fwd.hpp>
7#include <proxsuite-nlp/config.hpp>
8
9#ifdef ALIGATOR_WITH_PINOCCHIO
10#include <pinocchio/config.hpp>
11#endif
12
13#include "aligator/math.hpp"
15#include "aligator/macros.hpp"
17#include "aligator/config.hpp"
18#include "aligator/deprecated.hpp"
19
20#define ALIGATOR_RAISE_IF_NAN(value) \
21 if (::aligator::math::check_value(value)) \
22 ALIGATOR_RUNTIME_ERROR("Encountered NaN.\n")
23
24#define ALIGATOR_RAISE_IF_NAN_NAME(value, name) \
25 if (::aligator::math::check_value(value)) \
26 ALIGATOR_RUNTIME_ERROR("Encountered NaN for variable {:s}\n", name)
27
29namespace aligator {
31
32// NOLINTBEGIN(misc-unused-using-decls)
33
34#if PROXSUITE_NLP_VERSION_AT_LEAST(0, 9, 0)
35using proxsuite::nlp::ConstraintSetTpl;
36#else
37template <typename T>
38using ConstraintSetTpl = proxsuite::nlp::ConstraintSetBase<T>;
39#endif
40using proxsuite::nlp::ManifoldAbstractTpl;
41// Use the math_types template from proxsuite-nlp.
42using proxsuite::nlp::VerboseLevel;
43
44using VerboseLevel::QUIET;
45using VerboseLevel::VERBOSE;
46using VerboseLevel::VERYVERBOSE;
47
48using std::shared_ptr;
49
50// NOLINTEND(misc-unused-using-decls)
51
52// fwd StageFunctionTpl
53template <typename Scalar> struct StageFunctionTpl;
54
55// fwd UnaryFunctionTpl
56template <typename Scalar> struct UnaryFunctionTpl;
57
58// fwd StageFunctionDataTpl
59template <typename Scalar> struct StageFunctionDataTpl;
60
61// fwd CostAbstractTpl
62template <typename Scalar> struct CostAbstractTpl;
63
64// fwd CostDataAbstractTpl
65template <typename Scalar> struct CostDataAbstractTpl;
66
67// fwd DynamicsModelTpl
68template <typename Scalar> struct DynamicsModelTpl;
69
70// fwd DynamicsDataTpl
71template <typename Scalar> struct DynamicsDataTpl;
72
73// fwd StageConstraintTpl
74template <typename Scalar> struct StageConstraintTpl;
75
76// fwd ExplicitDynamicsModelTpl
77template <typename Scalar> struct ExplicitDynamicsModelTpl;
78
79// fwd declaration of ExplicitDynamicsDataTpl
80template <typename Scalar> struct ExplicitDynamicsDataTpl;
81
82/* FUNCTION EXPRESSIONS */
83
84// fwd declaration of FunctionSliceXprTpl
85template <typename Scalar, typename Base> struct FunctionSliceXprTpl;
86
87/* STAGE MODEL */
88
89// fwd StageModelTpl
90template <typename Scalar> struct StageModelTpl;
91
92// fwd StageDataTpl
93template <typename Scalar> struct StageDataTpl;
94
95// fwd CallbackBaseTpl
96template <typename Scalar> struct CallbackBaseTpl;
97
98/* SHOOTING PROBLEM */
99
100// fwd ConstraintStackTpl
101template <typename Scalar> struct ConstraintStackTpl;
102
103// fwd TrajOptProblemTpl
104template <typename Scalar> struct TrajOptProblemTpl;
105
106// fwd TrajOptDataTpl
107template <typename Scalar> struct TrajOptDataTpl;
108
109// fwd SolverProxDDP
110template <typename Scalar> struct SolverProxDDPTpl;
111
112// fwd SolverFDDP
113template <typename Scalar> struct SolverFDDPTpl;
114
115// fwd WorkspaceBaseTpl
116template <typename Scalar> struct WorkspaceBaseTpl;
117
118// fwd ResultsBaseTpl
119template <typename Scalar> struct ResultsBaseTpl;
120
121// fwd WorkspaceTpl
122template <typename Scalar> struct WorkspaceTpl;
123
124// fwd ResultsTpl
125template <typename Scalar> struct ResultsTpl;
126
127// fwd FilterTpl
128template <typename Scalar> struct FilterTpl;
129
130template <typename T>
131using StdVectorEigenAligned ALIGATOR_DEPRECATED_MESSAGE(
132 "Aligator now requires C++17 and the Eigen::aligned_allocator<T> class is "
133 "no longer useful. Please use std::vector<T> instead, this typedef will "
134 "change to be an alias of that of the future, then will be removed.") =
135 std::vector<T, Eigen::aligned_allocator<T>>;
136
137template <typename T, typename... Args>
139 "Aligator now requires C++17 and the Eigen::aligned_allocator<T> class is "
140 "no longer useful. This function is now just an alias for "
141 "std::make_shared, and will be removed in the future.")
142inline auto allocate_shared_eigen_aligned(Args &&...args) {
143 return std::make_shared<T>(std::forward<Args>(args)...);
144}
145
146} // namespace aligator
Math utilities.
Main package namespace.
ALIGATOR_DEPRECATED_MESSAGE("Aligator now requires C++17 and the Eigen::aligned_allocator<T> class is " "no longer useful. This function is now just an alias for " "std::make_shared, and will be removed in the future.") inline auto allocate_shared_eigen_aligned(Args &&...args)
Definition fwd.hpp:138
proxsuite::nlp::ConstraintSetBase< T > ConstraintSetTpl
TYPEDEFS FROM PROXNLP.
Definition fwd.hpp:38
Base callback class.
Definition fwd.hpp:96
Convenience class to manage a stack of constraints.
Definition fwd.hpp:101
Stage costs for control problems.
Definition fwd.hpp:62
Data struct for CostAbstractTpl.
Definition fwd.hpp:65
Dynamics model: describes system dynamics through an implicit relation .
Definition fwd.hpp:68
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Definition fwd.hpp:80
Explicit forward dynamics model .
Definition fwd.hpp:77
A basic filter line-search strategy.
Definition fwd.hpp:128
Represents a function of which the output is a subset of another function, for instance where is gi...
Results holder struct.
Definition results.hpp:11
The feasible DDP (FDDP) algorithm, from Mastalli et al. (2020).
A proximal, augmented Lagrangian-type solver for trajectory optimization.
Simple struct holding together a function and set, to describe a constraint.
Definition fwd.hpp:74
Data struct for stage models StageModelTpl.
Definition fwd.hpp:93
Base struct for function data.
Definition fwd.hpp:59
Class representing ternary functions .
Definition fwd.hpp:53
A stage in the control problem.
Definition fwd.hpp:90
Problem data struct.
Definition fwd.hpp:107
Trajectory optimization problem.
Definition fwd.hpp:104
Represents unary functions of the form , with no control (or next-state) arguments.
Definition fwd.hpp:56
Base workspace struct for the algorithms.
Definition fwd.hpp:116
Workspace for solver SolverProxDDP.
Definition workspace.hpp:28