5 #ifndef __pinocchio_multibody_data_serialization_hpp__
6 #define __pinocchio_multibody_data_serialization_hpp__
8 #include <boost/serialization/variant.hpp>
9 #include <boost/serialization/vector.hpp>
11 #include "pinocchio/serialization/aligned-vector.hpp"
12 #include "pinocchio/serialization/spatial.hpp"
13 #include "pinocchio/serialization/eigen.hpp"
14 #include "pinocchio/serialization/joints.hpp"
15 #include "pinocchio/serialization/frame.hpp"
17 #define PINOCCHIO_MAKE_DATA_NVP(ar,data,field_name) \
18 ar & make_nvp(#field_name,data.field_name)
22 namespace serialization
24 template<
class Archive,
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
25 void serialize(Archive & ar,
29 PINOCCHIO_MAKE_DATA_NVP(ar,data,joints);
30 PINOCCHIO_MAKE_DATA_NVP(ar,data,a);
31 PINOCCHIO_MAKE_DATA_NVP(ar,data,oa);
32 PINOCCHIO_MAKE_DATA_NVP(ar,data,a_gf);
33 PINOCCHIO_MAKE_DATA_NVP(ar,data,oa_gf);
34 PINOCCHIO_MAKE_DATA_NVP(ar,data,v);
35 PINOCCHIO_MAKE_DATA_NVP(ar,data,ov);
36 PINOCCHIO_MAKE_DATA_NVP(ar,data,f);
37 PINOCCHIO_MAKE_DATA_NVP(ar,data,of);
38 PINOCCHIO_MAKE_DATA_NVP(ar,data,h);
39 PINOCCHIO_MAKE_DATA_NVP(ar,data,oh);
40 PINOCCHIO_MAKE_DATA_NVP(ar,data,oMi);
41 PINOCCHIO_MAKE_DATA_NVP(ar,data,liMi);
42 PINOCCHIO_MAKE_DATA_NVP(ar,data,tau);
43 PINOCCHIO_MAKE_DATA_NVP(ar,data,nle);
44 PINOCCHIO_MAKE_DATA_NVP(ar,data,g);
45 PINOCCHIO_MAKE_DATA_NVP(ar,data,oMf);
46 PINOCCHIO_MAKE_DATA_NVP(ar,data,Ycrb);
47 PINOCCHIO_MAKE_DATA_NVP(ar,data,dYcrb);
48 PINOCCHIO_MAKE_DATA_NVP(ar,data,M);
49 PINOCCHIO_MAKE_DATA_NVP(ar,data,Minv);
50 PINOCCHIO_MAKE_DATA_NVP(ar,data,C);
51 PINOCCHIO_MAKE_DATA_NVP(ar,data,dHdq);
52 PINOCCHIO_MAKE_DATA_NVP(ar,data,dFdq);
53 PINOCCHIO_MAKE_DATA_NVP(ar,data,dFdv);
54 PINOCCHIO_MAKE_DATA_NVP(ar,data,dFda);
55 PINOCCHIO_MAKE_DATA_NVP(ar,data,SDinv);
56 PINOCCHIO_MAKE_DATA_NVP(ar,data,UDinv);
57 PINOCCHIO_MAKE_DATA_NVP(ar,data,IS);
58 PINOCCHIO_MAKE_DATA_NVP(ar,data,vxI);
59 PINOCCHIO_MAKE_DATA_NVP(ar,data,Ivx);
60 PINOCCHIO_MAKE_DATA_NVP(ar,data,oYcrb);
61 PINOCCHIO_MAKE_DATA_NVP(ar,data,doYcrb);
62 PINOCCHIO_MAKE_DATA_NVP(ar,data,ddq);
63 PINOCCHIO_MAKE_DATA_NVP(ar,data,Yaba);
64 PINOCCHIO_MAKE_DATA_NVP(ar,data,u);
65 PINOCCHIO_MAKE_DATA_NVP(ar,data,Ag);
66 PINOCCHIO_MAKE_DATA_NVP(ar,data,dAg);
67 PINOCCHIO_MAKE_DATA_NVP(ar,data,hg);
68 PINOCCHIO_MAKE_DATA_NVP(ar,data,dhg);
69 PINOCCHIO_MAKE_DATA_NVP(ar,data,Ig);
70 PINOCCHIO_MAKE_DATA_NVP(ar,data,Fcrb);
71 PINOCCHIO_MAKE_DATA_NVP(ar,data,lastChild);
72 PINOCCHIO_MAKE_DATA_NVP(ar,data,nvSubtree);
73 PINOCCHIO_MAKE_DATA_NVP(ar,data,start_idx_v_fromRow);
74 PINOCCHIO_MAKE_DATA_NVP(ar,data,end_idx_v_fromRow);
75 PINOCCHIO_MAKE_DATA_NVP(ar,data,U);
76 PINOCCHIO_MAKE_DATA_NVP(ar,data,D);
77 PINOCCHIO_MAKE_DATA_NVP(ar,data,Dinv);
78 PINOCCHIO_MAKE_DATA_NVP(ar,data,parents_fromRow);
79 PINOCCHIO_MAKE_DATA_NVP(ar,data,supports_fromRow);
80 PINOCCHIO_MAKE_DATA_NVP(ar,data,nvSubtree_fromRow);
81 PINOCCHIO_MAKE_DATA_NVP(ar,data,J);
82 PINOCCHIO_MAKE_DATA_NVP(ar,data,dJ);
83 PINOCCHIO_MAKE_DATA_NVP(ar,data,dVdq);
84 PINOCCHIO_MAKE_DATA_NVP(ar,data,dAdq);
85 PINOCCHIO_MAKE_DATA_NVP(ar,data,dAdv);
86 PINOCCHIO_MAKE_DATA_NVP(ar,data,dtau_dq);
87 PINOCCHIO_MAKE_DATA_NVP(ar,data,dtau_dv);
88 PINOCCHIO_MAKE_DATA_NVP(ar,data,ddq_dq);
89 PINOCCHIO_MAKE_DATA_NVP(ar,data,ddq_dv);
90 PINOCCHIO_MAKE_DATA_NVP(ar,data,iMf);
91 PINOCCHIO_MAKE_DATA_NVP(ar,data,com);
92 PINOCCHIO_MAKE_DATA_NVP(ar,data,vcom);
93 PINOCCHIO_MAKE_DATA_NVP(ar,data,acom);
94 PINOCCHIO_MAKE_DATA_NVP(ar,data,mass);
95 PINOCCHIO_MAKE_DATA_NVP(ar,data,Jcom);
96 PINOCCHIO_MAKE_DATA_NVP(ar,data,kinetic_energy);
97 PINOCCHIO_MAKE_DATA_NVP(ar,data,potential_energy);
98 PINOCCHIO_MAKE_DATA_NVP(ar,data,JMinvJt);
99 PINOCCHIO_MAKE_DATA_NVP(ar,data,lambda_c);
100 PINOCCHIO_MAKE_DATA_NVP(ar,data,torque_residual);
101 PINOCCHIO_MAKE_DATA_NVP(ar,data,dq_after);
102 PINOCCHIO_MAKE_DATA_NVP(ar,data,impulse_c);
103 PINOCCHIO_MAKE_DATA_NVP(ar,data,staticRegressor);
104 PINOCCHIO_MAKE_DATA_NVP(ar,data,bodyRegressor);
105 PINOCCHIO_MAKE_DATA_NVP(ar,data,jointTorqueRegressor);
106 PINOCCHIO_MAKE_DATA_NVP(ar,data,kinematic_hessians);
112 #undef PINOCCHIO_MAKE_DATA_NVP
114 #endif // ifndef __pinocchio_multibody_data_serialization_hpp__