pinocchio  3.9.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
joints-data.hpp
1//
2// Copyright (c) 2019-2020 INRIA
3//
4
5#ifndef __pinocchio_serialization_joints_data_hpp__
6#define __pinocchio_serialization_joints_data_hpp__
7
8namespace pinocchio
9{
10 template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
11 struct Serialize<JointDataCompositeTpl<Scalar, Options, JointCollectionTpl>>
12 {
13 template<typename Archive>
14 static void
16 {
17 using boost::serialization::make_nvp;
18
19 ar & make_nvp("joints", joint_data.joints);
20 ar & make_nvp("iMlast", joint_data.iMlast);
21 ar & make_nvp("pjMi", joint_data.pjMi);
22
23 ar & make_nvp("S", joint_data.S);
24 ar & make_nvp("M", joint_data.M);
25 ar & make_nvp("v", joint_data.v);
26 ar & make_nvp("c", joint_data.c);
27
28 ar & make_nvp("U", joint_data.U);
29 ar & make_nvp("Dinv", joint_data.Dinv);
30 ar & make_nvp("UDinv", joint_data.UDinv);
31 ar & make_nvp("StU", joint_data.StU);
32 }
33 };
34} // namespace pinocchio
35
36namespace boost
37{
38 namespace serialization
39 {
40
41 // For some older version of gcc, we have to rely on an additional namespace
42 // to avoid ambiguous call to boost::serialization::serialize
43 namespace fix
44 {
45 template<class Archive, typename Derived>
46 void serialize(
47 Archive & ar,
49 const unsigned int /*version*/)
50 {
51 ar & make_nvp("joint_q", joint_data.joint_q());
52 ar & make_nvp("joint_v", joint_data.joint_v());
53
54 ar & make_nvp("S", joint_data.S());
55 ar & make_nvp("M", joint_data.M());
56 ar & make_nvp("v", joint_data.v());
57 ar & make_nvp("c", joint_data.c());
58
59 ar & make_nvp("U", joint_data.U());
60 ar & make_nvp("Dinv", joint_data.Dinv());
61 ar & make_nvp("UDinv", joint_data.UDinv());
62 ar & make_nvp("StU", joint_data.StU());
63 }
64
65 template<
66 class Archive,
67 typename Scalar,
68 int Options,
69 template<typename, int> class JointCollection>
70 void serialize(
71 Archive & ar,
72 pinocchio::JointDataBase<pinocchio::JointDataMimicTpl<Scalar, Options, JointCollection>> &
73 joint_data,
74 const unsigned int /*version*/)
75 {
76 ar & make_nvp("joint_q", joint_data.joint_q());
77 ar & make_nvp("joint_v", joint_data.joint_v());
78
79 ar & make_nvp("S", joint_data.S());
80 }
81
82 } // namespace fix
83
84 template<class Archive, typename Scalar, int Options, int axis>
85 void serialize(
86 Archive & ar,
87 pinocchio::JointDataRevoluteTpl<Scalar, Options, axis> & joint,
88 const unsigned int version)
89 {
90 typedef pinocchio::JointDataRevoluteTpl<Scalar, Options, axis> JointType;
91 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
92 }
93
94 template<class Archive, typename Scalar, int Options, int axis>
95 void serialize(
96 Archive & ar,
97 pinocchio::JointDataRevoluteUnboundedTpl<Scalar, Options, axis> & joint,
98 const unsigned int version)
99 {
100 typedef pinocchio::JointDataRevoluteUnboundedTpl<Scalar, Options, axis> JointType;
101 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
102 }
103
104 template<class Archive, typename Scalar, int Options, int axis>
105 void serialize(
106 Archive & ar,
107 pinocchio::JointDataPrismaticTpl<Scalar, Options, axis> & joint,
108 const unsigned int version)
109 {
110 typedef pinocchio::JointDataPrismaticTpl<Scalar, Options, axis> JointType;
111 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
112 }
113
114 template<class Archive, typename Scalar, int Options, int axis>
115 void serialize(
116 Archive & ar,
117 pinocchio::JointDataHelicalTpl<Scalar, Options, axis> & joint,
118 const unsigned int version)
119 {
120 typedef pinocchio::JointDataHelicalTpl<Scalar, Options, axis> JointType;
121 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
122 }
123
124 template<class Archive, typename Scalar, int Options>
125 void serialize(
126 Archive & ar,
127 pinocchio::JointDataHelicalUnalignedTpl<Scalar, Options> & joint,
128 const unsigned int version)
129 {
130 typedef pinocchio::JointDataHelicalUnalignedTpl<Scalar, Options> JointType;
131 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
132 }
133
134 template<class Archive, typename Scalar, int Options>
135 void serialize(
136 Archive & ar,
137 pinocchio::JointDataFreeFlyerTpl<Scalar, Options> & joint,
138 const unsigned int version)
139 {
140 typedef pinocchio::JointDataFreeFlyerTpl<Scalar, Options> JointType;
141 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
142 }
143
144 template<class Archive, typename Scalar, int Options>
145 void serialize(
146 Archive & ar,
147 pinocchio::JointDataPlanarTpl<Scalar, Options> & joint,
148 const unsigned int version)
149 {
150 typedef pinocchio::JointDataPlanarTpl<Scalar, Options> JointType;
151 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
152 }
153
154 template<class Archive, typename Scalar, int Options>
155 void serialize(
156 Archive & ar,
157 pinocchio::JointDataSphericalTpl<Scalar, Options> & joint,
158 const unsigned int version)
159 {
160 typedef pinocchio::JointDataSphericalTpl<Scalar, Options> JointType;
161 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
162 }
163
164 template<class Archive, typename Scalar, int Options>
165 void serialize(
166 Archive & ar,
167 pinocchio::JointDataSphericalZYXTpl<Scalar, Options> & joint,
168 const unsigned int version)
169 {
170 typedef pinocchio::JointDataSphericalZYXTpl<Scalar, Options> JointType;
171 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
172 }
173
174 template<class Archive, typename Scalar, int Options>
175 void serialize(
176 Archive & ar,
177 pinocchio::JointDataEllipsoidTpl<Scalar, Options> & joint,
178 const unsigned int version)
179 {
180 typedef pinocchio::JointDataEllipsoidTpl<Scalar, Options> JointType;
181 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
182 }
183
184 template<class Archive, typename Scalar, int Options>
185 void serialize(
186 Archive & ar,
187 pinocchio::JointDataTranslationTpl<Scalar, Options> & joint,
188 const unsigned int version)
189 {
190 typedef pinocchio::JointDataTranslationTpl<Scalar, Options> JointType;
191 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
192 }
193
194 template<class Archive, typename Scalar, int Options>
195 void serialize(
196 Archive & ar,
197 pinocchio::JointDataRevoluteUnalignedTpl<Scalar, Options> & joint,
198 const unsigned int version)
199 {
200 typedef pinocchio::JointDataRevoluteUnalignedTpl<Scalar, Options> JointType;
201 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
202 }
203
204 template<class Archive, typename Scalar, int Options>
205 void serialize(
206 Archive & ar,
207 pinocchio::JointDataRevoluteUnboundedUnalignedTpl<Scalar, Options> & joint,
208 const unsigned int version)
209 {
210 typedef pinocchio::JointDataRevoluteUnboundedUnalignedTpl<Scalar, Options> JointType;
211 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
212 }
213
214 template<class Archive, typename Scalar, int Options>
215 void serialize(
216 Archive & ar,
217 pinocchio::JointDataPrismaticUnalignedTpl<Scalar, Options> & joint,
218 const unsigned int version)
219 {
220 typedef pinocchio::JointDataPrismaticUnalignedTpl<Scalar, Options> JointType;
221 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
222 }
223
224 template<class Archive, typename Scalar, int Options>
225 void serialize(
226 Archive & ar,
227 pinocchio::JointDataUniversalTpl<Scalar, Options> & joint,
228 const unsigned int version)
229 {
230 typedef pinocchio::JointDataUniversalTpl<Scalar, Options> JointType;
231 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
232 }
233
234 template<
235 class Archive,
236 typename Scalar,
237 int Options,
238 template<typename S, int O> class JointCollectionTpl>
239 void serialize(
240 Archive & ar,
241 pinocchio::JointDataCompositeTpl<Scalar, Options, JointCollectionTpl> & joint,
242 const unsigned int version)
243 {
244 typedef pinocchio::JointDataCompositeTpl<Scalar, Options, JointCollectionTpl> JointType;
245 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
246 ::pinocchio::Serialize<JointType>::run(ar, joint);
247 }
248
249 template<
250 class Archive,
251 typename Scalar,
252 int Options,
253 template<typename S, int O> class JointCollectionTpl>
254 void serialize(
255 Archive & ar,
256 pinocchio::JointDataTpl<Scalar, Options, JointCollectionTpl> & joint,
257 const unsigned int /*version*/)
258 {
259 typedef typename JointCollectionTpl<Scalar, Options>::JointDataVariant JointDataVariant;
260 ar & make_nvp("base_variant", base_object<JointDataVariant>(joint));
261 }
262
263 template<
264 class Archive,
265 typename Scalar,
266 int Options,
267 template<typename S, int O> class JointCollectionTpl>
268 void serialize(
269 Archive & ar,
270 pinocchio::JointDataMimicTpl<Scalar, Options, JointCollectionTpl> & joint,
271 const unsigned int version)
272 {
273 ar & make_nvp("jdata", joint.jdata());
274
275 ar & make_nvp("m_q_transform", joint.q_transformed());
276 ar & make_nvp("m_v_transform", joint.v_transformed());
277
278 typedef pinocchio::JointDataMimicTpl<Scalar, Options, JointCollectionTpl> JointType;
279 fix::serialize(ar, static_cast<pinocchio::JointDataBase<JointType> &>(joint), version);
280 }
281
282 } // namespace serialization
283} // namespace boost
284
285#endif // ifndef __pinocchio_serialization_joints_data_hpp__
Main pinocchio namespace.
Definition treeview.dox:11
JointDataVector joints
Vector of joints.