Crocoddyl
 
Loading...
Searching...
No Matches
fwd.hpp
1
2// BSD 3-Clause License
3//
4// Copyright (C) 2019-2024, LAAS-CNRS, University of Edinburgh, INRIA
5// Heriot-Watt University
6// Copyright note valid unless otherwise stated in individual files.
7// All rights reserved.
9
10#ifndef CROCODDYL_MULTIBODY_FWD_HPP_
11#define CROCODDYL_MULTIBODY_FWD_HPP_
12
13#include "crocoddyl/core/costs/residual.hpp"
14#include "crocoddyl/core/utils/deprecate.hpp"
15
16namespace crocoddyl {
17
18// actuation
19template <typename Scalar>
20class ActuationModelFloatingBaseTpl;
21
22template <typename Scalar>
23class ActuationModelFullTpl;
24
25template <typename Scalar>
26struct ThrusterTpl;
27
28template <typename Scalar>
29class ActuationModelFloatingBaseThrustersTpl;
30
31template <typename Scalar>
32class ActuationModelMultiCopterBaseTpl;
33
34// force
35template <typename Scala>
36struct ForceDataAbstractTpl;
37
38// contact
39template <typename Scalar>
40class ContactModelAbstractTpl;
41template <typename Scalar>
42struct ContactDataAbstractTpl;
43
44// action
45template <typename Scalar>
46class ActionModelImpulseFwdDynamicsTpl;
47template <typename Scalar>
48struct ActionDataImpulseFwdDynamicsTpl;
49
50// differential action
51template <typename Scalar>
52class DifferentialActionModelFreeFwdDynamicsTpl;
53template <typename Scalar>
54struct DifferentialActionDataFreeFwdDynamicsTpl;
55
56template <typename Scalar>
57class DifferentialActionModelFreeInvDynamicsTpl;
58template <typename Scalar>
59struct DifferentialActionDataFreeInvDynamicsTpl;
60
61template <typename Scalar>
62class DifferentialActionModelContactFwdDynamicsTpl;
63template <typename Scalar>
64struct DifferentialActionDataContactFwdDynamicsTpl;
65
66template <typename Scalar>
67class DifferentialActionModelContactInvDynamicsTpl;
68template <typename Scalar>
69struct DifferentialActionDataContactInvDynamicsTpl;
70
71// numdiff
72template <typename Scalar>
73class CostModelNumDiffTpl;
74template <typename Scalar>
75struct CostDataNumDiffTpl;
76
77template <typename Scalar>
78class ContactModelNumDiffTpl;
79template <typename Scalar>
80struct ContactDataNumDiffTpl;
81
82// residual
83template <typename Scalar>
84class ResidualModelCentroidalMomentumTpl;
85template <typename Scalar>
86struct ResidualDataCentroidalMomentumTpl;
87
88template <typename Scalar>
89class ResidualModelCoMPositionTpl;
90template <typename Scalar>
91struct ResidualDataCoMPositionTpl;
92
93template <typename Scalar>
94class ResidualModelContactForceTpl;
95template <typename Scalar>
96struct ResidualDataContactForceTpl;
97
98template <typename Scalar>
99class ResidualModelContactFrictionConeTpl;
100template <typename Scalar>
101struct ResidualDataContactFrictionConeTpl;
102
103template <typename Scalar>
104class ResidualModelContactCoPPositionTpl;
105template <typename Scalar>
106struct ResidualDataContactCoPPositionTpl;
107
108template <typename Scalar>
109class ResidualModelContactWrenchConeTpl;
110template <typename Scalar>
111struct ResidualDataContactWrenchConeTpl;
112
113template <typename Scalar>
114class ResidualModelContactControlGravTpl;
115template <typename Scalar>
116struct ResidualDataContactControlGravTpl;
117
118template <typename Scalar>
119class ResidualModelControlGravTpl;
120template <typename Scalar>
121struct ResidualDataControlGravTpl;
122
123template <typename Scalar>
124class ResidualModelFramePlacementTpl;
125template <typename Scalar>
126struct ResidualDataFramePlacementTpl;
127
128template <typename Scalar>
129class ResidualModelFrameRotationTpl;
130template <typename Scalar>
131struct ResidualDataFrameRotationTpl;
132
133template <typename Scalar>
134class ResidualModelFrameTranslationTpl;
135template <typename Scalar>
136struct ResidualDataFrameTranslationTpl;
137
138template <typename Scalar>
139class ResidualModelFrameVelocityTpl;
140template <typename Scalar>
141struct ResidualDataFrameVelocityTpl;
142
143template <typename Scalar>
144class ResidualModelImpulseCoMTpl;
145template <typename Scalar>
146struct ResidualDataImpulseCoMTpl;
147
148template <typename Scalar>
149class ResidualModelStateTpl;
150template <typename Scalar>
152
153#ifdef PINOCCHIO_WITH_HPP_FCL
154template <typename Scalar>
155class ResidualModelPairCollisionTpl;
156template <typename Scalar>
157struct ResidualDataPairCollisionTpl;
158#endif
159
160// impulse
161template <typename Scalar>
163template <typename Scalar>
165
166// contact
167template <typename Scalar>
168struct ContactItemTpl;
169template <typename Scalar>
171template <typename Scalar>
173
174template <typename Scalar>
176template <typename Scalar>
177struct ContactData1DTpl;
178
179template <typename Scalar>
181template <typename Scalar>
182struct ContactData2DTpl;
183
184template <typename Scalar>
186template <typename Scalar>
187struct ContactData3DTpl;
188
189template <typename Scalar>
191template <typename Scalar>
192struct ContactData6DTpl;
193
194// friction
195template <typename Scalar>
196class FrictionConeTpl;
197template <typename Scalar>
198class WrenchConeTpl;
199
200// cop support
201template <typename Scalar>
202class CoPSupportTpl;
203
204// state
205template <typename Scalar>
207
208// data collector
209template <typename Scalar>
211
212template <typename Scalar>
214
215template <typename Scalar>
217
218template <typename Scalar>
220
221template <typename Scalar>
223
224template <typename Scalar>
226
227template <typename Scalar>
229
230template <typename Scalar>
232
233template <typename Scalar>
235
236// impulse
237template <typename Scalar>
239template <typename Scalar>
240struct ImpulseData6DTpl;
241
242template <typename Scalar>
244template <typename Scalar>
245struct ImpulseData3DTpl;
246
247template <typename Scalar>
248struct ImpulseItemTpl;
249template <typename Scalar>
251template <typename Scalar>
253
254/**** Template Instantiation ****/
255
261DEPRECATED("Use ActuationModelFloatingBaseThrustersTpl",
263 ActuationModelMultiCopterBase;)
264
265typedef ForceDataAbstractTpl<double> ForceDataAbstract;
266
269
272
289
294
298
336
337#ifdef PINOCCHIO_WITH_HPP_FCL
338typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
339typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
340#endif
341
344
345enum ContactType {
346 ContactUndefined,
347 Contact1D,
348 Contact2D,
349 Contact3D,
350 Contact6D
351};
352enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
353
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;
365
366typedef StateMultibodyTpl<double> StateMultibody;
367
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;
382
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;
390
391} // namespace crocoddyl
392
393#endif // CROCODDYL_MULTIBODY_FWD_HPP_
Action model for impulse forward dynamics in multibody systems.
Actuation models for floating base systems actuated with thrusters.
Floating-base actuation model.
Full actuation model.
Definition full.hpp:30
This class encapsulates a center of pressure support of a 6d contact.
Define a stack of contact models.
This class computes the numerical differentiation of a cost model.
Definition cost.hpp:34
Differential action model for contact forward dynamics in multibody systems.
Differential action model for contact inverse dynamics in multibody systems.
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.
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:35
This class encapsulates a wrench cone.
Define the multi-contact data.
Define the multi-impulse data.