crocoddyl  1.8.1
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
fwd.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2021, LAAS-CNRS, University of Edinburgh, INRIA
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef CROCODDYL_MULTIBODY_FWD_HPP_
10 #define CROCODDYL_MULTIBODY_FWD_HPP_
11 
12 #include "crocoddyl/core/utils/deprecate.hpp"
13 #include "crocoddyl/core/costs/residual.hpp"
14 
15 namespace crocoddyl {
16 
17 // actuation
18 template <typename Scalar>
19 class ActuationModelFloatingBaseTpl;
20 
21 template <typename Scalar>
22 class ActuationModelFullTpl;
23 
24 template <typename Scalar>
25 class ActuationModelMultiCopterBaseTpl;
26 
27 // force
28 template <typename Scala>
29 struct ForceDataAbstractTpl;
30 
31 // contact
32 template <typename Scalar>
33 class ContactModelAbstractTpl;
34 template <typename Scalar>
35 struct ContactDataAbstractTpl;
36 
37 // action
38 template <typename Scalar>
39 class ActionModelImpulseFwdDynamicsTpl;
40 template <typename Scalar>
41 struct ActionDataImpulseFwdDynamicsTpl;
42 
43 // differential action
44 template <typename Scalar>
45 class DifferentialActionModelFreeFwdDynamicsTpl;
46 template <typename Scalar>
47 struct DifferentialActionDataFreeFwdDynamicsTpl;
48 
49 template <typename Scalar>
50 class DifferentialActionModelContactFwdDynamicsTpl;
51 template <typename Scalar>
52 struct DifferentialActionDataContactFwdDynamicsTpl;
53 
54 // numdiff
55 template <typename Scalar>
56 class CostModelNumDiffTpl;
57 template <typename Scalar>
58 struct CostDataNumDiffTpl;
59 
60 template <typename Scalar>
62 template <typename Scalar>
64 
65 // frame
66 template <typename Scalar>
67 struct FrameTranslationTpl;
68 
69 template <typename Scalar>
70 struct FrameRotationTpl;
71 
72 template <typename Scalar>
73 struct FramePlacementTpl;
74 
75 template <typename Scalar>
76 struct FrameMotionTpl;
77 
78 template <typename Scalar>
79 struct FrameForceTpl;
80 
81 template <typename Scalar>
83 
84 template <typename Scalar>
85 struct FrameWrenchConeTpl;
86 
87 template <typename Scalar>
88 struct FrameCoPSupportTpl;
89 
90 // residual
91 template <typename Scalar>
93 template <typename Scalar>
95 
96 template <typename Scalar>
98 template <typename Scalar>
100 
101 template <typename Scalar>
103 template <typename Scalar>
105 
106 template <typename Scalar>
108 template <typename Scalar>
110 
111 template <typename Scalar>
113 template <typename Scalar>
115 
116 template <typename Scalar>
118 template <typename Scalar>
120 
121 template <typename Scalar>
123 template <typename Scalar>
125 
126 template <typename Scalar>
128 template <typename Scalar>
130 
131 template <typename Scalar>
133 template <typename Scalar>
135 
136 template <typename Scalar>
138 template <typename Scalar>
140 
141 template <typename Scalar>
143 template <typename Scalar>
145 
146 template <typename Scalar>
148 template <typename Scalar>
150 
151 template <typename Scalar>
153 template <typename Scalar>
155 
156 template <typename Scalar>
158 template <typename Scalar>
160 
161 #ifdef PINOCCHIO_WITH_HPP_FCL
162 template <typename Scalar>
163 class ResidualModelPairCollisionTpl;
164 template <typename Scalar>
165 struct ResidualDataPairCollisionTpl;
166 #endif
167 // cost
168 template <typename Scalar>
170 
171 template <typename Scalar>
173 
174 template <typename Scalar>
176 template <typename Scalar>
178 
179 template <typename Scalar>
181 template <typename Scalar>
183 
184 template <typename Scalar>
186 template <typename Scalar>
188 
189 template <typename Scalar>
191 template <typename Scalar>
193 
194 template <typename Scalar>
195 class CostModelStateTpl;
196 template <typename Scalar>
198 
199 template <typename Scalar>
201 template <typename Scalar>
203 
204 template <typename Scalar>
206 template <typename Scalar>
208 
209 template <typename Scalar>
211 template <typename Scalar>
213 
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 template <typename Scalar>
238 
239 template <typename Scalar>
241 template <typename Scalar>
243 
244 template <typename Scalar>
246 template <typename Scalar>
248 
249 template <typename Scalar>
251 template <typename Scalar>
253 
254 template <typename Scalar>
256 template <typename Scalar>
258 
259 // impulse
260 template <typename Scalar>
262 template <typename Scalar>
264 
265 // contact
266 template <typename Scalar>
267 struct ContactItemTpl;
268 template <typename Scalar>
270 template <typename Scalar>
272 
273 template <typename Scalar>
274 class ContactModel2DTpl;
275 template <typename Scalar>
276 struct ContactData2DTpl;
277 
278 template <typename Scalar>
279 class ContactModel3DTpl;
280 template <typename Scalar>
281 struct ContactData3DTpl;
282 
283 template <typename Scalar>
284 class ContactModel6DTpl;
285 template <typename Scalar>
286 struct ContactData6DTpl;
287 
288 // friction
289 template <typename Scalar>
290 class FrictionConeTpl;
291 template <typename Scalar>
293 
294 // cop support
295 template <typename Scalar>
296 class CoPSupportTpl;
297 
298 // state
299 template <typename Scalar>
301 
302 // data collector
303 template <typename Scalar>
305 
306 template <typename Scalar>
308 
309 template <typename Scalar>
311 
312 template <typename Scalar>
314 
315 template <typename Scalar>
317 
318 template <typename Scalar>
320 
321 template <typename Scalar>
323 
324 // impulse
325 template <typename Scalar>
327 template <typename Scalar>
329 
330 template <typename Scalar>
332 template <typename Scalar>
334 
335 template <typename Scalar>
337 template <typename Scalar>
339 template <typename Scalar>
341 
342 /*******************************Template Instantiation**************************/
343 
347 
349 
352 
355 
360 
365 
369 
370 DEPRECATED("Do not use FrameTranslation", typedef FrameTranslationTpl<double> FrameTranslation;)
371 DEPRECATED("Do not use FrameTranslation", typedef FrameRotationTpl<double> FrameRotation;)
372 DEPRECATED("Do not use FramePlacement", typedef FramePlacementTpl<double> FramePlacement;)
373 DEPRECATED("Do not use FrameMotion", typedef FrameMotionTpl<double> FrameMotion;)
374 DEPRECATED("Do not use FrameForce", typedef FrameForceTpl<double> FrameForce;)
375 DEPRECATED("Do not use FrameFrictionCone", typedef FrameFrictionConeTpl<double> FrameFrictionCone;)
376 DEPRECATED("Do not use FrameWrenchCone", typedef FrameWrenchConeTpl<double> FrameWrenchCone;)
377 DEPRECATED("Do not use FrameCopSupport", typedef FrameCoPSupportTpl<double> FrameCoPSupport;)
378 
407 
408 #ifdef PINOCCHIO_WITH_HPP_FCL
409 typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
410 typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
411 #endif
412 
413 DEPRECATED("Use ResidualModelFrameTranslation with CostModelResidual",
414  typedef CostModelFrameTranslationTpl<double> CostModelFrameTranslation;)
415 DEPRECATED("Use ResidualDataFrameTranslation", typedef CostDataResidualTpl<double> CostDataFrameTranslation;)
416 DEPRECATED("Use ResidualModelCentroidalMomentum with CostModelResidual",
418 DEPRECATED("Use ResidualDataCentroidalMomentum", typedef CostDataResidualTpl<double> CostDataCentroidalMomentum;)
419 DEPRECATED("Use ResidualModelCoMPosition with CostModelResidual",
420  typedef CostModelCoMPositionTpl<double> CostModelCoMPosition;)
421 DEPRECATED("Use ResidualDataCoMPosition", typedef CostDataResidualTpl<double> CostDataCoMPosition;)
422 DEPRECATED("Use ResidualModelFramePlacement with CostModelResidual",
424 DEPRECATED("Use ResidualDataFramePlacement", typedef CostDataResidualTpl<double> CostDataFramePlacement;)
425 DEPRECATED("Use ResidualModelImpulseCoM with CostModelResidual",
426  typedef CostModelImpulseCoMTpl<double> CostModelImpulseCoM;)
427 DEPRECATED("Use ResidualDataImpulseCoM", typedef CostDataResidualTpl<double> CostDataImpulseCoM;)
428 DEPRECATED("Use ResidualModelState with CostModelResidual", typedef CostModelStateTpl<double> CostModelState;)
429 DEPRECATED("Use ResidualDataState", typedef CostDataResidualTpl<double> CostDataState;)
430 DEPRECATED("Use ResidualModelControlGrav with CostModelResidual",
432 DEPRECATED("Use ResidualDataControlGrav", typedef CostDataResidualTpl<double> CostDataControlGrav;)
433 DEPRECATED("Use ResidualModelContactControlGrav with CostModelResidual",
434  typedef CostModelControlGravContactTpl<double> CostModelControlGravContact;)
435 DEPRECATED("Use ResidualDataContactControlGrav", typedef CostDataResidualTpl<double> CostDataControlGravContact;)
436 DEPRECATED("Use ResidualModelFrameVelocity with CostModelResidual",
438 DEPRECATED("Use ResidualDataFrameVelocity", typedef CostDataResidualTpl<double> CostDataFrameVelocity;)
439 DEPRECATED("Use ResidualModelFrameRotation with CostModelResidual",
440  typedef CostModelFrameRotationTpl<double> CostModelFrameRotation;)
441 DEPRECATED("Use ResidualDataFrameRotation", typedef CostDataResidualTpl<double> CostDataFrameRotation;)
442 DEPRECATED("Use ResidualModelCoPPosition with CostModelResidual",
444 DEPRECATED("Use ResidualDataCoPPosition", typedef CostDataResidualTpl<double> CostDataContactCoPPosition;)
445 DEPRECATED("Use ResidualModelContactFrictionCone with CostModelResidual",
446  typedef CostModelContactFrictionConeTpl<double> CostModelContactFrictionCone;)
447 DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataContactFrictionCone;)
448 DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
450 DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataContactWrenchCone;)
451 DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
452  typedef CostModelContactForceTpl<double> CostModelContactForce;)
453 DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactForce;)
454 DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
456 DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactImpulse;)
457 DEPRECATED("Use ResidualModelFrictionCone with CostModelResidual",
458  typedef CostModelImpulseFrictionConeTpl<double> CostModelImpulseFrictionCone;)
459 DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataImpulseFrictionCone;)
460 DEPRECATED("Use ResidualModelContactCoPPosition with CostModelResidual",
462 DEPRECATED("Use ResidualDataContactCoPPosition", typedef CostDataResidualTpl<double> CostDataImpulseCoPPosition;)
463 DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
464  typedef CostModelImpulseWrenchConeTpl<double> CostModelImpulseWrenchCone;)
465 DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataImpulseWrenchCone;)
466 
467 typedef ImpulseModelAbstractTpl<double> ImpulseModelAbstract;
469 
470 enum ContactType { Contact2D, Contact3D, Contact6D, ContactUndefined };
471 enum ImpulseType { Impulse3D, Impulse6D, ImpulseUndefined };
472 
482 
484 
492 
500 
501 } // namespace crocoddyl
502 
503 #endif // CROCODDYL_MULTIBODY_FWD_HPP_
Centroidal momentum residual.
Definition: fwd.hpp:92
Define a stack of contact models.
This class encapsulates a friction cone.
This class encapsulates a wrench cone.
Definition: fwd.hpp:292
Define a contact impulse cost function.
CoM position residual.
Definition: fwd.hpp:97
This class encapsulates a center of pressure support of a 6d contact.
Definition: cop-support.hpp:25
Define a contact force cost function.
Frame velocity residual.
Definition: fwd.hpp:147
Define the multi-impulse data.
Definition: fwd.hpp:340
Define a contact force residual function.
Definition: fwd.hpp:102
Full actuation model.
Definition: full.hpp:28
State multibody representation.
Definition: fwd.hpp:300
Frame translation residual.
Definition: fwd.hpp:142
Center of pressure residual function.
Definition: fwd.hpp:112
Frame rotation residual.
Definition: fwd.hpp:137
Define the multi-contact data.
Define a stack of impulse models.
Definition: fwd.hpp:338
Frame placement residual.
Definition: fwd.hpp:132
Impulse CoM residual.
Definition: fwd.hpp:152
Contact wrench cone residual function.
Definition: fwd.hpp:117
Contact friction cone residual.
Definition: fwd.hpp:107
Control gravity residual under contact.
Definition: fwd.hpp:122
Define a center of pressure cost function.
Control gravity residual.
Definition: fwd.hpp:127
Define a center of pressure cost function.