@@ -324,93 +324,90 @@ namespace pinocchio
324324 return res;
325325 }
326326
327- template <typename ConfigVector>
328- Vector3 computeTranslations (
329- const typename Eigen::MatrixBase<ConfigVector> & qs) const
330- {
331- Scalar c0, s0;
332- SINCOS (qs (0 ), &s0, &c0);
333- Scalar c1, s1;
334- SINCOS (qs (1 ), &s1, &c1);
335-
336- return computeTranslations (s0, c0, s1, c1);
337- }
338-
339- Vector3 computeTranslations (
340- const Scalar & s0,
341- const Scalar & c0,
342- const Scalar & s1,
343- const Scalar & c1) const
344- {
345- Scalar nx, ny, nz;
346- nx = s1;
347- ny = -s0 * c1;
348- nz = c0 * c1;
349-
350- return Vector3 (radius_a * nx, radius_b * ny, radius_c * nz);
351- }
352-
353- template <typename ConfigVector, typename TangentVector>
354- Vector3 computeTranslationVelocities (
355- const typename Eigen::MatrixBase<ConfigVector> & qs,
356- const typename Eigen::MatrixBase<TangentVector> & vs) const
357- {
358- Scalar c0, s0;
359- SINCOS (qs (0 ), &s0, &c0);
360- Scalar c1, s1;
361- SINCOS (qs (1 ), &s1, &c1);
362-
363- return computeTranslationVelocities (s0, c0, s1, c1, vs (0 ), vs (1 ));
364- }
365-
366- Vector3 computeTranslationVelocities (
367- const Scalar & s0,
368- const Scalar & c0,
369- const Scalar & s1,
370- const Scalar & c1,
371- const Scalar & q0dot,
372- const Scalar & q1dot) const
373- {
374- Vector3 v;
375- v (0 ) = radius_a * c1 * q1dot;
376- v (1 ) = radius_b * (- c0 * c1 * q0dot + s0 * s1 * q1dot);
377- v (2 ) = radius_c * (-s0 * c1 * q0dot - c0 * s1 * q1dot);
378- return v;
379- }
380-
381- template <typename ConfigVector, typename TangentVector, typename TangentVector2>
382- Vector3 computeTranslationAccelerations (
383- const typename Eigen::MatrixBase<ConfigVector> & qs,
384- const typename Eigen::MatrixBase<TangentVector> & vs,
385- const typename Eigen::MatrixBase<TangentVector2> & as) const
386- {
387- Vector3 a;
388- Scalar c0, s0;
389- SINCOS (qs (0 ), &s0, &c0);
390- Scalar c1, s1;
391- SINCOS (qs (1 ), &s1, &c1);
392- return computeTranslationAccelerations (
393- s0, c0, s1, c1, vs (0 ), vs (1 ), as (0 ), as (1 ));
394- }
395-
396- Vector3 computeTranslationAccelerations (
397- const Scalar & s0,
398- const Scalar & c0,
399- const Scalar & s1,
400- const Scalar & c1,
401- const Scalar & q0dot,
402- const Scalar & q1dot,
403- const Scalar & q0ddot,
404- const Scalar & q1ddot) const
405- {
406- Vector3 a;
407- a (0 ) = radius_a * (-s1 * q1dot * q1dot + c1 * q1ddot);
408- a (1 ) = radius_b * (s0 * c1 * q0dot * q0dot + c0 * s1 * q0dot * q1dot - c0 * c1 * q0ddot
409- + c0 * s1 * q1dot * q0dot + s0 * c1 * q1dot * q1dot + s0 * s1 * q1ddot);
410- a (2 ) = radius_c * (-c0 * c1 * q0dot * q0dot + s0 * s1 * q0dot * q1dot - s0 * c1 * q0ddot
411- + s0 * s1 * q1dot * q0dot - c0 * c1 * q1dot * q1dot - c0 * s1 * q1ddot);
412- return a;
413- }
327+ template <typename ConfigVector>
328+ Vector3 computeTranslations (const typename Eigen::MatrixBase<ConfigVector> & qs) const
329+ {
330+ Scalar c0, s0;
331+ SINCOS (qs (0 ), &s0, &c0);
332+ Scalar c1, s1;
333+ SINCOS (qs (1 ), &s1, &c1);
334+
335+ return computeTranslations (s0, c0, s1, c1);
336+ }
337+
338+ Vector3 computeTranslations (
339+ const Scalar & s0, const Scalar & c0, const Scalar & s1, const Scalar & c1) const
340+ {
341+ Scalar nx, ny, nz;
342+ nx = s1;
343+ ny = -s0 * c1;
344+ nz = c0 * c1;
345+
346+ return Vector3 (radius_a * nx, radius_b * ny, radius_c * nz);
347+ }
348+
349+ template <typename ConfigVector, typename TangentVector>
350+ Vector3 computeTranslationVelocities (
351+ const typename Eigen::MatrixBase<ConfigVector> & qs,
352+ const typename Eigen::MatrixBase<TangentVector> & vs) const
353+ {
354+ Scalar c0, s0;
355+ SINCOS (qs (0 ), &s0, &c0);
356+ Scalar c1, s1;
357+ SINCOS (qs (1 ), &s1, &c1);
358+
359+ return computeTranslationVelocities (s0, c0, s1, c1, vs (0 ), vs (1 ));
360+ }
361+
362+ Vector3 computeTranslationVelocities (
363+ const Scalar & s0,
364+ const Scalar & c0,
365+ const Scalar & s1,
366+ const Scalar & c1,
367+ const Scalar & q0dot,
368+ const Scalar & q1dot) const
369+ {
370+ Vector3 v;
371+ v (0 ) = radius_a * c1 * q1dot;
372+ v (1 ) = radius_b * (-c0 * c1 * q0dot + s0 * s1 * q1dot);
373+ v (2 ) = radius_c * (-s0 * c1 * q0dot - c0 * s1 * q1dot);
374+ return v;
375+ }
376+
377+ template <typename ConfigVector, typename TangentVector, typename TangentVector2>
378+ Vector3 computeTranslationAccelerations (
379+ const typename Eigen::MatrixBase<ConfigVector> & qs,
380+ const typename Eigen::MatrixBase<TangentVector> & vs,
381+ const typename Eigen::MatrixBase<TangentVector2> & as) const
382+ {
383+ Vector3 a;
384+ Scalar c0, s0;
385+ SINCOS (qs (0 ), &s0, &c0);
386+ Scalar c1, s1;
387+ SINCOS (qs (1 ), &s1, &c1);
388+ return computeTranslationAccelerations (s0, c0, s1, c1, vs (0 ), vs (1 ), as (0 ), as (1 ));
389+ }
390+
391+ Vector3 computeTranslationAccelerations (
392+ const Scalar & s0,
393+ const Scalar & c0,
394+ const Scalar & s1,
395+ const Scalar & c1,
396+ const Scalar & q0dot,
397+ const Scalar & q1dot,
398+ const Scalar & q0ddot,
399+ const Scalar & q1ddot) const
400+ {
401+ Vector3 a;
402+ a (0 ) = radius_a * (-s1 * q1dot * q1dot + c1 * q1ddot);
403+ a (1 ) =
404+ radius_b
405+ * (s0 * c1 * q0dot * q0dot + c0 * s1 * q0dot * q1dot - c0 * c1 * q0ddot + c0 * s1 * q1dot * q0dot + s0 * c1 * q1dot * q1dot + s0 * s1 * q1ddot);
406+ a (2 ) =
407+ radius_c
408+ * (-c0 * c1 * q0dot * q0dot + s0 * s1 * q0dot * q1dot - s0 * c1 * q0ddot + s0 * s1 * q1dot * q0dot - c0 * c1 * q1dot * q1dot - c0 * s1 * q1ddot);
409+ return a;
410+ }
414411
415412 void computeMotionSubspace (
416413 const Scalar & s0,
0 commit comments