10#ifndef CROCODDYL_MULTIBODY_FWD_HPP_
11#define CROCODDYL_MULTIBODY_FWD_HPP_
13#include "crocoddyl/core/costs/residual.hpp"
14#include "crocoddyl/core/utils/deprecate.hpp"
19template <
typename Scalar>
20class ActuationModelFloatingBaseTpl;
22template <
typename Scalar>
23class ActuationModelFullTpl;
25template <
typename Scalar>
28template <
typename Scalar>
29class ActuationModelFloatingBaseThrustersTpl;
31template <
typename Scalar>
32class ActuationModelMultiCopterBaseTpl;
35template <
typename Scala>
36struct ForceDataAbstractTpl;
39template <
typename Scalar>
40class ContactModelAbstractTpl;
41template <
typename Scalar>
42struct ContactDataAbstractTpl;
45template <
typename Scalar>
46class ActionModelImpulseFwdDynamicsTpl;
47template <
typename Scalar>
48struct ActionDataImpulseFwdDynamicsTpl;
51template <
typename Scalar>
52class DifferentialActionModelFreeFwdDynamicsTpl;
53template <
typename Scalar>
54struct DifferentialActionDataFreeFwdDynamicsTpl;
56template <
typename Scalar>
57class DifferentialActionModelFreeInvDynamicsTpl;
58template <
typename Scalar>
59struct DifferentialActionDataFreeInvDynamicsTpl;
61template <
typename Scalar>
62class DifferentialActionModelContactFwdDynamicsTpl;
63template <
typename Scalar>
64struct DifferentialActionDataContactFwdDynamicsTpl;
66template <
typename Scalar>
67class DifferentialActionModelContactInvDynamicsTpl;
68template <
typename Scalar>
69struct DifferentialActionDataContactInvDynamicsTpl;
72template <
typename Scalar>
73class CostModelNumDiffTpl;
74template <
typename Scalar>
75struct CostDataNumDiffTpl;
77template <
typename Scalar>
78class ContactModelNumDiffTpl;
79template <
typename Scalar>
80struct ContactDataNumDiffTpl;
83template <
typename Scalar>
84class ResidualModelCentroidalMomentumTpl;
85template <
typename Scalar>
86struct ResidualDataCentroidalMomentumTpl;
88template <
typename Scalar>
89class ResidualModelCoMPositionTpl;
90template <
typename Scalar>
91struct ResidualDataCoMPositionTpl;
93template <
typename Scalar>
94class ResidualModelContactForceTpl;
95template <
typename Scalar>
96struct ResidualDataContactForceTpl;
98template <
typename Scalar>
99class ResidualModelContactFrictionConeTpl;
100template <
typename Scalar>
101struct ResidualDataContactFrictionConeTpl;
103template <
typename Scalar>
104class ResidualModelContactCoPPositionTpl;
105template <
typename Scalar>
106struct ResidualDataContactCoPPositionTpl;
108template <
typename Scalar>
109class ResidualModelContactWrenchConeTpl;
110template <
typename Scalar>
111struct ResidualDataContactWrenchConeTpl;
113template <
typename Scalar>
114class ResidualModelContactControlGravTpl;
115template <
typename Scalar>
116struct ResidualDataContactControlGravTpl;
118template <
typename Scalar>
119class ResidualModelControlGravTpl;
120template <
typename Scalar>
121struct ResidualDataControlGravTpl;
123template <
typename Scalar>
124class ResidualModelFramePlacementTpl;
125template <
typename Scalar>
126struct ResidualDataFramePlacementTpl;
128template <
typename Scalar>
129class ResidualModelFrameRotationTpl;
130template <
typename Scalar>
131struct ResidualDataFrameRotationTpl;
133template <
typename Scalar>
134class ResidualModelFrameTranslationTpl;
135template <
typename Scalar>
136struct ResidualDataFrameTranslationTpl;
138template <
typename Scalar>
139class ResidualModelFrameVelocityTpl;
140template <
typename Scalar>
141struct ResidualDataFrameVelocityTpl;
143template <
typename Scalar>
144class ResidualModelImpulseCoMTpl;
145template <
typename Scalar>
146struct ResidualDataImpulseCoMTpl;
148template <
typename Scalar>
149class ResidualModelStateTpl;
150template <
typename Scalar>
153#ifdef PINOCCHIO_WITH_HPP_FCL
154template <
typename Scalar>
155class ResidualModelPairCollisionTpl;
156template <
typename Scalar>
157struct ResidualDataPairCollisionTpl;
161template <
typename Scalar>
163template <
typename Scalar>
167template <
typename Scalar>
169template <
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>
195template <
typename Scalar>
197template <
typename Scalar>
201template <
typename Scalar>
205template <
typename Scalar>
209template <
typename Scalar>
212template <
typename Scalar>
215template <
typename Scalar>
218template <
typename Scalar>
221template <
typename Scalar>
224template <
typename Scalar>
227template <
typename Scalar>
230template <
typename Scalar>
233template <
typename Scalar>
237template <
typename Scalar>
239template <
typename Scalar>
242template <
typename Scalar>
244template <
typename Scalar>
247template <
typename Scalar>
249template <
typename Scalar>
251template <
typename Scalar>
261DEPRECATED(
"Use ActuationModelFloatingBaseThrustersTpl",
263 ActuationModelMultiCopterBase;)
337#ifdef PINOCCHIO_WITH_HPP_FCL
338typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
339typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
352enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
354typedef ContactItemTpl<double> ContactItem;
355typedef ContactModelMultipleTpl<double> ContactModelMultiple;
356typedef ContactDataMultipleTpl<double> ContactDataMultiple;
357typedef ContactModel1DTpl<double> ContactModel1D;
358typedef ContactData1DTpl<double> ContactData1D;
359typedef ContactModel2DTpl<double> ContactModel2D;
360typedef ContactData2DTpl<double> ContactData2D;
361typedef ContactModel3DTpl<double> ContactModel3D;
362typedef ContactData3DTpl<double> ContactData3D;
363typedef ContactModel6DTpl<double> ContactModel6D;
364typedef ContactData6DTpl<double> ContactData6D;
366typedef StateMultibodyTpl<double> StateMultibody;
368typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
369typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
370typedef DataCollectorJointActMultibodyTpl<double>
371 DataCollectorJointActMultibody;
372typedef DataCollectorContactTpl<double> DataCollectorContact;
373typedef DataCollectorMultibodyInContactTpl<double>
374 DataCollectorMultibodyInContact;
375typedef DataCollectorActMultibodyInContactTpl<double>
376 DataCollectorActMultibodyInContact;
377typedef DataCollectorJointActMultibodyInContactTpl<double>
378 DataCollectorJointActMultibodyInContact;
379typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
380typedef DataCollectorMultibodyInImpulseTpl<double>
381 DataCollectorMultibodyInImpulse;
383typedef ImpulseModel6DTpl<double> ImpulseModel6D;
384typedef ImpulseData6DTpl<double> ImpulseData6D;
385typedef ImpulseModel3DTpl<double> ImpulseModel3D;
386typedef ImpulseData3DTpl<double> ImpulseData3D;
387typedef ImpulseItemTpl<double> ImpulseItem;
388typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
389typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
Action model for impulse forward dynamics in multibody systems.
Actuation models for floating base systems actuated with thrusters.
Floating-base actuation model.
Multicopter actuation model.
This class encapsulates a center of pressure support of a 6d contact.
This class computes the numerical differentiation of a cost model.
Differential action model for free forward dynamics in multibody systems.
Differential action model for free inverse 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.