28 const double& r00,
const double& r10,
const double& r20,
29 const double& r01,
const double& r11,
const double& r21,
30 const double& r02,
const double& r12,
const double& r22) {
34 double _aux1 = 1 / pow(qw, 3);
35 double _aux2 = -0.03125 * (r21 - r12) * _aux1;
36 double _aux3 = 1 / qw;
37 double _aux4 = 0.25 * _aux3;
38 double _aux5 = -0.25 * _aux3;
39 double _aux6 = 0.03125 * (r20 - r02) * _aux1;
40 double _aux7 = -0.03125 * (r10 - r01) * _aux1;
41 dq_dR_w(0, 0) = _aux2;
45 dq_dR_w(0, 4) = _aux2;
46 dq_dR_w(0, 5) = _aux4;
48 dq_dR_w(0, 7) = _aux5;
49 dq_dR_w(0, 8) = _aux2;
50 dq_dR_w(1, 0) = _aux6;
52 dq_dR_w(1, 2) = _aux5;
54 dq_dR_w(1, 4) = _aux6;
56 dq_dR_w(1, 6) = _aux4;
58 dq_dR_w(1, 8) = _aux6;
59 dq_dR_w(2, 0) = _aux7;
60 dq_dR_w(2, 1) = _aux4;
62 dq_dR_w(2, 3) = _aux5;
63 dq_dR_w(2, 4) = _aux7;
67 dq_dR_w(2, 8) = _aux7;
70 const double& r00,
const double& r10,
const double& r20,
71 const double& r01,
const double& r11,
const double& r21,
72 const double& r02,
const double& r12,
const double& r22) {
78 double _aux1 = 1 / qx;
79 double _aux2 = -0.125 * _aux1;
80 double _aux3 = 1 / pow(qx, 3);
81 double _aux4 = r10 + r01;
82 double _aux5 = 0.25 * _aux1;
83 double _aux6 = 0.03125 * _aux3 * _aux4;
84 double _aux7 = r20 + r02;
85 double _aux8 = 0.03125 * _aux3 * _aux7;
86 dq_dR_x(0, 0) = 0.125 * _aux1;
90 dq_dR_x(0, 4) = _aux2;
94 dq_dR_x(0, 8) = _aux2;
95 dq_dR_x(1, 0) = -0.03125 * _aux3 * _aux4;
96 dq_dR_x(1, 1) = _aux5;
98 dq_dR_x(1, 3) = _aux5;
99 dq_dR_x(1, 4) = _aux6;
103 dq_dR_x(1, 8) = _aux6;
104 dq_dR_x(2, 0) = -0.03125 * _aux3 * _aux7;
106 dq_dR_x(2, 2) = _aux5;
108 dq_dR_x(2, 4) = _aux8;
110 dq_dR_x(2, 6) = _aux5;
112 dq_dR_x(2, 8) = _aux8;
115 const double& r00,
const double& r10,
const double& r20,
116 const double& r01,
const double& r11,
const double& r21,
117 const double& r02,
const double& r12,
const double& r22) {
123 double _aux1 = 1 / pow(qy, 3);
124 double _aux2 = r10 + r01;
125 double _aux3 = 0.03125 * _aux1 * _aux2;
126 double _aux4 = 1 / qy;
127 double _aux5 = 0.25 * _aux4;
128 double _aux6 = -0.125 * _aux4;
129 double _aux7 = r21 + r12;
130 double _aux8 = 0.03125 * _aux1 * _aux7;
131 dq_dR_y(0, 0) = _aux3;
132 dq_dR_y(0, 1) = _aux5;
134 dq_dR_y(0, 3) = _aux5;
135 dq_dR_y(0, 4) = -0.03125 * _aux1 * _aux2;
139 dq_dR_y(0, 8) = _aux3;
140 dq_dR_y(1, 0) = _aux6;
144 dq_dR_y(1, 4) = 0.125 * _aux4;
148 dq_dR_y(1, 8) = _aux6;
149 dq_dR_y(2, 0) = _aux8;
153 dq_dR_y(2, 4) = -0.03125 * _aux1 * _aux7;
154 dq_dR_y(2, 5) = _aux5;
156 dq_dR_y(2, 7) = _aux5;
157 dq_dR_y(2, 8) = _aux8;
160 const double& r00,
const double& r10,
const double& r20,
161 const double& r01,
const double& r11,
const double& r21,
162 const double& r02,
const double& r12,
const double& r22) {
168 double _aux1 = 1 / pow(qz, 3);
169 double _aux2 = r20 + r02;
170 double _aux3 = 0.03125 * _aux1 * _aux2;
171 double _aux4 = 1 / qz;
172 double _aux5 = 0.25 * _aux4;
173 double _aux6 = r21 + r12;
174 double _aux7 = 0.03125 * _aux1 * _aux6;
175 double _aux8 = -0.125 * _aux4;
176 dq_dR_z(0, 0) = _aux3;
178 dq_dR_z(0, 2) = _aux5;
180 dq_dR_z(0, 4) = _aux3;
182 dq_dR_z(0, 6) = _aux5;
184 dq_dR_z(0, 8) = -0.03125 * _aux1 * _aux2;
185 dq_dR_z(1, 0) = _aux7;
189 dq_dR_z(1, 4) = _aux7;
190 dq_dR_z(1, 5) = _aux5;
192 dq_dR_z(1, 7) = _aux5;
193 dq_dR_z(1, 8) = -0.03125 * _aux1 * _aux6;
194 dq_dR_z(2, 0) = _aux8;
198 dq_dR_z(2, 4) = _aux8;
202 dq_dR_z(2, 8) = 0.125 * _aux4;
205 const double& qy,
const double& qz,
const double& qw) {
206 double _aux1 = -4 * qy;
207 double _aux2 = -4 * qz;
208 double _aux3 = 1 / qw;
209 double _aux4 = 2 * qx * qz;
210 double _aux5 = -_aux3 * (_aux4 - 2 * qw * qy);
211 double _aux6 = 2 * qy * qz;
212 double _aux7 = -_aux3 * (_aux6 - 2 * qw * qx);
213 double _aux8 = -2 * pow(qw, 2);
214 double _aux9 = _aux8 + 2 * pow(qz, 2);
215 double _aux10 = 2 * qw * qz;
216 double _aux11 = (_aux10 + 2 * qx * qy) * _aux3;
217 double _aux12 = _aux8 + 2 * pow(qy, 2);
218 double _aux13 = _aux3 * (_aux6 + 2 * qw * qx);
219 double _aux14 = _aux3 * (_aux4 + 2 * qw * qy);
220 double _aux15 = -4 * qx;
221 double _aux16 = _aux8 + 2 * pow(qx, 2);
222 double _aux17 = (_aux10 - 2 * qx * qy) * _aux3;
228 dR_dq(1, 2) = -_aux3 * _aux9;
229 dR_dq(2, 0) = _aux11;
230 dR_dq(2, 1) = _aux12 * _aux3;
231 dR_dq(2, 2) = _aux13;
232 dR_dq(3, 0) = _aux14;
233 dR_dq(3, 1) = _aux13;
234 dR_dq(3, 2) = _aux3 * _aux9;
235 dR_dq(4, 0) = _aux15;
238 dR_dq(5, 0) = -_aux16 * _aux3;
239 dR_dq(5, 1) = _aux17;
241 dR_dq(6, 0) = _aux17;
242 dR_dq(6, 1) = -_aux12 * _aux3;
244 dR_dq(7, 0) = _aux16 * _aux3;
245 dR_dq(7, 1) = _aux11;
246 dR_dq(7, 2) = _aux14;
247 dR_dq(8, 0) = _aux15;
void compute_dq_dR_z(Eigen::Matrix< double, 3, 9 > &dq_dR_z, const double &qz, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_x(Eigen::Matrix< double, 3, 9 > &dq_dR_x, const double &qx, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_y(Eigen::Matrix< double, 3, 9 > &dq_dR_y, const double &qy, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dq_dR_w(Eigen::Matrix< double, 3, 9 > &dq_dR_w, const double &qw, const double &r00, const double &r10, const double &r20, const double &r01, const double &r11, const double &r21, const double &r02, const double &r12, const double &r22)
void compute_dR_dq(Eigen::Matrix< double, 9, 3 > &dR_dq, const double &qx, const double &qy, const double &qz, const double &qw)