9 #ifndef CROCODDYL_MULTIBODY_FWD_HPP_
10 #define CROCODDYL_MULTIBODY_FWD_HPP_
12 #include "crocoddyl/core/utils/deprecate.hpp"
13 #include "crocoddyl/core/costs/residual.hpp"
18 template <
typename Scalar>
19 class ActuationModelFloatingBaseTpl;
21 template <
typename Scalar>
22 class ActuationModelFullTpl;
24 template <
typename Scalar>
25 class ActuationModelMultiCopterBaseTpl;
28 template <
typename Scala>
29 struct ForceDataAbstractTpl;
32 template <
typename Scalar>
33 class ContactModelAbstractTpl;
34 template <
typename Scalar>
35 struct ContactDataAbstractTpl;
38 template <
typename Scalar>
39 class ActionModelImpulseFwdDynamicsTpl;
40 template <
typename Scalar>
41 struct ActionDataImpulseFwdDynamicsTpl;
44 template <
typename Scalar>
45 class DifferentialActionModelFreeFwdDynamicsTpl;
46 template <
typename Scalar>
47 struct DifferentialActionDataFreeFwdDynamicsTpl;
49 template <
typename Scalar>
50 class DifferentialActionModelContactFwdDynamicsTpl;
51 template <
typename Scalar>
52 struct DifferentialActionDataContactFwdDynamicsTpl;
55 template <
typename Scalar>
56 class CostModelNumDiffTpl;
57 template <
typename Scalar>
58 struct CostDataNumDiffTpl;
60 template <
typename Scalar>
61 class ContactModelNumDiffTpl;
62 template <
typename Scalar>
63 struct ContactDataNumDiffTpl;
66 template <
typename Scalar>
67 struct FrameTranslationTpl;
69 template <
typename Scalar>
70 struct FrameRotationTpl;
72 template <
typename Scalar>
73 struct FramePlacementTpl;
75 template <
typename Scalar>
76 struct FrameMotionTpl;
78 template <
typename Scalar>
81 template <
typename Scalar>
82 struct FrameFrictionConeTpl;
84 template <
typename Scalar>
85 struct FrameWrenchConeTpl;
87 template <
typename Scalar>
88 struct FrameCoPSupportTpl;
91 template <
typename Scalar>
92 class ResidualModelCentroidalMomentumTpl;
93 template <
typename Scalar>
94 struct ResidualDataCentroidalMomentumTpl;
96 template <
typename Scalar>
97 class ResidualModelCoMPositionTpl;
98 template <
typename Scalar>
99 struct ResidualDataCoMPositionTpl;
101 template <
typename Scalar>
102 class ResidualModelContactForceTpl;
103 template <
typename Scalar>
104 struct ResidualDataContactForceTpl;
106 template <
typename Scalar>
107 class ResidualModelContactFrictionConeTpl;
108 template <
typename Scalar>
109 struct ResidualDataContactFrictionConeTpl;
111 template <
typename Scalar>
112 class ResidualModelContactCoPPositionTpl;
113 template <
typename Scalar>
114 struct ResidualDataContactCoPPositionTpl;
116 template <
typename Scalar>
117 class ResidualModelContactWrenchConeTpl;
118 template <
typename Scalar>
119 struct ResidualDataContactWrenchConeTpl;
121 template <
typename Scalar>
122 class ResidualModelContactControlGravTpl;
123 template <
typename Scalar>
124 struct ResidualDataContactControlGravTpl;
126 template <
typename Scalar>
127 class ResidualModelControlGravTpl;
128 template <
typename Scalar>
129 struct ResidualDataControlGravTpl;
131 template <
typename Scalar>
132 class ResidualModelFramePlacementTpl;
133 template <
typename Scalar>
134 struct ResidualDataFramePlacementTpl;
136 template <
typename Scalar>
137 class ResidualModelFrameRotationTpl;
138 template <
typename Scalar>
139 struct ResidualDataFrameRotationTpl;
141 template <
typename Scalar>
142 class ResidualModelFrameTranslationTpl;
143 template <
typename Scalar>
144 struct ResidualDataFrameTranslationTpl;
146 template <
typename Scalar>
147 class ResidualModelFrameVelocityTpl;
148 template <
typename Scalar>
149 struct ResidualDataFrameVelocityTpl;
151 template <
typename Scalar>
152 class ResidualModelImpulseCoMTpl;
153 template <
typename Scalar>
154 struct ResidualDataImpulseCoMTpl;
156 template <
typename Scalar>
157 class ResidualModelStateTpl;
158 template <
typename Scalar>
161 #ifdef PINOCCHIO_WITH_HPP_FCL
162 template <
typename Scalar>
163 class ResidualModelPairCollisionTpl;
164 template <
typename Scalar>
165 struct ResidualDataPairCollisionTpl;
168 template <
typename Scalar>
171 template <
typename Scalar>
174 template <
typename Scalar>
176 template <
typename Scalar>
179 template <
typename Scalar>
181 template <
typename Scalar>
184 template <
typename Scalar>
186 template <
typename Scalar>
189 template <
typename Scalar>
191 template <
typename Scalar>
194 template <
typename Scalar>
196 template <
typename Scalar>
199 template <
typename Scalar>
201 template <
typename Scalar>
204 template <
typename Scalar>
206 template <
typename Scalar>
209 template <
typename Scalar>
211 template <
typename Scalar>
214 template <
typename Scalar>
216 template <
typename Scalar>
219 template <
typename Scalar>
221 template <
typename Scalar>
224 template <
typename Scalar>
226 template <
typename Scalar>
229 template <
typename Scalar>
231 template <
typename Scalar>
234 template <
typename Scalar>
236 template <
typename Scalar>
239 template <
typename Scalar>
241 template <
typename Scalar>
244 template <
typename Scalar>
246 template <
typename Scalar>
249 template <
typename Scalar>
251 template <
typename Scalar>
254 template <
typename Scalar>
256 template <
typename Scalar>
260 template <
typename Scalar>
262 template <
typename Scalar>
266 template <
typename Scalar>
268 template <
typename Scalar>
270 template <
typename Scalar>
273 template <
typename Scalar>
275 template <
typename Scalar>
278 template <
typename Scalar>
280 template <
typename Scalar>
283 template <
typename Scalar>
285 template <
typename Scalar>
288 template <
typename Scalar>
290 template <
typename Scalar>
294 template <
typename Scalar>
296 template <
typename Scalar>
300 template <
typename Scalar>
304 template <
typename Scalar>
308 template <
typename Scalar>
311 template <
typename Scalar>
314 template <
typename Scalar>
317 template <
typename Scalar>
320 template <
typename Scalar>
323 template <
typename Scalar>
326 template <
typename Scalar>
330 template <
typename Scalar>
332 template <
typename Scalar>
335 template <
typename Scalar>
337 template <
typename Scalar>
340 template <
typename Scalar>
342 template <
typename Scalar>
344 template <
typename Scalar>
413 #ifdef PINOCCHIO_WITH_HPP_FCL
414 typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
415 typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
418 DEPRECATED(
"Use ResidualModelFrameTranslation with CostModelResidual",
421 DEPRECATED(
"Use ResidualModelCentroidalMomentum with CostModelResidual",
424 DEPRECATED(
"Use ResidualModelCoMPosition with CostModelResidual",
427 DEPRECATED(
"Use ResidualModelFramePlacement with CostModelResidual",
430 DEPRECATED(
"Use ResidualModelImpulseCoM with CostModelResidual",
435 DEPRECATED(
"Use ResidualModelControlGrav with CostModelResidual",
438 DEPRECATED(
"Use ResidualModelContactControlGrav with CostModelResidual",
441 DEPRECATED(
"Use ResidualModelFrameVelocity with CostModelResidual",
444 DEPRECATED(
"Use ResidualModelFrameRotation with CostModelResidual",
447 DEPRECATED(
"Use ResidualModelCoPPosition with CostModelResidual",
450 DEPRECATED(
"Use ResidualModelContactFrictionCone with CostModelResidual",
453 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
456 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
459 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
462 DEPRECATED(
"Use ResidualModelFrictionCone with CostModelResidual",
465 DEPRECATED(
"Use ResidualModelContactCoPPosition with CostModelResidual",
468 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
475 enum ContactType { ContactUndefined, Contact1D, Contact2D, Contact3D, Contact6D };
476 enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
478 typedef ContactItemTpl<double> ContactItem;
479 typedef ContactModelMultipleTpl<double> ContactModelMultiple;
480 typedef ContactDataMultipleTpl<double> ContactDataMultiple;
481 typedef ContactModel1DTpl<double> ContactModel1D;
482 typedef ContactData1DTpl<double> ContactData1D;
483 typedef ContactModel2DTpl<double> ContactModel2D;
484 typedef ContactData2DTpl<double> ContactData2D;
485 typedef ContactModel3DTpl<double> ContactModel3D;
486 typedef ContactData3DTpl<double> ContactData3D;
487 typedef ContactModel6DTpl<double> ContactModel6D;
488 typedef ContactData6DTpl<double> ContactData6D;
490 typedef StateMultibodyTpl<double> StateMultibody;
492 typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
493 typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
494 typedef DataCollectorContactTpl<double> DataCollectorContact;
495 typedef DataCollectorMultibodyInContactTpl<double> DataCollectorMultibodyInContact;
496 typedef DataCollectorActMultibodyInContactTpl<double> DataCollectorActMultibodyInContact;
497 typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
498 typedef DataCollectorMultibodyInImpulseTpl<double> DataCollectorMultibodyInImpulse;
500 typedef ImpulseModel6DTpl<double> ImpulseModel6D;
501 typedef ImpulseData6DTpl<double> ImpulseData6D;
502 typedef ImpulseModel3DTpl<double> ImpulseModel3D;
503 typedef ImpulseData3DTpl<double> ImpulseData3D;
504 typedef ImpulseItemTpl<double> ImpulseItem;
505 typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
506 typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
Action model for impulse forward dynamics in multibody systems.
Floating-base actuation model.
Multicopter actuation model.
This class encapsulates a center of pressure support of a 6d contact.
Centroidal momentum cost.
Define a center of pressure cost function.
Impulse friction cone cost.
This class computes the numerical differentiation of a cost model.
Differential action model for free forward dynamics in multibody systems.
This class encapsulates a friction cone.
Define a stack of impulse models.
Centroidal momentum residual.
Control gravity residual.
Frame placement residual.
Frame translation residual.
State multibody representation.
This class encapsulates a wrench cone.
Define the multi-impulse data.