joint-universal.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_joint_universal_hpp__
6 #define __pinocchio_multibody_joint_universal_hpp__
7 
8 #include "pinocchio/fwd.hpp"
14 
17 
18 namespace pinocchio
19 {
20  template<typename Scalar, int Options>
22 
23  template<typename _Scalar, int _Options>
24  struct traits<JointMotionSubspaceUniversalTpl<_Scalar, _Options>>
25  {
26  typedef _Scalar Scalar;
27  enum
28  {
29  Options = _Options
30  };
31  enum
32  {
33  LINEAR = 0,
34  ANGULAR = 3
35  };
36 
38  typedef Eigen::Matrix<Scalar, 2, 1, Options> JointForce;
39  typedef Eigen::Matrix<Scalar, 6, 2, Options> DenseBase;
40  typedef Eigen::Matrix<Scalar, 3, 3, Options> ReducedSquaredMatrix;
41 
44 
45  typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3;
46  typedef Eigen::Matrix<Scalar, 3, 2, Options> Matrix32;
47  typedef Eigen::Matrix<Scalar, 2, 2, Options> Matrix2;
48 
50  }; // traits JointMotionSubspaceUniversalTpl
51 
52  template<typename Scalar, int Options>
54  {
55  typedef Eigen::Matrix<Scalar, 6, 2, Options> ReturnType;
56  };
57 
58  template<typename Scalar, int Options, typename MotionDerived>
60  {
61  typedef Eigen::Matrix<Scalar, 6, 2, Options> ReturnType;
62  };
63 
64  template<typename Scalar, int Options, typename ForceDerived>
66  {
68  typedef Eigen::Matrix<
71  2,
72  1,
73  Options>
75  };
76 
77  template<typename Scalar, int Options, typename ForceSet>
79  {
81  typedef typename MatrixMatrixProduct<
82  Eigen::Transpose<const Matrix32>,
83  typename Eigen::MatrixBase<const ForceSet>::template NRowsBlockXpr<3>::Type>::type ReturnType;
84  };
85 
86  template<typename _Scalar, int _Options>
88  : JointMotionSubspaceBase<JointMotionSubspaceUniversalTpl<_Scalar, _Options>>
89  {
90  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
92 
93  enum
94  {
95  NV = 2
96  };
97 
100 
102  {
103  }
104 
105  template<typename Matrix32Like>
106  JointMotionSubspaceUniversalTpl(const Eigen::MatrixBase<Matrix32Like> & subspace)
107  : m_S(subspace)
108  {
109  }
110 
111  template<typename Vector3Like>
112  JointMotion __mult__(const Eigen::MatrixBase<Vector3Like> & v) const
113  {
114  // EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector3Like,3);
115  return JointMotion(m_S * v);
116  }
117 
118  template<typename S1, int O1>
120  se3Action(const SE3Tpl<S1, O1> & m) const
121  {
123 
124  ReturnType res;
125  res.template middleRows<3>(ANGULAR).noalias() = m.rotation() * m_S;
126  cross(
127  m.translation(), res.template middleRows<3>(Motion::ANGULAR),
128  res.template middleRows<3>(LINEAR));
129  return res;
130  }
131 
132  template<typename S1, int O1>
135  {
137 
138  ReturnType res;
139  cross(m.translation(), m_S, res.template middleRows<3>(ANGULAR));
140  res.template middleRows<3>(LINEAR).noalias() =
141  -m.rotation().transpose() * res.template middleRows<3>(ANGULAR);
142 
143  // ANGULAR
144  res.template middleRows<3>(ANGULAR).noalias() = m.rotation().transpose() * m_S;
145  return res;
146  }
147 
148  int nv_impl() const
149  {
150  return NV;
151  }
152 
153  struct TransposeConst : JointMotionSubspaceTransposeBase<JointMotionSubspaceUniversalTpl>
154  {
157  : ref(ref)
158  {
159  }
160 
161  template<typename ForceDerived>
164  {
165  return ref.m_S.transpose() * f.angular();
166  }
167 
168  /* [CRBA] MatrixBase operator* (Constraint::Transpose S, ForceSet::Block) */
169  template<typename ForceSet>
171  operator*(const Eigen::MatrixBase<ForceSet> & F)
172  {
173  EIGEN_STATIC_ASSERT(
174  ForceSet::RowsAtCompileTime == 6, THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
175  /* Return ax.T * F[3:end,:] */
176  return ref.m_S.transpose() * F.template middleRows<3>(ANGULAR);
177  }
178  };
179 
181  {
182  return TransposeConst(*this);
183  }
184 
185  /* CRBA joint operators
186  * - ForceSet::Block = ForceSet
187  * - ForceSet operator* (Inertia Y,Constraint S)
188  * - MatrixBase operator* (Constraint::Transpose S, ForceSet::Block)
189  * - SE3::act(ForceSet::Block)
190  */
191  DenseBase matrix_impl() const
192  {
193  DenseBase S;
194  S.template middleRows<3>(LINEAR).setZero();
195  S.template middleRows<3>(ANGULAR) = m_S;
196  return S;
197  }
198 
199  template<typename MotionDerived>
202  {
203  const typename MotionDerived::ConstLinearType v = m.linear();
204  const typename MotionDerived::ConstAngularType w = m.angular();
205 
206  DenseBase res;
207  cross(v, m_S, res.template middleRows<3>(LINEAR));
208  cross(w, m_S, res.template middleRows<3>(ANGULAR));
209  return res;
210  }
211 
212  const Matrix32 & angularSubspace() const
213  {
214  return m_S;
215  }
217  {
218  return m_S;
219  }
220 
221  bool isEqual(const JointMotionSubspaceUniversalTpl & other) const
222  {
223  return internal::comparison_eq(m_S, other.m_S);
224  }
225 
226  protected:
228 
229  }; // struct JointMotionSubspaceUniversalTpl
230 
231  namespace details
232  {
233  template<typename Scalar, int Options>
235  {
238 
240  {
241  return constraint.matrix().transpose() * constraint.matrix();
242  }
243  };
244  } // namespace details
245 
246  template<typename S1, int O1, typename S2, int O2>
248  {
249  typedef Eigen::Matrix<S2, 6, 2, O2> ReturnType;
250  };
251 
252  /* [CRBA] ForceSet operator* (Inertia Y,Constraint S) */
253  namespace impl
254  {
255  template<typename S1, int O1, typename S2, int O2>
257  {
261  static inline ReturnType run(const Inertia & Y, const Constraint & cru)
262  {
264  Eigen::Matrix<S1, 6, 3, O1> M;
265  alphaSkew(-Y.mass(), Y.lever(), M.template middleRows<3>(Constraint::LINEAR));
266  M.template middleRows<3>(Constraint::ANGULAR) =
267  (Y.inertia() - typename Symmetric3::AlphaSkewSquare(Y.mass(), Y.lever())).matrix();
268 
269  return (M * cru.angularSubspace()).eval();
270  }
271  };
272  } // namespace impl
273 
274  template<typename M6Like, typename Scalar, int Options>
276  Eigen::MatrixBase<M6Like>,
277  JointMotionSubspaceUniversalTpl<Scalar, Options>>
278  {
279  typedef typename SizeDepType<3>::ColsReturn<M6Like>::ConstType M6LikeCols;
281 
283  typedef typename Constraint::Matrix32 Matrix32;
285  };
286 
287  /* [ABA] operator* (Inertia Y,Constraint S) */
288  namespace impl
289  {
290  template<typename M6Like, typename Scalar, int Options>
292  Eigen::MatrixBase<M6Like>,
293  JointMotionSubspaceUniversalTpl<Scalar, Options>>
294  {
296  typedef
298 
299  static inline ReturnType run(const Eigen::MatrixBase<M6Like> & Y, const Constraint & cru)
300  {
301  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(M6Like, 6, 6);
302  return Y.derived().template middleCols<3>(Constraint::ANGULAR) * cru.angularSubspace();
303  }
304  };
305  } // namespace impl
306 
307  template<typename Scalar, int Options>
309 
310  template<typename _Scalar, int _Options>
311  struct traits<JointUniversalTpl<_Scalar, _Options>>
312  {
313  enum
314  {
315  NQ = 2,
316  NV = 2,
317  NVExtended = 2
318  };
319  typedef _Scalar Scalar;
320  enum
321  {
322  Options = _Options
323  };
330 
331  // [ABA]
332  typedef Eigen::Matrix<Scalar, 6, NV, Options> U_t;
333  typedef Eigen::Matrix<Scalar, NV, NV, Options> D_t;
334  typedef Eigen::Matrix<Scalar, 6, NV, Options> UD_t;
335 
336  typedef Eigen::Matrix<Scalar, NQ, 1, Options> ConfigVector_t;
337  typedef Eigen::Matrix<Scalar, NV, 1, Options> TangentVector_t;
338 
339  typedef boost::mpl::false_ is_mimicable_t;
340 
342  };
343 
344  template<typename _Scalar, int _Options>
345  struct traits<JointDataUniversalTpl<_Scalar, _Options>>
346  {
348  typedef _Scalar Scalar;
349  };
350 
351  template<typename _Scalar, int _Options>
352  struct traits<JointModelUniversalTpl<_Scalar, _Options>>
353  {
355  typedef _Scalar Scalar;
356  };
357 
358  template<typename _Scalar, int _Options>
359  struct JointDataUniversalTpl : public JointDataBase<JointDataUniversalTpl<_Scalar, _Options>>
360  {
361  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
365 
366  ConfigVector_t joint_q;
367  TangentVector_t joint_v;
368 
369  Transformation_t M;
370  Constraint_t S;
371  Motion_t v;
372  Bias_t c;
373 
374  // [ABA] specific data
375  U_t U;
376  D_t Dinv;
377  UD_t UDinv;
378  D_t StU;
379 
381  : joint_q(ConfigVector_t::Zero())
382  , joint_v(TangentVector_t::Zero())
383  , M(Transformation_t::Identity())
384  , S(Constraint_t::Matrix32::Zero())
385  , v(Motion_t::Vector3::Zero())
386  , c(Bias_t::Vector3::Zero())
387  , U(U_t::Zero())
388  , Dinv(D_t::Zero())
389  , UDinv(UD_t::Zero())
390  , StU(D_t::Zero())
391  {
392  }
393 
394  static std::string classname()
395  {
396  return std::string("JointDataUniversal");
397  }
398  std::string shortname() const
399  {
400  return classname();
401  }
402 
403  }; // struct JointDataUniversalTpl
404 
405  PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelUniversalTpl);
406  template<typename _Scalar, int _Options>
407  struct JointModelUniversalTpl : public JointModelBase<JointModelUniversalTpl<_Scalar, _Options>>
408  {
409  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
412  typedef Eigen::Matrix<Scalar, 3, 1, _Options> Vector3;
413  typedef Eigen::Matrix<Scalar, 3, 3, _Options> Matrix3;
414 
416  using Base::id;
417  using Base::idx_q;
418  using Base::idx_v;
419  using Base::idx_vExtended;
420  using Base::setIndexes;
421 
423  {
424  }
425 
427  const Scalar & x1,
428  const Scalar & y1,
429  const Scalar & z1,
430  const Scalar & x2,
431  const Scalar & y2,
432  const Scalar & z2)
433  : axis1(x1, y1, z1)
434  , axis2(x2, y2, z2)
435  {
436  assert(isUnitary(axis1) && "First Rotation axis is not unitary");
437  assert(isUnitary(axis2) && "Second Rotation axis is not unitary");
438  assert(check_expression_if_real<Scalar>(axis1.dot(axis2) == 0) && "Axii are not orthogonal");
439  }
440 
441  template<typename Vector3Like>
443  const Eigen::MatrixBase<Vector3Like> & axis1_, const Eigen::MatrixBase<Vector3Like> & axis2_)
444  : axis1(axis1_)
445  , axis2(axis2_)
446  {
447  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Vector3Like);
448  assert(isUnitary(axis1) && "First Rotation axis is not unitary");
449  assert(isUnitary(axis2) && "Second Rotation axis is not unitary");
450  assert(
451  check_expression_if_real<Scalar>(axis1.dot(axis2) == Scalar(0))
452  && "Axii are not orthogonal");
453  }
454 
455  JointDataDerived createData() const
456  {
457  return JointDataDerived();
458  }
459 
460  const std::vector<bool> hasConfigurationLimit() const
461  {
462  return {true, true};
463  }
464 
465  const std::vector<bool> hasConfigurationLimitInTangent() const
466  {
467  return {true, true};
468  }
469 
470  using Base::isEqual;
471  bool isEqual(const JointModelUniversalTpl & other) const
472  {
473  return Base::isEqual(other) && internal::comparison_eq(axis1, other.axis1)
474  && internal::comparison_eq(axis2, other.axis2);
475  }
476 
477  template<typename ConfigVector>
478  void calc(JointDataDerived & data, const typename Eigen::MatrixBase<ConfigVector> & qs) const
479  {
480  data.joint_q = qs.template segment<NQ>(idx_q());
481  Scalar c0, s0;
482  SINCOS(data.joint_q(0), &s0, &c0);
483  Scalar c1, s1;
484  SINCOS(data.joint_q(1), &s1, &c1);
485 
486  Matrix3 rot1, rot2;
487  toRotationMatrix(axis1, c0, s0, rot1);
488  toRotationMatrix(axis2, c1, s1, rot2);
489  data.M.rotation() = rot1 * rot2;
490 
491  data.S.angularSubspace() << rot2.coeffRef(0, 0) * axis1.x() + rot2.coeffRef(1, 0) * axis1.y()
492  + rot2.coeffRef(2, 0) * axis1.z(),
493  axis2.x(),
494  rot2.coeffRef(0, 1) * axis1.x() + rot2.coeffRef(1, 1) * axis1.y()
495  + rot2.coeffRef(2, 1) * axis1.z(),
496  axis2.y(),
497  rot2.coeffRef(0, 2) * axis1.x() + rot2.coeffRef(1, 2) * axis1.y()
498  + rot2.coeffRef(2, 2) * axis1.z(),
499  axis2.z();
500  }
501 
502  template<typename TangentVector>
503  void
504  calc(JointDataDerived & data, const Blank, const typename Eigen::MatrixBase<TangentVector> & vs)
505  const
506  {
507  data.joint_v = vs.template segment<NV>(idx_v());
508  data.v().noalias() = data.S.angularSubspace() * data.joint_v;
509 
510  // TODO: need to be done
511  // #define q_dot data.joint_v
512  // Scalar tmp;
513  // tmp = (-s1+axis2.x()*axis2.x()*s1)*axis1.x() +
514  // (axis2.x()*axis2.y()*s1+axis2.z()*c1)*axis1.y() +
515  // (axis2.x()*axis2.z()*s1-axis2.y()*c1)*axis1.z(); data.c()(0) = tmp *
516  // q_dot(1)*q_dot(0); tmp = (axis2.x()*axis2.y()*s1-axis2.z()*c1)*axis1.x() +
517  // (-s1+axis2.y()*axis2.y()*s1)*axis1.y() +
518  // (axis2.y()*axis2.z()*s1+axis2.x()*c1)*axis1.z(); data.c()(1) = tmp *
519  // q_dot(1)*q_dot(0); tmp = (axis2.z()*axis2.x()*s1+axis2.y()*c1)*axis1.x() +
520  // (axis2.y()*axis2.z()*s1-axis2.x()*c1)*axis1.y() +
521  // (-s1+axis2.z()*axis2.z()*s1)*axis1.z(); data.c()(2) = tmp * q_dot(1)*q_dot(0);
522  // #undef q_dot
523  }
524 
525  template<typename ConfigVector, typename TangentVector>
526  void calc(
527  JointDataDerived & data,
528  const typename Eigen::MatrixBase<ConfigVector> & qs,
529  const typename Eigen::MatrixBase<TangentVector> & vs) const
530  {
531  data.joint_q = qs.template segment<NQ>(idx_q());
532 
533  Scalar c0, s0;
534  SINCOS(data.joint_q(0), &s0, &c0);
535  Scalar c1, s1;
536  SINCOS(data.joint_q(1), &s1, &c1);
537 
538  Matrix3 rot1, rot2;
539  toRotationMatrix(axis1, c0, s0, rot1);
540  toRotationMatrix(axis2, c1, s1, rot2);
541  data.M.rotation() = rot1 * rot2;
542 
543  data.S.angularSubspace() << rot2.coeffRef(0, 0) * axis1.x() + rot2.coeffRef(1, 0) * axis1.y()
544  + rot2.coeffRef(2, 0) * axis1.z(),
545  axis2.x(),
546  rot2.coeffRef(0, 1) * axis1.x() + rot2.coeffRef(1, 1) * axis1.y()
547  + rot2.coeffRef(2, 1) * axis1.z(),
548  axis2.y(),
549  rot2.coeffRef(0, 2) * axis1.x() + rot2.coeffRef(1, 2) * axis1.y()
550  + rot2.coeffRef(2, 2) * axis1.z(),
551  axis2.z();
552 
553  data.joint_v = vs.template segment<NV>(idx_v());
554  data.v().noalias() = data.S.angularSubspace() * data.joint_v;
555 
556 #define q_dot data.joint_v
557  Scalar tmp;
558  tmp = (-s1 + axis2.x() * axis2.x() * s1) * axis1.x()
559  + (axis2.x() * axis2.y() * s1 + axis2.z() * c1) * axis1.y()
560  + (axis2.x() * axis2.z() * s1 - axis2.y() * c1) * axis1.z();
561  data.c()(0) = tmp * q_dot(1) * q_dot(0);
562  tmp = (axis2.x() * axis2.y() * s1 - axis2.z() * c1) * axis1.x()
563  + (-s1 + axis2.y() * axis2.y() * s1) * axis1.y()
564  + (axis2.y() * axis2.z() * s1 + axis2.x() * c1) * axis1.z();
565  data.c()(1) = tmp * q_dot(1) * q_dot(0);
566  tmp = (axis2.z() * axis2.x() * s1 + axis2.y() * c1) * axis1.x()
567  + (axis2.y() * axis2.z() * s1 - axis2.x() * c1) * axis1.y()
568  + (-s1 + axis2.z() * axis2.z() * s1) * axis1.z();
569  data.c()(2) = tmp * q_dot(1) * q_dot(0);
570 #undef q_dot
571  }
572 
573  template<typename VectorLike, typename Matrix6Like>
574  void calc_aba(
575  JointDataDerived & data,
576  const Eigen::MatrixBase<VectorLike> & armature,
577  const Eigen::MatrixBase<Matrix6Like> & I,
578  const bool update_I) const
579  {
580  data.U.noalias() = I.template middleCols<3>(Motion::ANGULAR) * data.S.angularSubspace();
581  data.StU.noalias() =
582  data.S.angularSubspace().transpose() * data.U.template middleRows<3>(Motion::ANGULAR);
583  data.StU.diagonal() += armature;
585 
586  data.UDinv.noalias() = data.U * data.Dinv;
587 
588  if (update_I)
589  PINOCCHIO_EIGEN_CONST_CAST(Matrix6Like, I).noalias() -= data.UDinv * data.U.transpose();
590  }
591 
592  static std::string classname()
593  {
594  return std::string("JointModelUniversal");
595  }
596  std::string shortname() const
597  {
598  return classname();
599  }
600 
602  template<typename NewScalar>
604  {
606  ReturnType res(axis1.template cast<NewScalar>(), axis2.template cast<NewScalar>());
607  res.setIndexes(id(), idx_q(), idx_v(), idx_vExtended());
608  return res;
609  }
610 
615  }; // struct JointModelUniversalTpl
616 
617 } // namespace pinocchio
618 
619 #include <boost/type_traits.hpp>
620 
621 namespace boost
622 {
623  template<typename Scalar, int Options>
624  struct has_nothrow_constructor<::pinocchio::JointModelUniversalTpl<Scalar, Options>>
625  : public integral_constant<bool, true>
626  {
627  };
628 
629  template<typename Scalar, int Options>
630  struct has_nothrow_copy<::pinocchio::JointModelUniversalTpl<Scalar, Options>>
631  : public integral_constant<bool, true>
632  {
633  };
634 
635  template<typename Scalar, int Options>
636  struct has_nothrow_constructor<::pinocchio::JointDataUniversalTpl<Scalar, Options>>
637  : public integral_constant<bool, true>
638  {
639  };
640 
641  template<typename Scalar, int Options>
642  struct has_nothrow_copy<::pinocchio::JointDataUniversalTpl<Scalar, Options>>
643  : public integral_constant<bool, true>
644  {
645  };
646 } // namespace boost
647 
648 #endif // ifndef __pinocchio_multibody_joint_universal_hpp__
pinocchio::InertiaTpl
Definition: context/generic.hpp:33
pinocchio::JointModelUniversalTpl
Definition: multibody/joint/fwd.hpp:102
pinocchio::MatrixMatrixProduct
Definition: math/matrix.hpp:68
pinocchio::JointMotionSubspaceUniversalTpl::se3ActionInverse
SE3GroupAction< JointMotionSubspaceUniversalTpl >::ReturnType se3ActionInverse(const SE3Tpl< S1, O1 > &m) const
Definition: joint-universal.hpp:134
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::ReducedSquaredMatrix
Eigen::Matrix< Scalar, 3, 3, Options > ReducedSquaredMatrix
Definition: joint-universal.hpp:40
PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
#define PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
Definition: joint-data-base.hpp:137
pinocchio::JointMotionSubspaceUniversalTpl::transpose
TransposeConst transpose() const
Definition: joint-universal.hpp:180
common_symbols.type
type
Definition: common_symbols.py:34
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::D_t
Eigen::Matrix< Scalar, NV, NV, Options > D_t
Definition: joint-universal.hpp:333
pinocchio::JointModelUniversalTpl::cast
JointModelUniversalTpl< NewScalar, Options > cast() const
Definition: joint-universal.hpp:603
pinocchio::JointMotionSubspaceUniversalTpl::NV
@ NV
Definition: joint-universal.hpp:95
Eigen
pinocchio::Symmetric3
Symmetric3Tpl< context::Scalar, context::Options > Symmetric3
Definition: spatial/fwd.hpp:65
pinocchio::MultiplicationOp
Forward declaration of the multiplication operation return type. Should be overloaded,...
Definition: binary-op.hpp:15
test-cpp2pybind11.m
m
Definition: test-cpp2pybind11.py:25
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::Bias_t
MotionSphericalTpl< Scalar, Options > Bias_t
Definition: joint-universal.hpp:329
pinocchio::traits< JointDataUniversalTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-universal.hpp:348
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::U_t
Eigen::Matrix< Scalar, 6, NV, Options > U_t
Definition: joint-universal.hpp:332
pinocchio::JointDataUniversalTpl::classname
static std::string classname()
Definition: joint-universal.hpp:394
pinocchio::JointDataUniversalTpl::U
U_t U
Definition: joint-universal.hpp:375
pinocchio::JointMotionSubspaceUniversalTpl::TransposeConst
Definition: joint-universal.hpp:153
PINOCCHIO_EIGEN_DOT_PRODUCT_RETURN_TYPE
#define PINOCCHIO_EIGEN_DOT_PRODUCT_RETURN_TYPE(D1, D2)
Macro giving access to the return type of the dot product operation.
Definition: eigen-macros.hpp:44
pinocchio::JointModelUniversalTpl::axis2
Vector3 axis2
Definition: joint-universal.hpp:614
pinocchio::JointMotionSubspaceUniversalTpl::Matrix32
traits< JointMotionSubspaceUniversalTpl >::Matrix32 Matrix32
Definition: joint-universal.hpp:99
pinocchio::JointModelUniversalTpl::JointModelUniversalTpl
JointModelUniversalTpl(const Scalar &x1, const Scalar &y1, const Scalar &z1, const Scalar &x2, const Scalar &y2, const Scalar &z2)
Definition: joint-universal.hpp:426
pinocchio::JointMotionSubspaceUniversalTpl::nv_impl
int nv_impl() const
Definition: joint-universal.hpp:148
pinocchio::JointMotionSubspaceUniversalTpl::Vector3
traits< JointMotionSubspaceUniversalTpl >::Vector3 Vector3
Definition: joint-universal.hpp:98
rotation.hpp
pinocchio::isUnitary
bool isUnitary(const Eigen::MatrixBase< MatrixLike > &mat, const typename MatrixLike::RealScalar &prec=Eigen::NumTraits< typename MatrixLike::Scalar >::dummy_precision())
Check whether the input matrix is Unitary within the given precision.
Definition: math/matrix.hpp:155
pinocchio::MotionAlgebraAction< JointMotionSubspaceUniversalTpl< Scalar, Options >, MotionDerived >::ReturnType
Eigen::Matrix< Scalar, 6, 2, Options > ReturnType
Definition: joint-universal.hpp:61
check.hpp
pinocchio::idx_q
int idx_q(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxQVisitor to get the index in the full model configuration space...
pinocchio::details::StDiagonalMatrixSOperation< JointMotionSubspaceUniversalTpl< Scalar, Options > >::run
static ReturnType run(const JointMotionSubspaceBase< Constraint > &constraint)
Definition: joint-universal.hpp:239
pinocchio::JointModelBase
Definition: joint-model-base.hpp:78
pinocchio::ConstraintForceOp
Return type of the Constraint::Transpose * Force operation.
Definition: joint-motion-subspace-base.hpp:46
pinocchio::idx_v
int idx_v(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxVVisitor to get the index in the model tangent space correspond...
pinocchio::Options
Options
Definition: joint-configuration.hpp:1082
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::JointDataDerived
JointDataUniversalTpl< Scalar, Options > JointDataDerived
Definition: joint-universal.hpp:324
pinocchio::JointMotionSubspaceBase
Definition: joint-motion-subspace-base.hpp:59
pinocchio::JointDataUniversalTpl::joint_q
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR ConfigVector_t joint_q
Definition: joint-universal.hpp:366
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::details::StDiagonalMatrixSOperation< JointMotionSubspaceUniversalTpl< Scalar, Options > >::ReturnType
traits< Constraint >::StDiagonalMatrixSOperationReturnType ReturnType
Definition: joint-universal.hpp:237
pinocchio::SE3Tpl
Definition: context/casadi.hpp:30
fwd.hpp
pinocchio::internal::PerformStYSInversion::run
static EIGEN_STRONG_INLINE void run(const Eigen::MatrixBase< M1 > &StYS, const Eigen::MatrixBase< M2 > &Dinv)
Definition: joint-common-operations.hpp:27
pinocchio::SE3GroupAction::ReturnType
D ReturnType
Definition: spatial/se3.hpp:41
continuous.x2
x2
Definition: continuous.py:188
pinocchio::JointDataBase
Definition: joint-data-base.hpp:161
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::StDiagonalMatrixSOperationReturnType
Matrix2 StDiagonalMatrixSOperationReturnType
Definition: joint-universal.hpp:49
pinocchio::JointModelUniversalTpl::createData
JointDataDerived createData() const
Definition: joint-universal.hpp:455
pinocchio::JointModelUniversalTpl::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
Definition: joint-universal.hpp:574
pinocchio::JointModelUniversalTpl::calc
void calc(JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-universal.hpp:504
pinocchio::JointMotionSubspaceUniversalTpl::matrix_impl
DenseBase matrix_impl() const
Definition: joint-universal.hpp:191
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::SE3GroupAction< JointMotionSubspaceUniversalTpl< Scalar, Options > >::ReturnType
Eigen::Matrix< Scalar, 6, 2, Options > ReturnType
Definition: joint-universal.hpp:55
pinocchio::JointModelUniversalTpl::JointModelUniversalTpl
JointModelUniversalTpl()
Definition: joint-universal.hpp:422
inertia.hpp
pinocchio::ConstraintForceSetOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceSet >::ReturnType
MatrixMatrixProduct< Eigen::Transpose< const Matrix32 >, typename Eigen::MatrixBase< const ForceSet >::template NRowsBlockXpr< 3 >::Type >::type ReturnType
Definition: joint-universal.hpp:83
pinocchio::ConstraintForceSetOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceSet >::Matrix32
traits< JointMotionSubspaceUniversalTpl< Scalar, Options > >::Matrix32 Matrix32
Definition: joint-universal.hpp:80
pinocchio::MotionDense
Definition: context/casadi.hpp:37
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::is_mimicable_t
boost::mpl::false_ is_mimicable_t
Definition: joint-universal.hpp:339
pinocchio::JointMotionSubspaceUniversalTpl::__mult__
JointMotion __mult__(const Eigen::MatrixBase< Vector3Like > &v) const
Definition: joint-universal.hpp:112
pinocchio::JointModelUniversalTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-universal.hpp:460
pinocchio::JointModelUniversalTpl::JointModelUniversalTpl
JointModelUniversalTpl(const Eigen::MatrixBase< Vector3Like > &axis1_, const Eigen::MatrixBase< Vector3Like > &axis2_)
Definition: joint-universal.hpp:442
pinocchio::ConstraintForceOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceDerived >::Vector3
traits< JointMotionSubspaceUniversalTpl< Scalar, Options > >::Vector3 Vector3
Definition: joint-universal.hpp:67
boost
pinocchio::JointModelUniversalTpl::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::DenseBase
Eigen::Matrix< Scalar, 6, 2, Options > DenseBase
Definition: joint-universal.hpp:39
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::Matrix32
Eigen::Matrix< Scalar, 3, 2, Options > Matrix32
Definition: joint-universal.hpp:46
pinocchio::JointModelUniversalTpl::calc
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-universal.hpp:526
pinocchio::ConstraintForceOp::ReturnType
ReturnTypeNotDefined ReturnType
Definition: joint-motion-subspace-base.hpp:48
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-universal.hpp:319
pinocchio::JointModelBase::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
pinocchio::res
ReturnType res
Definition: spatial/classic-acceleration.hpp:57
pinocchio::JointMotionSubspaceUniversalTpl::m_S
Matrix32 m_S
Definition: joint-universal.hpp:227
pinocchio::JointDataUniversalTpl::c
Bias_t c
Definition: joint-universal.hpp:372
pinocchio::SINCOS
void SINCOS(const S1 &a, S2 *sa, S3 *ca)
Computes sin/cos values of a given input scalar.
Definition: sincos.hpp:27
pinocchio::MotionAlgebraAction
Return type of the ation of a Motion onto an object of type D.
Definition: spatial/motion.hpp:45
pinocchio::impl::LhsMultiplicationOp
Definition: binary-op.hpp:20
autodiff-rnea.f
f
Definition: autodiff-rnea.py:24
pinocchio::Blank
Blank type.
Definition: fwd.hpp:76
pinocchio::JointDataUniversalTpl::JointDataUniversalTpl
JointDataUniversalTpl()
Definition: joint-universal.hpp:380
pinocchio::traits< JointDataUniversalTpl< _Scalar, _Options > >::JointDerived
JointUniversalTpl< _Scalar, _Options > JointDerived
Definition: joint-universal.hpp:347
pinocchio::JointMotionSubspaceUniversalTpl::TransposeConst::operator*
ConstraintForceSetOp< JointMotionSubspaceUniversalTpl, ForceSet >::ReturnType operator*(const Eigen::MatrixBase< ForceSet > &F)
Definition: joint-universal.hpp:171
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::Transformation_t
SE3Tpl< Scalar, Options > Transformation_t
Definition: joint-universal.hpp:327
pinocchio::SE3GroupAction
Definition: spatial/se3.hpp:39
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
#define PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
Definition: joint-data-base.hpp:55
pinocchio::MotionAlgebraAction::ReturnType
D ReturnType
Definition: spatial/motion.hpp:47
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::MatrixReturnType
DenseBase MatrixReturnType
Definition: joint-universal.hpp:42
pinocchio::JointMotionSubspaceUniversalTpl::motionAction
MotionAlgebraAction< JointMotionSubspaceUniversalTpl, MotionDerived >::ReturnType motionAction(const MotionDense< MotionDerived > &m) const
Definition: joint-universal.hpp:201
pinocchio::JointModelUniversalTpl::isEqual
bool isEqual(const JointModelUniversalTpl &other) const
Definition: joint-universal.hpp:471
pinocchio::JointMotionSubspaceBase::matrix
MatrixReturnType matrix()
Definition: joint-motion-subspace-base.hpp:82
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::M6LikeColsNonConst
Eigen::internal::remove_const< M6LikeCols >::type M6LikeColsNonConst
Definition: joint-universal.hpp:280
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::ConstMatrixReturnType
const typedef DenseBase ConstMatrixReturnType
Definition: joint-universal.hpp:43
pinocchio::JointDataUniversalTpl::shortname
std::string shortname() const
Definition: joint-universal.hpp:398
pinocchio::traits< JointModelUniversalTpl< _Scalar, _Options > >::JointDerived
JointUniversalTpl< _Scalar, _Options > JointDerived
Definition: joint-universal.hpp:354
pinocchio::MotionSphericalTpl
Definition: joint-spherical.hpp:20
pinocchio::ConstraintForceSetOp::ReturnType
ReturnTypeNotDefined ReturnType
Definition: joint-motion-subspace-base.hpp:55
simulation-contact-dynamics.S
S
Definition: simulation-contact-dynamics.py:80
matrix.hpp
details
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::Constraint_t
JointMotionSubspaceUniversalTpl< Scalar, Options > Constraint_t
Definition: joint-universal.hpp:326
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::M6LikeCols
SizeDepType< 3 >::ColsReturn< M6Like >::ConstType M6LikeCols
Definition: joint-universal.hpp:279
pinocchio::JointDataUniversalTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointUniversalTpl< _Scalar, _Options > JointDerived
Definition: joint-universal.hpp:362
pinocchio::PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION
PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelFreeFlyerTpl)
Free-flyer joint in .
pinocchio::JointMotionSubspaceUniversalTpl::TransposeConst::ref
const JointMotionSubspaceUniversalTpl & ref
Definition: joint-universal.hpp:155
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::Matrix2
Eigen::Matrix< Scalar, 2, 2, Options > Matrix2
Definition: joint-universal.hpp:47
pinocchio::JointMotionSubspaceUniversalTpl::TransposeConst::TransposeConst
TransposeConst(const JointMotionSubspaceUniversalTpl &ref)
Definition: joint-universal.hpp:156
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: joint-universal.hpp:45
pinocchio::ConstraintForceOp< JointMotionSubspaceUniversalTpl< Scalar, Options >, ForceDerived >::ReturnType
Eigen::Matrix< typename PINOCCHIO_EIGEN_DOT_PRODUCT_RETURN_TYPE(Vector3, typename ForceDense< ForceDerived >::ConstAngularType), 2, 1, Options > ReturnType
Definition: joint-universal.hpp:74
joint-base.hpp
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >::Constraint
JointMotionSubspaceUniversalTpl< S2, O2 > Constraint
Definition: joint-universal.hpp:259
pinocchio::JointMotionSubspaceUniversalTpl::TransposeConst::operator*
ConstraintForceOp< JointMotionSubspaceUniversalTpl, ForceDerived >::ReturnType operator*(const ForceDense< ForceDerived > &f) const
Definition: joint-universal.hpp:163
pinocchio::JointDataUniversalTpl::UDinv
UD_t UDinv
Definition: joint-universal.hpp:377
pinocchio::JointDataUniversalTpl::StU
D_t StU
Definition: joint-universal.hpp:378
pinocchio::traits< JointModelUniversalTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-universal.hpp:355
pinocchio::JointModelBase::idx_vExtended
int idx_vExtended() const
Definition: joint-model-base.hpp:179
pinocchio::JointMotionSubspaceUniversalTpl::JointMotionSubspaceUniversalTpl
JointMotionSubspaceUniversalTpl(const Eigen::MatrixBase< Matrix32Like > &subspace)
Definition: joint-universal.hpp:106
q_dot
#define q_dot
M
M
pinocchio::JointModelUniversalTpl::calc
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
Definition: joint-universal.hpp:478
ur5x4.w
w
Definition: ur5x4.py:48
pinocchio::JointDataUniversalTpl::M
Transformation_t M
Definition: joint-universal.hpp:369
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::JointMotion
MotionSphericalTpl< Scalar, Options > JointMotion
Definition: joint-universal.hpp:37
pinocchio::toRotationMatrix
void toRotationMatrix(const Eigen::MatrixBase< Vector3 > &axis, const Scalar &cos_value, const Scalar &sin_value, const Eigen::MatrixBase< Matrix3 > &res)
Computes a rotation matrix from a vector and values of sin and cos orientations values.
Definition: rotation.hpp:26
pinocchio::idx_vExtended
int idx_vExtended(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdvExtendedVisitor to get the index in the model extended tangent ...
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::Constraint
JointMotionSubspaceUniversalTpl< Scalar, Options > Constraint
Definition: joint-universal.hpp:295
pinocchio::JointModelBase::idx_v
int idx_v() const
Definition: joint-model-base.hpp:175
pinocchio::ForceSetTpl
Definition: force-set.hpp:14
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::JointDataUniversalTpl::v
Motion_t v
Definition: joint-universal.hpp:371
pinocchio::internal::comparison_eq
bool comparison_eq(const LhsType &lhs_value, const RhsType &rhs_value)
Definition: utils/static-if.hpp:120
pinocchio::ConstraintForceSetOp
Return type of the Constraint::Transpose * ForceSet operation.
Definition: joint-motion-subspace-base.hpp:53
joint-spherical.hpp
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::Matrix32
Constraint::Matrix32 Matrix32
Definition: joint-universal.hpp:283
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::Constraint
JointMotionSubspaceUniversalTpl< Scalar, Options > Constraint
Definition: joint-universal.hpp:282
pinocchio::JointMotionSubspaceUniversalTpl::isEqual
bool isEqual(const JointMotionSubspaceUniversalTpl &other) const
Definition: joint-universal.hpp:221
joint-motion-subspace.hpp
pinocchio::JointDataUniversalTpl::joint_v
TangentVector_t joint_v
Definition: joint-universal.hpp:367
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:171
pinocchio::SizeDepType::ColsReturn
Definition: matrix-block.hpp:43
x1
x1
pinocchio::JointModelUniversalTpl::classname
static std::string classname()
Definition: joint-universal.hpp:592
pinocchio::MultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >::ReturnType
Eigen::Matrix< S2, 6, 2, O2 > ReturnType
Definition: joint-universal.hpp:249
pinocchio::ForceDense
Definition: context/casadi.hpp:35
pinocchio::details::StDiagonalMatrixSOperation
Definition: joint-motion-subspace-base.hpp:172
pinocchio::cross
void cross(const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3xIn > &Min, const Eigen::MatrixBase< Matrix3xOut > &Mout)
Applies the cross product onto the columns of M.
Definition: skew.hpp:228
pinocchio::JointMotionSubspaceUniversalTpl
Definition: joint-universal.hpp:21
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >::run
static ReturnType run(const Inertia &Y, const Constraint &cru)
Definition: joint-universal.hpp:261
PINOCCHIO_CONSTRAINT_TYPEDEF_TPL
#define PINOCCHIO_CONSTRAINT_TYPEDEF_TPL(DERIVED)
Definition: joint-motion-subspace-base.hpp:36
pinocchio::JointMotionSubspaceUniversalTpl::se3Action
SE3GroupAction< JointMotionSubspaceUniversalTpl >::ReturnType se3Action(const SE3Tpl< S1, O1 > &m) const
Definition: joint-universal.hpp:120
Y
Y
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::Motion_t
MotionSphericalTpl< Scalar, Options > Motion_t
Definition: joint-universal.hpp:328
pinocchio::JointModelUniversalTpl::shortname
std::string shortname() const
Definition: joint-universal.hpp:596
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::ConfigVector_t
Eigen::Matrix< Scalar, NQ, 1, Options > ConfigVector_t
Definition: joint-universal.hpp:336
pinocchio::JointMotionSubspaceUniversalTpl::JointMotionSubspaceUniversalTpl
JointMotionSubspaceUniversalTpl()
Definition: joint-universal.hpp:101
pinocchio::JointMotionSubspaceUniversalTpl::angularSubspace
const Matrix32 & angularSubspace() const
Definition: joint-universal.hpp:212
pinocchio::JointMotionSubspaceUniversalTpl::angularSubspace
Matrix32 & angularSubspace()
Definition: joint-universal.hpp:216
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::TangentVector_t
Eigen::Matrix< Scalar, NV, 1, Options > TangentVector_t
Definition: joint-universal.hpp:337
pinocchio::JointDataUniversalTpl
Definition: multibody/joint/fwd.hpp:106
pinocchio::JointDataUniversalTpl::S
Constraint_t S
Definition: joint-universal.hpp:370
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::ReturnType
const typedef MatrixMatrixProduct< M6LikeColsNonConst, Matrix32 >::type ReturnType
Definition: joint-universal.hpp:284
pinocchio::JointModelUniversalTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointUniversalTpl< _Scalar, _Options > JointDerived
Definition: joint-universal.hpp:410
pinocchio::alphaSkew
void alphaSkew(const Scalar alpha, const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M)
Computes the skew representation of a given 3d vector multiplied by a given scalar....
Definition: skew.hpp:134
pinocchio::JointMotionSubspaceTransposeBase
Definition: joint-motion-subspace-base.hpp:185
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::UD_t
Eigen::Matrix< Scalar, 6, NV, Options > UD_t
Definition: joint-universal.hpp:334
pinocchio::traits< JointUniversalTpl< _Scalar, _Options > >::JointModelDerived
JointModelUniversalTpl< Scalar, Options > JointModelDerived
Definition: joint-universal.hpp:325
dcrba.NV
NV
Definition: dcrba.py:536
Scalar
double Scalar
Definition: timings-cppad-jit.cpp:37
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
pinocchio::JointDataUniversalTpl::PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::JointModelUniversalTpl::Base
JointModelBase< JointModelUniversalTpl > Base
Definition: joint-universal.hpp:415
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::JointForce
Eigen::Matrix< Scalar, 2, 1, Options > JointForce
Definition: joint-universal.hpp:38
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >::ReturnType
MultiplicationOp< Inertia, Constraint >::ReturnType ReturnType
Definition: joint-universal.hpp:260
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
pinocchio::JointDataUniversalTpl::Dinv
D_t Dinv
Definition: joint-universal.hpp:376
pinocchio::JointModelUniversalTpl::Vector3
Eigen::Matrix< Scalar, 3, 1, _Options > Vector3
Definition: joint-universal.hpp:412
pinocchio::JointModelUniversalTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-universal.hpp:465
pinocchio::JointModelUniversalTpl::Matrix3
Eigen::Matrix< Scalar, 3, 3, _Options > Matrix3
Definition: joint-universal.hpp:413
pinocchio::traits< JointMotionSubspaceUniversalTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-universal.hpp:26
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::ReturnType
MultiplicationOp< Eigen::MatrixBase< M6Like >, Constraint >::ReturnType ReturnType
Definition: joint-universal.hpp:297
pinocchio::JointModelBase::isEqual
bool isEqual(const JointModelBase< OtherDerived > &) const
Definition: joint-model-base.hpp:269
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, JointMotionSubspaceUniversalTpl< S2, O2 > >::Inertia
InertiaTpl< S1, O1 > Inertia
Definition: joint-universal.hpp:258
pinocchio::details::StDiagonalMatrixSOperation< JointMotionSubspaceUniversalTpl< Scalar, Options > >::Constraint
JointMotionSubspaceUniversalTpl< Scalar, Options > Constraint
Definition: joint-universal.hpp:236
pinocchio::JointUniversalTpl
Definition: joint-universal.hpp:308
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, JointMotionSubspaceUniversalTpl< Scalar, Options > >::run
static ReturnType run(const Eigen::MatrixBase< M6Like > &Y, const Constraint &cru)
Definition: joint-universal.hpp:299
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33
pinocchio::JointModelUniversalTpl::axis1
Vector3 axis1
3d main axii of the joint.
Definition: joint-universal.hpp:613
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:183


pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:49