joint-translation.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 // Copyright (c) 2015-2016 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_multibody_joint_translation_hpp__
7 #define __pinocchio_multibody_joint_translation_hpp__
8 
9 #include "pinocchio/macros.hpp"
14 
15 namespace pinocchio
16 {
17 
18  template<typename Scalar, int Options = context::Options>
21 
22  template<typename Scalar, int Options>
24  {
26  };
27 
28  template<typename Scalar, int Options, typename MotionDerived>
30  {
32  };
33 
34  template<typename _Scalar, int _Options>
35  struct traits<MotionTranslationTpl<_Scalar, _Options>>
36  {
37  typedef _Scalar Scalar;
38  enum
39  {
40  Options = _Options
41  };
42  typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3;
43  typedef Eigen::Matrix<Scalar, 6, 1, Options> Vector6;
44  typedef Eigen::Matrix<Scalar, 4, 4, Options> Matrix4;
45  typedef Eigen::Matrix<Scalar, 6, 6, Options> Matrix6;
46  typedef typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Vector6) ToVectorConstReturnType;
47  typedef typename PINOCCHIO_EIGEN_REF_TYPE(Vector6) ToVectorReturnType;
50  typedef const Vector3 ConstAngularType;
51  typedef const Vector3 ConstLinearType;
56  enum
57  {
58  LINEAR = 0,
59  ANGULAR = 3
60  };
61  }; // traits MotionTranslationTpl
62 
63  template<typename _Scalar, int _Options>
64  struct MotionTranslationTpl : MotionBase<MotionTranslationTpl<_Scalar, _Options>>
65  {
66  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
67 
69 
71  {
72  }
73 
74  template<typename Vector3Like>
75  MotionTranslationTpl(const Eigen::MatrixBase<Vector3Like> & v)
76  : m_v(v)
77  {
78  }
79 
81  : m_v(other.m_v)
82  {
83  }
84 
86  {
87  return m_v;
88  }
89  const Vector3 & operator()() const
90  {
91  return m_v;
92  }
93 
94  inline PlainReturnType plain() const
95  {
96  return PlainReturnType(m_v, PlainReturnType::Vector3::Zero());
97  }
98 
99  bool isEqual_impl(const MotionTranslationTpl & other) const
100  {
101  return internal::comparison_eq(m_v, other.m_v);
102  }
103 
105  {
106  m_v = other.m_v;
107  return *this;
108  }
109 
110  template<typename Derived>
111  void addTo(MotionDense<Derived> & other) const
112  {
113  other.linear() += m_v;
114  }
115 
116  template<typename Derived>
117  void setTo(MotionDense<Derived> & other) const
118  {
119  other.linear() = m_v;
120  other.angular().setZero();
121  }
122 
123  template<typename S2, int O2, typename D2>
125  {
126  v.angular().setZero();
127  v.linear().noalias() = m.rotation() * m_v; // TODO: check efficiency
128  }
129 
130  template<typename S2, int O2>
131  MotionPlain se3Action_impl(const SE3Tpl<S2, O2> & m) const
132  {
133  MotionPlain res;
134  se3Action_impl(m, res);
135  return res;
136  }
137 
138  template<typename S2, int O2, typename D2>
140  {
141  // Linear
142  v.linear().noalias() = m.rotation().transpose() * m_v;
143 
144  // Angular
145  v.angular().setZero();
146  }
147 
148  template<typename S2, int O2>
149  MotionPlain se3ActionInverse_impl(const SE3Tpl<S2, O2> & m) const
150  {
151  MotionPlain res;
153  return res;
154  }
155 
156  template<typename M1, typename M2>
157  void motionAction(const MotionDense<M1> & v, MotionDense<M2> & mout) const
158  {
159  // Linear
160  mout.linear().noalias() = v.angular().cross(m_v);
161 
162  // Angular
163  mout.angular().setZero();
164  }
165 
166  template<typename M1>
167  MotionPlain motionAction(const MotionDense<M1> & v) const
168  {
169  MotionPlain res;
170  motionAction(v, res);
171  return res;
172  }
173 
174  const Vector3 & linear() const
175  {
176  return m_v;
177  }
179  {
180  return m_v;
181  }
182 
183  protected:
185 
186  }; // struct MotionTranslationTpl
187 
188  template<typename S1, int O1, typename MotionDerived>
189  inline typename MotionDerived::MotionPlain
191  {
192  return typename MotionDerived::MotionPlain(m2.linear() + m1.linear(), m2.angular());
193  }
194 
195  template<typename Scalar, int Options>
197 
198  template<typename _Scalar, int _Options>
199  struct traits<TransformTranslationTpl<_Scalar, _Options>>
200  {
201  enum
202  {
203  Options = _Options,
204  LINEAR = 0,
205  ANGULAR = 3
206  };
207  typedef _Scalar Scalar;
209  typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3;
210  typedef Eigen::Matrix<Scalar, 3, 3, Options> Matrix3;
211  typedef typename Matrix3::IdentityReturnType AngularType;
216  typedef const LinearType & ConstLinearRef;
219  }; // traits TransformTranslationTpl
220 
221  template<typename Scalar, int Options>
223  {
225  };
226 
227  template<typename _Scalar, int _Options>
228  struct TransformTranslationTpl : SE3Base<TransformTranslationTpl<_Scalar, _Options>>
229  {
230  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
233 
235  {
236  }
237 
238  template<typename Vector3Like>
239  TransformTranslationTpl(const Eigen::MatrixBase<Vector3Like> & translation)
241  {
242  }
243 
244  PlainType plain() const
245  {
246  PlainType res(PlainType::Identity());
247  res.rotation().setIdentity();
248  res.translation() = translation();
249 
250  return res;
251  }
252 
253  operator PlainType() const
254  {
255  return plain();
256  }
257 
258  template<typename S2, int O2>
260  se3action(const SE3Tpl<S2, O2> & m) const
261  {
262  typedef typename SE3GroupAction<TransformTranslationTpl>::ReturnType ReturnType;
263  ReturnType res(m);
264  res.translation() += translation();
265 
266  return res;
267  }
268 
269  ConstLinearRef translation() const
270  {
271  return m_translation;
272  }
273  LinearRef translation()
274  {
275  return m_translation;
276  }
277 
278  AngularType rotation() const
279  {
280  return AngularType(3, 3);
281  }
282 
283  bool isEqual(const TransformTranslationTpl & other) const
284  {
286  }
287 
288  protected:
289  LinearType m_translation;
290  };
291 
292  template<typename Scalar, int Options>
294 
295  template<typename _Scalar, int _Options>
296  struct traits<JointMotionSubspaceTranslationTpl<_Scalar, _Options>>
297  {
298  typedef _Scalar Scalar;
299 
300  enum
301  {
302  Options = _Options
303  };
304  enum
305  {
306  LINEAR = 0,
307  ANGULAR = 3
308  };
309 
311  typedef Eigen::Matrix<Scalar, 3, 1, Options> JointForce;
312  typedef Eigen::Matrix<Scalar, 6, 3, Options> DenseBase;
313  typedef Eigen::Matrix<Scalar, 3, 3, Options> ReducedSquaredMatrix;
314 
317 
318  typedef typename ReducedSquaredMatrix::IdentityReturnType StDiagonalMatrixSOperationReturnType;
319  }; // traits JointMotionSubspaceTranslationTpl
320 
321  template<typename _Scalar, int _Options>
323  : JointMotionSubspaceBase<JointMotionSubspaceTranslationTpl<_Scalar, _Options>>
324  {
325  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
326 
328 
329  enum
330  {
331  NV = 3
332  };
333 
335  {
336  }
337 
338  // template<typename S1, int O1>
339  // Motion operator*(const MotionTranslationTpl<S1,O1> & vj) const
340  // { return Motion(vj(), Motion::Vector3::Zero()); }
341 
342  template<typename Vector3Like>
343  JointMotion __mult__(const Eigen::MatrixBase<Vector3Like> & v) const
344  {
345  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector3Like, 3);
346  return JointMotion(v);
347  }
348 
349  int nv_impl() const
350  {
351  return NV;
352  }
353 
354  struct ConstraintTranspose : JointMotionSubspaceTransposeBase<JointMotionSubspaceTranslationTpl>
355  {
358  : ref(ref)
359  {
360  }
361 
362  template<typename Derived>
364  {
365  return phi.linear();
366  }
367 
368  /* [CRBA] MatrixBase operator* (Constraint::Transpose S, ForceSet::Block) */
369  template<typename MatrixDerived>
370  const typename SizeDepType<3>::RowsReturn<MatrixDerived>::ConstType
371  operator*(const Eigen::MatrixBase<MatrixDerived> & F) const
372  {
373  assert(F.rows() == 6);
374  return F.derived().template middleRows<3>(LINEAR);
375  }
376 
377  }; // struct ConstraintTranspose
378 
380  {
381  return ConstraintTranspose(*this);
382  }
383 
384  DenseBase matrix_impl() const
385  {
386  DenseBase S;
387  S.template middleRows<3>(LINEAR).setIdentity();
388  S.template middleRows<3>(ANGULAR).setZero();
389  return S;
390  }
391 
392  template<typename S1, int O1>
393  Eigen::Matrix<S1, 6, 3, O1> se3Action(const SE3Tpl<S1, O1> & m) const
394  {
395  Eigen::Matrix<S1, 6, 3, O1> M;
396  M.template middleRows<3>(LINEAR) = m.rotation();
397  M.template middleRows<3>(ANGULAR).setZero();
398 
399  return M;
400  }
401 
402  template<typename S1, int O1>
403  Eigen::Matrix<S1, 6, 3, O1> se3ActionInverse(const SE3Tpl<S1, O1> & m) const
404  {
405  Eigen::Matrix<S1, 6, 3, O1> M;
406  M.template middleRows<3>(LINEAR) = m.rotation().transpose();
407  M.template middleRows<3>(ANGULAR).setZero();
408 
409  return M;
410  }
411 
412  template<typename MotionDerived>
413  DenseBase motionAction(const MotionDense<MotionDerived> & m) const
414  {
415  const typename MotionDerived::ConstAngularType w = m.angular();
416 
417  DenseBase res;
418  skew(w, res.template middleRows<3>(LINEAR));
419  res.template middleRows<3>(ANGULAR).setZero();
420 
421  return res;
422  }
423 
425  {
426  return true;
427  }
428 
429  }; // struct JointMotionSubspaceTranslationTpl
430 
431  template<typename MotionDerived, typename S2, int O2>
432  inline typename MotionDerived::MotionPlain
434  {
435  return m2.motionAction(m1);
436  }
437 
438  /* [CRBA] ForceSet operator* (Inertia Y,Constraint S) */
439  template<typename S1, int O1, typename S2, int O2>
440  inline Eigen::Matrix<S2, 6, 3, O2>
442  {
444  Eigen::Matrix<S2, 6, 3, O2> M;
445  alphaSkew(Y.mass(), Y.lever(), M.template middleRows<3>(Constraint::ANGULAR));
446  M.template middleRows<3>(Constraint::LINEAR).setZero();
447  M.template middleRows<3>(Constraint::LINEAR).diagonal().fill(Y.mass());
448 
449  return M;
450  }
451 
452  /* [ABA] Y*S operator*/
453  template<typename M6Like, typename S2, int O2>
454  inline const typename SizeDepType<3>::ColsReturn<M6Like>::ConstType
455  operator*(const Eigen::MatrixBase<M6Like> & Y, const JointMotionSubspaceTranslationTpl<S2, O2> &)
456  {
458  return Y.derived().template middleCols<3>(Constraint::LINEAR);
459  }
460 
461  template<typename S1, int O1>
463  {
464  typedef Eigen::Matrix<S1, 6, 3, O1> ReturnType;
465  };
466 
467  template<typename S1, int O1, typename MotionDerived>
469  {
470  typedef Eigen::Matrix<S1, 6, 3, O1> ReturnType;
471  };
472 
473  template<typename Scalar, int Options>
475 
476  template<typename _Scalar, int _Options>
477  struct traits<JointTranslationTpl<_Scalar, _Options>>
478  {
479  enum
480  {
481  NQ = 3,
482  NV = 3
483  };
484  typedef _Scalar Scalar;
485  enum
486  {
487  Options = _Options
488  };
495 
496  // [ABA]
497  typedef Eigen::Matrix<Scalar, 6, NV, Options> U_t;
498  typedef Eigen::Matrix<Scalar, NV, NV, Options> D_t;
499  typedef Eigen::Matrix<Scalar, 6, NV, Options> UD_t;
500 
501  typedef Eigen::Matrix<Scalar, NQ, 1, Options> ConfigVector_t;
502  typedef Eigen::Matrix<Scalar, NV, 1, Options> TangentVector_t;
503 
505  }; // traits JointTranslationTpl
506 
507  template<typename _Scalar, int _Options>
508  struct traits<JointDataTranslationTpl<_Scalar, _Options>>
509  {
511  typedef _Scalar Scalar;
512  };
513 
514  template<typename _Scalar, int _Options>
515  struct traits<JointModelTranslationTpl<_Scalar, _Options>>
516  {
518  typedef _Scalar Scalar;
519  };
520 
521  template<typename _Scalar, int _Options>
522  struct JointDataTranslationTpl : public JointDataBase<JointDataTranslationTpl<_Scalar, _Options>>
523  {
524  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
525 
529 
530  ConfigVector_t joint_q;
531  TangentVector_t joint_v;
532 
533  Constraint_t S;
534  Transformation_t M;
535  Motion_t v;
536  Bias_t c;
537 
538  // [ABA] specific data
539  U_t U;
540  D_t Dinv;
541  UD_t UDinv;
542  D_t StU;
543 
545  : joint_q(ConfigVector_t::Zero())
546  , joint_v(TangentVector_t::Zero())
547  , M(Transformation_t::Vector3::Zero())
548  , v(Motion_t::Vector3::Zero())
549  , U(U_t::Zero())
550  , Dinv(D_t::Zero())
551  , UDinv(UD_t::Zero())
552  , StU(D_t::Zero())
553  {
554  }
555 
556  static std::string classname()
557  {
558  return std::string("JointDataTranslation");
559  }
560  std::string shortname() const
561  {
562  return classname();
563  }
564  }; // struct JointDataTranslationTpl
565 
566  PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelTranslationTpl);
567  template<typename _Scalar, int _Options>
568  struct JointModelTranslationTpl
569  : public JointModelBase<JointModelTranslationTpl<_Scalar, _Options>>
570  {
571  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
572 
575 
577  using Base::id;
578  using Base::idx_q;
579  using Base::idx_v;
580  using Base::setIndexes;
581 
582  JointDataDerived createData() const
583  {
584  return JointDataDerived();
585  }
586 
587  const std::vector<bool> hasConfigurationLimit() const
588  {
589  return {true, true, true};
590  }
591 
592  const std::vector<bool> hasConfigurationLimitInTangent() const
593  {
594  return {true, true, true};
595  }
596 
597  template<typename ConfigVector>
598  void calc(JointDataDerived & data, const typename Eigen::MatrixBase<ConfigVector> & qs) const
599  {
600  data.joint_q = this->jointConfigSelector(qs);
601  data.M.translation() = data.joint_q;
602  }
603 
604  template<typename TangentVector>
605  void
606  calc(JointDataDerived & data, const Blank, const typename Eigen::MatrixBase<TangentVector> & vs)
607  const
608  {
609  data.joint_v = this->jointVelocitySelector(vs);
610  data.v.linear() = data.joint_v;
611  }
612 
613  template<typename ConfigVector, typename TangentVector>
614  void calc(
615  JointDataDerived & data,
616  const typename Eigen::MatrixBase<ConfigVector> & qs,
617  const typename Eigen::MatrixBase<TangentVector> & vs) const
618  {
619  calc(data, qs.derived());
620 
621  data.joint_v = this->jointVelocitySelector(vs);
622  data.v.linear() = data.joint_v;
623  }
624 
625  template<typename VectorLike, typename Matrix6Like>
626  void calc_aba(
627  JointDataDerived & data,
628  const Eigen::MatrixBase<VectorLike> & armature,
629  const Eigen::MatrixBase<Matrix6Like> & I,
630  const bool update_I) const
631  {
632  data.U = I.template middleCols<3>(Inertia::LINEAR);
633 
634  data.StU = data.U.template middleRows<3>(Inertia::LINEAR);
635  data.StU.diagonal() += armature;
636 
638 
639  data.UDinv.noalias() = data.U * data.Dinv;
640 
641  if (update_I)
642  PINOCCHIO_EIGEN_CONST_CAST(Matrix6Like, I).noalias() -= data.UDinv * data.U.transpose();
643  }
644 
645  static std::string classname()
646  {
647  return std::string("JointModelTranslation");
648  }
649  std::string shortname() const
650  {
651  return classname();
652  }
653 
655  template<typename NewScalar>
657  {
659  ReturnType res;
660  res.setIndexes(id(), idx_q(), idx_v());
661  return res;
662  }
663 
664  }; // struct JointModelTranslationTpl
665 
666 } // namespace pinocchio
667 
668 #include <boost/type_traits.hpp>
669 
670 namespace boost
671 {
672  template<typename Scalar, int Options>
673  struct has_nothrow_constructor<::pinocchio::JointModelTranslationTpl<Scalar, Options>>
674  : public integral_constant<bool, true>
675  {
676  };
677 
678  template<typename Scalar, int Options>
679  struct has_nothrow_copy<::pinocchio::JointModelTranslationTpl<Scalar, Options>>
680  : public integral_constant<bool, true>
681  {
682  };
683 
684  template<typename Scalar, int Options>
685  struct has_nothrow_constructor<::pinocchio::JointDataTranslationTpl<Scalar, Options>>
686  : public integral_constant<bool, true>
687  {
688  };
689 
690  template<typename Scalar, int Options>
691  struct has_nothrow_copy<::pinocchio::JointDataTranslationTpl<Scalar, Options>>
692  : public integral_constant<bool, true>
693  {
694  };
695 } // namespace boost
696 
697 #endif // ifndef __pinocchio_multibody_joint_translation_hpp__
pinocchio::JointMotionSubspaceTranslationTpl::JointMotionSubspaceTranslationTpl
JointMotionSubspaceTranslationTpl()
Definition: joint-translation.hpp:334
pinocchio::JointTranslationTpl
Definition: joint-translation.hpp:474
pinocchio::TransformTranslationTpl::plain
PlainType plain() const
Definition: joint-translation.hpp:244
pinocchio::InertiaTpl
Definition: spatial/fwd.hpp:58
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::ConstAngularType
const typedef Vector3 ConstAngularType
Definition: joint-translation.hpp:50
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::HomogeneousMatrixType
traits< PlainType >::HomogeneousMatrixType HomogeneousMatrixType
Definition: joint-translation.hpp:218
pinocchio::MotionAlgebraAction< MotionTranslationTpl< Scalar, Options >, MotionDerived >::ReturnType
MotionTpl< Scalar, Options > ReturnType
Definition: joint-translation.hpp:31
pinocchio::MotionTranslationTpl::se3Action_impl
MotionPlain se3Action_impl(const SE3Tpl< S2, O2 > &m) const
Definition: joint-translation.hpp:131
PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
#define PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
Definition: joint-data-base.hpp:137
pinocchio::JointMotionSubspaceTranslationTpl::ConstraintTranspose::operator*
const SizeDepType< 3 >::RowsReturn< MatrixDerived >::ConstType operator*(const Eigen::MatrixBase< MatrixDerived > &F) const
Definition: joint-translation.hpp:371
pinocchio::ForceDense::linear
ConstLinearType linear() const
Return the linear part of the force vector.
Definition: force-base.hpp:57
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::AngularType
Matrix3::IdentityReturnType AngularType
Definition: joint-translation.hpp:211
pinocchio::JointMotionSubspaceTranslationTpl::transpose
ConstraintTranspose transpose() const
Definition: joint-translation.hpp:379
pinocchio::TransformTranslationTpl::translation
LinearRef translation()
Definition: joint-translation.hpp:273
test-cpp2pybind11.m
m
Definition: test-cpp2pybind11.py:25
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::ConstMatrixReturnType
const typedef DenseBase ConstMatrixReturnType
Definition: joint-translation.hpp:316
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::JointMotion
MotionTranslationTpl< Scalar, Options > JointMotion
Definition: joint-translation.hpp:310
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::AngularType
Vector3 AngularType
Definition: joint-translation.hpp:48
pinocchio::TransformTranslationTpl::se3action
SE3GroupAction< TransformTranslationTpl >::ReturnType se3action(const SE3Tpl< S2, O2 > &m) const
Definition: joint-translation.hpp:260
pinocchio::JointDataTranslationTpl::joint_v
TangentVector_t joint_v
Definition: joint-translation.hpp:531
macros.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::SE3GroupAction< TransformTranslationTpl< Scalar, Options > >::ReturnType
traits< TransformTranslationTpl< Scalar, Options > >::PlainType ReturnType
Definition: joint-translation.hpp:224
pinocchio::JointModelBase
Definition: joint-model-base.hpp:75
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::TangentVector_t
Eigen::Matrix< Scalar, NV, 1, Options > TangentVector_t
Definition: joint-translation.hpp:502
pinocchio::JointDataTranslationTpl::JointDataTranslationTpl
JointDataTranslationTpl()
Definition: joint-translation.hpp:544
pinocchio::MotionTranslationTpl::setTo
void setTo(MotionDense< Derived > &other) const
Definition: joint-translation.hpp:117
pinocchio::MotionTranslationTpl::linear
const Vector3 & linear() const
Definition: joint-translation.hpp:174
pinocchio::idx_v
int idx_v(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxVVisitor to get the index in the full model tangent space corre...
pinocchio::Options
Options
Definition: joint-configuration.hpp:1082
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::ConstAngularRef
AngularType ConstAngularRef
Definition: joint-translation.hpp:213
pinocchio::SE3GroupAction< MotionTranslationTpl< Scalar, Options > >::ReturnType
MotionTpl< Scalar, Options > ReturnType
Definition: joint-translation.hpp:25
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::Transformation_t
TransformTranslationTpl< Scalar, Options > Transformation_t
Definition: joint-translation.hpp:492
pinocchio::JointMotionSubspaceBase
Definition: joint-motion-subspace-base.hpp:59
pinocchio::MotionTranslationTpl::plain
PlainReturnType plain() const
Definition: joint-translation.hpp:94
pinocchio::MotionTranslationTpl::MotionTranslationTpl
MotionTranslationTpl(const Eigen::MatrixBase< Vector3Like > &v)
Definition: joint-translation.hpp:75
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::SE3Tpl
Definition: context/casadi.hpp:29
pinocchio::JointModelTranslationTpl::calc
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
Definition: joint-translation.hpp:598
pinocchio::JointDataTranslationTpl::shortname
std::string shortname() const
Definition: joint-translation.hpp:560
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:25
pinocchio::SE3GroupAction::ReturnType
D ReturnType
Definition: spatial/se3.hpp:41
pinocchio::JointDataBase
Definition: joint-data-base.hpp:161
pinocchio::JointModelTranslationTpl::calc
void calc(JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-translation.hpp:606
pinocchio::MotionTranslationTpl::operator()
Vector3 & operator()()
Definition: joint-translation.hpp:85
pinocchio::JointModelTranslationTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointTranslationTpl< _Scalar, _Options > JointDerived
Definition: joint-translation.hpp:573
pinocchio::PINOCCHIO_EIGEN_REF_CONST_TYPE
PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(const Eigen
Definition: joint-free-flyer.hpp:144
pinocchio::MotionTranslationTpl::se3Action_impl
void se3Action_impl(const SE3Tpl< S2, O2 > &m, MotionDense< D2 > &v) const
Definition: joint-translation.hpp:124
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::LinearRef
LinearType & LinearRef
Definition: joint-translation.hpp:215
pinocchio::JointMotionSubspaceTranslationTpl::se3ActionInverse
Eigen::Matrix< S1, 6, 3, O1 > se3ActionInverse(const SE3Tpl< S1, O1 > &m) const
Definition: joint-translation.hpp:403
inertia.hpp
pinocchio::JointMotionSubspaceTranslationTpl::__mult__
JointMotion __mult__(const Eigen::MatrixBase< Vector3Like > &v) const
Definition: joint-translation.hpp:343
pinocchio::MotionDense
Definition: context/casadi.hpp:36
pinocchio::python::Scalar
context::Scalar Scalar
Definition: admm-solver.cpp:29
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::Matrix3
Eigen::Matrix< Scalar, 3, 3, Options > Matrix3
Definition: joint-translation.hpp:210
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::LinearType
Vector3 LinearType
Definition: joint-translation.hpp:214
pinocchio::operator+
MotionDerived::MotionPlain operator+(const MotionHelicalUnalignedTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2)
Definition: joint-helical-unaligned.hpp:211
boost
pinocchio::JointMotionSubspaceTranslationTpl::ConstraintTranspose::ConstraintTranspose
ConstraintTranspose(const JointMotionSubspaceTranslationTpl &ref)
Definition: joint-translation.hpp:357
pinocchio::MotionTranslationTpl::MotionTranslationTpl
MotionTranslationTpl()
Definition: joint-translation.hpp:70
pinocchio::MotionTranslationTpl::operator=
MotionTranslationTpl & operator=(const MotionTranslationTpl &other)
Definition: joint-translation.hpp:104
pinocchio::TransformTranslationTpl::TransformTranslationTpl
TransformTranslationTpl()
Definition: joint-translation.hpp:234
pinocchio::JointModelBase::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:186
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::JointDataDerived
JointDataTranslationTpl< Scalar, Options > JointDataDerived
Definition: joint-translation.hpp:489
pinocchio::TransformTranslationTpl::m_translation
LinearType m_translation
Definition: joint-translation.hpp:289
pinocchio::JointModelTranslationTpl
Definition: multibody/joint/fwd.hpp:126
pinocchio::JointDataTranslationTpl::Dinv
D_t Dinv
Definition: joint-translation.hpp:540
pinocchio::res
ReturnType res
Definition: spatial/classic-acceleration.hpp:57
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:207
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:484
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::Vector6
Eigen::Matrix< Scalar, 6, 1, Options > Vector6
Definition: joint-translation.hpp:43
pinocchio::MotionAlgebraAction
Return type of the ation of a Motion onto an object of type D.
Definition: spatial/motion.hpp:45
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::JointForce
Eigen::Matrix< Scalar, 3, 1, Options > JointForce
Definition: joint-translation.hpp:311
pinocchio::JointDataTranslationTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointTranslationTpl< _Scalar, _Options > JointDerived
Definition: joint-translation.hpp:526
pinocchio::operator*
TridiagonalSymmetricMatrixApplyOnTheLeftReturnType< LhsMatrixType, TridiagonalSymmetricMatrixTpl< S, O > > operator*(const Eigen::MatrixBase< LhsMatrixType > &lhs, const TridiagonalSymmetricMatrixTpl< S, O > &rhs)
Definition: math/tridiagonal-matrix.hpp:319
pinocchio::JointModelTranslationTpl::createData
JointDataDerived createData() const
Definition: joint-translation.hpp:582
pinocchio::SE3GroupAction< JointMotionSubspaceTranslationTpl< S1, O1 > >::ReturnType
Eigen::Matrix< S1, 6, 3, O1 > ReturnType
Definition: joint-translation.hpp:464
pinocchio::Blank
Blank type.
Definition: fwd.hpp:76
pinocchio::traits< JointDataTranslationTpl< _Scalar, _Options > >::JointDerived
JointTranslationTpl< _Scalar, _Options > JointDerived
Definition: joint-translation.hpp:510
pinocchio::MotionDense::linear
ConstLinearType linear() const
Definition: motion-base.hpp:36
pinocchio::JointDataTranslationTpl::S
Constraint_t S
Definition: joint-translation.hpp:533
pinocchio::SE3GroupAction
Definition: spatial/se3.hpp:39
pinocchio::MotionTranslationTpl::MotionTranslationTpl
MotionTranslationTpl(const MotionTranslationTpl &other)
Definition: joint-translation.hpp:80
skew.hpp
pinocchio::MotionZeroTpl
Definition: context/casadi.hpp:23
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
#define PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
Definition: joint-data-base.hpp:55
pinocchio::MotionTranslationTpl::se3ActionInverse_impl
void se3ActionInverse_impl(const SE3Tpl< S2, O2 > &m, MotionDense< D2 > &v) const
Definition: joint-translation.hpp:139
pinocchio::JointMotionSubspaceTranslationTpl::NV
@ NV
Definition: joint-translation.hpp:331
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::MotionPlain
MotionTpl< Scalar, Options > MotionPlain
Definition: joint-translation.hpp:54
pinocchio::JointModelTranslationTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-translation.hpp:592
pinocchio::JointMotionSubspaceTranslationTpl
Definition: joint-translation.hpp:293
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::D_t
Eigen::Matrix< Scalar, NV, NV, Options > D_t
Definition: joint-translation.hpp:498
pinocchio::traits< JointDataTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:511
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: joint-translation.hpp:42
pinocchio::JointDataTranslationTpl
Definition: multibody/joint/fwd.hpp:130
simulation-contact-dynamics.S
S
Definition: simulation-contact-dynamics.py:80
pinocchio::JointDataTranslationTpl::UDinv
UD_t UDinv
Definition: joint-translation.hpp:541
pinocchio::SizeDepType::RowsReturn
Definition: matrix-block.hpp:70
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::U_t
Eigen::Matrix< Scalar, 6, NV, Options > U_t
Definition: joint-translation.hpp:497
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::Bias_t
MotionZeroTpl< Scalar, Options > Bias_t
Definition: joint-translation.hpp:494
pinocchio::JointDataTranslationTpl::v
Motion_t v
Definition: joint-translation.hpp:535
pinocchio::PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION
PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelFreeFlyerTpl)
Free-flyer joint in .
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::Constraint_t
JointMotionSubspaceTranslationTpl< Scalar, Options > Constraint_t
Definition: joint-translation.hpp:491
pinocchio::skew
void skew(const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M)
Computes the skew representation of a given 3d vector, i.e. the antisymmetric matrix representation o...
Definition: skew.hpp:22
pinocchio::JointDataTranslationTpl::c
Bias_t c
Definition: joint-translation.hpp:536
pinocchio::JointModelTranslationTpl::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
Definition: joint-translation.hpp:626
pinocchio::JointMotionSubspaceTranslationTpl::ConstraintTranspose::operator*
ForceDense< Derived >::ConstLinearType operator*(const ForceDense< Derived > &phi)
Definition: joint-translation.hpp:363
pinocchio::JointDataTranslationTpl::classname
static std::string classname()
Definition: joint-translation.hpp:556
pinocchio::JointModelTranslationTpl::Base
JointModelBase< JointModelTranslationTpl > Base
Definition: joint-translation.hpp:576
pinocchio::JointModelTranslationTpl::cast
JointModelTranslationTpl< NewScalar, Options > cast() const
Definition: joint-translation.hpp:656
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::PlainReturnType
MotionPlain PlainReturnType
Definition: joint-translation.hpp:55
pinocchio::TransformTranslationTpl::translation
ConstLinearRef translation() const
Definition: joint-translation.hpp:269
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::HomogeneousMatrixType
Matrix4 HomogeneousMatrixType
Definition: joint-translation.hpp:53
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::ReducedSquaredMatrix
Eigen::Matrix< Scalar, 3, 3, Options > ReducedSquaredMatrix
Definition: joint-translation.hpp:313
joint-base.hpp
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: joint-translation.hpp:209
pinocchio::MotionTranslationTpl::m_v
Vector3 m_v
Definition: joint-translation.hpp:184
pinocchio::TransformTranslationTpl::TransformTranslationTpl
TransformTranslationTpl(const Eigen::MatrixBase< Vector3Like > &translation)
Definition: joint-translation.hpp:239
pinocchio::JointModelTranslationTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-translation.hpp:587
pinocchio::JointDataTranslationTpl::StU
D_t StU
Definition: joint-translation.hpp:542
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::ConfigVector_t
Eigen::Matrix< Scalar, NQ, 1, Options > ConfigVector_t
Definition: joint-translation.hpp:501
pinocchio::JointDataTranslationTpl::joint_q
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR ConfigVector_t joint_q
Definition: joint-translation.hpp:530
M
M
pinocchio::context::Vector3
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
Definition: context/generic.hpp:53
pinocchio::MotionTranslationTpl::se3ActionInverse_impl
MotionPlain se3ActionInverse_impl(const SE3Tpl< S2, O2 > &m) const
Definition: joint-translation.hpp:149
ur5x4.w
w
Definition: ur5x4.py:50
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::MatrixReturnType
DenseBase MatrixReturnType
Definition: joint-translation.hpp:315
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::AngularRef
AngularType AngularRef
Definition: joint-translation.hpp:212
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::Matrix4
Eigen::Matrix< Scalar, 4, 4, Options > Matrix4
Definition: joint-translation.hpp:44
pinocchio::JointDataTranslationTpl::M
Transformation_t M
Definition: joint-translation.hpp:534
pinocchio::JointModelTranslationTpl::calc
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-translation.hpp:614
pinocchio::TransformTranslationTpl::rotation
AngularType rotation() const
Definition: joint-translation.hpp:278
pinocchio::JointMotionSubspaceTranslationTpl::ConstraintTranspose
Definition: joint-translation.hpp:354
pinocchio::JointMotionSubspaceTranslationTpl::ConstraintTranspose::ref
const JointMotionSubspaceTranslationTpl & ref
Definition: joint-translation.hpp:356
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::Motion_t
MotionTranslationTpl< Scalar, Options > Motion_t
Definition: joint-translation.hpp:493
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::ActionMatrixType
Matrix6 ActionMatrixType
Definition: joint-translation.hpp:52
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::StDiagonalMatrixSOperationReturnType
ReducedSquaredMatrix::IdentityReturnType StDiagonalMatrixSOperationReturnType
Definition: joint-translation.hpp:318
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:37
pinocchio::MotionAlgebraAction< JointMotionSubspaceTranslationTpl< S1, O1 >, MotionDerived >::ReturnType
Eigen::Matrix< S1, 6, 3, O1 > ReturnType
Definition: joint-translation.hpp:470
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::UD_t
Eigen::Matrix< Scalar, 6, NV, Options > UD_t
Definition: joint-translation.hpp:499
pinocchio::JointModelBase::idx_v
int idx_v() const
Definition: joint-model-base.hpp:164
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::internal::comparison_eq
bool comparison_eq(const LhsType &lhs_value, const RhsType &rhs_value)
Definition: utils/static-if.hpp:120
pinocchio::MotionTranslationTpl::operator()
const Vector3 & operator()() const
Definition: joint-translation.hpp:89
pinocchio::traits< JointTranslationTpl< _Scalar, _Options > >::JointModelDerived
JointModelTranslationTpl< Scalar, Options > JointModelDerived
Definition: joint-translation.hpp:490
pinocchio::MotionTranslationTpl::linear
Vector3 & linear()
Definition: joint-translation.hpp:178
pinocchio::MotionTranslationTpl::isEqual_impl
bool isEqual_impl(const MotionTranslationTpl &other) const
Definition: joint-translation.hpp:99
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::ConstLinearRef
const typedef LinearType & ConstLinearRef
Definition: joint-translation.hpp:216
joint-motion-subspace.hpp
pinocchio::SE3Base
Base class for rigid transformation.
Definition: se3-base.hpp:30
pinocchio::TransformTranslationTpl::isEqual
bool isEqual(const TransformTranslationTpl &other) const
Definition: joint-translation.hpp:283
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:160
pinocchio::MotionTranslationTpl::motionAction
void motionAction(const MotionDense< M1 > &v, MotionDense< M2 > &mout) const
Definition: joint-translation.hpp:157
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::Matrix6
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
Definition: joint-translation.hpp:45
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::LinearType
Vector3 LinearType
Definition: joint-translation.hpp:49
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::PlainType
SE3Tpl< Scalar, Options > PlainType
Definition: joint-translation.hpp:208
pinocchio::ForceDense
Definition: context/casadi.hpp:34
pinocchio::JointDataTranslationTpl::PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::MotionTranslationTpl::motionAction
MotionPlain motionAction(const MotionDense< M1 > &v) const
Definition: joint-translation.hpp:167
pinocchio::traits< MotionTranslationTpl< _Scalar, _Options > >::ConstLinearType
const typedef Vector3 ConstLinearType
Definition: joint-translation.hpp:51
pinocchio::JointMotionSubspaceTranslationTpl::nv_impl
int nv_impl() const
Definition: joint-translation.hpp:349
pinocchio::MotionTranslationTpl::addTo
void addTo(MotionDense< Derived > &other) const
Definition: joint-translation.hpp:111
pinocchio::traits< TransformTranslationTpl< _Scalar, _Options > >::ActionMatrixType
traits< PlainType >::ActionMatrixType ActionMatrixType
Definition: joint-translation.hpp:217
pinocchio::MotionTranslationTpl
Definition: joint-translation.hpp:19
pinocchio::operator^
EIGEN_STRONG_INLINE MotionDerived::MotionPlain operator^(const MotionDense< MotionDerived > &m1, const MotionHelicalUnalignedTpl< S2, O2 > &m2)
Definition: joint-helical-unaligned.hpp:220
PINOCCHIO_CONSTRAINT_TYPEDEF_TPL
#define PINOCCHIO_CONSTRAINT_TYPEDEF_TPL(DERIVED)
Definition: joint-motion-subspace-base.hpp:36
pinocchio::TransformTranslationTpl::PINOCCHIO_SE3_TYPEDEF_TPL
EIGEN_MAKE_ALIGNED_OPERATOR_NEW PINOCCHIO_SE3_TYPEDEF_TPL(TransformTranslationTpl)
Y
Y
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::TransformTranslationTpl::Vector3
traits< TransformTranslationTpl >::Vector3 Vector3
Definition: joint-translation.hpp:232
pinocchio::JointModelTranslationTpl::shortname
std::string shortname() const
Definition: joint-translation.hpp:649
pinocchio::JointModelTranslationTpl::classname
static std::string classname()
Definition: joint-translation.hpp:645
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::DenseBase
Eigen::Matrix< Scalar, 6, 3, Options > DenseBase
Definition: joint-translation.hpp:312
PINOCCHIO_EIGEN_REF_TYPE
#define PINOCCHIO_EIGEN_REF_TYPE(D)
Definition: eigen-macros.hpp:32
pinocchio::traits< JointModelTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:518
pinocchio::JointModelTranslationTpl::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::MotionTranslation
MotionTranslationTpl< context::Scalar > MotionTranslation
Definition: joint-translation.hpp:19
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::MotionTpl< Scalar, Options >
dcrba.NV
NV
Definition: dcrba.py:536
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
pinocchio::traits< JointMotionSubspaceTranslationTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-translation.hpp:298
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
pinocchio::JointMotionSubspaceTranslationTpl::motionAction
DenseBase motionAction(const MotionDense< MotionDerived > &m) const
Definition: joint-translation.hpp:413
pinocchio::traits< JointModelTranslationTpl< _Scalar, _Options > >::JointDerived
JointTranslationTpl< _Scalar, _Options > JointDerived
Definition: joint-translation.hpp:517
pinocchio::JointMotionSubspaceTranslationTpl::isEqual
bool isEqual(const JointMotionSubspaceTranslationTpl &) const
Definition: joint-translation.hpp:424
pinocchio::JointMotionSubspaceTranslationTpl::matrix_impl
DenseBase matrix_impl() const
Definition: joint-translation.hpp:384
pinocchio::MotionTranslationTpl::MOTION_TYPEDEF_TPL
EIGEN_MAKE_ALIGNED_OPERATOR_NEW MOTION_TYPEDEF_TPL(MotionTranslationTpl)
pinocchio::MotionDense::angular
ConstAngularType angular() const
Definition: motion-base.hpp:32
pinocchio::TransformTranslationTpl
Definition: joint-translation.hpp:196
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:168
pinocchio::JointDataTranslationTpl::U
U_t U
Definition: joint-translation.hpp:539
pinocchio::JointMotionSubspaceTranslationTpl::se3Action
Eigen::Matrix< S1, 6, 3, O1 > se3Action(const SE3Tpl< S1, O1 > &m) const
Definition: joint-translation.hpp:393


pinocchio
Author(s):
autogenerated on Sun Dec 22 2024 03:41:11