pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
generic.hpp
1//
2// Copyright (c) 2021-2024 INRIA
3//
4
5#pragma once
6
7#include "pinocchio/fwd.hpp"
8#include "pinocchio/spatial/fwd.hpp"
9#include "pinocchio/multibody/fwd.hpp"
10#include "pinocchio/multibody/joint/fwd.hpp"
11#include "pinocchio/algorithm/fwd.hpp"
12#include "pinocchio/constraints/fwd.hpp"
13
14#ifdef PINOCCHIO_PYTHON_INTERFACE_WITH_OPENMP
15 #include "pinocchio/multibody/pool/fwd.hpp"
16 #ifdef PINOCCHIO_WITH_COLLISION
17 #include "pinocchio/collision/pool/fwd.hpp"
18 #endif
19#endif
20
21#include <eigenpy/eigen-typedef.hpp>
22
23namespace pinocchio
24{
25 namespace python
26 {
27
28 // Forward declaration
29 boost::python::object getScalarType();
30 void exposeSpecificTypeFeatures();
31
32 namespace context
33 {
34
35 typedef PINOCCHIO_PYTHON_SCALAR_TYPE Scalar;
36 static constexpr int Options = 0;
37
38 // Eigen
39 EIGENPY_MAKE_TYPEDEFS_ALL_SIZES(Scalar, Options, s);
40 typedef Eigen::SparseMatrix<Scalar> SparseMatrix;
41 typedef Eigen::SparseMatrix<Scalar, Eigen::RowMajor> RowSparseMatrix;
42 typedef Eigen::Matrix<Scalar, 1, 1, Options, 1, 1> Matrix1s;
43 typedef Eigen::Matrix<Scalar, 7, 1, Options> Vector7s;
44 typedef Eigen::Matrix<Scalar, 6, 6, Options> Matrix6s;
45 typedef Eigen::Matrix<Scalar, 3, 6, Options> Matrix36s;
46 typedef Eigen::Quaternion<Scalar, Options> Quaternion;
47 typedef Eigen::AngleAxis<Scalar> AngleAxis;
48 typedef Eigen::Ref<VectorXs> RefVectorXs;
49 typedef Eigen::Ref<MatrixXs> RefMatrixXs;
50 typedef Eigen::Ref<const VectorXs> RefConstVectorXs;
51 typedef Eigen::Ref<const MatrixXs> RefConstMatrixXs;
52
53 // Spatial
54 typedef SE3Tpl<Scalar, Options> SE3;
55 typedef MotionTpl<Scalar, Options> Motion;
56 typedef ForceTpl<Scalar, Options> Force;
57 typedef InertiaTpl<Scalar, Options> Inertia;
58 typedef PseudoInertiaTpl<Scalar, Options> PseudoInertia;
59 typedef LogCholeskyParametersTpl<Scalar, Options> LogCholeskyParameters;
60 typedef Symmetric3Tpl<Scalar, Options> Symmetric3;
61
62 // Multibody
63 typedef FrameTpl<Scalar, Options> Frame;
64 typedef ModelTpl<Scalar, Options> Model;
65 typedef DataTpl<Scalar, Options> Data;
66 typedef JointCollectionDefaultTpl<Scalar, Options> JointCollectionDefault;
67
68 // Joints
69 typedef JointModelTpl<Scalar, Options> JointModel;
70 typedef JointDataTpl<Scalar, Options> JointData;
71
72 typedef JointDataRevoluteTpl<Scalar, Options, 0> JointDataRX;
73 typedef JointModelRevoluteTpl<Scalar, Options, 0> JointModelRX;
74
75 typedef JointDataRevoluteTpl<Scalar, Options, 1> JointDataRY;
76 typedef JointModelRevoluteTpl<Scalar, Options, 1> JointModelRY;
77
78 typedef JointDataRevoluteTpl<Scalar, Options, 2> JointDataRZ;
79 typedef JointModelRevoluteTpl<Scalar, Options, 2> JointModelRZ;
80
81 typedef JointModelRevoluteUnalignedTpl<Scalar> JointModelRevoluteUnaligned;
82 typedef JointDataRevoluteUnalignedTpl<Scalar> JointDataRevoluteUnaligned;
83
84 typedef JointDataRevoluteUnboundedTpl<Scalar, Options, 0> JointDataRUBX;
85 typedef JointModelRevoluteUnboundedTpl<Scalar, Options, 0> JointModelRUBX;
86
87 typedef JointDataRevoluteUnboundedTpl<Scalar, Options, 1> JointDataRUBY;
88 typedef JointModelRevoluteUnboundedTpl<Scalar, Options, 1> JointModelRUBY;
89
90 typedef JointDataRevoluteUnboundedTpl<Scalar, Options, 2> JointDataRUBZ;
91 typedef JointModelRevoluteUnboundedTpl<Scalar, Options, 2> JointModelRUBZ;
92
93 typedef JointModelRevoluteUnboundedUnalignedTpl<Scalar> JointModelRevoluteUnboundedUnaligned;
94 typedef JointDataRevoluteUnboundedUnalignedTpl<Scalar> JointDataRevoluteUnboundedUnaligned;
95
96 typedef JointModelSphericalTpl<Scalar> JointModelSpherical;
97 typedef JointDataSphericalTpl<Scalar> JointDataSpherical;
98
99 typedef JointModelSphericalZYXTpl<Scalar> JointModelSphericalZYX;
100 typedef JointDataSphericalZYXTpl<Scalar> JointDataSphericalZYX;
101
102 typedef JointModelEllipsoidTpl<Scalar, Options> JointModelEllipsoid;
103 typedef JointDataEllipsoidTpl<Scalar, Options> JointDataEllipsoid;
104
105 typedef JointDataPrismaticTpl<Scalar, Options, 0> JointDataPX;
106 typedef JointModelPrismaticTpl<Scalar, Options, 0> JointModelPX;
107
108 typedef JointDataPrismaticTpl<Scalar, Options, 1> JointDataPY;
109 typedef JointModelPrismaticTpl<Scalar, Options, 1> JointModelPY;
110
111 typedef JointDataPrismaticTpl<Scalar, Options, 2> JointDataPZ;
112 typedef JointModelPrismaticTpl<Scalar, Options, 2> JointModelPZ;
113
114 typedef JointModelPrismaticUnalignedTpl<Scalar> JointModelPrismaticUnaligned;
115 typedef JointDataPrismaticUnalignedTpl<Scalar> JointDataPrismaticUnaligned;
116
117 typedef JointDataHelicalTpl<Scalar, Options, 0> JointDataHX;
118 typedef JointModelHelicalTpl<Scalar, Options, 0> JointModelHX;
119
120 typedef JointDataHelicalTpl<Scalar, Options, 1> JointDataHY;
121 typedef JointModelHelicalTpl<Scalar, Options, 1> JointModelHY;
122
123 typedef JointDataHelicalTpl<Scalar, Options, 2> JointDataHZ;
124 typedef JointModelHelicalTpl<Scalar, Options, 2> JointModelHZ;
125
126 typedef JointModelHelicalUnalignedTpl<Scalar> JointModelHelicalUnaligned;
127 typedef JointDataHelicalUnalignedTpl<Scalar> JointDataHelicalUnaligned;
128
129 typedef JointModelFreeFlyerTpl<Scalar> JointModelFreeFlyer;
130 typedef JointDataFreeFlyerTpl<Scalar> JointDataFreeFlyer;
131
132 typedef JointModelPlanarTpl<Scalar> JointModelPlanar;
133 typedef JointDataPlanarTpl<Scalar> JointDataPlanar;
134
135 typedef JointModelUniversalTpl<Scalar> JointModelUniversal;
136 typedef JointDataUniversalTpl<Scalar> JointDataUniversal;
137
138 typedef JointModelTranslationTpl<Scalar> JointModelTranslation;
139 typedef JointDataTranslationTpl<Scalar> JointDataTranslation;
140
141 typedef JointModelCompositeTpl<Scalar> JointModelComposite;
142 typedef JointDataCompositeTpl<Scalar> JointDataComposite;
143
144 typedef JointModelMimicTpl<Scalar> JointModelMimic;
145 typedef JointDataMimicTpl<Scalar> JointDataMimic;
146
147 // Algorithm
148 typedef ProximalSettingsTpl<Scalar> ProximalSettings;
149 typedef ConstraintCholeskyDecompositionTpl<Scalar, Options> ConstraintCholeskyDecomposition;
150
151 typedef RigidConstraintModelTpl<Scalar, Options> RigidConstraintModel;
152 typedef std::vector<RigidConstraintModel> RigidConstraintModelVector;
153
154 typedef RigidConstraintDataTpl<Scalar, Options> RigidConstraintData;
155 typedef std::vector<RigidConstraintData> RigidConstraintDataVector;
156
157 typedef PointAnchorConstraintModelTpl<Scalar, Options> PointAnchorConstraintModel;
158 typedef std::vector<PointAnchorConstraintModel> PointAnchorConstraintModelVector;
159 typedef PointAnchorConstraintDataTpl<Scalar, Options> PointAnchorConstraintData;
160 typedef std::vector<PointAnchorConstraintData> PointAnchorConstraintDataVector;
161
162 typedef FrameAnchorConstraintModelTpl<Scalar, Options> FrameAnchorConstraintModel;
163 typedef std::vector<FrameAnchorConstraintModel> FrameAnchorConstraintModelVector;
164 typedef FrameAnchorConstraintDataTpl<Scalar, Options> FrameAnchorConstraintData;
165 typedef std::vector<FrameAnchorConstraintData> FrameAnchorConstraintDataVector;
166
167 typedef PointContactConstraintModelTpl<Scalar, Options> PointContactConstraintModel;
168 typedef std::vector<PointContactConstraintModel> PointContactConstraintModelVector;
169 typedef PointContactConstraintDataTpl<Scalar, Options> PointContactConstraintData;
170 typedef std::vector<PointContactConstraintData> PointContactConstraintDataVector;
171
172 typedef JointFrictionConstraintModelTpl<Scalar, Options> JointFrictionConstraintModel;
173 typedef std::vector<JointFrictionConstraintModel> JointFrictionConstraintModelVector;
174 typedef JointFrictionConstraintDataTpl<Scalar, Options> JointFrictionConstraintData;
175 typedef std::vector<JointFrictionConstraintData> JointFrictionConstraintDataVector;
176
177 typedef JointLimitConstraintModelTpl<Scalar, Options> JointLimitConstraintModel;
178 typedef std::vector<JointLimitConstraintModel> JointLimitModelVector;
179 typedef JointLimitConstraintDataTpl<Scalar, Options> JointLimitConstraintData;
180 typedef std::vector<JointLimitConstraintData> JointLimitDataVector;
181
182 typedef ConstraintModelTpl<Scalar, Options> ConstraintModel;
183 typedef std::vector<ConstraintModel> ConstraintModelVector;
184 typedef ConstraintDataTpl<Scalar, Options> ConstraintData;
185 typedef std::vector<ConstraintData> ConstraintDataVector;
186
187 typedef CoulombFrictionConeTpl<context::Scalar> CoulombFrictionCone;
188 typedef std::vector<CoulombFrictionCone> CoulombFrictionConeVector;
189 typedef DualCoulombFrictionConeTpl<context::Scalar> DualCoulombFrictionCone;
190 typedef std::vector<DualCoulombFrictionCone> DualCoulombFrictionConeVector;
191 typedef BoxSetTpl<context::Scalar> BoxSet;
192 typedef ZeroConeTpl<context::Scalar> ZeroCone;
193 typedef FullSpaceConeTpl<context::Scalar> FullSpaceCone;
194 typedef NonNegativeOrthantConeTpl<context::Scalar> NonNegativeOrthantCone;
195
196 typedef ConstraintCollectionDefaultTpl<Scalar, Options> ConstraintCollectionDefault;
197
198 typedef DelassusOperatorDenseTpl<Scalar, Options> DelassusOperatorDense;
199 typedef DelassusOperatorSparseTpl<Scalar, Options> DelassusOperatorSparse;
200
201// Pool
202#ifdef PINOCCHIO_PYTHON_INTERFACE_WITH_OPENMP
203 typedef ModelPoolTpl<Scalar> ModelPool;
204
205 #ifdef PINOCCHIO_WITH_COLLISION
206 typedef GeometryPoolTpl<Scalar> GeometryPool;
207 #endif
208
209#endif
210
211 } // namespace context
212 } // namespace python
213} // namespace pinocchio
Main pinocchio namespace.
Definition treeview.dox:11