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>
289 template <
typename Scalar>
291 template <
typename Scalar>
295 template <
typename Scalar>
299 template <
typename Scalar>
303 template <
typename Scalar>
306 template <
typename Scalar>
309 template <
typename Scalar>
312 template <
typename Scalar>
315 template <
typename Scalar>
318 template <
typename Scalar>
321 template <
typename Scalar>
325 template <
typename Scalar>
327 template <
typename Scalar>
330 template <
typename Scalar>
332 template <
typename Scalar>
335 template <
typename Scalar>
337 template <
typename Scalar>
339 template <
typename Scalar>
408 #ifdef PINOCCHIO_WITH_HPP_FCL
409 typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
410 typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
413 DEPRECATED(
"Use ResidualModelFrameTranslation with CostModelResidual",
416 DEPRECATED(
"Use ResidualModelCentroidalMomentum with CostModelResidual",
419 DEPRECATED(
"Use ResidualModelCoMPosition with CostModelResidual",
422 DEPRECATED(
"Use ResidualModelFramePlacement with CostModelResidual",
425 DEPRECATED(
"Use ResidualModelImpulseCoM with CostModelResidual",
430 DEPRECATED(
"Use ResidualModelControlGrav with CostModelResidual",
433 DEPRECATED(
"Use ResidualModelContactControlGrav with CostModelResidual",
436 DEPRECATED(
"Use ResidualModelFrameVelocity with CostModelResidual",
439 DEPRECATED(
"Use ResidualModelFrameRotation with CostModelResidual",
442 DEPRECATED(
"Use ResidualModelCoPPosition with CostModelResidual",
445 DEPRECATED(
"Use ResidualModelContactFrictionCone with CostModelResidual",
448 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
451 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
454 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
457 DEPRECATED(
"Use ResidualModelFrictionCone with CostModelResidual",
460 DEPRECATED(
"Use ResidualModelContactCoPPosition with CostModelResidual",
463 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
470 enum ContactType { Contact2D, Contact3D, Contact6D, ContactUndefined };
471 enum ImpulseType { Impulse3D, Impulse6D, ImpulseUndefined };
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;
483 typedef StateMultibodyTpl<double> StateMultibody;
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;
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;
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 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.