Crocoddyl
Loading...
Searching...
No Matches
fwd.hpp
1
2// BSD 3-Clause License
3//
4// Copyright (C) 2019-2026, 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/multibody/pch.hpp"
15
16namespace crocoddyl {
17
18// actuation
19template <typename Scalar>
21
22template <typename Scalar>
24
25template <typename Scalar>
26struct ThrusterTpl;
27
28template <typename Scalar>
30
31// force
32template <typename Scala>
34
35// contact
36template <typename Scalar>
38template <typename Scalar>
40
41// action
42template <typename Scalar>
44template <typename Scalar>
46
47// differential action
48template <typename Scalar>
50template <typename Scalar>
52
53template <typename Scalar>
55template <typename Scalar>
57
58template <typename Scalar>
60template <typename Scalar>
62
63template <typename Scalar>
65template <typename Scalar>
67
68// numdiff
69template <typename Scalar>
71template <typename Scalar>
73
74template <typename Scalar>
76template <typename Scalar>
78
79// residual
80template <typename Scalar>
82template <typename Scalar>
84
85template <typename Scalar>
87template <typename Scalar>
89
90template <typename Scalar>
92template <typename Scalar>
94
95template <typename Scalar>
97template <typename Scalar>
99
100template <typename Scalar>
102template <typename Scalar>
104
105template <typename Scalar>
107template <typename Scalar>
109
110template <typename Scalar>
112template <typename Scalar>
114
115template <typename Scalar>
117template <typename Scalar>
119
120template <typename Scalar>
122template <typename Scalar>
124
125template <typename Scalar>
127template <typename Scalar>
129
130template <typename Scalar>
132template <typename Scalar>
134
135template <typename Scalar>
137template <typename Scalar>
139
140template <typename Scalar>
142template <typename Scalar>
144
145template <typename Scalar>
147template <typename Scalar>
149
150#ifdef PINOCCHIO_WITH_HPP_FCL
151template <typename Scalar>
152class ResidualModelPairCollisionTpl;
153template <typename Scalar>
154struct ResidualDataPairCollisionTpl;
155#endif
156
157// task
158template <typename Scalar>
160template <typename Scalar>
162
163template <typename Scalar>
165template <typename Scalar>
167
168template <typename Scalar>
170template <typename Scalar>
172
173template <typename Scalar>
175template <typename Scalar>
177
178template <typename Scalar>
180template <typename Scalar>
182
183template <typename Scalar>
185template <typename Scalar>
187
188// impulse
189template <typename Scalar>
191template <typename Scalar>
193
194// contact
195template <typename Scalar>
196struct ContactItemTpl;
197template <typename Scalar>
199template <typename Scalar>
201
202template <typename Scalar>
204template <typename Scalar>
205struct ContactData1DTpl;
206
207template <typename Scalar>
209template <typename Scalar>
210struct ContactData2DTpl;
211
212template <typename Scalar>
214template <typename Scalar>
215struct ContactData3DTpl;
216
217template <typename Scalar>
219template <typename Scalar>
220struct ContactData6DTpl;
221
222// friction
223template <typename Scalar>
224class FrictionConeTpl;
225template <typename Scalar>
226class WrenchConeTpl;
227
228// cop support
229template <typename Scalar>
230class CoPSupportTpl;
231
232// state
233template <typename Scalar>
235
236// data collector
237template <typename Scalar>
239
240template <typename Scalar>
242
243template <typename Scalar>
245
246template <typename Scalar>
248
249template <typename Scalar>
251
252template <typename Scalar>
254
255template <typename Scalar>
257
258template <typename Scalar>
260
261template <typename Scalar>
263
264// impulse
265template <typename Scalar>
267template <typename Scalar>
268struct ImpulseData6DTpl;
269
270template <typename Scalar>
272template <typename Scalar>
273struct ImpulseData3DTpl;
274
275template <typename Scalar>
276struct ImpulseItemTpl;
277template <typename Scalar>
279template <typename Scalar>
281
282/**** Template Instantiation ****/
283
284typedef ActuationModelFloatingBaseTpl<double> ActuationModelFloatingBase;
285typedef ActuationModelFullTpl<double> ActuationModelFull;
286typedef ThrusterTpl<double> Thruster;
288 ActuationModelFloatingBaseThrusters;
289
290typedef ForceDataAbstractTpl<double> ForceDataAbstract;
291
292typedef ContactModelAbstractTpl<double> ContactModelAbstract;
293typedef ContactDataAbstractTpl<double> ContactDataAbstract;
294
295typedef ActionModelImpulseFwdDynamicsTpl<double> ActionModelImpulseFwdDynamics;
296typedef ActionDataImpulseFwdDynamicsTpl<double> ActionDataImpulseFwdDynamics;
297
299 DifferentialActionModelFreeFwdDynamics;
301 DifferentialActionDataFreeFwdDynamics;
303 DifferentialActionModelFreeInvDynamics;
305 DifferentialActionDataFreeInvDynamics;
307 DifferentialActionModelContactFwdDynamics;
309 DifferentialActionDataContactFwdDynamics;
311 DifferentialActionModelContactInvDynamics;
313 DifferentialActionDataContactInvDynamics;
314
315typedef CostModelNumDiffTpl<double> CostModelNumDiff;
316typedef CostDataNumDiffTpl<double> CostDataNumDiff;
317typedef ContactModelNumDiffTpl<double> ContactModelNumDiff;
318typedef ContactDataNumDiffTpl<double> ContactDataNumDiff;
319
320typedef FrictionConeTpl<double> FrictionCone;
321typedef WrenchConeTpl<double> WrenchCone;
322typedef CoPSupportTpl<double> CoPSupport;
323
325 ResidualModelCentroidalMomentum;
327 ResidualDataCentroidalMomentum;
328typedef ResidualModelCoMPositionTpl<double> ResidualModelCoMPosition;
329typedef ResidualDataCoMPositionTpl<double> ResidualDataCoMPosition;
330typedef ResidualModelContactForceTpl<double> ResidualModelContactForce;
331typedef ResidualDataContactForceTpl<double> ResidualDataContactForce;
333 ResidualModelContactFrictionCone;
335 ResidualDataContactFrictionCone;
337 ResidualModelContactCoPPosition;
339 ResidualDataContactCoPPosition;
341 ResidualModelContactWrenchCone;
342typedef ResidualDataContactWrenchConeTpl<double> ResidualDataContactWrenchCone;
344 ResidualModelContactControlGrav;
346 ResidualDataContactControlGrav;
347typedef ResidualModelControlGravTpl<double> ResidualModelControlGrav;
348typedef ResidualDataControlGravTpl<double> ResidualDataControlGrav;
349typedef ResidualModelFramePlacementTpl<double> ResidualModelFramePlacement;
350typedef ResidualDataFramePlacementTpl<double> ResidualDataFramePlacement;
351typedef ResidualModelFrameRotationTpl<double> ResidualModelFrameRotation;
352typedef ResidualDataFrameRotationTpl<double> ResidualDataFrameRotation;
353typedef ResidualModelFrameTranslationTpl<double> ResidualModelFrameTranslation;
354typedef ResidualDataFrameTranslationTpl<double> ResidualDataFrameTranslation;
355typedef ResidualModelFrameVelocityTpl<double> ResidualModelFrameVelocity;
356typedef ResidualDataFrameVelocityTpl<double> ResidualDataFrameVelocity;
357typedef ResidualModelImpulseCoMTpl<double> ResidualModelImpulseCoM;
358typedef ResidualDataImpulseCoMTpl<double> ResidualDataImpulseCoM;
359typedef ResidualModelStateTpl<double> ResidualModelState;
360typedef ResidualDataStateTpl<double> ResidualDataState;
361
362#ifdef PINOCCHIO_WITH_HPP_FCL
363typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
364typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
365#endif
366
367typedef TaskModelCentroidalMomentumTpl<double> TaskModelCentroidalMomentum;
368typedef TaskDataCentroidalMomentumTpl<double> TaskDataCentroidalMomentum;
369typedef TaskModelFrameRotationTpl<double> TaskModelFrameRotation;
370typedef TaskDataFrameRotationTpl<double> TaskDataFrameRotation;
371typedef TaskModelFrameTranslationTpl<double> TaskModelFrameTranslation;
372typedef TaskDataFrameTranslationTpl<double> TaskDataFrameTranslation;
373typedef TaskModelFramePlacementTpl<double> TaskModelFramePlacement;
374typedef TaskDataFramePlacementTpl<double> TaskDataFramePlacement;
375typedef TaskModelCoMPositionTpl<double> TaskModelCoMPosition;
376typedef TaskDataCoMPositionTpl<double> TaskDataCoMPosition;
377typedef TaskModelJointPositionTpl<double> TaskModelJointPosition;
378typedef TaskDataJointPositionTpl<double> TaskDataJointPosition;
379
380typedef ImpulseModelAbstractTpl<double> ImpulseModelAbstract;
381typedef ImpulseDataAbstractTpl<double> ImpulseDataAbstract;
382
383enum ContactType {
384 ContactUndefined,
385 Contact1D,
386 Contact2D,
387 Contact3D,
388 Contact6D
389};
390enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
391
392typedef ContactItemTpl<double> ContactItem;
393typedef ContactModelMultipleTpl<double> ContactModelMultiple;
394typedef ContactDataMultipleTpl<double> ContactDataMultiple;
395typedef ContactModel1DTpl<double> ContactModel1D;
396typedef ContactData1DTpl<double> ContactData1D;
397typedef ContactModel2DTpl<double> ContactModel2D;
398typedef ContactData2DTpl<double> ContactData2D;
399typedef ContactModel3DTpl<double> ContactModel3D;
400typedef ContactData3DTpl<double> ContactData3D;
401typedef ContactModel6DTpl<double> ContactModel6D;
402typedef ContactData6DTpl<double> ContactData6D;
403
404typedef StateMultibodyTpl<double> StateMultibody;
405
406typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
407typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
408typedef DataCollectorJointActMultibodyTpl<double>
409 DataCollectorJointActMultibody;
410typedef DataCollectorContactTpl<double> DataCollectorContact;
411typedef DataCollectorMultibodyInContactTpl<double>
412 DataCollectorMultibodyInContact;
413typedef DataCollectorActMultibodyInContactTpl<double>
414 DataCollectorActMultibodyInContact;
415typedef DataCollectorJointActMultibodyInContactTpl<double>
416 DataCollectorJointActMultibodyInContact;
417typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
418typedef DataCollectorMultibodyInImpulseTpl<double>
419 DataCollectorMultibodyInImpulse;
420
421typedef ImpulseModel6DTpl<double> ImpulseModel6D;
422typedef ImpulseData6DTpl<double> ImpulseData6D;
423typedef ImpulseModel3DTpl<double> ImpulseModel3D;
424typedef ImpulseData3DTpl<double> ImpulseData3D;
425typedef ImpulseItemTpl<double> ImpulseItem;
426typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
427typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
428
429} // namespace crocoddyl
430
431#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:32
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:32
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:34
This class encapsulates a wrench cone.
Define the multi-contact data.
Define the multi-impulse data.
Cached values and derivatives for the centroidal-momentum task.
Cached values and derivatives for the center-of-mass position task.
Cached values and derivatives for the frame-placement task.
Cached values and derivatives for the frame-rotation task.
Cached values and derivatives for the frame-translation task.
Cached values and derivatives for the joint-position task.