crocoddyl  1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
fwd.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2022, LAAS-CNRS, University of Edinburgh
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef CROCODDYL_CORE_FWD_HPP_
10 #define CROCODDYL_CORE_FWD_HPP_
11 
12 #include "crocoddyl/core/utils/deprecate.hpp"
13 
14 namespace crocoddyl {
15 
16 inline bool& enableMultithreading() {
17  static bool enable = true;
18  return enable;
19 }
20 
21 enum AssignmentOp { setto, addto, rmfrom };
22 
23 inline bool is_a_AssignmentOp(AssignmentOp op) { return (op == setto || op == addto || op == rmfrom); }
24 
25 // action
26 template <typename Scalar>
27 class ActionModelAbstractTpl;
28 
29 template <typename Scalar>
30 struct ActionDataAbstractTpl;
31 
32 template <typename Scalar>
33 class ActionModelUnicycleTpl;
34 template <typename Scalar>
35 struct ActionDataUnicycleTpl;
36 
37 template <typename Scalar>
38 class ActionModelLQRTpl;
39 template <typename Scalar>
40 struct ActionDataLQRTpl;
41 
42 // differential action
43 template <typename Scalar>
44 class DifferentialActionModelAbstractTpl;
45 template <typename Scalar>
46 struct DifferentialActionDataAbstractTpl;
47 
48 template <typename Scalar>
49 class DifferentialActionModelLQRTpl;
50 template <typename Scalar>
51 struct DifferentialActionDataLQRTpl;
52 
53 // integrated action
54 template <typename Scalar>
56 template <typename Scalar>
58 
59 template <typename Scalar>
61 template <typename Scalar>
63 
64 template <typename Scalar>
66 template <typename Scalar>
68 
69 template <typename Scalar>
71 template <typename Scalar>
73 
74 // residual
75 template <typename Scalar>
77 template <typename Scalar>
79 
80 // activation
81 template <typename Scalar>
82 struct ActivationBoundsTpl;
83 template <typename Scalar>
85 template <typename Scalar>
87 
88 template <typename Scalar>
90 
91 template <typename Scalar>
93 
94 template <typename Scalar>
96 template <typename Scalar>
98 
99 template <typename Scalar>
101 template <typename Scalar>
103 
104 template <typename Scalar>
106 template <typename Scalar>
108 
109 template <typename Scalar>
111 template <typename Scalar>
113 
114 template <typename Scalar>
116 template <typename Scalar>
118 
119 template <typename Scalar>
121 template <typename Scalar>
123 
124 template <typename Scalar>
126 template <typename Scalar>
128 
129 // state
130 template <typename Scalar>
132 
133 template <typename Scalar>
135 
136 // control
137 template <typename Scalar>
139 template <typename Scalar>
141 
142 template <typename Scalar>
144 
145 template <typename Scalar>
147 template <typename Scalar>
149 
150 template <typename Scalar>
152 template <typename Scalar>
154 
155 // actuation
156 template <typename Scalar>
158 template <typename Scalar>
160 
161 template <typename Scalar>
163 template <typename Scalar>
165 
166 // squashing
167 template <typename Scalar>
169 template <typename Scalar>
171 
172 template <typename Scalar>
174 
175 // data collector
176 template <typename Scalar>
178 
179 template <typename Scalar>
181 
182 // residual
183 template <typename Scalar>
185 template <typename Scalar>
187 
188 // cost
189 template <typename Scalar>
191 template <typename Scalar>
192 struct CostDataAbstractTpl;
193 
194 template <typename Scalar>
195 struct CostItemTpl;
196 template <typename Scalar>
197 class CostModelSumTpl;
198 template <typename Scalar>
199 struct CostDataSumTpl;
200 
201 template <typename Scalar>
203 template <typename Scalar>
204 struct CostDataResidualTpl;
205 
206 template <typename Scalar>
207 class CostModelControlTpl;
208 
209 // shooting
210 template <typename Scalar>
212 
213 // Numdiff
214 template <typename Scalar>
216 template <typename Scalar>
218 
219 template <typename Scalar>
221 template <typename Scalar>
223 
224 template <typename Scalar>
226 template <typename Scalar>
228 
229 template <typename Scalar>
231 template <typename Scalar>
233 
234 template <typename Scalar>
236 
237 template <typename Scalar>
239 template <typename Scalar>
241 
242 template <typename Scalar>
244 template <typename Scalar>
246 
247 template <typename Scalar>
249 
250 template <typename Scalar>
251 struct ActionDataCodeGenTpl;
252 
253 /********************Template Instantiation*************/
260 
265 
272 DEPRECATED("Use IntegratedActionModelRK", typedef IntegratedActionModelRK4Tpl<double> IntegratedActionModelRK4;)
273 DEPRECATED("Use IntegratedActionModelRK", typedef IntegratedActionDataRK4Tpl<double> IntegratedActionDataRK4;)
274 
279 
291 DEPRECATED("Use ActivationModelSmooth1Norm", typedef ActivationModelSmooth1NormTpl<double> ActivationModelSmoothAbs;)
292 DEPRECATED("Use ActivationDataSmooth1Norm", typedef ActivationDataSmooth1NormTpl<double> ActivationDataSmoothAbs;)
301 
304 
312 
317 
321 
324 
332 DEPRECATED("Use ResidualModelControl with CostModelResidual", typedef CostModelControlTpl<double> CostModelControl;)
333 
335 
349 
352 
353 } // namespace crocoddyl
354 
355 #endif // CROCODDYL_CORE_FWD_HPP_
crocoddyl::DifferentialActionDataLQRTpl
Definition: diff-lqr.hpp:91
crocoddyl::ActionDataAbstractTpl
Definition: action-base.hpp:236
crocoddyl::ActuationSquashingModelTpl
Definition: actuation-squashing.hpp:19
crocoddyl::ActivationModelWeightedQuadraticBarrierTpl
Definition: weighted-quadratic-barrier.hpp:20
crocoddyl::CostModelResidualTpl
Residual-based cost.
Definition: residual.hpp:36
crocoddyl::DataCollectorAbstractTpl
Definition: data-collector-base.hpp:18
crocoddyl::ActivationDataSmooth2NormTpl
Definition: fwd.hpp:117
crocoddyl::ActuationModelAbstractTpl
Abstract class for the actuation-mapping model.
Definition: actuation-base.hpp:39
crocoddyl::ActivationDataQuadFlatExpTpl
Definition: quadratic-flat-exp.hpp:136
crocoddyl::ActionModelUnicycleTpl
Definition: unicycle.hpp:20
crocoddyl::ActivationModelQuadraticBarrierTpl
Definition: quadratic-barrier.hpp:86
crocoddyl::CostModelControlTpl
Control cost.
Definition: control.hpp:35
crocoddyl::CostDataSumTpl
Definition: cost-sum.hpp:241
crocoddyl::ControlParametrizationModelAbstractTpl
Abstract class for the control trajectory parametrization.
Definition: control-base.hpp:40
crocoddyl::DifferentialActionModelNumDiffTpl
This class computes the numerical differentiation of a differential action model.
Definition: fwd.hpp:220
crocoddyl::ControlParametrizationModelNumDiffTpl
Definition: fwd.hpp:238
crocoddyl::CostModelAbstractTpl
Abstract class for cost models.
Definition: cost-base.hpp:49
crocoddyl::ActivationModelSmooth2NormTpl
Smooth-2Norm activation.
Definition: smooth-2norm.hpp:33
crocoddyl::ActivationDataQuadFlatLogTpl
Definition: quadratic-flat-log.hpp:134
crocoddyl::ControlParametrizationDataPolyTwoRKTpl
Definition: poly-two-rk.hpp:154
crocoddyl::ShootingProblemTpl
This class encapsulates a shooting problem.
Definition: fwd.hpp:211
crocoddyl::ResidualModelControlTpl
Define a control residual.
Definition: fwd.hpp:184
crocoddyl::ActivationData2NormBarrierTpl
Definition: 2norm-barrier.hpp:149
crocoddyl::ActivationModelQuadTpl
Definition: quadratic.hpp:20
crocoddyl::CostModelSumTpl
Summation of individual cost models.
Definition: cost-sum.hpp:65
crocoddyl::IntegratedActionModelEulerTpl
Symplectic Euler integrator.
Definition: fwd.hpp:60
crocoddyl::ActivationBoundsTpl
Definition: quadratic-barrier.hpp:23
crocoddyl::ActionModelLQRTpl
Definition: lqr.hpp:21
crocoddyl::ActionDataCodeGenTpl
Definition: action-base.hpp:21
crocoddyl::DifferentialActionModelLQRTpl
Definition: diff-lqr.hpp:21
crocoddyl::DataCollectorActuationTpl
Definition: actuation.hpp:21
crocoddyl::CostItemTpl
Definition: cost-sum.hpp:23
crocoddyl::ControlParametrizationModelPolyOneTpl
A polynomial function of time of degree one, that is a linear function.
Definition: poly-one.hpp:37
crocoddyl::ResidualDataNumDiffTpl
Definition: fwd.hpp:232
crocoddyl::ActivationModelQuadFlatExpTpl
Definition: quadratic-flat-exp.hpp:34
crocoddyl::ResidualModelNumDiffTpl
This class computes the numerical differentiation of a residual model.
Definition: fwd.hpp:230
crocoddyl::SquashingModelAbstractTpl
Definition: squashing-base.hpp:23
crocoddyl::DifferentialActionDataAbstractTpl
Definition: diff-action-base.hpp:231
crocoddyl::IntegratedActionModelAbstractTpl
Abstract class for an integrated action model.
Definition: fwd.hpp:55
crocoddyl::StateVectorTpl
Definition: fwd.hpp:134
crocoddyl::ActionModelAbstractTpl
Abstract class for action model.
Definition: action-base.hpp:59
crocoddyl::IntegratedActionDataRK4Tpl
Definition: fwd.hpp:72
crocoddyl::ResidualDataControlTpl
Definition: fwd.hpp:186
crocoddyl::ActuationDataNumDiffTpl
Definition: fwd.hpp:245
crocoddyl::ActivationModelWeightedQuadTpl
Definition: weighted-quadratic.hpp:21
crocoddyl::ActivationDataWeightedQuadTpl
Definition: weighted-quadratic.hpp:108
crocoddyl::ResidualDataAbstractTpl
Definition: fwd.hpp:78
crocoddyl::SquashingModelSmoothSatTpl
Definition: smooth-sat.hpp:22
crocoddyl::ActionDataNumDiffTpl
Definition: fwd.hpp:217
crocoddyl::ActivationModelNumDiffTpl
Definition: fwd.hpp:225
crocoddyl::ControlParametrizationDataAbstractTpl
Definition: control-base.hpp:168
crocoddyl::ActionModelNumDiffTpl
This class computes the numerical differentiation of an action model.
Definition: fwd.hpp:215
crocoddyl::ActionDataUnicycleTpl
Definition: unicycle.hpp:67
crocoddyl::CostDataAbstractTpl
Definition: cost-base.hpp:248
crocoddyl::StateNumDiffTpl
Definition: fwd.hpp:235
crocoddyl::IntegratedActionModelRKTpl
Standard RK integrator.
Definition: fwd.hpp:65
crocoddyl::ActionModelCodeGenTpl
Definition: action-base.hpp:24
crocoddyl::CostDataResidualTpl
Definition: residual.hpp:136
crocoddyl::ActivationModelSmooth1NormTpl
Smooth-abs activation.
Definition: smooth-1norm.hpp:34
crocoddyl::ActivationDataNumDiffTpl
Definition: fwd.hpp:227
crocoddyl::ActionDataLQRTpl
Definition: lqr.hpp:86
crocoddyl::ActuationDataAbstractTpl
Definition: actuation-base.hpp:138
crocoddyl::ActivationDataSmooth1NormTpl
Definition: smooth-1norm.hpp:125
crocoddyl::ActivationModel2NormBarrierTpl
2-norm barrier activation
Definition: 2norm-barrier.hpp:39
crocoddyl::DifferentialActionModelAbstractTpl
Abstract class for differential action model.
Definition: diff-action-base.hpp:53
crocoddyl::IntegratedActionDataRKTpl
Definition: fwd.hpp:67
crocoddyl::ActivationModelQuadFlatLogTpl
Quadratic-flat-log activation.
Definition: quadratic-flat-log.hpp:33
crocoddyl::ControlParametrizationModelPolyTwoRKTpl
A polynomial function of time of degree two, that is a quadratic function.
Definition: poly-two-rk.hpp:44
crocoddyl::IntegratedActionDataEulerTpl
Definition: fwd.hpp:62
crocoddyl::ControlParametrizationModelPolyZeroTpl
A polynomial function of time of degree zero, that is a constant.
Definition: poly-zero.hpp:32
crocoddyl::StateAbstractTpl
Abstract class for the state representation.
Definition: fwd.hpp:131
crocoddyl::ActivationDataQuadraticBarrierTpl
Definition: quadratic-barrier.hpp:156
crocoddyl::DifferentialActionDataNumDiffTpl
Definition: fwd.hpp:222
crocoddyl::ActivationModelAbstractTpl
Definition: activation-base.hpp:23
crocoddyl::IntegratedActionModelRK4Tpl
Standard RK4 integrator.
Definition: fwd.hpp:70
crocoddyl::IntegratedActionDataAbstractTpl
Definition: fwd.hpp:57
crocoddyl::ActuationSquashingDataTpl
Definition: actuation-squashing.hpp:70
crocoddyl::ControlParametrizationDataPolyOneTpl
Definition: poly-one.hpp:143
crocoddyl::ControlParametrizationDataNumDiffTpl
Definition: fwd.hpp:240
crocoddyl::ResidualModelAbstractTpl
Abstract class for residual models.
Definition: fwd.hpp:76
crocoddyl::ActivationDataAbstractTpl
Definition: activation-base.hpp:65
crocoddyl::SquashingDataAbstractTpl
Definition: squashing-base.hpp:62
crocoddyl::ActuationModelNumDiffTpl
This class computes the numerical differentiation of an actuation model.
Definition: fwd.hpp:243