Crocoddyl
Loading...
Searching...
No Matches
fwd.hpp
1
2// BSD 3-Clause License
3//
4// Copyright (C) 2019-2025, 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// impulse
158template <typename Scalar>
160template <typename Scalar>
162
163// contact
164template <typename Scalar>
165struct ContactItemTpl;
166template <typename Scalar>
168template <typename Scalar>
170
171template <typename Scalar>
173template <typename Scalar>
174struct ContactData1DTpl;
175
176template <typename Scalar>
178template <typename Scalar>
179struct ContactData2DTpl;
180
181template <typename Scalar>
183template <typename Scalar>
184struct ContactData3DTpl;
185
186template <typename Scalar>
188template <typename Scalar>
189struct ContactData6DTpl;
190
191// friction
192template <typename Scalar>
193class FrictionConeTpl;
194template <typename Scalar>
195class WrenchConeTpl;
196
197// cop support
198template <typename Scalar>
199class CoPSupportTpl;
200
201// state
202template <typename Scalar>
204
205// data collector
206template <typename Scalar>
208
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
233// impulse
234template <typename Scalar>
236template <typename Scalar>
237struct ImpulseData6DTpl;
238
239template <typename Scalar>
241template <typename Scalar>
242struct ImpulseData3DTpl;
243
244template <typename Scalar>
245struct ImpulseItemTpl;
246template <typename Scalar>
248template <typename Scalar>
250
251/**** Template Instantiation ****/
252
253typedef ActuationModelFloatingBaseTpl<double> ActuationModelFloatingBase;
254typedef ActuationModelFullTpl<double> ActuationModelFull;
255typedef ThrusterTpl<double> Thruster;
257 ActuationModelFloatingBaseThrusters;
258
259typedef ForceDataAbstractTpl<double> ForceDataAbstract;
260
261typedef ContactModelAbstractTpl<double> ContactModelAbstract;
262typedef ContactDataAbstractTpl<double> ContactDataAbstract;
263
264typedef ActionModelImpulseFwdDynamicsTpl<double> ActionModelImpulseFwdDynamics;
265typedef ActionDataImpulseFwdDynamicsTpl<double> ActionDataImpulseFwdDynamics;
266
268 DifferentialActionModelFreeFwdDynamics;
270 DifferentialActionDataFreeFwdDynamics;
272 DifferentialActionModelFreeInvDynamics;
274 DifferentialActionDataFreeInvDynamics;
276 DifferentialActionModelContactFwdDynamics;
278 DifferentialActionDataContactFwdDynamics;
280 DifferentialActionModelContactInvDynamics;
282 DifferentialActionDataContactInvDynamics;
283
284typedef CostModelNumDiffTpl<double> CostModelNumDiff;
285typedef CostDataNumDiffTpl<double> CostDataNumDiff;
286typedef ContactModelNumDiffTpl<double> ContactModelNumDiff;
287typedef ContactDataNumDiffTpl<double> ContactDataNumDiff;
288
289typedef FrictionConeTpl<double> FrictionCone;
290typedef WrenchConeTpl<double> WrenchCone;
291typedef CoPSupportTpl<double> CoPSupport;
292
294 ResidualModelCentroidalMomentum;
296 ResidualDataCentroidalMomentum;
297typedef ResidualModelCoMPositionTpl<double> ResidualModelCoMPosition;
298typedef ResidualDataCoMPositionTpl<double> ResidualDataCoMPosition;
299typedef ResidualModelContactForceTpl<double> ResidualModelContactForce;
300typedef ResidualDataContactForceTpl<double> ResidualDataContactForce;
302 ResidualModelContactFrictionCone;
304 ResidualDataContactFrictionCone;
306 ResidualModelContactCoPPosition;
308 ResidualDataContactCoPPosition;
310 ResidualModelContactWrenchCone;
311typedef ResidualDataContactWrenchConeTpl<double> ResidualDataContactWrenchCone;
313 ResidualModelContactControlGrav;
315 ResidualDataContactControlGrav;
316typedef ResidualModelControlGravTpl<double> ResidualModelControlGrav;
317typedef ResidualDataControlGravTpl<double> ResidualDataControlGrav;
318typedef ResidualModelFramePlacementTpl<double> ResidualModelFramePlacement;
319typedef ResidualDataFramePlacementTpl<double> ResidualDataFramePlacement;
320typedef ResidualModelFrameRotationTpl<double> ResidualModelFrameRotation;
321typedef ResidualDataFrameRotationTpl<double> ResidualDataFrameRotation;
322typedef ResidualModelFrameTranslationTpl<double> ResidualModelFrameTranslation;
323typedef ResidualDataFrameTranslationTpl<double> ResidualDataFrameTranslation;
324typedef ResidualModelFrameVelocityTpl<double> ResidualModelFrameVelocity;
325typedef ResidualDataFrameVelocityTpl<double> ResidualDataFrameVelocity;
326typedef ResidualModelImpulseCoMTpl<double> ResidualModelImpulseCoM;
327typedef ResidualDataImpulseCoMTpl<double> ResidualDataImpulseCoM;
328typedef ResidualModelStateTpl<double> ResidualModelState;
329typedef ResidualDataStateTpl<double> ResidualDataState;
330
331#ifdef PINOCCHIO_WITH_HPP_FCL
332typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
333typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
334#endif
335
336typedef ImpulseModelAbstractTpl<double> ImpulseModelAbstract;
337typedef ImpulseDataAbstractTpl<double> ImpulseDataAbstract;
338
339enum ContactType {
340 ContactUndefined,
341 Contact1D,
342 Contact2D,
343 Contact3D,
344 Contact6D
345};
346enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
347
348typedef ContactItemTpl<double> ContactItem;
349typedef ContactModelMultipleTpl<double> ContactModelMultiple;
350typedef ContactDataMultipleTpl<double> ContactDataMultiple;
351typedef ContactModel1DTpl<double> ContactModel1D;
352typedef ContactData1DTpl<double> ContactData1D;
353typedef ContactModel2DTpl<double> ContactModel2D;
354typedef ContactData2DTpl<double> ContactData2D;
355typedef ContactModel3DTpl<double> ContactModel3D;
356typedef ContactData3DTpl<double> ContactData3D;
357typedef ContactModel6DTpl<double> ContactModel6D;
358typedef ContactData6DTpl<double> ContactData6D;
359
360typedef StateMultibodyTpl<double> StateMultibody;
361
362typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
363typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
364typedef DataCollectorJointActMultibodyTpl<double>
365 DataCollectorJointActMultibody;
366typedef DataCollectorContactTpl<double> DataCollectorContact;
367typedef DataCollectorMultibodyInContactTpl<double>
368 DataCollectorMultibodyInContact;
369typedef DataCollectorActMultibodyInContactTpl<double>
370 DataCollectorActMultibodyInContact;
371typedef DataCollectorJointActMultibodyInContactTpl<double>
372 DataCollectorJointActMultibodyInContact;
373typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
374typedef DataCollectorMultibodyInImpulseTpl<double>
375 DataCollectorMultibodyInImpulse;
376
377typedef ImpulseModel6DTpl<double> ImpulseModel6D;
378typedef ImpulseData6DTpl<double> ImpulseData6D;
379typedef ImpulseModel3DTpl<double> ImpulseModel3D;
380typedef ImpulseData3DTpl<double> ImpulseData3D;
381typedef ImpulseItemTpl<double> ImpulseItem;
382typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
383typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
384
385} // namespace crocoddyl
386
387#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:31
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.