17 #ifndef HPP_PINOCCHIO_LIEGROUP_HH
18 #define HPP_PINOCCHIO_LIEGROUP_HH
20 #include <pinocchio/multibody/joint/fwd.hpp>
59 template<
typename Scalar,
int Options,
int Axis>
63 template<
typename Scalar,
int Options,
int Axis>
64 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnboundedTpl<Scalar, Options, Axis> > {
65 typedef liegroup::SpecialOrthogonalOperation<2> type;
67 template<
typename Scalar,
int Options>
68 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnalignedTpl<Scalar, Options> > {
69 typedef liegroup::VectorSpaceOperation<1, true> type;
71 #if PINOCCHIO_VERSION_AT_LEAST(2,1,5)
72 template<
typename Scalar,
int Options>
73 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnboundedUnalignedTpl<Scalar, Options> > {
74 typedef liegroup::SpecialOrthogonalOperation<2> type;
79 template<
typename Scalar,
int Options,
int Axis>
80 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelPrismaticTpl<Scalar, Options, Axis> > {
81 typedef liegroup::VectorSpaceOperation<1, false> type;
83 template<
typename Scalar,
int Options>
84 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelPrismaticUnalignedTpl<Scalar, Options> > {
85 typedef liegroup::VectorSpaceOperation<1, false> type;
87 template<
typename Scalar,
int Options>
88 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelTranslationTpl<Scalar, Options> > {
89 typedef liegroup::VectorSpaceOperation<3, false> type;
93 template<
typename Scalar,
int Options>
94 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelSphericalTpl<Scalar, Options> > {
95 typedef liegroup::SpecialOrthogonalOperation<3> type;
97 template<
typename Scalar,
int Options>
98 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelSphericalZYXTpl<Scalar, Options> > {
99 typedef liegroup::VectorSpaceOperation<3, true> type;
103 template<
typename Scalar,
int Options>
104 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelFreeFlyerTpl<Scalar, Options> > {
105 typedef liegroup::CartesianProductOperation<
106 liegroup::VectorSpaceOperation<3, false>,
107 liegroup::SpecialOrthogonalOperation<3>
110 template<
typename Scalar,
int Options>
111 struct RnxSOnLieGroupMap::operation < ::pinocchio::JointModelPlanarTpl<Scalar, Options> > {
112 typedef liegroup::CartesianProductOperation<
113 liegroup::VectorSpaceOperation<2, false>,
114 liegroup::SpecialOrthogonalOperation<2>
121 template<
typename Scalar,
int Options,
int Axis>
122 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelRevoluteTpl<Scalar, Options, Axis> > {
123 typedef liegroup::VectorSpaceOperation<1, true> type;
125 template<
typename Scalar,
int Options,
int Axis>
126 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnboundedTpl<Scalar, Options, Axis> > {
127 typedef liegroup::SpecialOrthogonalOperation<2> type;
129 template<
typename Scalar,
int Options>
130 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnalignedTpl<Scalar, Options> > {
131 typedef liegroup::VectorSpaceOperation<1, true> type;
133 #if PINOCCHIO_VERSION_AT_LEAST(2,1,5)
134 template<
typename Scalar,
int Options>
135 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelRevoluteUnboundedUnalignedTpl<Scalar, Options> > {
136 typedef liegroup::SpecialOrthogonalOperation<2> type;
142 template<
typename Scalar,
int Options,
int Axis>
143 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelPrismaticTpl<Scalar, Options, Axis> > {
144 typedef liegroup::VectorSpaceOperation<1, false> type;
146 template<
typename Scalar,
int Options>
147 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelPrismaticUnalignedTpl<Scalar, Options> > {
148 typedef liegroup::VectorSpaceOperation<1, false> type;
150 template<
typename Scalar,
int Options>
151 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelTranslationTpl<Scalar, Options> > {
152 typedef liegroup::VectorSpaceOperation<3, false> type;
156 template<
typename Scalar,
int Options>
157 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelSphericalTpl<Scalar, Options> > {
158 typedef liegroup::SpecialOrthogonalOperation<3> type;
160 template<
typename Scalar,
int Options>
161 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelSphericalZYXTpl<Scalar, Options> > {
162 typedef liegroup::VectorSpaceOperation<3, true> type;
166 template<
typename Scalar,
int Options>
167 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelFreeFlyerTpl<Scalar, Options> > {
168 typedef liegroup::SpecialEuclideanOperation<3> type;
170 template<
typename Scalar,
int Options>
171 struct DefaultLieGroupMap::operation < ::pinocchio::JointModelPlanarTpl<Scalar, Options> > {
172 typedef liegroup::SpecialEuclideanOperation<2> type;
178 #endif // HPP_PINOCCHIO_LIEGROUP_HH