crocoddyl  1.9.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
fwd.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2021, LAAS-CNRS, University of Edinburgh, INRIA
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
8 
9 #ifndef CROCODDYL_MULTIBODY_FWD_HPP_
10 #define CROCODDYL_MULTIBODY_FWD_HPP_
11 
12 #include "crocoddyl/core/utils/deprecate.hpp"
13 #include "crocoddyl/core/costs/residual.hpp"
14 
15 namespace crocoddyl {
16 
17 // actuation
18 template <typename Scalar>
19 class ActuationModelFloatingBaseTpl;
20 
21 template <typename Scalar>
22 class ActuationModelFullTpl;
23 
24 template <typename Scalar>
25 class ActuationModelMultiCopterBaseTpl;
26 
27 // force
28 template <typename Scala>
29 struct ForceDataAbstractTpl;
30 
31 // contact
32 template <typename Scalar>
33 class ContactModelAbstractTpl;
34 template <typename Scalar>
35 struct ContactDataAbstractTpl;
36 
37 // action
38 template <typename Scalar>
39 class ActionModelImpulseFwdDynamicsTpl;
40 template <typename Scalar>
41 struct ActionDataImpulseFwdDynamicsTpl;
42 
43 // differential action
44 template <typename Scalar>
45 class DifferentialActionModelFreeFwdDynamicsTpl;
46 template <typename Scalar>
47 struct DifferentialActionDataFreeFwdDynamicsTpl;
48 
49 template <typename Scalar>
50 class DifferentialActionModelContactFwdDynamicsTpl;
51 template <typename Scalar>
52 struct DifferentialActionDataContactFwdDynamicsTpl;
53 
54 // numdiff
55 template <typename Scalar>
56 class CostModelNumDiffTpl;
57 template <typename Scalar>
58 struct CostDataNumDiffTpl;
59 
60 template <typename Scalar>
62 template <typename Scalar>
64 
65 // frame
66 template <typename Scalar>
67 struct FrameTranslationTpl;
68 
69 template <typename Scalar>
70 struct FrameRotationTpl;
71 
72 template <typename Scalar>
73 struct FramePlacementTpl;
74 
75 template <typename Scalar>
76 struct FrameMotionTpl;
77 
78 template <typename Scalar>
79 struct FrameForceTpl;
80 
81 template <typename Scalar>
83 
84 template <typename Scalar>
85 struct FrameWrenchConeTpl;
86 
87 template <typename Scalar>
88 struct FrameCoPSupportTpl;
89 
90 // residual
91 template <typename Scalar>
93 template <typename Scalar>
95 
96 template <typename Scalar>
98 template <typename Scalar>
100 
101 template <typename Scalar>
103 template <typename Scalar>
105 
106 template <typename Scalar>
108 template <typename Scalar>
110 
111 template <typename Scalar>
113 template <typename Scalar>
115 
116 template <typename Scalar>
118 template <typename Scalar>
120 
121 template <typename Scalar>
123 template <typename Scalar>
125 
126 template <typename Scalar>
128 template <typename Scalar>
130 
131 template <typename Scalar>
133 template <typename Scalar>
135 
136 template <typename Scalar>
138 template <typename Scalar>
140 
141 template <typename Scalar>
143 template <typename Scalar>
145 
146 template <typename Scalar>
148 template <typename Scalar>
150 
151 template <typename Scalar>
153 template <typename Scalar>
155 
156 template <typename Scalar>
158 template <typename Scalar>
160 
161 #ifdef PINOCCHIO_WITH_HPP_FCL
162 template <typename Scalar>
163 class ResidualModelPairCollisionTpl;
164 template <typename Scalar>
165 struct ResidualDataPairCollisionTpl;
166 #endif
167 // cost
168 template <typename Scalar>
170 
171 template <typename Scalar>
173 
174 template <typename Scalar>
176 template <typename Scalar>
178 
179 template <typename Scalar>
181 template <typename Scalar>
183 
184 template <typename Scalar>
186 template <typename Scalar>
188 
189 template <typename Scalar>
191 template <typename Scalar>
193 
194 template <typename Scalar>
195 class CostModelStateTpl;
196 template <typename Scalar>
198 
199 template <typename Scalar>
201 template <typename Scalar>
203 
204 template <typename Scalar>
206 template <typename Scalar>
208 
209 template <typename Scalar>
211 template <typename Scalar>
213 
214 template <typename Scalar>
216 template <typename Scalar>
218 
219 template <typename Scalar>
221 template <typename Scalar>
223 
224 template <typename Scalar>
226 template <typename Scalar>
228 
229 template <typename Scalar>
231 template <typename Scalar>
233 
234 template <typename Scalar>
236 template <typename Scalar>
238 
239 template <typename Scalar>
241 template <typename Scalar>
243 
244 template <typename Scalar>
246 template <typename Scalar>
248 
249 template <typename Scalar>
251 template <typename Scalar>
253 
254 template <typename Scalar>
256 template <typename Scalar>
258 
259 // impulse
260 template <typename Scalar>
262 template <typename Scalar>
264 
265 // contact
266 template <typename Scalar>
267 struct ContactItemTpl;
268 template <typename Scalar>
270 template <typename Scalar>
272 
273 template <typename Scalar>
274 class ContactModel1DTpl;
275 template <typename Scalar>
276 struct ContactData1DTpl;
277 
278 template <typename Scalar>
279 class ContactModel2DTpl;
280 template <typename Scalar>
281 struct ContactData2DTpl;
282 
283 template <typename Scalar>
284 class ContactModel3DTpl;
285 template <typename Scalar>
286 struct ContactData3DTpl;
287 
288 template <typename Scalar>
289 class ContactModel6DTpl;
290 template <typename Scalar>
291 struct ContactData6DTpl;
292 
293 // friction
294 template <typename Scalar>
295 class FrictionConeTpl;
296 template <typename Scalar>
298 
299 // cop support
300 template <typename Scalar>
301 class CoPSupportTpl;
302 
303 // state
304 template <typename Scalar>
306 
307 // data collector
308 template <typename Scalar>
310 
311 template <typename Scalar>
313 
314 template <typename Scalar>
316 
317 template <typename Scalar>
319 
320 template <typename Scalar>
322 
323 template <typename Scalar>
325 
326 template <typename Scalar>
328 
329 // impulse
330 template <typename Scalar>
332 template <typename Scalar>
334 
335 template <typename Scalar>
337 template <typename Scalar>
339 
340 template <typename Scalar>
342 template <typename Scalar>
344 template <typename Scalar>
346 
347 /*******************************Template Instantiation**************************/
348 
352 
354 
357 
360 
365 
370 
374 
375 DEPRECATED("Do not use FrameTranslation", typedef FrameTranslationTpl<double> FrameTranslation;)
376 DEPRECATED("Do not use FrameTranslation", typedef FrameRotationTpl<double> FrameRotation;)
377 DEPRECATED("Do not use FramePlacement", typedef FramePlacementTpl<double> FramePlacement;)
378 DEPRECATED("Do not use FrameMotion", typedef FrameMotionTpl<double> FrameMotion;)
379 DEPRECATED("Do not use FrameForce", typedef FrameForceTpl<double> FrameForce;)
380 DEPRECATED("Do not use FrameFrictionCone", typedef FrameFrictionConeTpl<double> FrameFrictionCone;)
381 DEPRECATED("Do not use FrameWrenchCone", typedef FrameWrenchConeTpl<double> FrameWrenchCone;)
382 DEPRECATED("Do not use FrameCopSupport", typedef FrameCoPSupportTpl<double> FrameCoPSupport;)
383 
412 
413 #ifdef PINOCCHIO_WITH_HPP_FCL
414 typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
415 typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
416 #endif
417 
418 DEPRECATED("Use ResidualModelFrameTranslation with CostModelResidual",
419  typedef CostModelFrameTranslationTpl<double> CostModelFrameTranslation;)
420 DEPRECATED("Use ResidualDataFrameTranslation", typedef CostDataResidualTpl<double> CostDataFrameTranslation;)
421 DEPRECATED("Use ResidualModelCentroidalMomentum with CostModelResidual",
423 DEPRECATED("Use ResidualDataCentroidalMomentum", typedef CostDataResidualTpl<double> CostDataCentroidalMomentum;)
424 DEPRECATED("Use ResidualModelCoMPosition with CostModelResidual",
425  typedef CostModelCoMPositionTpl<double> CostModelCoMPosition;)
426 DEPRECATED("Use ResidualDataCoMPosition", typedef CostDataResidualTpl<double> CostDataCoMPosition;)
427 DEPRECATED("Use ResidualModelFramePlacement with CostModelResidual",
429 DEPRECATED("Use ResidualDataFramePlacement", typedef CostDataResidualTpl<double> CostDataFramePlacement;)
430 DEPRECATED("Use ResidualModelImpulseCoM with CostModelResidual",
431  typedef CostModelImpulseCoMTpl<double> CostModelImpulseCoM;)
432 DEPRECATED("Use ResidualDataImpulseCoM", typedef CostDataResidualTpl<double> CostDataImpulseCoM;)
433 DEPRECATED("Use ResidualModelState with CostModelResidual", typedef CostModelStateTpl<double> CostModelState;)
434 DEPRECATED("Use ResidualDataState", typedef CostDataResidualTpl<double> CostDataState;)
435 DEPRECATED("Use ResidualModelControlGrav with CostModelResidual",
437 DEPRECATED("Use ResidualDataControlGrav", typedef CostDataResidualTpl<double> CostDataControlGrav;)
438 DEPRECATED("Use ResidualModelContactControlGrav with CostModelResidual",
439  typedef CostModelControlGravContactTpl<double> CostModelControlGravContact;)
440 DEPRECATED("Use ResidualDataContactControlGrav", typedef CostDataResidualTpl<double> CostDataControlGravContact;)
441 DEPRECATED("Use ResidualModelFrameVelocity with CostModelResidual",
443 DEPRECATED("Use ResidualDataFrameVelocity", typedef CostDataResidualTpl<double> CostDataFrameVelocity;)
444 DEPRECATED("Use ResidualModelFrameRotation with CostModelResidual",
445  typedef CostModelFrameRotationTpl<double> CostModelFrameRotation;)
446 DEPRECATED("Use ResidualDataFrameRotation", typedef CostDataResidualTpl<double> CostDataFrameRotation;)
447 DEPRECATED("Use ResidualModelCoPPosition with CostModelResidual",
449 DEPRECATED("Use ResidualDataCoPPosition", typedef CostDataResidualTpl<double> CostDataContactCoPPosition;)
450 DEPRECATED("Use ResidualModelContactFrictionCone with CostModelResidual",
451  typedef CostModelContactFrictionConeTpl<double> CostModelContactFrictionCone;)
452 DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataContactFrictionCone;)
453 DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
455 DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataContactWrenchCone;)
456 DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
457  typedef CostModelContactForceTpl<double> CostModelContactForce;)
458 DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactForce;)
459 DEPRECATED("Use ResidualModelContactForce with CostModelResidual",
461 DEPRECATED("Use ResidualDataContactForce", typedef CostDataResidualTpl<double> CostDataContactImpulse;)
462 DEPRECATED("Use ResidualModelFrictionCone with CostModelResidual",
463  typedef CostModelImpulseFrictionConeTpl<double> CostModelImpulseFrictionCone;)
464 DEPRECATED("Use ResidualDataContactFrictionCone", typedef CostDataResidualTpl<double> CostDataImpulseFrictionCone;)
465 DEPRECATED("Use ResidualModelContactCoPPosition with CostModelResidual",
467 DEPRECATED("Use ResidualDataContactCoPPosition", typedef CostDataResidualTpl<double> CostDataImpulseCoPPosition;)
468 DEPRECATED("Use ResidualModelContactWrenchCone with CostModelResidual",
469  typedef CostModelImpulseWrenchConeTpl<double> CostModelImpulseWrenchCone;)
470 DEPRECATED("Use ResidualDataContactWrenchCone", typedef CostDataResidualTpl<double> CostDataImpulseWrenchCone;)
471 
472 typedef ImpulseModelAbstractTpl<double> ImpulseModelAbstract;
474 
475 enum ContactType { ContactUndefined, Contact1D, Contact2D, Contact3D, Contact6D };
476 enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
477 
489 
491 
499 
507 
508 } // namespace crocoddyl
509 
510 #endif // CROCODDYL_MULTIBODY_FWD_HPP_
Centroidal momentum residual.
Definition: fwd.hpp:92
Define a stack of contact models.
Action model for impulse forward dynamics in multibody systems.
This class encapsulates a friction cone.
This class encapsulates a wrench cone.
Definition: fwd.hpp:297
Define a contact impulse cost function.
CoM position residual.
Definition: fwd.hpp:97
This class encapsulates a center of pressure support of a 6d contact.
Definition: cop-support.hpp:25
Define a contact force cost function.
Frame velocity residual.
Definition: fwd.hpp:147
Define the multi-impulse data.
Definition: fwd.hpp:345
Differential action model for contact forward dynamics in multibody systems.
Define a contact force residual function.
Definition: fwd.hpp:102
Full actuation model.
Definition: full.hpp:28
State multibody representation.
Definition: fwd.hpp:305
Differential action model for free forward dynamics in multibody systems.
Definition: free-fwddyn.hpp:50
Frame translation residual.
Definition: fwd.hpp:142
Center of pressure residual function.
Definition: fwd.hpp:112
Frame rotation residual.
Definition: fwd.hpp:137
This class computes the numerical differentiation of a cost model.
Definition: cost.hpp:29
Define the multi-contact data.
Define a stack of impulse models.
Definition: fwd.hpp:343
Frame placement residual.
Definition: fwd.hpp:132
Impulse CoM residual.
Definition: fwd.hpp:152
Floating-base actuation model.
Contact wrench cone residual function.
Definition: fwd.hpp:117
Contact friction cone residual.
Definition: fwd.hpp:107
Control gravity residual under contact.
Definition: fwd.hpp:122
Define a center of pressure cost function.
Control gravity residual.
Definition: fwd.hpp:127
Define a center of pressure cost function.