pinocchio  3.5.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
data.hpp
1 //
2 // Copyright (c) 2019 INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_data_serialization_hpp__
6 #define __pinocchio_multibody_data_serialization_hpp__
7 
8 #include <boost/serialization/variant.hpp>
9 #include <boost/serialization/vector.hpp>
10 
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"
16 
17 #define PINOCCHIO_MAKE_DATA_NVP(ar, data, field_name) ar & make_nvp(#field_name, data.field_name)
18 
19 namespace boost
20 {
21  namespace serialization
22  {
23  template<
24  class Archive,
25  typename Scalar,
26  int Options,
27  template<typename, int> class JointCollectionTpl>
28  void serialize(
29  Archive & ar,
31  const unsigned int /*version*/)
32  {
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);
146  }
147 
148  } // namespace serialization
149 } // namespace boost
150 
151 #undef PINOCCHIO_MAKE_DATA_NVP
152 
153 #endif // ifndef __pinocchio_multibody_data_serialization_hpp__