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