@@ -196,12 +196,12 @@ namespace pinocchio
196196
197197 data.M .translation () << radius_a * nx, radius_b * ny, radius_c * nz;
198198
199- data.S .matrix () << c1c2, s2, Scalar (0 ),
200- -c1s2, c2, Scalar (0 ),
201- s1, Scalar (0 ), Scalar (1 ),
202- c1 * (-radius_b * s0 * s1 + radius_c * c0 * c1 * s2), c1 * (radius_a - radius_c * c0 * c2), -radius_b * c1 * s0,
199+ data.S .matrix () << c1 * (-radius_b * s0 * s1 + radius_c * c0 * c1 * s2), c1 * (radius_a - radius_c * c0 * c2), -radius_b * c1 * s0,
203200 -radius_a * s1 * s1 - radius_b * c0 * c1 + radius_c * c0 * c1 * c1 * c2, radius_b * s0 * s1 + radius_c * c0 * c1 * s2, radius_a * s1,
204- c1 * (radius_a * s1 * s2 + radius_b * c1 * c2 * s0 - radius_c * s0), radius_a * c2 * s1 + radius_b * c1 * s0 * s2 + radius_c * c0 * s1, Scalar (0 );
201+ c1 * (radius_a * s1 * s2 + radius_b * c1 * c2 * s0 - radius_c * s0), radius_a * c2 * s1 + radius_b * c1 * s0 * s2 + radius_c * c0 * s1, Scalar (0 ),
202+ c1c2, s2, Scalar (0 ),
203+ -c1s2, c2, Scalar (0 ),
204+ s1, Scalar (0 ), Scalar (1 );
205205 }
206206
207207 template <typename TangentVector>
@@ -240,45 +240,44 @@ namespace pinocchio
240240 Scalar Sdot_11, Sdot_21, Sdot_31, Sdot_41, Sdot_51, Sdot_61;
241241 Scalar Sdot_12, Sdot_22, Sdot_32, Sdot_42, Sdot_52, Sdot_62;
242242 Scalar Sdot_13, Sdot_23, Sdot_33, Sdot_43, Sdot_53, Sdot_63;
243-
244243
245- // Upper part (angular)
246- Sdot_11 = - (qdot1 * c2 * s1 + qdot2 * c1 * s2);
247- Sdot_21 = qdot1 * s1 * s2 - qdot2 * c1 * c2;
248- Sdot_31 = qdot1 * c1;
244+ // Lower part (angular)
245+ Sdot_41 = - (qdot1 * c2 * s1 + qdot2 * c1 * s2);
246+ Sdot_51 = qdot1 * s1 * s2 - qdot2 * c1 * c2;
247+ Sdot_61 = qdot1 * c1;
249248
250- Sdot_12 = qdot2 * c2;
251- Sdot_22 = - qdot2 * s2;
252- Sdot_32 = Scalar (0 );
249+ Sdot_42 = qdot2 * c2;
250+ Sdot_52 = - qdot2 * s2;
251+ Sdot_62 = Scalar (0 );
253252
254- Sdot_13 = Scalar (0 );
255- Sdot_23 = Scalar (0 );
256- Sdot_33 = Scalar (0 );
253+ Sdot_43 = Scalar (0 );
254+ Sdot_53 = Scalar (0 );
255+ Sdot_63 = Scalar (0 );
257256
258- // Lower part (linear)
259- Sdot_41 = - qdot0 *c1 * (radius_b * c0 * s1 + radius_c * c0 * s0 * s2)
257+ // Upper part (linear)
258+ Sdot_11 = - qdot0 *c1 * (radius_b * c0 * s1 + radius_c * c0 * s0 * s2)
260259 + qdot1 * (-2 * radius_b * c1 * c1 * s0 + radius_b * s0 - 2 * radius_c * c0 * c1 * s1 * s2)
261260 + qdot2 * - radius_c * c0 * c1 * c1 * s2;
262- Sdot_51 = qdot0 * c1 * s0 *(radius_b - radius_c * c1 * c2)
261+ Sdot_21 = qdot0 * c1 * s0 *(radius_b - radius_c * c1 * c2)
263262 - qdot1 * s1 * ( 2 * radius_a * c1 - radius_b * c0 + 2 * radius_c * c0 * c1 * c2)
264263 + qdot2 * radius_c * c0 * c1 * c1 * s2;
265- Sdot_61 = qdot0 * c0 * c1 *(radius_b * c1 * c2 - radius_c)
264+ Sdot_31 = qdot0 * c0 * c1 *(radius_b * c1 * c2 - radius_c)
266265 + qdot1 * ( - 2 * radius_a *c1 * c1 * s2 + + radius_a * s2 - 2 * radius_b *c1 * c2 * s0 * s1)
267266 + qdot2 * c1 * (radius_a * c2 * s1 + radius_b * c1 * s0 * s2);
268267
269- Sdot_42 = qdot0 * radius_c * c1 * c2 * s0
268+ Sdot_12 = qdot0 * radius_c * c1 * c2 * s0
270269 - qdot1 * s1 * (radius_b * c1 * s0 - radius_c * c0 * s1 * s2)
271270 + qdot2 * radius_c * c0 * c1 * c2;
272- Sdot_52 = - qdot0 * (radius_b * c0 * c1 * s2 + radius_c * c1 *s0 * s2)
271+ Sdot_22 = - qdot0 * (radius_b * c0 * c1 * s2 + radius_c * c1 *s0 * s2)
273272 + qdot1 *(radius_b * c1 * s0 - radius_c * c0 * s1 * s2)
274273 + qdot2 * radius_c * c0 * c1 * c2;
275- Sdot_62 = qdot0 * (radius_b * c0 *c1*s2 +radius_c *s0*s1)
274+ Sdot_32 = qdot0 * (radius_b * c0 *c1*s2 +radius_c *s0*s1)
276275 - qdot1 * (- radius_a * c1 * c2 + radius_b * s0 * s1 * s2 + radius_c * c0 * c1)
277276 - qdot2 * (radius_a * s1 * s2 - radius_b * c1 * c2 * s0);
278277
279- Sdot_43 = radius_b * (-qdot0 * c0 * c1 + qdot1 * s0 * s1);
280- Sdot_53 = -qdot1 * radius_a * c1;
281- Sdot_63 = Scalar (0 );
278+ Sdot_13 = radius_b * (-qdot0 * c0 * c1 + qdot1 * s0 * s1);
279+ Sdot_23 = -qdot1 * radius_a * c1;
280+ Sdot_33 = Scalar (0 );
282281
283282 data.Sdot .matrix () << Sdot_11, Sdot_12, Sdot_13,
284283 Sdot_21, Sdot_22, Sdot_23,
@@ -320,7 +319,7 @@ namespace pinocchio
320319 ny = -s0 * c1;
321320 nz = c0 * c1;
322321
323- data.M .translation () << radius_a * nx, radius_b * ny, radius_c * nz;
322+ data.M .translation () << Scalar ( 0.01 ) * nx, radius_b * ny, radius_c * nz;
324323
325324 data.S .matrix () << c1c2, s2, Scalar (0 ),
326325 -c1s2, c2, Scalar (0 ),
@@ -343,43 +342,43 @@ namespace pinocchio
343342 Scalar Sdot_12, Sdot_22, Sdot_32, Sdot_42, Sdot_52, Sdot_62;
344343 Scalar Sdot_13, Sdot_23, Sdot_33, Sdot_43, Sdot_53, Sdot_63;
345344
346- // Upper part (angular)
347- Sdot_11 = -(qdot1 * c2 * s1 + qdot2 * c1 * s2);
348- Sdot_21 = qdot1 * s1 * s2 - qdot2 * c1 * c2;
349- Sdot_31 = qdot1 * c1;
345+ // Lower part (angular)
346+ Sdot_41 = -(qdot1 * c2 * s1 + qdot2 * c1 * s2);
347+ Sdot_51 = qdot1 * s1 * s2 - qdot2 * c1 * c2;
348+ Sdot_61 = qdot1 * c1;
350349
351- Sdot_12 = qdot2 * c2;
352- Sdot_22 = -qdot2 * s2;
353- Sdot_32 = Scalar (0 );
350+ Sdot_42 = qdot2 * c2;
351+ Sdot_52 = -qdot2 * s2;
352+ Sdot_62 = Scalar (0 );
354353
355- Sdot_13 = Scalar (0 );
356- Sdot_23 = Scalar (0 );
357- Sdot_33 = Scalar (0 );
354+ Sdot_43 = Scalar (0 );
355+ Sdot_53 = Scalar (0 );
356+ Sdot_63 = Scalar (0 );
358357
359358 // Lower part (linear)
360- Sdot_41 = -qdot0 * c1 * (radius_b * c0 * s1 + radius_c * c0 * s0 * s2)
359+ Sdot_11 = -qdot0 * c1 * (radius_b * c0 * s1 + radius_c * c0 * s0 * s2)
361360 + qdot1 * (-2 * radius_b * c1 * c1 * s0 + radius_b * s0 - 2 * radius_c * c0 * c1 * s1 * s2)
362361 + qdot2 * -radius_c * c0 * c1 * c1 * s2;
363- Sdot_51 = qdot0 * c1 * s0 * (radius_b - radius_c * c1 * c2)
362+ Sdot_21 = qdot0 * c1 * s0 * (radius_b - radius_c * c1 * c2)
364363 - qdot1 * s1 * (2 * radius_a * c1 - radius_b * c0 + 2 * radius_c * c0 * c1 * c2)
365364 + qdot2 * radius_c * c0 * c1 * c1 * s2;
366- Sdot_61 = qdot0 * c0 * c1 * (radius_b * c1 * c2 - radius_c)
365+ Sdot_31 = qdot0 * c0 * c1 * (radius_b * c1 * c2 - radius_c)
367366 + qdot1 * (-2 * radius_a * c1 * c1 * s2 + radius_a * s2 - 2 * radius_b * c1 * c2 * s0 * s1)
368367 + qdot2 * c1 * (radius_a * c2 * s1 + radius_b * c1 * s0 * s2);
369368
370- Sdot_42 = qdot0 * radius_c * c1 * c2 * s0
369+ Sdot_12 = qdot0 * radius_c * c1 * c2 * s0
371370 - qdot1 * s1 * (radius_b * c1 * s0 - radius_c * c0 * s1 * s2)
372371 + qdot2 * radius_c * c0 * c1 * c2;
373- Sdot_52 = -qdot0 * (radius_b * c0 * c1 * s2 + radius_c * c1 * s0 * s2)
372+ Sdot_22 = -qdot0 * (radius_b * c0 * c1 * s2 + radius_c * c1 * s0 * s2)
374373 + qdot1 * (radius_b * c1 * s0 - radius_c * c0 * s1 * s2)
375374 + qdot2 * radius_c * c0 * c1 * c2;
376- Sdot_62 = qdot0 * (radius_b * c0 * c1 * s2 + radius_c * s0 * s1)
375+ Sdot_32 = qdot0 * (radius_b * c0 * c1 * s2 + radius_c * s0 * s1)
377376 - qdot1 * (-radius_a * c1 * c2 + radius_b * s0 * s1 * s2 + radius_c * c0 * c1)
378377 - qdot2 * (radius_a * s1 * s2 - radius_b * c1 * c2 * s0);
379378
380- Sdot_43 = radius_b * (-qdot0 * c0 * c1 + qdot1 * s0 * s1);
381- Sdot_53 = -qdot1 * radius_a * c1;
382- Sdot_63 = Scalar (0 );
379+ Sdot_13 = radius_b * (-qdot0 * c0 * c1 + qdot1 * s0 * s1);
380+ Sdot_23 = -qdot1 * radius_a * c1;
381+ Sdot_33 = Scalar (0 );
383382
384383 data.Sdot .matrix () << Sdot_11, Sdot_12, Sdot_13,
385384 Sdot_21, Sdot_22, Sdot_23,
0 commit comments