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>
61 class ContactModelNumDiffTpl;
62 template <typename Scalar>
63 struct ContactDataNumDiffTpl;
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>
82 struct FrameFrictionConeTpl;
83 
84 template <typename Scalar>
85 struct FrameWrenchConeTpl;
86 
87 template <typename Scalar>
88 struct FrameCoPSupportTpl;
89 
90 // residual
91 template <typename Scalar>
92 class ResidualModelCentroidalMomentumTpl;
93 template <typename Scalar>
94 struct ResidualDataCentroidalMomentumTpl;
95 
96 template <typename Scalar>
97 class ResidualModelCoMPositionTpl;
98 template <typename Scalar>
99 struct ResidualDataCoMPositionTpl;
100 
101 template <typename Scalar>
102 class ResidualModelContactForceTpl;
103 template <typename Scalar>
104 struct ResidualDataContactForceTpl;
105 
106 template <typename Scalar>
107 class ResidualModelContactFrictionConeTpl;
108 template <typename Scalar>
109 struct ResidualDataContactFrictionConeTpl;
110 
111 template <typename Scalar>
112 class ResidualModelContactCoPPositionTpl;
113 template <typename Scalar>
114 struct ResidualDataContactCoPPositionTpl;
115 
116 template <typename Scalar>
117 class ResidualModelContactWrenchConeTpl;
118 template <typename Scalar>
119 struct ResidualDataContactWrenchConeTpl;
120 
121 template <typename Scalar>
122 class ResidualModelContactControlGravTpl;
123 template <typename Scalar>
124 struct ResidualDataContactControlGravTpl;
125 
126 template <typename Scalar>
127 class ResidualModelControlGravTpl;
128 template <typename Scalar>
129 struct ResidualDataControlGravTpl;
130 
131 template <typename Scalar>
132 class ResidualModelFramePlacementTpl;
133 template <typename Scalar>
134 struct ResidualDataFramePlacementTpl;
135 
136 template <typename Scalar>
137 class ResidualModelFrameRotationTpl;
138 template <typename Scalar>
139 struct ResidualDataFrameRotationTpl;
140 
141 template <typename Scalar>
142 class ResidualModelFrameTranslationTpl;
143 template <typename Scalar>
144 struct ResidualDataFrameTranslationTpl;
145 
146 template <typename Scalar>
147 class ResidualModelFrameVelocityTpl;
148 template <typename Scalar>
149 struct ResidualDataFrameVelocityTpl;
150 
151 template <typename Scalar>
152 class ResidualModelImpulseCoMTpl;
153 template <typename Scalar>
154 struct ResidualDataImpulseCoMTpl;
155 
156 template <typename Scalar>
157 class ResidualModelStateTpl;
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>
292 class WrenchConeTpl;
293 
294 // cop support
295 template <typename Scalar>
296 class CoPSupportTpl;
297 
298 // state
299 template <typename Scalar>
300 class StateMultibodyTpl;
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>
326 class ImpulseModel6DTpl;
327 template <typename Scalar>
328 struct ImpulseData6DTpl;
329 
330 template <typename Scalar>
331 class ImpulseModel3DTpl;
332 template <typename Scalar>
333 struct ImpulseData3DTpl;
334 
335 template <typename Scalar>
336 struct ImpulseItemTpl;
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 
473 typedef ContactItemTpl<double> ContactItem;
474 typedef ContactModelMultipleTpl<double> ContactModelMultiple;
475 typedef ContactDataMultipleTpl<double> ContactDataMultiple;
476 typedef ContactModel2DTpl<double> ContactModel2D;
477 typedef ContactData2DTpl<double> ContactData2D;
478 typedef ContactModel3DTpl<double> ContactModel3D;
479 typedef ContactData3DTpl<double> ContactData3D;
480 typedef ContactModel6DTpl<double> ContactModel6D;
481 typedef ContactData6DTpl<double> ContactData6D;
482 
483 typedef StateMultibodyTpl<double> StateMultibody;
484 
485 typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
486 typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
487 typedef DataCollectorContactTpl<double> DataCollectorContact;
488 typedef DataCollectorMultibodyInContactTpl<double> DataCollectorMultibodyInContact;
489 typedef DataCollectorActMultibodyInContactTpl<double> DataCollectorActMultibodyInContact;
490 typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
491 typedef DataCollectorMultibodyInImpulseTpl<double> DataCollectorMultibodyInImpulse;
492 
493 typedef ImpulseModel6DTpl<double> ImpulseModel6D;
494 typedef ImpulseData6DTpl<double> ImpulseData6D;
495 typedef ImpulseModel3DTpl<double> ImpulseModel3D;
496 typedef ImpulseData3DTpl<double> ImpulseData3D;
497 typedef ImpulseItemTpl<double> ImpulseItem;
498 typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
499 typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
500 
501 } // namespace crocoddyl
502 
503 #endif // CROCODDYL_MULTIBODY_FWD_HPP_
Full actuation model.
Definition: full.hpp:28
This class encapsulates a center of pressure support of a 6d contact.
Definition: cop-support.hpp:25
Define a stack of contact models.
Define a center of pressure cost function.
Define a contact force cost function.
Define a contact impulse cost function.
Define a center of pressure cost function.
This class encapsulates a friction cone.
Define a stack of impulse models.
Center of pressure residual function.
Control gravity residual under contact.
Define a contact force residual function.
Contact wrench cone residual function.
State multibody representation.
Definition: multibody.hpp:31
This class encapsulates a wrench cone.
Definition: wrench-cone.hpp:30
Define the multi-contact data.
Define the multi-impulse data.