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) ar & make_nvp(#field_name, data.field_name)
21 namespace serialization
27 template<
typename,
int>
class JointCollectionTpl>
33 PINOCCHIO_MAKE_DATA_NVP(ar, data, joints);
34 PINOCCHIO_MAKE_DATA_NVP(ar, data, a);
35 PINOCCHIO_MAKE_DATA_NVP(ar, data, oa);
36 PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_drift);
37 PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_augmented);
38 PINOCCHIO_MAKE_DATA_NVP(ar, data, a_gf);
39 PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_gf);
40 PINOCCHIO_MAKE_DATA_NVP(ar, data, v);
41 PINOCCHIO_MAKE_DATA_NVP(ar, data, ov);
42 PINOCCHIO_MAKE_DATA_NVP(ar, data, f);
43 PINOCCHIO_MAKE_DATA_NVP(ar, data, of);
44 PINOCCHIO_MAKE_DATA_NVP(ar, data, of_augmented);
45 PINOCCHIO_MAKE_DATA_NVP(ar, data, h);
46 PINOCCHIO_MAKE_DATA_NVP(ar, data, oh);
47 PINOCCHIO_MAKE_DATA_NVP(ar, data, oMi);
48 PINOCCHIO_MAKE_DATA_NVP(ar, data, liMi);
49 PINOCCHIO_MAKE_DATA_NVP(ar, data, tau);
50 PINOCCHIO_MAKE_DATA_NVP(ar, data, nle);
51 PINOCCHIO_MAKE_DATA_NVP(ar, data, g);
52 PINOCCHIO_MAKE_DATA_NVP(ar, data, oMf);
53 PINOCCHIO_MAKE_DATA_NVP(ar, data, Ycrb);
54 PINOCCHIO_MAKE_DATA_NVP(ar, data, dYcrb);
55 PINOCCHIO_MAKE_DATA_NVP(ar, data, M);
56 PINOCCHIO_MAKE_DATA_NVP(ar, data, Minv);
57 PINOCCHIO_MAKE_DATA_NVP(ar, data, C);
58 PINOCCHIO_MAKE_DATA_NVP(ar, data, dHdq);
59 PINOCCHIO_MAKE_DATA_NVP(ar, data, dFdq);
60 PINOCCHIO_MAKE_DATA_NVP(ar, data, dFdv);
61 PINOCCHIO_MAKE_DATA_NVP(ar, data, dFda);
62 PINOCCHIO_MAKE_DATA_NVP(ar, data, SDinv);
63 PINOCCHIO_MAKE_DATA_NVP(ar, data, UDinv);
64 PINOCCHIO_MAKE_DATA_NVP(ar, data, IS);
65 PINOCCHIO_MAKE_DATA_NVP(ar, data, vxI);
66 PINOCCHIO_MAKE_DATA_NVP(ar, data, Ivx);
67 PINOCCHIO_MAKE_DATA_NVP(ar, data, B);
68 PINOCCHIO_MAKE_DATA_NVP(ar, data, oinertias);
69 PINOCCHIO_MAKE_DATA_NVP(ar, data, oYcrb);
70 PINOCCHIO_MAKE_DATA_NVP(ar, data, doYcrb);
71 PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq);
72 PINOCCHIO_MAKE_DATA_NVP(ar, data, Yaba);
73 PINOCCHIO_MAKE_DATA_NVP(ar, data, oYaba);
74 PINOCCHIO_MAKE_DATA_NVP(ar, data, oYaba_contact);
75 PINOCCHIO_MAKE_DATA_NVP(ar, data, oL);
76 PINOCCHIO_MAKE_DATA_NVP(ar, data, oK);
77 PINOCCHIO_MAKE_DATA_NVP(ar, data, u);
78 PINOCCHIO_MAKE_DATA_NVP(ar, data, Ag);
79 PINOCCHIO_MAKE_DATA_NVP(ar, data, dAg);
80 PINOCCHIO_MAKE_DATA_NVP(ar, data, hg);
81 PINOCCHIO_MAKE_DATA_NVP(ar, data, dhg);
82 PINOCCHIO_MAKE_DATA_NVP(ar, data, Ig);
83 PINOCCHIO_MAKE_DATA_NVP(ar, data, Fcrb);
84 PINOCCHIO_MAKE_DATA_NVP(ar, data, lastChild);
85 PINOCCHIO_MAKE_DATA_NVP(ar, data, nvSubtree);
86 PINOCCHIO_MAKE_DATA_NVP(ar, data, start_idx_v_fromRow);
87 PINOCCHIO_MAKE_DATA_NVP(ar, data, end_idx_v_fromRow);
88 PINOCCHIO_MAKE_DATA_NVP(ar, data, U);
89 PINOCCHIO_MAKE_DATA_NVP(ar, data, D);
90 PINOCCHIO_MAKE_DATA_NVP(ar, data, Dinv);
91 PINOCCHIO_MAKE_DATA_NVP(ar, data, parents_fromRow);
92 PINOCCHIO_MAKE_DATA_NVP(ar, data, mimic_parents_fromRow);
93 PINOCCHIO_MAKE_DATA_NVP(ar, data, non_mimic_parents_fromRow);
94 PINOCCHIO_MAKE_DATA_NVP(ar, data, idx_vExtended_to_idx_v_fromRow);
95 PINOCCHIO_MAKE_DATA_NVP(ar, data, mimic_subtree_joint);
96 PINOCCHIO_MAKE_DATA_NVP(ar, data, supports_fromRow);
97 PINOCCHIO_MAKE_DATA_NVP(ar, data, nvSubtree_fromRow);
98 PINOCCHIO_MAKE_DATA_NVP(ar, data, J);
99 PINOCCHIO_MAKE_DATA_NVP(ar, data, dJ);
100 PINOCCHIO_MAKE_DATA_NVP(ar, data, ddJ);
101 PINOCCHIO_MAKE_DATA_NVP(ar, data, psid);
102 PINOCCHIO_MAKE_DATA_NVP(ar, data, psidd);
103 PINOCCHIO_MAKE_DATA_NVP(ar, data, dVdq);
104 PINOCCHIO_MAKE_DATA_NVP(ar, data, dAdq);
105 PINOCCHIO_MAKE_DATA_NVP(ar, data, dAdv);
106 PINOCCHIO_MAKE_DATA_NVP(ar, data, dtau_dq);
107 PINOCCHIO_MAKE_DATA_NVP(ar, data, dtau_dv);
108 PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq_dq);
109 PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq_dv);
110 PINOCCHIO_MAKE_DATA_NVP(ar, data, dvc_dq);
111 PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_dq);
112 PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_dv);
113 PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_da);
114 PINOCCHIO_MAKE_DATA_NVP(ar, data, osim);
115 PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dq);
116 PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dv);
117 PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dtau);
118 PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dx_prox);
119 PINOCCHIO_MAKE_DATA_NVP(ar, data, drhs_prox);
120 PINOCCHIO_MAKE_DATA_NVP(ar, data, iMf);
121 PINOCCHIO_MAKE_DATA_NVP(ar, data, com);
122 PINOCCHIO_MAKE_DATA_NVP(ar, data, vcom);
123 PINOCCHIO_MAKE_DATA_NVP(ar, data, acom);
124 PINOCCHIO_MAKE_DATA_NVP(ar, data, mass);
125 PINOCCHIO_MAKE_DATA_NVP(ar, data, Jcom);
126 PINOCCHIO_MAKE_DATA_NVP(ar, data, kinetic_energy);
127 PINOCCHIO_MAKE_DATA_NVP(ar, data, potential_energy);
128 PINOCCHIO_MAKE_DATA_NVP(ar, data, mechanical_energy);
129 PINOCCHIO_MAKE_DATA_NVP(ar, data, JMinvJt);
130 PINOCCHIO_MAKE_DATA_NVP(ar, data, lambda_c);
131 PINOCCHIO_MAKE_DATA_NVP(ar, data, torque_residual);
132 PINOCCHIO_MAKE_DATA_NVP(ar, data, dq_after);
133 PINOCCHIO_MAKE_DATA_NVP(ar, data, impulse_c);
134 PINOCCHIO_MAKE_DATA_NVP(ar, data, lambda_c_prox);
135 PINOCCHIO_MAKE_DATA_NVP(ar, data, diff_lambda_c);
136 PINOCCHIO_MAKE_DATA_NVP(ar, data, sDUiJt);
137 PINOCCHIO_MAKE_DATA_NVP(ar, data, staticRegressor);
138 PINOCCHIO_MAKE_DATA_NVP(ar, data, bodyRegressor);
139 PINOCCHIO_MAKE_DATA_NVP(ar, data, jointTorqueRegressor);
140 PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dqdq);
141 PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dvdv);
142 PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dqdv);
143 PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dadq);
144 PINOCCHIO_MAKE_DATA_NVP(ar, data, kinematic_hessians);
145 PINOCCHIO_MAKE_DATA_NVP(ar, data, primal_dual_contact_solution);
151 #undef PINOCCHIO_MAKE_DATA_NVP