5 #ifndef __pinocchio_serialization_joints_hpp__ 6 #define __pinocchio_serialization_joints_hpp__ 8 #include "pinocchio/multibody/joint/joints.hpp" 9 #include "pinocchio/multibody/joint/joint-generic.hpp" 10 #include "pinocchio/multibody/joint/joint-composite.hpp" 11 #include "pinocchio/multibody/joint/joint-collection.hpp" 13 #include "pinocchio/serialization/fwd.hpp" 14 #include "pinocchio/serialization/eigen.hpp" 15 #include "pinocchio/serialization/vector.hpp" 16 #include "pinocchio/serialization/aligned-vector.hpp" 18 #include <boost/serialization/split_free.hpp> 19 #include <boost/serialization/variant.hpp> 23 template<
typename Scalar,
int Options,
template<
typename S,
int O>
class JointCollectionTpl>
26 template<
typename Archive>
27 static void run(Archive & ar,
30 using boost::serialization::make_nvp;
32 ar & make_nvp(
"m_nq",joint.
m_nq);
33 ar & make_nvp(
"m_nv",joint.m_nv);
34 ar & make_nvp(
"m_idx_q",joint.
m_idx_q);
35 ar & make_nvp(
"m_nqs",joint.
m_nqs);
36 ar & make_nvp(
"m_idx_v",joint.
m_idx_v);
37 ar & make_nvp(
"m_nvs",joint.
m_nvs);
38 ar & make_nvp(
"njoints",joint.
njoints);
40 ar & make_nvp(
"joints",joint.
joints);
48 namespace serialization
55 template <
class Archive,
typename Derived>
56 void serialize(Archive & ar,
58 const unsigned int version)
60 split_free(ar, joint, version);
64 template<
class Archive,
typename Derived>
65 void save(Archive & ar,
69 const pinocchio::JointIndex i_id = joint.id();
70 const int i_q = joint.idx_q(), i_v = joint.idx_v();
72 ar & make_nvp(
"i_id",i_id);
73 ar & make_nvp(
"i_q",i_q);
74 ar & make_nvp(
"i_v",i_v);
77 template<
class Archive,
typename Derived>
78 void load(Archive & ar,
82 pinocchio::JointIndex i_id;
85 ar & make_nvp(
"i_id",i_id);
86 ar & make_nvp(
"i_q",i_q);
87 ar & make_nvp(
"i_v",i_v);
89 joint.setIndexes(i_id,i_q,i_v);
92 template <
class Archive,
typename Scalar,
int Options,
int axis>
93 void serialize(Archive & ar,
95 const unsigned int version)
102 template <
class Archive,
typename Scalar,
int Options,
int axis>
103 void serialize(Archive & ar,
105 const unsigned int version)
112 template <
class Archive,
typename Scalar,
int Options,
int axis>
113 void serialize(Archive & ar,
115 const unsigned int version)
122 template <
class Archive,
typename Scalar,
int Options>
123 void serialize(Archive & ar,
125 const unsigned int version)
132 template <
class Archive,
typename Scalar,
int Options>
133 void serialize(Archive & ar,
135 const unsigned int version)
142 template <
class Archive,
typename Scalar,
int Options>
143 void serialize(Archive & ar,
145 const unsigned int version)
152 template <
class Archive,
typename Scalar,
int Options>
153 void serialize(Archive & ar,
155 const unsigned int version)
162 template <
class Archive,
typename Scalar,
int Options>
163 void serialize(Archive & ar,
165 const unsigned int version)
172 template <
class Archive,
typename Scalar,
int Options>
173 void serialize(Archive & ar,
175 const unsigned int version)
180 ar & make_nvp(
"axis",joint.
axis);
183 template <
class Archive,
typename Scalar,
int Options>
184 void serialize(Archive & ar,
186 const unsigned int version)
191 ar & make_nvp(
"axis",joint.
axis);
194 template <
class Archive,
typename Scalar,
int Options>
195 void serialize(Archive & ar,
197 const unsigned int version)
202 ar & make_nvp(
"axis",joint.
axis);
205 template <
class Archive,
typename Scalar,
int Options,
template<
typename S,
int O>
class JointCollectionTpl>
206 void serialize(Archive & ar,
208 const unsigned int version)
217 template <
class Archive,
typename Scalar,
int Options,
template<
typename S,
int O>
class JointCollectionTpl>
218 void serialize(Archive & ar,
220 const unsigned int version)
226 typedef typename JointCollectionTpl<Scalar,Options>::JointModelVariant JointModelVariant;
227 ar & make_nvp(
"base_variant",base_object<JointModelVariant>(joint));
230 template <
class Archive,
typename Jo
intModel>
231 void serialize(Archive & ar,
233 const unsigned int version)
239 ar & make_nvp(
"jmodel",joint.jmodel());
240 ar & make_nvp(
"scaling",joint.scaling());
241 ar & make_nvp(
"offset",joint.offset());
247 #endif // ifndef __pinocchio_serialization_joints_hpp__
std::vector< int > m_nvs
Dimension of the segment in the tangent vector.
std::vector< int > m_idx_v
Index in the tangent vector.
Vector3 axis
3d main axis of the joint.
std::vector< int > m_idx_q
Keep information of both the dimension and the position of the joints in the composition.
std::vector< int > m_nqs
Dimension of the segment in the config vector.
Main pinocchio namespace.
JointModelVector joints
Vector of joints contained in the joint composite.
container::aligned_vector< SE3 > jointPlacements
Vector of joint placements. Those placements correspond to the origin of the joint relatively to thei...
int m_nq
Dimensions of the config and tangent space of the composite joint.
Vector3 axis
3d main axis of the joint.
Vector3 axis
3d main axis of the joint.
int njoints
Number of joints contained in the JointModelComposite.