crocoddyl  1.7.0
Contact RObot COntrol by Differential DYnamic programming Library (Crocoddyl)
fwd.hpp
1 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2020, LAAS-CNRS, University of Edinburgh
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 namespace crocoddyl {
13 
14 // actuation
15 template <typename Scalar>
16 class ActuationModelFloatingBaseTpl;
17 
18 template <typename Scalar>
19 class ActuationModelFullTpl;
20 
21 template <typename Scalar>
22 class ActuationModelMultiCopterBaseTpl;
23 
24 // contact
25 template <typename Scalar>
26 class ContactModelAbstractTpl;
27 template <typename Scalar>
28 struct ContactDataAbstractTpl;
29 
30 // action
31 template <typename Scalar>
32 class ActionModelImpulseFwdDynamicsTpl;
33 template <typename Scalar>
34 struct ActionDataImpulseFwdDynamicsTpl;
35 
36 // differential action
37 template <typename Scalar>
38 class DifferentialActionModelFreeFwdDynamicsTpl;
39 template <typename Scalar>
40 struct DifferentialActionDataFreeFwdDynamicsTpl;
41 
42 template <typename Scalar>
43 class DifferentialActionModelContactFwdDynamicsTpl;
44 template <typename Scalar>
45 struct DifferentialActionDataContactFwdDynamicsTpl;
46 
47 // numdiff
48 template <typename Scalar>
49 class CostModelNumDiffTpl;
50 template <typename Scalar>
51 struct CostDataNumDiffTpl;
52 
53 template <typename Scalar>
55 template <typename Scalar>
57 
58 // frame
59 template <typename Scalar>
60 struct FrameTranslationTpl;
61 
62 template <typename Scalar>
63 struct FrameRotationTpl;
64 
65 template <typename Scalar>
66 struct FramePlacementTpl;
67 
68 template <typename Scalar>
69 struct FrameMotionTpl;
70 
71 template <typename Scalar>
72 struct FrameForceTpl;
73 
74 template <typename Scalar>
76 
77 template <typename Scalar>
78 struct FrameWrenchConeTpl;
79 
80 template <typename Scalar>
81 struct FrameCoPSupportTpl;
82 
83 // cost
84 template <typename Scalar>
86 template <typename Scalar>
88 
89 template <typename Scalar>
91 template <typename Scalar>
93 
94 template <typename Scalar>
96 template <typename Scalar>
98 
99 template <typename Scalar>
101 template <typename Scalar>
103 
104 template <typename Scalar>
106 template <typename Scalar>
107 struct CostDataImpulseCoMTpl;
108 
109 template <typename Scalar>
110 class CostModelStateTpl;
111 template <typename Scalar>
112 struct CostDataStateTpl;
113 
114 template <typename Scalar>
116 template <typename Scalar>
118 
119 template <typename Scalar>
121 template <typename Scalar>
123 
124 template <typename Scalar>
126 template <typename Scalar>
128 
129 template <typename Scalar>
131 template <typename Scalar>
133 
134 template <typename Scalar>
136 template <typename Scalar>
138 
139 template <typename Scalar>
141 template <typename Scalar>
143 
144 template <typename Scalar>
146 template <typename Scalar>
148 
149 template <typename Scalar>
151 template <typename Scalar>
153 
154 template <typename Scalar>
156 template <typename Scalar>
158 
159 template <typename Scalar>
161 template <typename Scalar>
163 
164 template <typename Scalar>
166 template <typename Scalar>
168 
169 template <typename Scalar>
171 template <typename Scalar>
173 
174 // impulse
175 template <typename Scalar>
177 template <typename Scalar>
179 
180 // contact
181 template <typename Scalar>
182 struct ContactItemTpl;
183 template <typename Scalar>
185 template <typename Scalar>
187 
188 template <typename Scalar>
189 class ContactModel2DTpl;
190 template <typename Scalar>
191 struct ContactData2DTpl;
192 
193 template <typename Scalar>
194 class ContactModel3DTpl;
195 template <typename Scalar>
196 struct ContactData3DTpl;
197 
198 template <typename Scalar>
199 class ContactModel6DTpl;
200 template <typename Scalar>
201 struct ContactData6DTpl;
202 
203 // friction
204 template <typename Scalar>
205 class FrictionConeTpl;
206 template <typename Scalar>
208 
209 // cop support
210 template <typename Scalar>
211 class CoPSupportTpl;
212 
213 // state
214 template <typename Scalar>
216 
217 // data collector
218 template <typename Scalar>
220 
221 template <typename Scalar>
223 
224 template <typename Scalar>
226 
227 template <typename Scalar>
229 
230 template <typename Scalar>
232 
233 template <typename Scalar>
235 
236 template <typename Scalar>
238 
239 // impulse
240 template <typename Scalar>
242 template <typename Scalar>
244 
245 template <typename Scalar>
247 template <typename Scalar>
249 
250 template <typename Scalar>
252 template <typename Scalar>
254 template <typename Scalar>
256 
257 /*******************************Template Instantiation**************************/
258 
262 
265 
268 
273 
278 
282 
291 
328 
331 
332 enum ContactType { Contact2D, Contact3D, Contact6D, ContactUndefined };
333 enum ImpulseType { Impulse3D, Impulse6D, ImpulseUndefined };
334 
335 typedef ContactItemTpl<double> ContactItem;
336 typedef ContactModelMultipleTpl<double> ContactModelMultiple;
337 typedef ContactDataMultipleTpl<double> ContactDataMultiple;
338 typedef ContactModel2DTpl<double> ContactModel2D;
339 typedef ContactData2DTpl<double> ContactData2D;
340 typedef ContactModel3DTpl<double> ContactModel3D;
341 typedef ContactData3DTpl<double> ContactData3D;
342 typedef ContactModel6DTpl<double> ContactModel6D;
343 typedef ContactData6DTpl<double> ContactData6D;
344 
345 typedef StateMultibodyTpl<double> StateMultibody;
346 
347 typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
348 typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
349 typedef DataCollectorContactTpl<double> DataCollectorContact;
350 typedef DataCollectorMultibodyInContactTpl<double> DataCollectorMultibodyInContact;
351 typedef DataCollectorActMultibodyInContactTpl<double> DataCollectorActMultibodyInContact;
352 typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
353 typedef DataCollectorMultibodyInImpulseTpl<double> DataCollectorMultibodyInImpulse;
354 
355 typedef ImpulseModel6DTpl<double> ImpulseModel6D;
356 typedef ImpulseData6DTpl<double> ImpulseData6D;
357 typedef ImpulseModel3DTpl<double> ImpulseModel3D;
358 typedef ImpulseData3DTpl<double> ImpulseData3D;
359 typedef ImpulseItemTpl<double> ImpulseItem;
360 typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
361 typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
362 
363 } // namespace crocoddyl
364 
365 #endif // CROCODDYL_MULTIBODY_FWD_HPP_
crocoddyl::CostDataFramePlacementTpl
Definition: frame-placement.hpp:154
crocoddyl::CostDataContactImpulseTpl
Definition: contact-impulse.hpp:152
crocoddyl::CostModelContactFrictionConeTpl
Contact friction cone cost.
Definition: contact-friction-cone.hpp:49
crocoddyl::ActionModelImpulseFwdDynamicsTpl
Definition: impulse-fwddyn.hpp:34
crocoddyl::ImpulseDataAbstractTpl
Definition: fwd.hpp:178
crocoddyl::CostModelNumDiffTpl
Definition: cost.hpp:20
crocoddyl::DataCollectorImpulseTpl
Definition: impulses.hpp:21
crocoddyl::CostDataFrameTranslationTpl
Definition: frame-translation.hpp:153
crocoddyl::FrameCoPSupportTpl
Definition: frames.hpp:261
crocoddyl::CostModelFramePlacementTpl
Frame placement cost.
Definition: frame-placement.hpp:39
crocoddyl::DifferentialActionDataContactFwdDynamicsTpl
Definition: contact-fwddyn.hpp:96
crocoddyl::CostModelStateTpl
State cost.
Definition: state.hpp:39
crocoddyl::ContactModelNumDiffTpl
Definition: fwd.hpp:54
crocoddyl::CostDataImpulseWrenchConeTpl
Definition: impulse-wrench-cone.hpp:66
crocoddyl::CostModelFrameRotationTpl
Frame rotation cost.
Definition: frame-rotation.hpp:39
crocoddyl::CostDataCoMPositionTpl
Definition: com-position.hpp:145
crocoddyl::DataCollectorContactTpl
Definition: contacts.hpp:21
crocoddyl::ImpulseModel3DTpl
Definition: fwd.hpp:246
crocoddyl::CostDataImpulseFrictionConeTpl
Definition: impulse-friction-cone.hpp:135
crocoddyl::ActuationModelMultiCopterBaseTpl
Multicopter actuation model.
Definition: multicopter-base.hpp:39
crocoddyl::CostModelFrameTranslationTpl
Frame translation cost.
Definition: frame-translation.hpp:40
crocoddyl::CostDataNumDiffTpl
Definition: cost.hpp:128
crocoddyl::FrameTranslationTpl
Definition: frames.hpp:28
crocoddyl::ContactData2DTpl
Definition: contact-2d.hpp:66
crocoddyl::ContactItemTpl
Definition: multiple-contacts.hpp:23
crocoddyl::ContactModelAbstractTpl
Definition: contact-base.hpp:23
crocoddyl::ContactModel2DTpl
Definition: contact-2d.hpp:25
crocoddyl::CostModelContactImpulseTpl
Define a contact impulse cost function.
Definition: contact-impulse.hpp:44
crocoddyl::CostDataImpulseCoMTpl
Definition: impulse-com.hpp:110
crocoddyl::CostModelContactForceTpl
Define a contact force cost function.
Definition: contact-force.hpp:44
crocoddyl::ImpulseDataMultipleTpl
Define the multi-impulse data.
Definition: fwd.hpp:255
crocoddyl::FrameRotationTpl
Definition: frames.hpp:62
crocoddyl::ImpulseModelMultipleTpl
Define a stack of impulse models.
Definition: fwd.hpp:253
crocoddyl::FramePlacementTpl
Definition: frames.hpp:94
crocoddyl::CostModelImpulseCoPPositionTpl
Define a center of pressure cost function.
Definition: impulse-cop-position.hpp:58
crocoddyl::CostDataContactCoPPositionTpl
Definition: contact-cop-position.hpp:187
crocoddyl::ContactData6DTpl
Definition: contact-6d.hpp:63
crocoddyl::ImpulseData6DTpl
Definition: fwd.hpp:243
crocoddyl::DifferentialActionModelContactFwdDynamicsTpl
Definition: contact-fwddyn.hpp:25
crocoddyl::DataCollectorMultibodyInImpulseTpl
Definition: impulses.hpp:32
crocoddyl::CostModelControlGravTpl
Control gravity cost.
Definition: control-gravity.hpp:36
crocoddyl::CostModelFrameVelocityTpl
Frame velocity cost.
Definition: frame-velocity.hpp:40
crocoddyl::StateMultibodyTpl
State multibody representation.
Definition: fwd.hpp:215
crocoddyl::DifferentialActionModelFreeFwdDynamicsTpl
Definition: free-fwddyn.hpp:29
crocoddyl::CostModelImpulseWrenchConeTpl
Definition: impulse-wrench-cone.hpp:26
crocoddyl::ActionDataImpulseFwdDynamicsTpl
Definition: impulse-fwddyn.hpp:101
crocoddyl::CostModelCoMPositionTpl
CoM position cost.
Definition: com-position.hpp:38
crocoddyl::FrictionConeTpl
This class encapsulates a friction cone.
Definition: friction-cone.hpp:27
crocoddyl::ContactDataAbstractTpl
Definition: contact-base.hpp:60
crocoddyl::CostDataStateTpl
Definition: state.hpp:195
crocoddyl::ContactDataMultipleTpl
Define the multi-contact data.
Definition: multiple-contacts.hpp:228
crocoddyl::WrenchConeTpl
This class encapsulates a wrench cone.
Definition: fwd.hpp:207
crocoddyl::CostDataFrameRotationTpl
Definition: frame-rotation.hpp:157
crocoddyl::ContactDataNumDiffTpl
Definition: fwd.hpp:56
crocoddyl::CostModelImpulseFrictionConeTpl
Impulse friction cone cost.
Definition: impulse-friction-cone.hpp:49
crocoddyl::DataCollectorMultibodyInContactTpl
Definition: contacts.hpp:32
crocoddyl::CoPSupportTpl
This class encapsulates a center of pressure support of a 6d contact.
Definition: cop-support.hpp:25
crocoddyl::CostDataControlGravContactTpl
Definition: control-gravity-contact.hpp:135
crocoddyl::CostDataImpulseCoPPositionTpl
Definition: impulse-cop-position.hpp:157
crocoddyl::DifferentialActionDataFreeFwdDynamicsTpl
Definition: free-fwddyn.hpp:84
crocoddyl::CostModelContactCoPPositionTpl
Define a center of pressure cost function.
Definition: contact-cop-position.hpp:57
crocoddyl::CostModelCentroidalMomentumTpl
Centroidal momentum cost.
Definition: centroidal-momentum.hpp:38
crocoddyl::CostDataContactForceTpl
Definition: contact-force.hpp:184
crocoddyl::CostDataContactWrenchConeTpl
Definition: contact-wrench-cone.hpp:73
crocoddyl::CostDataContactFrictionConeTpl
Definition: contact-friction-cone.hpp:161
crocoddyl::ActuationModelFullTpl
Full actuation model.
Definition: full.hpp:28
crocoddyl::ImpulseItemTpl
Definition: fwd.hpp:251
crocoddyl::ImpulseData3DTpl
Definition: fwd.hpp:248
crocoddyl::CostModelContactWrenchConeTpl
Definition: contact-wrench-cone.hpp:26
crocoddyl::CostDataFrameVelocityTpl
Definition: frame-velocity.hpp:152
crocoddyl::ImpulseModel6DTpl
Definition: fwd.hpp:241
crocoddyl::ActuationModelFloatingBaseTpl
Definition: floating-base.hpp:19
crocoddyl::CostDataCentroidalMomentumTpl
Definition: centroidal-momentum.hpp:151
crocoddyl::CostModelImpulseCoMTpl
Impulse CoM cost.
Definition: impulse-com.hpp:40
crocoddyl::FrameFrictionConeTpl
Definition: frames.hpp:207
crocoddyl::CostDataControlGravTpl
Definition: control-gravity.hpp:131
crocoddyl::ContactData3DTpl
Definition: contact-3d.hpp:66
crocoddyl::FrameForceTpl
Definition: frames.hpp:175
crocoddyl::ContactModel3DTpl
Definition: contact-3d.hpp:25
crocoddyl::ContactModelMultipleTpl
Define a stack of contact models.
Definition: multiple-contacts.hpp:46
crocoddyl::FrameMotionTpl
Definition: frames.hpp:127
crocoddyl::CostModelControlGravContactTpl
Control gravity cost.
Definition: control-gravity-contact.hpp:41
crocoddyl::DataCollectorActMultibodyTpl
Definition: multibody.hpp:31
crocoddyl::FrameWrenchConeTpl
Definition: frames.hpp:234
crocoddyl::DataCollectorMultibodyTpl
Definition: multibody.hpp:21
crocoddyl::DataCollectorActMultibodyInContactTpl
Definition: contacts.hpp:42
crocoddyl::ImpulseModelAbstractTpl
Definition: fwd.hpp:176
crocoddyl::ContactModel6DTpl
Definition: contact-6d.hpp:22