hpp-pinocchio  6.0.0
Wrapping of the kinematic/dynamic chain Pinocchio for HPP.
joint-collection.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2018 CNRS
3 // Author: Joseph Mirabel
4 //
5 //
6 
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are
9 // met:
10 //
11 // 1. Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //
14 // 2. Redistributions in binary form must reproduce the above copyright
15 // notice, this list of conditions and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 //
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29 // DAMAGE.
30 
31 #ifndef HPP_PINOCCHIO_JOINT_COLLECTION_HH
32 #define HPP_PINOCCHIO_JOINT_COLLECTION_HH
33 
34 #include <boost/variant.hpp>
35 #include <boost/variant/recursive_wrapper.hpp>
36 
37 #include "pinocchio/multibody/joint/fwd.hpp"
38 #include "pinocchio/multibody/joint/joint-free-flyer.hpp"
39 #include "pinocchio/multibody/joint/joint-planar.hpp"
40 #include "pinocchio/multibody/joint/joint-prismatic-unaligned.hpp"
41 #include "pinocchio/multibody/joint/joint-prismatic.hpp"
42 #include "pinocchio/multibody/joint/joint-revolute-unaligned.hpp"
43 #include "pinocchio/multibody/joint/joint-revolute-unbounded-unaligned.hpp"
44 #include "pinocchio/multibody/joint/joint-revolute-unbounded.hpp"
45 #include "pinocchio/multibody/joint/joint-revolute.hpp"
46 // #include "pinocchio/multibody/joint/joint-spherical-ZYX.hpp"
47 // #include "pinocchio/multibody/joint/joint-spherical.hpp"
48 #include "pinocchio/multibody/joint/joint-translation.hpp"
49 
50 namespace hpp {
51 namespace pinocchio {
52 
53 template <typename _Scalar, int _Options>
55  typedef _Scalar Scalar;
56  enum { Options = _Options };
57 
58  // Joint Revolute
59  typedef ::pinocchio::JointModelRevoluteTpl<Scalar, Options, 0> JointModelRX;
60  typedef ::pinocchio::JointModelRevoluteTpl<Scalar, Options, 1> JointModelRY;
61  typedef ::pinocchio::JointModelRevoluteTpl<Scalar, Options, 2> JointModelRZ;
62 
63  // Joint Revolute Unaligned
64  typedef ::pinocchio::JointModelRevoluteUnalignedTpl<Scalar, Options>
66 
67  // Joint Revolute UBounded
68  typedef ::pinocchio::JointModelRevoluteUnboundedTpl<Scalar, Options, 0>
70  typedef ::pinocchio::JointModelRevoluteUnboundedTpl<Scalar, Options, 1>
72  typedef ::pinocchio::JointModelRevoluteUnboundedTpl<Scalar, Options, 2>
74 
75  // Joint Revolute Unbounded Unaligned
76  typedef ::pinocchio::JointModelRevoluteUnboundedUnalignedTpl<Scalar, Options>
78 
79  // Joint Prismatic
80  typedef ::pinocchio::JointModelPrismaticTpl<Scalar, Options, 0> JointModelPX;
81  typedef ::pinocchio::JointModelPrismaticTpl<Scalar, Options, 1> JointModelPY;
82  typedef ::pinocchio::JointModelPrismaticTpl<Scalar, Options, 2> JointModelPZ;
83 
84  // Joint Prismatic Unaligned
85  typedef ::pinocchio::JointModelPrismaticUnalignedTpl<Scalar, Options>
87 
88  // Joint Spherical
89  typedef ::pinocchio::JointModelSphericalTpl<Scalar, Options>
91 
92  // Joint Spherical ZYX
93  typedef ::pinocchio::JointModelSphericalZYXTpl<Scalar, Options>
95 
96  // Joint Translation
97  typedef ::pinocchio::JointModelTranslationTpl<Scalar, Options>
99 
100  // Joint FreeFlyer
101  typedef ::pinocchio::JointModelFreeFlyerTpl<Scalar, Options>
103 
104  // Joint Planar
105  typedef ::pinocchio::JointModelPlanarTpl<Scalar, Options> JointModelPlanar;
106 
107  typedef boost::variant<
110 #if PINOCCHIO_VERSION_AT_LEAST(3, 0, 0)
112 #endif
117 
118  // Joint Revolute
119  typedef ::pinocchio::JointDataRevoluteTpl<Scalar, Options, 0> JointDataRX;
120  typedef ::pinocchio::JointDataRevoluteTpl<Scalar, Options, 1> JointDataRY;
121  typedef ::pinocchio::JointDataRevoluteTpl<Scalar, Options, 2> JointDataRZ;
122 
123  // Joint Revolute Unaligned
124  typedef ::pinocchio::JointDataRevoluteUnalignedTpl<Scalar, Options>
126 
127  // Joint Revolute UBounded
128  typedef ::pinocchio::JointDataRevoluteUnboundedTpl<Scalar, Options, 0>
130  typedef ::pinocchio::JointDataRevoluteUnboundedTpl<Scalar, Options, 1>
132  typedef ::pinocchio::JointDataRevoluteUnboundedTpl<Scalar, Options, 2>
134 
135  // Joint Revolute Unbounded Unaligned
136  typedef ::pinocchio::JointDataRevoluteUnboundedUnalignedTpl<Scalar, Options>
138 
139  // Joint Prismatic
140  typedef ::pinocchio::JointDataPrismaticTpl<Scalar, Options, 0> JointDataPX;
141  typedef ::pinocchio::JointDataPrismaticTpl<Scalar, Options, 1> JointDataPY;
142  typedef ::pinocchio::JointDataPrismaticTpl<Scalar, Options, 2> JointDataPZ;
143 
144  // Joint Prismatic Unaligned
145  typedef ::pinocchio::JointDataPrismaticUnalignedTpl<Scalar, Options>
147 
148  // Joint Spherical
149  typedef ::pinocchio::JointDataSphericalTpl<Scalar, Options>
151 
152  // Joint Spherical ZYX
153  typedef ::pinocchio::JointDataSphericalZYXTpl<Scalar, Options>
155 
156  // Joint Translation
157  typedef ::pinocchio::JointDataTranslationTpl<Scalar, Options>
159 
160  // Joint FreeFlyer
161  typedef ::pinocchio::JointDataFreeFlyerTpl<Scalar, Options>
163 
164  // Joint Planar
165  typedef ::pinocchio::JointDataPlanarTpl<Scalar, Options> JointDataPlanar;
166 
167  // Joint Composite
168  typedef ::pinocchio::JointDataCompositeTpl<Scalar, Options,
171 
172  typedef boost::variant<
173  // JointDataVoid
176 #if PINOCCHIO_VERSION_AT_LEAST(3, 0, 0)
178 #endif
183 };
184 
187 
188 } // namespace pinocchio
189 } // namespace hpp
190 
191 #endif // HPP_PINOCCHIO_JOINT_COLLECTION_HH
JointCollection::JointModelVariant JointModelVariant
Definition: joint-collection.hh:185
JointCollection::JointDataVariant JointDataVariant
Definition: joint-collection.hh:186
Utility functions.
Definition: body.hh:39
Definition: collision-object.hh:40
Definition: joint-collection.hh:54
::pinocchio::JointDataRevoluteUnboundedTpl< Scalar, Options, 2 > JointDataRUBZ
Definition: joint-collection.hh:133
_Scalar Scalar
Definition: joint-collection.hh:55
::pinocchio::JointModelPrismaticTpl< Scalar, Options, 2 > JointModelPZ
Definition: joint-collection.hh:82
::pinocchio::JointDataSphericalTpl< Scalar, Options > JointDataSpherical
Definition: joint-collection.hh:150
::pinocchio::JointModelFreeFlyerTpl< Scalar, Options > JointModelFreeFlyer
Definition: joint-collection.hh:102
::pinocchio::JointDataPrismaticTpl< Scalar, Options, 2 > JointDataPZ
Definition: joint-collection.hh:142
::pinocchio::JointDataPrismaticTpl< Scalar, Options, 1 > JointDataPY
Definition: joint-collection.hh:141
::pinocchio::JointDataRevoluteUnboundedTpl< Scalar, Options, 0 > JointDataRUBX
Definition: joint-collection.hh:129
boost::variant< JointDataRX, JointDataRY, JointDataRZ, JointDataFreeFlyer, JointDataPlanar, JointDataRevoluteUnaligned, JointDataRevoluteUnboundedUnaligned, JointDataPX, JointDataPY, JointDataPZ, JointDataPrismaticUnaligned, JointDataTranslation, JointDataRUBX, JointDataRUBY, JointDataRUBZ > JointDataVariant
Definition: joint-collection.hh:182
::pinocchio::JointModelPlanarTpl< Scalar, Options > JointModelPlanar
Definition: joint-collection.hh:105
::pinocchio::JointDataRevoluteUnboundedUnalignedTpl< Scalar, Options > JointDataRevoluteUnboundedUnaligned
Definition: joint-collection.hh:137
::pinocchio::JointDataRevoluteUnalignedTpl< Scalar, Options > JointDataRevoluteUnaligned
Definition: joint-collection.hh:125
::pinocchio::JointDataTranslationTpl< Scalar, Options > JointDataTranslation
Definition: joint-collection.hh:158
::pinocchio::JointDataRevoluteTpl< Scalar, Options, 0 > JointDataRX
Definition: joint-collection.hh:119
::pinocchio::JointModelRevoluteUnalignedTpl< Scalar, Options > JointModelRevoluteUnaligned
Definition: joint-collection.hh:65
::pinocchio::JointModelRevoluteTpl< Scalar, Options, 0 > JointModelRX
Definition: joint-collection.hh:59
::pinocchio::JointDataRevoluteTpl< Scalar, Options, 1 > JointDataRY
Definition: joint-collection.hh:120
::pinocchio::JointModelPrismaticTpl< Scalar, Options, 0 > JointModelPX
Definition: joint-collection.hh:80
::pinocchio::JointModelSphericalZYXTpl< Scalar, Options > JointModelSphericalZYX
Definition: joint-collection.hh:94
@ Options
Definition: joint-collection.hh:56
::pinocchio::JointModelRevoluteTpl< Scalar, Options, 1 > JointModelRY
Definition: joint-collection.hh:60
::pinocchio::JointDataPlanarTpl< Scalar, Options > JointDataPlanar
Definition: joint-collection.hh:165
::pinocchio::JointDataPrismaticTpl< Scalar, Options, 0 > JointDataPX
Definition: joint-collection.hh:140
::pinocchio::JointModelRevoluteUnboundedTpl< Scalar, Options, 2 > JointModelRUBZ
Definition: joint-collection.hh:73
::pinocchio::JointModelRevoluteUnboundedTpl< Scalar, Options, 1 > JointModelRUBY
Definition: joint-collection.hh:71
::pinocchio::JointModelPrismaticTpl< Scalar, Options, 1 > JointModelPY
Definition: joint-collection.hh:81
::pinocchio::JointModelRevoluteTpl< Scalar, Options, 2 > JointModelRZ
Definition: joint-collection.hh:61
boost::variant< JointModelRX, JointModelRY, JointModelRZ, JointModelFreeFlyer, JointModelPlanar, JointModelRevoluteUnaligned, JointModelRevoluteUnboundedUnaligned, JointModelPX, JointModelPY, JointModelPZ, JointModelPrismaticUnaligned, JointModelTranslation, JointModelRUBX, JointModelRUBY, JointModelRUBZ > JointModelVariant
Definition: joint-collection.hh:116
::pinocchio::JointDataCompositeTpl< Scalar, Options, pinocchio::JointCollectionTpl > JointDataComposite
Definition: joint-collection.hh:170
::pinocchio::JointDataSphericalZYXTpl< Scalar, Options > JointDataSphericalZYX
Definition: joint-collection.hh:154
::pinocchio::JointDataRevoluteTpl< Scalar, Options, 2 > JointDataRZ
Definition: joint-collection.hh:121
::pinocchio::JointModelRevoluteUnboundedUnalignedTpl< Scalar, Options > JointModelRevoluteUnboundedUnaligned
Definition: joint-collection.hh:77
::pinocchio::JointDataRevoluteUnboundedTpl< Scalar, Options, 1 > JointDataRUBY
Definition: joint-collection.hh:131
::pinocchio::JointModelSphericalTpl< Scalar, Options > JointModelSpherical
Definition: joint-collection.hh:90
::pinocchio::JointDataPrismaticUnalignedTpl< Scalar, Options > JointDataPrismaticUnaligned
Definition: joint-collection.hh:146
::pinocchio::JointModelPrismaticUnalignedTpl< Scalar, Options > JointModelPrismaticUnaligned
Definition: joint-collection.hh:86
::pinocchio::JointDataFreeFlyerTpl< Scalar, Options > JointDataFreeFlyer
Definition: joint-collection.hh:162
::pinocchio::JointModelTranslationTpl< Scalar, Options > JointModelTranslation
Definition: joint-collection.hh:98
::pinocchio::JointModelRevoluteUnboundedTpl< Scalar, Options, 0 > JointModelRUBX
Definition: joint-collection.hh:69