10#ifndef CROCODDYL_MULTIBODY_FWD_HPP_
11#define CROCODDYL_MULTIBODY_FWD_HPP_
13#include "crocoddyl/core/costs/residual.hpp"
14#include "crocoddyl/multibody/pch.hpp"
19template <
typename Scalar>
20class ActuationModelFloatingBaseTpl;
22template <
typename Scalar>
23class ActuationModelFullTpl;
25template <
typename Scalar>
28template <
typename Scalar>
29class ActuationModelFloatingBaseThrustersTpl;
32template <
typename Scala>
33struct ForceDataAbstractTpl;
36template <
typename Scalar>
37class ContactModelAbstractTpl;
38template <
typename Scalar>
39struct ContactDataAbstractTpl;
42template <
typename Scalar>
43class ActionModelImpulseFwdDynamicsTpl;
44template <
typename Scalar>
45struct ActionDataImpulseFwdDynamicsTpl;
48template <
typename Scalar>
49class DifferentialActionModelFreeFwdDynamicsTpl;
50template <
typename Scalar>
51struct DifferentialActionDataFreeFwdDynamicsTpl;
53template <
typename Scalar>
54class DifferentialActionModelFreeInvDynamicsTpl;
55template <
typename Scalar>
56struct DifferentialActionDataFreeInvDynamicsTpl;
58template <
typename Scalar>
59class DifferentialActionModelContactFwdDynamicsTpl;
60template <
typename Scalar>
61struct DifferentialActionDataContactFwdDynamicsTpl;
63template <
typename Scalar>
64class DifferentialActionModelContactInvDynamicsTpl;
65template <
typename Scalar>
66struct DifferentialActionDataContactInvDynamicsTpl;
69template <
typename Scalar>
70class CostModelNumDiffTpl;
71template <
typename Scalar>
72struct CostDataNumDiffTpl;
74template <
typename Scalar>
75class ContactModelNumDiffTpl;
76template <
typename Scalar>
77struct ContactDataNumDiffTpl;
80template <
typename Scalar>
81class ResidualModelCentroidalMomentumTpl;
82template <
typename Scalar>
83struct ResidualDataCentroidalMomentumTpl;
85template <
typename Scalar>
86class ResidualModelCoMPositionTpl;
87template <
typename Scalar>
88struct ResidualDataCoMPositionTpl;
90template <
typename Scalar>
91class ResidualModelContactForceTpl;
92template <
typename Scalar>
93struct ResidualDataContactForceTpl;
95template <
typename Scalar>
96class ResidualModelContactFrictionConeTpl;
97template <
typename Scalar>
98struct ResidualDataContactFrictionConeTpl;
100template <
typename Scalar>
101class ResidualModelContactCoPPositionTpl;
102template <
typename Scalar>
103struct ResidualDataContactCoPPositionTpl;
105template <
typename Scalar>
106class ResidualModelContactWrenchConeTpl;
107template <
typename Scalar>
108struct ResidualDataContactWrenchConeTpl;
110template <
typename Scalar>
111class ResidualModelContactControlGravTpl;
112template <
typename Scalar>
113struct ResidualDataContactControlGravTpl;
115template <
typename Scalar>
116class ResidualModelControlGravTpl;
117template <
typename Scalar>
118struct ResidualDataControlGravTpl;
120template <
typename Scalar>
121class ResidualModelFramePlacementTpl;
122template <
typename Scalar>
123struct ResidualDataFramePlacementTpl;
125template <
typename Scalar>
126class ResidualModelFrameRotationTpl;
127template <
typename Scalar>
128struct ResidualDataFrameRotationTpl;
130template <
typename Scalar>
131class ResidualModelFrameTranslationTpl;
132template <
typename Scalar>
133struct ResidualDataFrameTranslationTpl;
135template <
typename Scalar>
136class ResidualModelFrameVelocityTpl;
137template <
typename Scalar>
138struct ResidualDataFrameVelocityTpl;
140template <
typename Scalar>
141class ResidualModelImpulseCoMTpl;
142template <
typename Scalar>
143struct ResidualDataImpulseCoMTpl;
145template <
typename Scalar>
146class ResidualModelStateTpl;
147template <
typename Scalar>
150#ifdef PINOCCHIO_WITH_HPP_FCL
151template <
typename Scalar>
152class ResidualModelPairCollisionTpl;
153template <
typename Scalar>
154struct ResidualDataPairCollisionTpl;
158template <
typename Scalar>
160template <
typename Scalar>
164template <
typename Scalar>
166template <
typename Scalar>
168template <
typename Scalar>
171template <
typename Scalar>
173template <
typename Scalar>
176template <
typename Scalar>
178template <
typename Scalar>
181template <
typename Scalar>
183template <
typename Scalar>
186template <
typename Scalar>
188template <
typename Scalar>
192template <
typename Scalar>
194template <
typename Scalar>
198template <
typename Scalar>
202template <
typename Scalar>
206template <
typename Scalar>
209template <
typename Scalar>
212template <
typename Scalar>
215template <
typename Scalar>
218template <
typename Scalar>
221template <
typename Scalar>
224template <
typename Scalar>
227template <
typename Scalar>
230template <
typename Scalar>
234template <
typename Scalar>
236template <
typename Scalar>
239template <
typename Scalar>
241template <
typename Scalar>
244template <
typename Scalar>
246template <
typename Scalar>
248template <
typename Scalar>
331#ifdef PINOCCHIO_WITH_HPP_FCL
332typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
333typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
346enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
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;
360typedef StateMultibodyTpl<double> StateMultibody;
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;
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;
Action model for impulse forward dynamics in multibody systems.
Actuation models for floating base systems actuated with thrusters.
Floating-base actuation model.
This class encapsulates a center of pressure support of a 6d contact.
This class computes the numerical differentiation of a cost model.
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.
Centroidal momentum residual.
Control gravity residual.
Frame placement residual.
Frame translation residual.
State multibody representation.
This class encapsulates a wrench cone.
Define the multi-impulse data.