Crocoddyl
fwd.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2025, LAAS-CNRS, University of Edinburgh,
5 // Heriot-Watt University
6 // Copyright note valid unless otherwise stated in individual files.
7 // All rights reserved.
9 
10 #ifndef CROCODDYL_CORE_FWD_HPP_
11 #define CROCODDYL_CORE_FWD_HPP_
12 
13 #include "crocoddyl/core/pch.hpp"
14 
15 namespace crocoddyl {
16 
17 inline bool& enableMultithreading() {
18  static bool enable = true;
19  return enable;
20 }
21 
22 enum AssignmentOp { setto, addto, rmfrom };
23 
24 inline bool is_a_AssignmentOp(AssignmentOp op) {
25  return (op == setto || op == addto || op == rmfrom);
26 }
27 
28 // action
29 template <typename Scalar>
30 class ActionModelAbstractTpl;
31 
32 template <typename Scalar>
33 struct ActionDataAbstractTpl;
34 
35 template <typename Scalar>
36 class ActionModelUnicycleTpl;
37 template <typename Scalar>
38 struct ActionDataUnicycleTpl;
39 
40 template <typename Scalar>
41 class ActionModelLQRTpl;
42 template <typename Scalar>
43 struct ActionDataLQRTpl;
44 
45 // differential action
46 template <typename Scalar>
47 class DifferentialActionModelAbstractTpl;
48 template <typename Scalar>
49 struct DifferentialActionDataAbstractTpl;
50 
51 template <typename Scalar>
52 class DifferentialActionModelLQRTpl;
53 template <typename Scalar>
54 struct DifferentialActionDataLQRTpl;
55 
56 // integrated action
57 template <typename Scalar>
58 class IntegratedActionModelAbstractTpl;
59 template <typename Scalar>
60 struct IntegratedActionDataAbstractTpl;
61 
62 template <typename Scalar>
63 class IntegratedActionModelEulerTpl;
64 template <typename Scalar>
65 struct IntegratedActionDataEulerTpl;
66 
67 template <typename Scalar>
68 class IntegratedActionModelRKTpl;
69 template <typename Scalar>
70 struct IntegratedActionDataRKTpl;
71 
72 // residual
73 template <typename Scalar>
74 class ResidualModelAbstractTpl;
75 template <typename Scalar>
76 struct ResidualDataAbstractTpl;
77 
78 // activation
79 template <typename Scalar>
80 struct ActivationBoundsTpl;
81 template <typename Scalar>
82 class ActivationModelQuadraticBarrierTpl;
83 template <typename Scalar>
84 struct ActivationDataQuadraticBarrierTpl;
85 
86 template <typename Scalar>
87 class ActivationModelWeightedQuadraticBarrierTpl;
88 
89 template <typename Scalar>
90 class ActivationModelQuadTpl;
91 
92 template <typename Scalar>
93 class ActivationModelQuadFlatExpTpl;
94 template <typename Scalar>
95 struct ActivationDataQuadFlatExpTpl;
96 
97 template <typename Scalar>
98 class ActivationModelQuadFlatLogTpl;
99 template <typename Scalar>
100 struct ActivationDataQuadFlatLogTpl;
101 
102 template <typename Scalar>
103 class ActivationModelWeightedQuadTpl;
104 template <typename Scalar>
105 struct ActivationDataWeightedQuadTpl;
106 
107 template <typename Scalar>
108 class ActivationModelSmooth1NormTpl;
109 template <typename Scalar>
110 struct ActivationDataSmooth1NormTpl;
111 
112 template <typename Scalar>
113 class ActivationModelSmooth2NormTpl;
114 template <typename Scalar>
116 
117 template <typename Scalar>
119 template <typename Scalar>
121 
122 template <typename Scalar>
124 template <typename Scalar>
126 
127 // state
128 template <typename Scalar>
129 class StateAbstractTpl;
130 
131 template <typename Scalar>
132 class StateVectorTpl;
133 
134 // control
135 template <typename Scalar>
137 template <typename Scalar>
139 
140 template <typename Scalar>
142 
143 template <typename Scalar>
145 template <typename Scalar>
147 
148 template <typename Scalar>
150 template <typename Scalar>
152 
153 // actuation
154 template <typename Scalar>
156 template <typename Scalar>
158 
159 template <typename Scalar>
161 template <typename Scalar>
163 
164 // squashing
165 template <typename Scalar>
167 template <typename Scalar>
169 
170 template <typename Scalar>
172 
173 // joint
174 template <typename Scalar>
175 struct JointDataAbstractTpl;
176 
177 // data collector
178 template <typename Scalar>
180 
181 template <typename Scalar>
183 
184 template <typename Scalar>
185 struct DataCollectorJointTpl;
186 
187 template <typename Scalar>
189 
190 // residual
191 template <typename Scalar>
193 template <typename Scalar>
195 
196 template <typename Scalar>
198 template <typename Scalar>
200 
201 template <typename Scalar>
203 template <typename Scalar>
205 
206 // cost
207 template <typename Scalar>
209 template <typename Scalar>
210 struct CostDataAbstractTpl;
211 
212 template <typename Scalar>
213 struct CostItemTpl;
214 template <typename Scalar>
215 class CostModelSumTpl;
216 template <typename Scalar>
217 struct CostDataSumTpl;
218 
219 template <typename Scalar>
221 template <typename Scalar>
222 struct CostDataResidualTpl;
223 
224 // constraint
225 template <typename Scalar>
227 template <typename Scalar>
229 
230 template <typename Scalar>
231 struct ConstraintItemTpl;
232 template <typename Scalar>
234 template <typename Scalar>
236 
237 template <typename Scalar>
239 template <typename Scalar>
241 
242 // shooting
243 template <typename Scalar>
244 class ShootingProblemTpl;
245 
246 // Numdiff
247 template <typename Scalar>
249 template <typename Scalar>
250 struct ActionDataNumDiffTpl;
251 
252 template <typename Scalar>
254 template <typename Scalar>
256 
257 template <typename Scalar>
259 template <typename Scalar>
261 
262 template <typename Scalar>
264 template <typename Scalar>
266 
267 template <typename Scalar>
269 template <typename Scalar>
271 
272 template <typename Scalar>
274 template <typename Scalar>
276 
277 template <typename Scalar>
278 class StateNumDiffTpl;
279 
280 template <typename Scalar>
282 template <typename Scalar>
284 
285 template <typename Scalar>
287 template <typename Scalar>
289 
290 template <typename Scalar>
292 
293 template <typename Scalar>
295 
296 /********************Template Instantiation*************/
303 
310 
317 
327 
342 DEPRECATED(
343  "Use ActivationModelSmooth1Norm",
344  typedef ActivationModelSmooth1NormTpl<double> ActivationModelSmoothAbs;)
345 DEPRECATED(
346  "Use ActivationDataSmooth1Norm",
356 
359 
374 
379 
383 
385 
390 
398 
406 
408 
429 
432 
433 } // namespace crocoddyl
434 
435 #endif // CROCODDYL_CORE_FWD_HPP_
Abstract class for action model.
Definition: action-base.hpp:97
Linear-quadratic regulator (LQR) action model.
Definition: lqr.hpp:45
This class computes the numerical differentiation of an action model.
Definition: action.hpp:44
Abstract class for the actuation-mapping model.
This class computes the numerical differentiation of an actuation model.
Definition: actuation.hpp:31
Abstract class for constraint models.
Manage the individual constraint models.
This class computes the numerical differentiation of a constraint model.
Definition: constraint.hpp:30
Residual-based constraint.
Definition: residual.hpp:47
Abstract class for the control trajectory parametrization.
A polynomial function of time of degree one, that is a linear function.
Definition: poly-one.hpp:42
A polynomial function of time of degree two, that is a quadratic function.
Definition: poly-two-rk.hpp:51
A polynomial function of time of degree zero, that is a constant.
Definition: poly-zero.hpp:37
Abstract class for cost models.
Definition: cost-base.hpp:64
Residual-based cost.
Definition: residual.hpp:39
Summation of individual cost models.
Definition: cost-sum.hpp:75
Abstract class for differential action model.
Linear-quadratic regulator (LQR) differential action model.
Definition: diff-lqr.hpp:46
This class computes the numerical differentiation of a differential action model.
Definition: diff-action.hpp:45
Abstract class for an integrated action model.
Symplectic Euler integrator.
Definition: euler.hpp:38
Standard RK integrator.
Definition: rk.hpp:40
Abstract class for residual models.
Define a control residual.
Definition: control.hpp:35
Define a joint-acceleration residual.
Define a joint-effort residual.
This class computes the numerical differentiation of a residual model.
Definition: residual.hpp:29
This class encapsulates a shooting problem.
Definition: shooting.hpp:32
Abstract class for the state representation.
Definition: state-base.hpp:48