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>
20class ActuationModelFloatingBaseTpl;
21
22template <typename Scalar>
23class ActuationModelFullTpl;
24
25template <typename Scalar>
26struct ThrusterTpl;
27
28template <typename Scalar>
29class ActuationModelFloatingBaseThrustersTpl;
30
31// force
32template <typename Scala>
33struct ForceDataAbstractTpl;
34
35// contact
36template <typename Scalar>
37class ContactModelAbstractTpl;
38template <typename Scalar>
39struct ContactDataAbstractTpl;
40
41// action
42template <typename Scalar>
43class ActionModelImpulseFwdDynamicsTpl;
44template <typename Scalar>
45struct ActionDataImpulseFwdDynamicsTpl;
46
47// differential action
48template <typename Scalar>
49class DifferentialActionModelFreeFwdDynamicsTpl;
50template <typename Scalar>
51struct DifferentialActionDataFreeFwdDynamicsTpl;
52
53template <typename Scalar>
54class DifferentialActionModelFreeInvDynamicsTpl;
55template <typename Scalar>
56struct DifferentialActionDataFreeInvDynamicsTpl;
57
58template <typename Scalar>
59class DifferentialActionModelContactFwdDynamicsTpl;
60template <typename Scalar>
61struct DifferentialActionDataContactFwdDynamicsTpl;
62
63template <typename Scalar>
64class DifferentialActionModelContactInvDynamicsTpl;
65template <typename Scalar>
66struct DifferentialActionDataContactInvDynamicsTpl;
67
68// numdiff
69template <typename Scalar>
70class CostModelNumDiffTpl;
71template <typename Scalar>
72struct CostDataNumDiffTpl;
73
74template <typename Scalar>
75class ContactModelNumDiffTpl;
76template <typename Scalar>
77struct ContactDataNumDiffTpl;
78
79// residual
80template <typename Scalar>
81class ResidualModelCentroidalMomentumTpl;
82template <typename Scalar>
83struct ResidualDataCentroidalMomentumTpl;
84
85template <typename Scalar>
86class ResidualModelCoMPositionTpl;
87template <typename Scalar>
88struct ResidualDataCoMPositionTpl;
89
90template <typename Scalar>
91class ResidualModelContactForceTpl;
92template <typename Scalar>
93struct ResidualDataContactForceTpl;
94
95template <typename Scalar>
96class ResidualModelContactFrictionConeTpl;
97template <typename Scalar>
98struct ResidualDataContactFrictionConeTpl;
99
100template <typename Scalar>
101class ResidualModelContactCoPPositionTpl;
102template <typename Scalar>
103struct ResidualDataContactCoPPositionTpl;
104
105template <typename Scalar>
106class ResidualModelContactWrenchConeTpl;
107template <typename Scalar>
108struct ResidualDataContactWrenchConeTpl;
109
110template <typename Scalar>
111class ResidualModelContactControlGravTpl;
112template <typename Scalar>
113struct ResidualDataContactControlGravTpl;
114
115template <typename Scalar>
116class ResidualModelControlGravTpl;
117template <typename Scalar>
118struct ResidualDataControlGravTpl;
119
120template <typename Scalar>
121class ResidualModelFramePlacementTpl;
122template <typename Scalar>
123struct ResidualDataFramePlacementTpl;
124
125template <typename Scalar>
126class ResidualModelFrameRotationTpl;
127template <typename Scalar>
128struct ResidualDataFrameRotationTpl;
129
130template <typename Scalar>
131class ResidualModelFrameTranslationTpl;
132template <typename Scalar>
133struct ResidualDataFrameTranslationTpl;
134
135template <typename Scalar>
136class ResidualModelFrameVelocityTpl;
137template <typename Scalar>
138struct ResidualDataFrameVelocityTpl;
139
140template <typename Scalar>
141class ResidualModelImpulseCoMTpl;
142template <typename Scalar>
143struct ResidualDataImpulseCoMTpl;
144
145template <typename Scalar>
146class ResidualModelStateTpl;
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
258
260
263
266
283
288
292
330
331#ifdef PINOCCHIO_WITH_HPP_FCL
332typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
333typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
334#endif
335
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.