crocoddyl 1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
 
Loading...
Searching...
No Matches
fwd.hpp
1
2// 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
15namespace crocoddyl {
16
17// actuation
18template <typename Scalar>
19class ActuationModelFloatingBaseTpl;
20
21template <typename Scalar>
22class ActuationModelFullTpl;
23
24template <typename Scalar>
25class ActuationModelMultiCopterBaseTpl;
26
27// force
28template <typename Scala>
29struct ForceDataAbstractTpl;
30
31// contact
32template <typename Scalar>
33class ContactModelAbstractTpl;
34template <typename Scalar>
35struct ContactDataAbstractTpl;
36
37// action
38template <typename Scalar>
39class ActionModelImpulseFwdDynamicsTpl;
40template <typename Scalar>
41struct ActionDataImpulseFwdDynamicsTpl;
42
43// differential action
44template <typename Scalar>
45class DifferentialActionModelFreeFwdDynamicsTpl;
46template <typename Scalar>
47struct DifferentialActionDataFreeFwdDynamicsTpl;
48
49template <typename Scalar>
50class DifferentialActionModelContactFwdDynamicsTpl;
51template <typename Scalar>
52struct DifferentialActionDataContactFwdDynamicsTpl;
53
54// numdiff
55template <typename Scalar>
56class CostModelNumDiffTpl;
57template <typename Scalar>
58struct CostDataNumDiffTpl;
59
60template <typename Scalar>
61class ContactModelNumDiffTpl;
62template <typename Scalar>
63struct ContactDataNumDiffTpl;
64
65// frame
66template <typename Scalar>
67struct FrameTranslationTpl;
68
69template <typename Scalar>
70struct FrameRotationTpl;
71
72template <typename Scalar>
73struct FramePlacementTpl;
74
75template <typename Scalar>
76struct FrameMotionTpl;
77
78template <typename Scalar>
79struct FrameForceTpl;
80
81template <typename Scalar>
82struct FrameFrictionConeTpl;
83
84template <typename Scalar>
85struct FrameWrenchConeTpl;
86
87template <typename Scalar>
88struct FrameCoPSupportTpl;
89
90// residual
91template <typename Scalar>
92class ResidualModelCentroidalMomentumTpl;
93template <typename Scalar>
94struct ResidualDataCentroidalMomentumTpl;
95
96template <typename Scalar>
97class ResidualModelCoMPositionTpl;
98template <typename Scalar>
99struct ResidualDataCoMPositionTpl;
100
101template <typename Scalar>
102class ResidualModelContactForceTpl;
103template <typename Scalar>
104struct ResidualDataContactForceTpl;
105
106template <typename Scalar>
107class ResidualModelContactFrictionConeTpl;
108template <typename Scalar>
109struct ResidualDataContactFrictionConeTpl;
110
111template <typename Scalar>
112class ResidualModelContactCoPPositionTpl;
113template <typename Scalar>
114struct ResidualDataContactCoPPositionTpl;
115
116template <typename Scalar>
117class ResidualModelContactWrenchConeTpl;
118template <typename Scalar>
119struct ResidualDataContactWrenchConeTpl;
120
121template <typename Scalar>
122class ResidualModelContactControlGravTpl;
123template <typename Scalar>
124struct ResidualDataContactControlGravTpl;
125
126template <typename Scalar>
127class ResidualModelControlGravTpl;
128template <typename Scalar>
129struct ResidualDataControlGravTpl;
130
131template <typename Scalar>
132class ResidualModelFramePlacementTpl;
133template <typename Scalar>
134struct ResidualDataFramePlacementTpl;
135
136template <typename Scalar>
137class ResidualModelFrameRotationTpl;
138template <typename Scalar>
139struct ResidualDataFrameRotationTpl;
140
141template <typename Scalar>
142class ResidualModelFrameTranslationTpl;
143template <typename Scalar>
144struct ResidualDataFrameTranslationTpl;
145
146template <typename Scalar>
147class ResidualModelFrameVelocityTpl;
148template <typename Scalar>
149struct ResidualDataFrameVelocityTpl;
150
151template <typename Scalar>
152class ResidualModelImpulseCoMTpl;
153template <typename Scalar>
154struct ResidualDataImpulseCoMTpl;
155
156template <typename Scalar>
157class ResidualModelStateTpl;
158template <typename Scalar>
160
161#ifdef PINOCCHIO_WITH_HPP_FCL
162template <typename Scalar>
163class ResidualModelPairCollisionTpl;
164template <typename Scalar>
165struct ResidualDataPairCollisionTpl;
166#endif
167// cost
168template <typename Scalar>
170
171template <typename Scalar>
173
174template <typename Scalar>
176template <typename Scalar>
178
179template <typename Scalar>
181template <typename Scalar>
183
184template <typename Scalar>
186template <typename Scalar>
188
189template <typename Scalar>
191template <typename Scalar>
193
194template <typename Scalar>
196template <typename Scalar>
198
199template <typename Scalar>
201template <typename Scalar>
203
204template <typename Scalar>
206template <typename Scalar>
208
209template <typename Scalar>
211template <typename Scalar>
213
214template <typename Scalar>
216template <typename Scalar>
218
219template <typename Scalar>
221template <typename Scalar>
223
224template <typename Scalar>
226template <typename Scalar>
228
229template <typename Scalar>
231template <typename Scalar>
233
234template <typename Scalar>
236template <typename Scalar>
238
239template <typename Scalar>
241template <typename Scalar>
243
244template <typename Scalar>
246template <typename Scalar>
248
249template <typename Scalar>
251template <typename Scalar>
253
254template <typename Scalar>
256template <typename Scalar>
258
259// impulse
260template <typename Scalar>
262template <typename Scalar>
264
265// contact
266template <typename Scalar>
267struct ContactItemTpl;
268template <typename Scalar>
270template <typename Scalar>
272
273template <typename Scalar>
275template <typename Scalar>
276struct ContactData1DTpl;
277
278template <typename Scalar>
280template <typename Scalar>
281struct ContactData2DTpl;
282
283template <typename Scalar>
285template <typename Scalar>
286struct ContactData3DTpl;
287
288template <typename Scalar>
290template <typename Scalar>
291struct ContactData6DTpl;
292
293// friction
294template <typename Scalar>
295class FrictionConeTpl;
296template <typename Scalar>
297class WrenchConeTpl;
298
299// cop support
300template <typename Scalar>
301class CoPSupportTpl;
302
303// state
304template <typename Scalar>
306
307// data collector
308template <typename Scalar>
310
311template <typename Scalar>
313
314template <typename Scalar>
316
317template <typename Scalar>
319
320template <typename Scalar>
322
323template <typename Scalar>
325
326template <typename Scalar>
328
329// impulse
330template <typename Scalar>
332template <typename Scalar>
333struct ImpulseData6DTpl;
334
335template <typename Scalar>
337template <typename Scalar>
338struct ImpulseData3DTpl;
339
340template <typename Scalar>
341struct ImpulseItemTpl;
342template <typename Scalar>
344template <typename Scalar>
346
347/*******************************Template Instantiation**************************/
348
352
354
357
360
365
370
374
375DEPRECATED("Do not use FrameTranslation", typedef FrameTranslationTpl<double> FrameTranslation;)
376DEPRECATED("Do not use FrameTranslation", typedef FrameRotationTpl<double> FrameRotation;)
377DEPRECATED("Do not use FramePlacement", typedef FramePlacementTpl<double> FramePlacement;)
378DEPRECATED("Do not use FrameMotion", typedef FrameMotionTpl<double> FrameMotion;)
379DEPRECATED("Do not use FrameForce", typedef FrameForceTpl<double> FrameForce;)
380DEPRECATED("Do not use FrameFrictionCone", typedef FrameFrictionConeTpl<double> FrameFrictionCone;)
381DEPRECATED("Do not use FrameWrenchCone", typedef FrameWrenchConeTpl<double> FrameWrenchCone;)
382DEPRECATED("Do not use FrameCopSupport", typedef FrameCoPSupportTpl<double> FrameCoPSupport;)
383
412
413#ifdef PINOCCHIO_WITH_HPP_FCL
414typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
415typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
416#endif
417
418DEPRECATED("Use ResidualModelFrameTranslation with CostModelResidual",
419 typedef CostModelFrameTranslationTpl<double> CostModelFrameTranslation;)
420DEPRECATED("Use ResidualDataFrameTranslation", typedef CostDataResidualTpl<double> CostDataFrameTranslation;)
421DEPRECATED("Use ResidualModelCentroidalMomentum with CostModelResidual",
423DEPRECATED("Use ResidualDataCentroidalMomentum", typedef CostDataResidualTpl<double> CostDataCentroidalMomentum;)
424DEPRECATED("Use ResidualModelCoMPosition with CostModelResidual",
425 typedef CostModelCoMPositionTpl<double> CostModelCoMPosition;)
426DEPRECATED("Use ResidualDataCoMPosition", typedef CostDataResidualTpl<double> CostDataCoMPosition;)
427DEPRECATED("Use ResidualModelFramePlacement with CostModelResidual",
429DEPRECATED("Use ResidualDataFramePlacement", typedef CostDataResidualTpl<double> CostDataFramePlacement;)
430DEPRECATED("Use ResidualModelImpulseCoM with CostModelResidual",
431 typedef CostModelImpulseCoMTpl<double> CostModelImpulseCoM;)
432DEPRECATED("Use ResidualDataImpulseCoM", typedef CostDataResidualTpl<double> CostDataImpulseCoM;)
433DEPRECATED("Use ResidualModelState with CostModelResidual", typedef CostModelStateTpl<double> CostModelState;)
434DEPRECATED("Use ResidualDataState", typedef CostDataResidualTpl<double> CostDataState;)
435DEPRECATED("Use ResidualModelControlGrav with CostModelResidual",
437DEPRECATED("Use ResidualDataControlGrav", typedef CostDataResidualTpl<double> CostDataControlGrav;)
438DEPRECATED("Use ResidualModelContactControlGrav with CostModelResidual",
439 typedef CostModelControlGravContactTpl<double> CostModelControlGravContact;)
440DEPRECATED("Use ResidualDataContactControlGrav", typedef CostDataResidualTpl<double> CostDataControlGravContact;)
441DEPRECATED("Use ResidualModelFrameVelocity with CostModelResidual",
443DEPRECATED("Use ResidualDataFrameVelocity", typedef CostDataResidualTpl<double> CostDataFrameVelocity;)
444DEPRECATED("Use ResidualModelFrameRotation with CostModelResidual",
445 typedef CostModelFrameRotationTpl<double> CostModelFrameRotation;)
446DEPRECATED("Use ResidualDataFrameRotation", typedef CostDataResidualTpl<double> CostDataFrameRotation;)
447DEPRECATED("Use ResidualModelCoPPosition with CostModelResidual",
449DEPRECATED("Use ResidualDataCoPPosition", typedef CostDataResidualTpl<double> CostDataContactCoPPosition;)
450DEPRECATED("Use ResidualModelContactFrictionCone with CostModelResidual",
451 typedef CostModelContactFrictionConeTpl<double> CostModelContactFrictionCone;)
452DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataContactFrictionCone;)
453DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
455DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataContactWrenchCone;)
456DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
457 typedef CostModelContactForceTpl<double> CostModelContactForce;)
458DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactForce;)
459DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
461DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactImpulse;)
462DEPRECATED("Use ResidualModelFrictionCone with CostModelResidual",
463 typedef CostModelImpulseFrictionConeTpl<double> CostModelImpulseFrictionCone;)
464DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataImpulseFrictionCone;)
465DEPRECATED("Use ResidualModelContactCoPPosition with CostModelResidual",
467DEPRECATED("Use ResidualDataContactCoPPosition", typedef CostDataResidualTpl<double> CostDataImpulseCoPPosition;)
468DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
469 typedef CostModelImpulseWrenchConeTpl<double> CostModelImpulseWrenchCone;)
470DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataImpulseWrenchCone;)
471
472typedef ImpulseModelAbstractTpl<double> ImpulseModelAbstract;
474
475enum ContactType { ContactUndefined, Contact1D, Contact2D, Contact3D, Contact6D };
476enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
477
478typedef ContactItemTpl<double> ContactItem;
479typedef ContactModelMultipleTpl<double> ContactModelMultiple;
480typedef ContactDataMultipleTpl<double> ContactDataMultiple;
481typedef ContactModel1DTpl<double> ContactModel1D;
482typedef ContactData1DTpl<double> ContactData1D;
483typedef ContactModel2DTpl<double> ContactModel2D;
484typedef ContactData2DTpl<double> ContactData2D;
485typedef ContactModel3DTpl<double> ContactModel3D;
486typedef ContactData3DTpl<double> ContactData3D;
487typedef ContactModel6DTpl<double> ContactModel6D;
488typedef ContactData6DTpl<double> ContactData6D;
489
490typedef StateMultibodyTpl<double> StateMultibody;
491
492typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
493typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
494typedef DataCollectorContactTpl<double> DataCollectorContact;
495typedef DataCollectorMultibodyInContactTpl<double> DataCollectorMultibodyInContact;
496typedef DataCollectorActMultibodyInContactTpl<double> DataCollectorActMultibodyInContact;
497typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
498typedef DataCollectorMultibodyInImpulseTpl<double> DataCollectorMultibodyInImpulse;
499
500typedef ImpulseModel6DTpl<double> ImpulseModel6D;
501typedef ImpulseData6DTpl<double> ImpulseData6D;
502typedef ImpulseModel3DTpl<double> ImpulseModel3D;
503typedef ImpulseData3DTpl<double> ImpulseData3D;
504typedef ImpulseItemTpl<double> ImpulseItem;
505typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
506typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
507
508} // namespace crocoddyl
509
510#endif // CROCODDYL_MULTIBODY_FWD_HPP_
Action model for impulse forward dynamics in multibody systems.
Floating-base actuation model.
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 computes the numerical differentiation of a cost model.
Definition: cost.hpp:29
Differential action model for contact forward dynamics in multibody systems.
Differential action model for free forward dynamics in multibody systems.
Definition: free-fwddyn.hpp:50
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.