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"
18template <
typename Scalar>
19class ActuationModelFloatingBaseTpl;
21template <
typename Scalar>
22class ActuationModelFullTpl;
24template <
typename Scalar>
25class ActuationModelMultiCopterBaseTpl;
28template <
typename Scala>
29struct ForceDataAbstractTpl;
32template <
typename Scalar>
33class ContactModelAbstractTpl;
34template <
typename Scalar>
35struct ContactDataAbstractTpl;
38template <
typename Scalar>
39class ActionModelImpulseFwdDynamicsTpl;
40template <
typename Scalar>
41struct ActionDataImpulseFwdDynamicsTpl;
44template <
typename Scalar>
45class DifferentialActionModelFreeFwdDynamicsTpl;
46template <
typename Scalar>
47struct DifferentialActionDataFreeFwdDynamicsTpl;
49template <
typename Scalar>
50class DifferentialActionModelContactFwdDynamicsTpl;
51template <
typename Scalar>
52struct DifferentialActionDataContactFwdDynamicsTpl;
55template <
typename Scalar>
56class CostModelNumDiffTpl;
57template <
typename Scalar>
58struct CostDataNumDiffTpl;
60template <
typename Scalar>
61class ContactModelNumDiffTpl;
62template <
typename Scalar>
63struct ContactDataNumDiffTpl;
66template <
typename Scalar>
67struct FrameTranslationTpl;
69template <
typename Scalar>
70struct FrameRotationTpl;
72template <
typename Scalar>
73struct FramePlacementTpl;
75template <
typename Scalar>
78template <
typename Scalar>
81template <
typename Scalar>
82struct FrameFrictionConeTpl;
84template <
typename Scalar>
85struct FrameWrenchConeTpl;
87template <
typename Scalar>
88struct FrameCoPSupportTpl;
91template <
typename Scalar>
92class ResidualModelCentroidalMomentumTpl;
93template <
typename Scalar>
94struct ResidualDataCentroidalMomentumTpl;
96template <
typename Scalar>
97class ResidualModelCoMPositionTpl;
98template <
typename Scalar>
99struct ResidualDataCoMPositionTpl;
101template <
typename Scalar>
102class ResidualModelContactForceTpl;
103template <
typename Scalar>
104struct ResidualDataContactForceTpl;
106template <
typename Scalar>
107class ResidualModelContactFrictionConeTpl;
108template <
typename Scalar>
109struct ResidualDataContactFrictionConeTpl;
111template <
typename Scalar>
112class ResidualModelContactCoPPositionTpl;
113template <
typename Scalar>
114struct ResidualDataContactCoPPositionTpl;
116template <
typename Scalar>
117class ResidualModelContactWrenchConeTpl;
118template <
typename Scalar>
119struct ResidualDataContactWrenchConeTpl;
121template <
typename Scalar>
122class ResidualModelContactControlGravTpl;
123template <
typename Scalar>
124struct ResidualDataContactControlGravTpl;
126template <
typename Scalar>
127class ResidualModelControlGravTpl;
128template <
typename Scalar>
129struct ResidualDataControlGravTpl;
131template <
typename Scalar>
132class ResidualModelFramePlacementTpl;
133template <
typename Scalar>
134struct ResidualDataFramePlacementTpl;
136template <
typename Scalar>
137class ResidualModelFrameRotationTpl;
138template <
typename Scalar>
139struct ResidualDataFrameRotationTpl;
141template <
typename Scalar>
142class ResidualModelFrameTranslationTpl;
143template <
typename Scalar>
144struct ResidualDataFrameTranslationTpl;
146template <
typename Scalar>
147class ResidualModelFrameVelocityTpl;
148template <
typename Scalar>
149struct ResidualDataFrameVelocityTpl;
151template <
typename Scalar>
152class ResidualModelImpulseCoMTpl;
153template <
typename Scalar>
154struct ResidualDataImpulseCoMTpl;
156template <
typename Scalar>
157class ResidualModelStateTpl;
158template <
typename Scalar>
161#ifdef PINOCCHIO_WITH_HPP_FCL
162template <
typename Scalar>
163class ResidualModelPairCollisionTpl;
164template <
typename Scalar>
165struct ResidualDataPairCollisionTpl;
168template <
typename Scalar>
171template <
typename Scalar>
174template <
typename Scalar>
176template <
typename Scalar>
179template <
typename Scalar>
181template <
typename Scalar>
184template <
typename Scalar>
186template <
typename Scalar>
189template <
typename Scalar>
191template <
typename Scalar>
194template <
typename Scalar>
196template <
typename Scalar>
199template <
typename Scalar>
201template <
typename Scalar>
204template <
typename Scalar>
206template <
typename Scalar>
209template <
typename Scalar>
211template <
typename Scalar>
214template <
typename Scalar>
216template <
typename Scalar>
219template <
typename Scalar>
221template <
typename Scalar>
224template <
typename Scalar>
226template <
typename Scalar>
229template <
typename Scalar>
231template <
typename Scalar>
234template <
typename Scalar>
236template <
typename Scalar>
239template <
typename Scalar>
241template <
typename Scalar>
244template <
typename Scalar>
246template <
typename Scalar>
249template <
typename Scalar>
251template <
typename Scalar>
254template <
typename Scalar>
256template <
typename Scalar>
260template <
typename Scalar>
262template <
typename Scalar>
266template <
typename Scalar>
268template <
typename Scalar>
270template <
typename Scalar>
273template <
typename Scalar>
275template <
typename Scalar>
278template <
typename Scalar>
280template <
typename Scalar>
283template <
typename Scalar>
285template <
typename Scalar>
288template <
typename Scalar>
290template <
typename Scalar>
294template <
typename Scalar>
296template <
typename Scalar>
300template <
typename Scalar>
304template <
typename Scalar>
308template <
typename Scalar>
311template <
typename Scalar>
314template <
typename Scalar>
317template <
typename Scalar>
320template <
typename Scalar>
323template <
typename Scalar>
326template <
typename Scalar>
330template <
typename Scalar>
332template <
typename Scalar>
335template <
typename Scalar>
337template <
typename Scalar>
340template <
typename Scalar>
342template <
typename Scalar>
344template <
typename Scalar>
413#ifdef PINOCCHIO_WITH_HPP_FCL
414typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
415typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
418DEPRECATED(
"Use ResidualModelFrameTranslation with CostModelResidual",
421DEPRECATED(
"Use ResidualModelCentroidalMomentum with CostModelResidual",
424DEPRECATED(
"Use ResidualModelCoMPosition with CostModelResidual",
427DEPRECATED(
"Use ResidualModelFramePlacement with CostModelResidual",
430DEPRECATED(
"Use ResidualModelImpulseCoM with CostModelResidual",
435DEPRECATED(
"Use ResidualModelControlGrav with CostModelResidual",
438DEPRECATED(
"Use ResidualModelContactControlGrav with CostModelResidual",
441DEPRECATED(
"Use ResidualModelFrameVelocity with CostModelResidual",
444DEPRECATED(
"Use ResidualModelFrameRotation with CostModelResidual",
447DEPRECATED(
"Use ResidualModelCoPPosition with CostModelResidual",
450DEPRECATED(
"Use ResidualModelContactFrictionCone with CostModelResidual",
453DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
456DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
459DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
462DEPRECATED(
"Use ResidualModelFrictionCone with CostModelResidual",
465DEPRECATED(
"Use ResidualModelContactCoPPosition with CostModelResidual",
468DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
475enum ContactType { ContactUndefined, Contact1D, Contact2D, Contact3D, Contact6D };
476enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
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;
490typedef StateMultibodyTpl<double> StateMultibody;
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;
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;
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.