joint-mimic.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2019-2021 INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_joint_mimic_hpp__
6 #define __pinocchio_multibody_joint_mimic_hpp__
7 
10 #include "pinocchio/macros.hpp"
13 
14 namespace pinocchio
15 {
16  template<typename _Scalar, int _Options, int MaxDim>
18 
19  template<typename _Scalar, int _Options, int _MaxDim>
20  struct traits<ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>>
21  {
22  enum
23  {
24  MaxDim = _MaxDim
25  };
29  enum
30  {
32  };
33  enum
34  {
37  };
43  }; // traits ScaledJointMotionSubspaceTpl
44 
45  template<typename _Scalar, int _Options, int _MaxDim>
46  struct SE3GroupAction<ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>>
47  {
48  typedef typename SE3GroupAction<typename traits<
51  };
52 
53  template<typename _Scalar, int _Options, int _MaxDim, typename MotionDerived>
55  ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>,
56  MotionDerived>
57  {
58  typedef typename MotionAlgebraAction<
59  typename traits<
61  MotionDerived>::ReturnType ReturnType;
62  };
63 
64  template<typename _Scalar, int _Options, int _MaxDim, typename ForceDerived>
65  struct ConstraintForceOp<ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>, ForceDerived>
66  {
67  typedef
70  typedef
73  };
74 
75  template<typename _Scalar, int _Options, int _MaxDim, typename ForceSet>
76  struct ConstraintForceSetOp<ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>, ForceSet>
77  {
78  typedef
81  typedef
84  };
85 
86  template<typename _Scalar, int _Options, int _MaxDim>
88  : JointMotionSubspaceBase<ScaledJointMotionSubspaceTpl<_Scalar, _Options, _MaxDim>>
89  {
90  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
91 
93  enum
94  {
96  MaxDim = _MaxDim
97  };
99  using Base::nv;
100 
102  RefJointMotionSubspace RefJointMotionSubspace;
104 
106  : m_constraint(0)
108  {
109  }
110 
111  explicit ScaledJointMotionSubspaceTpl(const Scalar & scaling_factor)
112  : m_constraint(0)
113  , m_scaling_factor(scaling_factor)
114  {
115  }
116 
117  template<typename ConstraintTpl>
118  ScaledJointMotionSubspaceTpl(const ConstraintTpl & constraint, const Scalar & scaling_factor)
120  , m_scaling_factor(scaling_factor)
121  {
122  }
123 
125  : m_constraint(other.m_constraint)
127  {
128  }
129 
131  {
132  m_constraint = other.m_constraint;
134  return *this;
135  }
136 
137  template<typename VectorLike>
138  JointMotion __mult__(const Eigen::MatrixBase<VectorLike> & v) const
139  {
140 
141  assert(v.size() == nv());
142  JointMotion jm = m_constraint * v;
143  return m_scaling_factor * jm;
144  }
145 
146  template<typename S1, int O1>
148  {
149  return m_scaling_factor * m_constraint.se3Action(m);
150  }
151 
152  template<typename S1, int O1>
154  {
155  return m_scaling_factor * m_constraint.se3ActionInverse(m);
156  }
157 
158  int nv_impl() const
159  {
160  return m_constraint.nv();
161  }
162 
164  {
167  : ref(ref)
168  {
169  }
170 
171  template<typename Derived>
172  // typename ConstraintForceOp<ScaledJointMotionSubspaceTpl, Derived>::ReturnType
173  JointForce operator*(const ForceDense<Derived> & f) const
174  {
175  return ref.m_scaling_factor * (ref.m_constraint.transpose() * f);
176  }
177 
179  template<typename Derived>
181  operator*(const Eigen::MatrixBase<Derived> & F) const
182  {
183  return ref.m_scaling_factor * (ref.m_constraint.transpose() * F);
184  }
185 
186  }; // struct TransposeConst
187 
189  {
190  return TransposeConst(*this);
191  }
192 
193  const DenseBase & matrix_impl() const
194  {
195  S = m_scaling_factor * m_constraint.matrix_impl();
196  return S;
197  }
198 
199  DenseBase & matrix_impl()
200  {
201  S = m_scaling_factor * m_constraint.matrix_impl();
202  return S;
203  }
204 
205  template<typename MotionDerived>
208  {
209  return m_scaling_factor * m_constraint.motionAction(m);
210  }
211 
212  inline const Scalar & scaling() const
213  {
214  return m_scaling_factor;
215  }
216  inline Scalar & scaling()
217  {
218  return m_scaling_factor;
219  }
220 
221  inline const RefJointMotionSubspace & constraint() const
222  {
223  return m_constraint.derived();
224  }
226  {
227  return m_constraint.derived();
228  }
229 
230  bool isEqual(const ScaledJointMotionSubspaceTpl & other) const
231  {
232  return m_constraint == other.m_constraint && m_scaling_factor == other.m_scaling_factor;
233  }
234 
235  protected:
238  mutable DenseBase S;
239  }; // struct ScaledJointMotionSubspaceTpl
240 
241  template<typename S1, int O1, typename S2, int O2, int MD2>
243  {
246  typedef typename Constraint::Scalar Scalar;
247 
248  typedef Eigen::Matrix<S2, 6, Eigen::Dynamic, O2, 6, MD2> ReturnType;
249  };
250 
251  /* [CRBA] ForceSet operator* (Inertia Y,Constraint S) */
252  namespace impl
253  {
254  template<typename S1, int O1, typename S2, int O2, int MD2>
256  {
260 
261  static inline ReturnType run(const Inertia & Y, const Constraint & scaled_constraint)
262  {
263  return scaled_constraint.scaling() * (Y * scaled_constraint.constraint());
264  }
265  };
266  } // namespace impl
267 
268  template<typename M6Like, typename S2, int O2, int MD2>
269  struct MultiplicationOp<Eigen::MatrixBase<M6Like>, ScaledJointMotionSubspaceTpl<S2, O2, MD2>>
270  {
272  typedef Eigen::Matrix<S2, 6, Eigen::Dynamic, O2, 6, MD2> ReturnType;
273  };
274 
275  /* [ABA] operator* (Inertia Y,Constraint S) */
276  namespace impl
277  {
278  template<typename M6Like, typename S2, int O2, int MD2>
279  struct LhsMultiplicationOp<Eigen::MatrixBase<M6Like>, ScaledJointMotionSubspaceTpl<S2, O2, MD2>>
280  {
282  typedef
284 
285  static inline ReturnType
286  run(const Eigen::MatrixBase<M6Like> & Y, const Constraint & scaled_constraint)
287  {
288  return scaled_constraint.scaling() * (Y.derived() * scaled_constraint.constraint());
289  }
290  };
291  } // namespace impl
292 
293  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
295  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
296  struct JointModelMimicTpl;
297  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
298  struct JointDataMimicTpl;
299 
300  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
301  struct traits<JointMimicTpl<_Scalar, _Options, JointCollectionTpl>>
302  {
303  typedef _Scalar Scalar;
304 
305  enum
306  {
307  Options = _Options,
310  NVExtended = Eigen::Dynamic,
311  MaxNVMimicked = 6
312  };
313 
314  typedef JointCollectionTpl<Scalar, Options> JointCollection;
317 
322 
323  // [ABA]
324  typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> U_t;
325  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Options> D_t;
326  typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> UD_t;
327 
337  typedef U_t UTypeRef;
339  typedef D_t DTypeRef;
341  typedef UD_t UDTypeRef;
342 
343  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> ConfigVector_t;
344  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> TangentVector_t;
345 
350 
351  typedef boost::mpl::false_ is_mimicable_t;
352  };
353 
354  template<typename _Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
355  struct traits<JointDataMimicTpl<_Scalar, Options, JointCollectionTpl>>
356  {
358  typedef _Scalar Scalar;
359  };
360 
361  template<typename _Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
362  struct traits<JointModelMimicTpl<_Scalar, Options, JointCollectionTpl>>
363  {
365  typedef _Scalar Scalar;
366  };
367 
368  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
369  struct JointDataMimicTpl
370  : public JointDataBase<JointDataMimicTpl<_Scalar, _Options, JointCollectionTpl>>
371  {
372  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
373 
377 
380 
382  : S((Scalar)0)
383  {
384  joint_q.resize(0, 1);
385  joint_q_transformed.resize(0, 1);
386  joint_v.resize(0, 1);
387  joint_v_transformed.resize(0, 1);
388  }
389 
391  const RefJointData & jdata, const Scalar & scaling, const int & nq, const int & nv)
392  : m_jdata_mimicking(checkMimic(jdata.derived()))
393  , S(m_jdata_mimicking.S(), scaling)
394  {
395  joint_q.resize(nq, 1);
396  joint_q_transformed.resize(nq, 1);
397  joint_v.resize(nv, 1);
398  joint_v_transformed.resize(nv, 1);
399  }
400 
402  {
403  *this = other;
404  }
405 
407  {
409  joint_q = other.joint_q;
411  joint_v = other.joint_v;
413  S = Constraint_t(other.S);
414  return *this;
415  }
416 
417  using Base::isEqual;
418  bool isEqual(const JointDataMimicTpl & other) const
419  {
420  return Base::isEqual(other) && m_jdata_mimicking == other.m_jdata_mimicking
422  && joint_v == other.joint_v && joint_v_transformed == other.joint_v_transformed;
423  }
424 
425  static std::string classname()
426  {
427  return std::string("JointDataMimic");
428  }
429 
430  std::string shortname() const
431  {
432  return classname();
433  }
434 
435  // // Accessors
436  ConstraintTypeConstRef S_accessor() const
437  {
438  return S;
439  }
440  ConstraintTypeRef S_accessor()
441  {
442  return S;
443  }
444 
445  Transformation_t M_accessor() const
446  {
447  return m_jdata_mimicking.M();
448  }
449 
450  Motion_t v_accessor() const
451  {
452  return m_jdata_mimicking.v();
453  }
454 
455  Bias_t c_accessor() const
456  {
457  return m_jdata_mimicking.c();
458  }
459 
460  U_t U_accessor() const
461  {
462  return m_jdata_mimicking.U();
463  }
464 
465  D_t Dinv_accessor() const
466  {
467  return m_jdata_mimicking.Dinv();
468  }
469 
470  UD_t UDinv_accessor() const
471  {
472  return m_jdata_mimicking.UDinv();
473  }
474 
475  D_t StU_accessor() const
476  {
477  return m_jdata_mimicking.StU();
478  }
479 
480  friend struct JointModelMimicTpl<_Scalar, _Options, JointCollectionTpl>;
481 
482  const RefJointData & jdata() const
483  {
484  return m_jdata_mimicking;
485  }
487  {
488  return m_jdata_mimicking;
489  }
490 
491  ConfigVectorTypeRef joint_q_accessor()
492  {
493  return joint_q;
494  }
495  ConfigVectorTypeConstRef joint_q_accessor() const
496  {
497  return joint_q;
498  }
499 
500  ConfigVector_t & q_transformed()
501  {
502  return joint_q_transformed;
503  }
504  const ConfigVector_t & q_transformed() const
505  {
506  return joint_q_transformed;
507  }
508  TangentVectorTypeRef joint_v_accessor()
509  {
510  return joint_v;
511  }
512  TangentVectorTypeConstRef joint_v_accessor() const
513  {
514  return joint_v;
515  }
516 
517  TangentVector_t & v_transformed()
518  {
519  return joint_v_transformed;
520  }
521  const TangentVector_t & v_transformed() const
522  {
523  return joint_v_transformed;
524  }
525 
526  void disp(std::ostream & os) const
527  {
528  Base::disp(os);
529  os << " Mimicking joint data: " << m_jdata_mimicking.shortname() << std::endl;
530  }
531 
533 
535  ConfigVector_t joint_q;
537  ConfigVector_t joint_q_transformed;
539  TangentVector_t joint_v;
541  TangentVector_t joint_v_transformed;
542  // data
543  Constraint_t S;
544  }; // struct JointDataMimicTpl
545 
546  template<
547  typename NewScalar,
548  typename Scalar,
549  int Options,
550  template<typename S, int O> class JointCollectionTpl>
551  struct CastType<NewScalar, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>
552  {
554  };
555 
556  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
557  struct JointModelMimicTpl
558  : public JointModelBase<JointModelMimicTpl<_Scalar, _Options, JointCollectionTpl>>
559  {
560  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
561 
565  enum
566  {
568  };
569 
570  typedef JointCollectionTpl<Scalar, Options> JointCollection;
572 
576 
577  using Base::id;
578  using Base::idx_q;
579  using Base::idx_v;
580  using Base::idx_vExtended;
581  using Base::nq;
582  using Base::nv;
583  using Base::nvExtended;
584  using Base::setIndexes;
585 
587  {
588  }
589 
590  template<typename JointModel>
592  const JointModelBase<JointModel> & jmodel, const Scalar & scaling, const Scalar & offset)
594  {
595  }
596 
597  template<typename JointModelMimicking, typename JointModelMimicked>
599  const JointModelBase<JointModelMimicking> & jmodel_mimicking,
600  const JointModelBase<JointModelMimicked> & jmodel_mimicked,
601  const Scalar & scaling,
602  const Scalar & offset)
603  : m_jmodel_mimicking(checkMimic((JointModel)jmodel_mimicking.derived()))
604  , m_scaling(scaling)
605  , m_offset(offset)
606  , m_nqExtended(jmodel_mimicking.nq())
607  , m_nvExtended(jmodel_mimicking.nvExtended())
608  {
609  assert(jmodel_mimicking.nq() == jmodel_mimicked.nq());
610  assert(jmodel_mimicking.nv() == jmodel_mimicked.nv());
611  assert(jmodel_mimicking.nvExtended() == jmodel_mimicked.nvExtended());
612 
614  jmodel_mimicked.id(), jmodel_mimicked.idx_q(), jmodel_mimicked.idx_v(),
615  jmodel_mimicked.idx_vExtended());
616  }
617 
618  Base & base()
619  {
620  return *static_cast<Base *>(this);
621  }
622  const Base & base() const
623  {
624  return *static_cast<const Base *>(this);
625  }
626 
627  inline int nq_impl() const
628  {
629  return 0;
630  }
631  inline int nv_impl() const
632  {
633  return 0;
634  }
635  inline int nvExtended_impl() const
636  {
637  return m_nvExtended;
638  }
639 
645  void setIndexes_impl(JointIndex id, int /*q*/, int /*v*/, int vExtended)
646  {
648  (id > m_jmodel_mimicking.id()), std::invalid_argument,
649  "Mimic joint index is lower than its directing joint. Should never happen");
650  Base::i_id = id;
651  // Base::i_q = q;
652  // Base::i_v = v;
653  Base::i_vExtended = vExtended;
654  }
655 
665  void setMimicIndexes(JointIndex id, int q, int v, int vExtended)
666  {
667  // Set idx_q, idx_v to zero because only the corresponding subsegment of q,v are passed to the
668  // m_jmodel_mimicking, thus, its indexes starts at 0
669  m_jmodel_mimicking.setIndexes(id, 0, 0, vExtended);
670 
671  // idx_q, idx_v are kept separately to extract the subsegment
672  Base::i_q = q;
673  Base::i_v = v;
674  }
675 
676  JointDataDerived createData() const
677  {
678  return JointDataDerived(
680  }
681 
682  const std::vector<bool> hasConfigurationLimit() const
683  {
685  }
686 
687  const std::vector<bool> hasConfigurationLimitInTangent() const
688  {
690  }
691 
692  template<typename ConfigVector>
694  calc(JointDataDerived & jdata, const typename Eigen::MatrixBase<ConfigVector> & qs) const
695  {
696  jdata.joint_q = qs.segment(Base::i_q, m_nqExtended);
698  m_jmodel_mimicking, jdata.joint_q, m_scaling, m_offset, jdata.joint_q_transformed);
699  m_jmodel_mimicking.calc(jdata.m_jdata_mimicking, jdata.joint_q_transformed);
700  }
701 
702  template<typename ConfigVector, typename TangentVector>
704  JointDataDerived & jdata,
705  const typename Eigen::MatrixBase<ConfigVector> & qs,
706  const typename Eigen::MatrixBase<TangentVector> & vs) const
707  {
708  jdata.joint_q = qs.segment(Base::i_q, m_nqExtended);
709  jdata.joint_v = vs.segment(Base::i_v, m_nvExtended);
711  m_jmodel_mimicking, jdata.joint_q, m_scaling, m_offset, jdata.joint_q_transformed);
712  jdata.joint_v_transformed = m_scaling * jdata.joint_v;
713 
715  jdata.m_jdata_mimicking, jdata.joint_q_transformed, jdata.joint_v_transformed);
716  }
717 
718  template<typename VectorLike, typename Matrix6Like>
719  void calc_aba(
720  JointDataDerived &,
721  const Eigen::MatrixBase<VectorLike> &,
722  const Eigen::MatrixBase<Matrix6Like> &,
723  const bool) const
724  {
725  assert(
726  false
727  && "Joint Mimic is not supported for aba yet. Remove it from your model if you want to use "
728  "this function");
729  }
730 
731  static std::string classname()
732  {
733  return std::string("JointModelMimic");
734  }
735 
736  std::string shortname() const
737  {
738  return classname();
739  }
740 
742  template<typename NewScalar>
744  {
745  typedef typename CastType<NewScalar, JointModelMimicTpl>::type ReturnType;
746  ReturnType res(
747  m_jmodel_mimicking.template cast<NewScalar>(),
750  res.setIndexes(id(), Base::i_q, Base::i_v, Base::i_vExtended);
751  res.setMimicIndexes(m_jmodel_mimicking.id(), Base::i_q, Base::i_v, Base::i_vExtended);
752  return res;
753  }
754 
755  const JointModel & jmodel() const
756  {
757  return m_jmodel_mimicking;
758  }
760  {
761  return m_jmodel_mimicking;
762  }
763 
764  const Scalar & scaling() const
765  {
766  return m_scaling;
767  }
769  {
770  return m_scaling;
771  }
772 
773  const Scalar & offset() const
774  {
775  return m_offset;
776  }
778  {
779  return m_offset;
780  }
781 
782  protected:
783  // data
787 
788  public:
789  /* Acces to dedicated segment in robot config space. */
790  // Const access
791  template<typename D>
792  typename SizeDepType<NQ>::template SegmentReturn<D>::ConstType
793  JointMappedConfigSelector_impl(const Eigen::MatrixBase<D> & a) const
794  {
795  return SizeDepType<NQ>::segment(a.derived(), Base::i_q, m_nqExtended);
796  }
797 
798  // Non-const access
799  template<typename D>
800  typename SizeDepType<NQ>::template SegmentReturn<D>::Type
801  JointMappedConfigSelector_impl(Eigen::MatrixBase<D> & a) const
802  {
803  return SizeDepType<NQ>::segment(a.derived(), Base::i_q, m_nqExtended);
804  }
805  /* Acces to dedicated segment in robot tangent space. */
806  // Const access
807  template<typename D>
808  typename SizeDepType<NQ>::template SegmentReturn<D>::ConstType
809  JointMappedVelocitySelector_impl(const Eigen::MatrixBase<D> & a) const
810  {
811  return SizeDepType<NQ>::segment(a.derived(), Base::i_v, m_nvExtended);
812  }
813 
814  // Non-const access
815  template<typename D>
816  typename SizeDepType<NQ>::template SegmentReturn<D>::Type
817  JointMappedVelocitySelector_impl(Eigen::MatrixBase<D> & a) const
818  {
819  return SizeDepType<NQ>::segment(a.derived(), Base::i_v, m_nvExtended);
820  }
821 
822  /* Acces to dedicated columns in a ForceSet or MotionSet matrix.*/
823  // Const access
824  template<typename D>
825  typename SizeDepType<NV>::template ColsReturn<D>::ConstType
826  jointCols_impl(const Eigen::MatrixBase<D> & A) const
827  {
828  return SizeDepType<NV>::middleCols(A.derived(), Base::i_v, m_nvExtended);
829  }
830 
831  // Non-const access
832  template<typename D>
833  typename SizeDepType<NV>::template ColsReturn<D>::Type
834  jointCols_impl(Eigen::MatrixBase<D> & A) const
835  {
836  return SizeDepType<NV>::middleCols(A.derived(), Base::i_v, m_nvExtended);
837  }
838 
839  /* Acces to dedicated rows in a matrix.*/
840  // Const access
841  template<typename D>
842  typename SizeDepType<NV>::template RowsReturn<D>::ConstType
843  jointRows_impl(const Eigen::MatrixBase<D> & A) const
844  {
845  return SizeDepType<NV>::middleRows(A.derived(), Base::i_v, m_nvExtended);
846  }
847 
848  // Non-const access
849  template<typename D>
850  typename SizeDepType<NV>::template RowsReturn<D>::Type
851  jointRows_impl(Eigen::MatrixBase<D> & A) const
852  {
853  return SizeDepType<NV>::middleRows(A.derived(), Base::i_v, m_nvExtended);
854  }
855 
856  // /// \brief Returns a block of dimension nv()xnv() located at position idx_v(),idx_v() in the
857  // matrix Mat
858  // // Const access
859  template<typename D>
860  typename SizeDepType<NV>::template BlockReturn<D>::ConstType
861  jointBlock_impl(const Eigen::MatrixBase<D> & Mat) const
862  {
863  return SizeDepType<NV>::block(
864  Mat.derived(), Base::i_v, Base::i_v, m_nvExtended, m_nvExtended);
865  }
866 
867  // Non-const access
868  template<typename D>
869  typename SizeDepType<NV>::template BlockReturn<D>::Type
870  jointBlock_impl(Eigen::MatrixBase<D> & Mat) const
871  {
872  return SizeDepType<NV>::block(
873  Mat.derived(), Base::i_v, Base::i_v, m_nvExtended, m_nvExtended);
874  }
875 
876  void disp(std::ostream & os) const
877  {
878  Base::disp(os);
879  os << " Mimicking joint type: " << m_jmodel_mimicking.shortname() << std::endl;
880  os << " Mimicked joint id: " << m_jmodel_mimicking.id() << std::endl;
881  os << " Mimic scaling: " << m_scaling << std::endl;
882  os << " Mimic offset: " << m_offset << std::endl;
883  }
884 
885  }; // struct JointModelMimicTpl
886 
887 } // namespace pinocchio
888 
889 #include <boost/type_traits.hpp>
890 
891 namespace boost
892 {
893  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
894  struct has_nothrow_constructor<
895  ::pinocchio::JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>
896  : public integral_constant<bool, true>
897  {
898  };
899 
900  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
901  struct has_nothrow_copy<::pinocchio::JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>
902  : public integral_constant<bool, true>
903  {
904  };
905 
906  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
907  struct has_nothrow_constructor<
908  ::pinocchio::JointDataMimicTpl<Scalar, Options, JointCollectionTpl>>
909  : public integral_constant<bool, true>
910  {
911  };
912 
913  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
914  struct has_nothrow_copy<::pinocchio::JointDataMimicTpl<Scalar, Options, JointCollectionTpl>>
915  : public integral_constant<bool, true>
916  {
917  };
918 } // namespace boost
919 
920 #endif // ifndef __pinocchio_multibody_joint_mimic_hpp__
pinocchio::ScaledJointMotionSubspaceTpl::motionAction
MotionAlgebraAction< ScaledJointMotionSubspaceTpl, MotionDerived >::ReturnType motionAction(const MotionDense< MotionDerived > &m) const
Definition: joint-mimic.hpp:207
pinocchio::InertiaTpl
Definition: context/generic.hpp:33
pinocchio::SizeDepType
Definition: matrix-block.hpp:13
pinocchio::JointDataMimicTpl::joint_q_accessor
ConfigVectorTypeConstRef joint_q_accessor() const
Definition: joint-mimic.hpp:495
pinocchio::JointDataMimicTpl::UDinv_accessor
UD_t UDinv_accessor() const
Definition: joint-mimic.hpp:470
pinocchio::JointDataTpl::v
Motion_t v() const
Definition: joint-generic.hpp:134
pinocchio::JointMotionSubspaceBase::nv
int nv() const
Definition: joint-motion-subspace-base.hpp:91
pinocchio::ScaledJointMotionSubspaceTpl::TransposeConst::operator*
ConstraintForceSetOp< ScaledJointMotionSubspaceTpl, Derived >::ReturnType operator*(const Eigen::MatrixBase< Derived > &F) const
[CRBA] MatrixBase operator* (RefConstraint::Transpose S, ForceSet::Block)
Definition: joint-mimic.hpp:181
Eigen
pinocchio::MultiplicationOp
Forward declaration of the multiplication operation return type. Should be overloaded,...
Definition: binary-op.hpp:15
pinocchio::ScaledJointMotionSubspaceTpl::matrix_impl
const DenseBase & matrix_impl() const
Definition: joint-mimic.hpp:193
test-cpp2pybind11.m
m
Definition: test-cpp2pybind11.py:25
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::Motion_t
MotionTpl< Scalar, Options > Motion_t
Definition: joint-mimic.hpp:320
pinocchio::JointModelMimicTpl::Motion
MotionTpl< Scalar, Options > Motion
Definition: joint-mimic.hpp:574
pinocchio::ScaledJointMotionSubspaceTpl::S
DenseBase S
Definition: joint-mimic.hpp:238
pinocchio::JointModelMimicTpl::JointDerived
JointMimicTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-mimic.hpp:563
pinocchio::JointModelTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-generic.hpp:297
pinocchio::JointModelMimicTpl::Inertia
InertiaTpl< Scalar, Options > Inertia
Definition: joint-mimic.hpp:575
pinocchio::JointModelMimicTpl::cast
CastType< NewScalar, JointModelMimicTpl >::type cast() const
Definition: joint-mimic.hpp:743
pinocchio::JointModelMimicTpl::jmodel
JointModel & jmodel()
Definition: joint-mimic.hpp:759
pinocchio::ScaledJointMotionSubspaceTpl::operator=
ScaledJointMotionSubspaceTpl & operator=(const ScaledJointMotionSubspaceTpl &other)
Definition: joint-mimic.hpp:130
pinocchio::JointModelMimicTpl::JointMappedVelocitySelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::Type JointMappedVelocitySelector_impl(Eigen::MatrixBase< D > &a) const
Definition: joint-mimic.hpp:817
PINOCCHIO_DONT_INLINE
#define PINOCCHIO_DONT_INLINE
Function attribute to forbid inlining. This is a compiler hint that can be not respected.
Definition: include/pinocchio/macros.hpp:53
pinocchio::ScaledJointMotionSubspaceTpl
Definition: joint-mimic.hpp:17
pinocchio::JointModelMimicTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-mimic.hpp:687
macros.hpp
PINOCCHIO_THROW
#define PINOCCHIO_THROW(condition, exception_type, message)
Generic macro to throw an exception in Pinocchio if the condition is not met with a given input messa...
Definition: include/pinocchio/macros.hpp:162
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Inertia
InertiaTpl< S1, O1 > Inertia
Definition: joint-mimic.hpp:257
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::JointDataMimicTpl::q_transformed
const ConfigVector_t & q_transformed() const
Definition: joint-mimic.hpp:504
pinocchio::JointDataMimicTpl::disp
void disp(std::ostream &os) const
Definition: joint-mimic.hpp:526
pinocchio::JointModelMimicTpl::jointRows_impl
SizeDepType< NV >::template RowsReturn< D >::ConstType jointRows_impl(const Eigen::MatrixBase< D > &A) const
Definition: joint-mimic.hpp:843
pinocchio::JointModelBase
Definition: joint-model-base.hpp:78
pinocchio::CastType< NewScalar, JointModelMimicTpl< Scalar, Options, JointCollectionTpl > >::type
JointModelMimicTpl< NewScalar, Options, JointCollectionTpl > type
Definition: joint-mimic.hpp:553
pinocchio::JointDataMimicTpl::m_jdata_mimicking
RefJointData m_jdata_mimicking
Definition: joint-mimic.hpp:532
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::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVector_t
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > TangentVector_t
Definition: joint-mimic.hpp:344
pinocchio::Options
Options
Definition: joint-configuration.hpp:1082
pinocchio::SizeDepType::middleCols
static ColsReturn< D >::ConstType middleCols(const Eigen::MatrixBase< D > &mat, typename Eigen::DenseBase< D >::Index start, typename Eigen::DenseBase< D >::Index size=NV)
Definition: matrix-block.hpp:50
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::UDTypeConstRef
UD_t UDTypeConstRef
Definition: joint-mimic.hpp:340
pinocchio::ScaledJointMotionSubspaceTpl::RefJointMotionSubspace
traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::RefJointMotionSubspace RefJointMotionSubspace
Definition: joint-mimic.hpp:102
pinocchio::JointDataMimicTpl::joint_v_transformed
TangentVector_t joint_v_transformed
Transform velocity vector.
Definition: joint-mimic.hpp:541
pinocchio::traits< JointModelMimicTpl< _Scalar, Options, JointCollectionTpl > >::JointDerived
JointMimicTpl< _Scalar, Options, JointCollectionTpl > JointDerived
Definition: joint-mimic.hpp:364
pinocchio::JointModelMimicTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &jdata, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-mimic.hpp:703
pinocchio::nv
int nv(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNvVisitor to get the dimension of the joint tangent space.
pinocchio::JointMotionSubspaceBase
Definition: joint-motion-subspace-base.hpp:59
pinocchio::JointDataTpl::StU
D_t StU() const
Definition: joint-generic.hpp:156
pinocchio::id
JointIndex id(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdVisitor to get the index of the joint in the kinematic chain.
pinocchio::JointDataMimicTpl::RefJointDataVariant
RefJointData::JointDataVariant RefJointDataVariant
Definition: joint-mimic.hpp:379
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::MotionTypeConstRef
Motion_t MotionTypeConstRef
Definition: joint-mimic.hpp:332
pinocchio::SE3Tpl
Definition: context/casadi.hpp:30
pinocchio::JointDataMimicTpl::q_transformed
ConfigVector_t & q_transformed()
Definition: joint-mimic.hpp:500
pinocchio::JointModelMimicTpl::offset
const Scalar & offset() const
Definition: joint-mimic.hpp:773
pinocchio::nq
int nq(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space.
pinocchio::SE3GroupAction::ReturnType
D ReturnType
Definition: spatial/se3.hpp:41
pinocchio::JointDataBase
Definition: joint-data-base.hpp:161
pinocchio::ScaledJointMotionSubspaceTpl::constraint
RefJointMotionSubspace & constraint()
Definition: joint-mimic.hpp:225
pinocchio::JointDataMimicTpl::operator=
JointDataMimicTpl & operator=(const JointDataMimicTpl &other)
Definition: joint-mimic.hpp:406
pinocchio::ScaledJointMotionSubspaceTpl::TransposeConst::TransposeConst
TransposeConst(const ScaledJointMotionSubspaceTpl &ref)
Definition: joint-mimic.hpp:166
pinocchio::ScaledJointMotionSubspaceTpl::TransposeConst
Definition: joint-mimic.hpp:163
pinocchio::JointDataMimicTpl::isEqual
bool isEqual(const JointDataMimicTpl &other) const
Definition: joint-mimic.hpp:418
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::BiasTypeConstRef
Bias_t BiasTypeConstRef
Definition: joint-mimic.hpp:334
pinocchio::ConstraintForceSetOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceSet >::RefReturnType
ConstraintForceSetOp< RefJointMotionSubspace, ForceSet >::ReturnType RefReturnType
Definition: joint-mimic.hpp:82
pinocchio::ConstraintForceOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceDerived >::ReturnType
ScalarMatrixProduct< _Scalar, RefReturnType >::type ReturnType
Definition: joint-mimic.hpp:72
pinocchio::JointModelMimicTpl::setIndexes_impl
void setIndexes_impl(JointIndex id, int, int, int vExtended)
Definition: joint-mimic.hpp:645
pinocchio::MultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::ReturnType
Eigen::Matrix< S2, 6, Eigen::Dynamic, O2, 6, MD2 > ReturnType
Definition: joint-mimic.hpp:248
pinocchio::MotionDense
Definition: context/casadi.hpp:37
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::UDTypeRef
UD_t UDTypeRef
Definition: joint-mimic.hpp:341
pinocchio::JointDataMimicTpl::shortname
std::string shortname() const
Definition: joint-mimic.hpp:430
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::DTypeConstRef
D_t DTypeConstRef
Definition: joint-mimic.hpp:338
pinocchio::JointModelMimicTpl::Base
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointModelBase< JointModelMimicTpl > Base
Definition: joint-mimic.hpp:562
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVector_t
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > ConfigVector_t
Definition: joint-mimic.hpp:343
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::JointDataDerived
JointDataMimicTpl< Scalar, Options, JointCollectionTpl > JointDataDerived
Definition: joint-mimic.hpp:315
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::Scalar
_Scalar Scalar
Definition: joint-mimic.hpp:303
pinocchio::JointModelMimicTpl::m_offset
Scalar m_offset
Definition: joint-mimic.hpp:785
pinocchio::JointDataMimicTpl::RefJointData
JointDataTpl< _Scalar, _Options, JointCollectionTpl > RefJointData
Definition: joint-mimic.hpp:378
boost
pinocchio::JointModelTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-generic.hpp:292
pinocchio::JointDataTpl
Definition: multibody/joint/fwd.hpp:176
pinocchio::ConstraintForceOp::ReturnType
ReturnTypeNotDefined ReturnType
Definition: joint-motion-subspace-base.hpp:48
pinocchio::JointDataMimicTpl::S_accessor
ConstraintTypeConstRef S_accessor() const
Definition: joint-mimic.hpp:436
pinocchio::JointModelMimicTpl::m_nvExtended
int m_nvExtended
Definition: joint-mimic.hpp:786
pinocchio::JointDataMimicTpl::c_accessor
Bias_t c_accessor() const
Definition: joint-mimic.hpp:455
pinocchio::res
ReturnType res
Definition: spatial/classic-acceleration.hpp:57
pinocchio::JointModelMimicTpl::disp
void disp(std::ostream &os) const
Definition: joint-mimic.hpp:876
pinocchio::ScaledJointMotionSubspaceTpl::se3Action
SE3ActionReturnType se3Action(const SE3Tpl< S1, O1 > &m) const
Definition: joint-mimic.hpp:147
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::Transformation_t
SE3Tpl< Scalar, Options > Transformation_t
Definition: joint-mimic.hpp:319
pinocchio::JointDataMimicTpl::joint_v
TangentVector_t joint_v
original velocity vector
Definition: joint-mimic.hpp:539
pinocchio::JointModelMimicTpl::nq_impl
int nq_impl() const
Definition: joint-mimic.hpp:627
pinocchio::MotionAlgebraAction
Return type of the ation of a Motion onto an object of type D.
Definition: spatial/motion.hpp:45
pinocchio::ScaledJointMotionSubspaceTpl::scaling
const Scalar & scaling() const
Definition: joint-mimic.hpp:212
pinocchio::JointModelMimicTpl::jointCols_impl
SizeDepType< NV >::template ColsReturn< D >::Type jointCols_impl(Eigen::MatrixBase< D > &A) const
Definition: joint-mimic.hpp:834
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::DenseBase
traits< RefJointMotionSubspace >::DenseBase DenseBase
Definition: joint-mimic.hpp:40
pinocchio::MotionAlgebraAction< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, MotionDerived >::ReturnType
MotionAlgebraAction< typename traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::RefJointMotionSubspace, MotionDerived >::ReturnType ReturnType
Definition: joint-mimic.hpp:61
pinocchio::impl::LhsMultiplicationOp
Definition: binary-op.hpp:20
autodiff-rnea.f
f
Definition: autodiff-rnea.py:24
pinocchio::JointDataTpl::c
Bias_t c() const
Definition: joint-generic.hpp:138
pinocchio::JointDataTpl::JointDataVariant
JointCollection::JointDataVariant JointDataVariant
Definition: joint-generic.hpp:104
pinocchio::JointModelMimicTpl::JointModel
JointModelTpl< Scalar, Options, JointCollectionTpl > JointModel
Definition: joint-mimic.hpp:571
pinocchio::MultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Constraint
ScaledJointMotionSubspaceTpl< S2, O2, MD2 > Constraint
Definition: joint-mimic.hpp:245
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::UTypeRef
U_t UTypeRef
Definition: joint-mimic.hpp:337
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::UD_t
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > UD_t
Definition: joint-mimic.hpp:326
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVectorTypeRef
TangentVector_t & TangentVectorTypeRef
Definition: joint-mimic.hpp:349
pinocchio::SE3GroupAction
Definition: spatial/se3.hpp:39
pinocchio::JointModelMimicTpl::m_nqExtended
int m_nqExtended
Definition: joint-mimic.hpp:786
pinocchio::JointModelMimicTpl::JointModelMimicTpl
JointModelMimicTpl(const JointModelBase< JointModelMimicking > &jmodel_mimicking, const JointModelBase< JointModelMimicked > &jmodel_mimicked, const Scalar &scaling, const Scalar &offset)
Definition: joint-mimic.hpp:598
pinocchio::JointDataMimicTpl::joint_q_accessor
ConfigVectorTypeRef joint_q_accessor()
Definition: joint-mimic.hpp:491
pinocchio::MotionAlgebraAction::ReturnType
D ReturnType
Definition: spatial/motion.hpp:47
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::JointCollection
JointCollectionTpl< Scalar, Options > JointCollection
Definition: joint-mimic.hpp:314
pinocchio::ScaledJointMotionSubspaceTpl::m_scaling_factor
Scalar m_scaling_factor
Definition: joint-mimic.hpp:237
pinocchio::JointDataMimicTpl::v_transformed
TangentVector_t & v_transformed()
Definition: joint-mimic.hpp:517
pinocchio::SE3GroupAction< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::ReturnType
SE3GroupAction< typename traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::RefJointMotionSubspace >::ReturnType ReturnType
Definition: joint-mimic.hpp:50
pinocchio::JointDataMimicTpl::Base
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointDataBase< JointDataMimicTpl > Base
Definition: joint-mimic.hpp:374
pinocchio::ScaledJointMotionSubspaceTpl::ScaledJointMotionSubspaceTpl
ScaledJointMotionSubspaceTpl(const ScaledJointMotionSubspaceTpl &other)
Definition: joint-mimic.hpp:124
pinocchio::JointModelTpl::setIndexes
void setIndexes(JointIndex id, int nq, int nv)
Definition: joint-generic.hpp:450
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Constraint
ScaledJointMotionSubspaceTpl< S2, O2, MD2 > Constraint
Definition: joint-mimic.hpp:281
pinocchio::MultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Inertia
InertiaTpl< S1, O1 > Inertia
Definition: joint-mimic.hpp:244
pinocchio::JointDataMimicTpl::S
Constraint_t S
Definition: joint-mimic.hpp:543
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::RefJointMotionSubspace
JointMotionSubspaceTpl< Eigen::Dynamic, _Scalar, _Options, _MaxDim > RefJointMotionSubspace
Definition: joint-mimic.hpp:27
pinocchio::JointModelMimicTpl::JointModelMimicTpl
JointModelMimicTpl()
Definition: joint-mimic.hpp:586
codegen-rnea.nq
nq
Definition: codegen-rnea.py:18
pinocchio::JointDataMimicTpl::M_accessor
Transformation_t M_accessor() const
Definition: joint-mimic.hpp:445
joint-collection.hpp
pinocchio::ConstraintForceSetOp::ReturnType
ReturnTypeNotDefined ReturnType
Definition: joint-motion-subspace-base.hpp:55
pinocchio::JointModelMimicTpl::MaxNVMimicked
@ MaxNVMimicked
Definition: joint-mimic.hpp:567
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVectorTypeConstRef
const typedef TangentVector_t TangentVectorTypeConstRef
Definition: joint-mimic.hpp:348
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::MotionTypeRef
Motion_t MotionTypeRef
Definition: joint-mimic.hpp:333
pinocchio::JointModelMimicTpl::base
const Base & base() const
Definition: joint-mimic.hpp:622
pinocchio::JointModelMimicTpl::base
Base & base()
Definition: joint-mimic.hpp:618
pinocchio::JointModelBase::nvExtended
int nvExtended() const
Definition: joint-model-base.hpp:152
pinocchio::JointModelMimicTpl::classname
static std::string classname()
Definition: joint-mimic.hpp:731
pinocchio::ScaledJointMotionSubspaceTpl::m_constraint
RefJointMotionSubspace m_constraint
Definition: joint-mimic.hpp:236
pinocchio::traits< JointModelMimicTpl< _Scalar, Options, JointCollectionTpl > >::Scalar
_Scalar Scalar
Definition: joint-mimic.hpp:365
pinocchio::JointDataMimicTpl::joint_v_accessor
TangentVectorTypeConstRef joint_v_accessor() const
Definition: joint-mimic.hpp:512
pinocchio::JointDataMimicTpl::S_accessor
ConstraintTypeRef S_accessor()
Definition: joint-mimic.hpp:440
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::is_mimicable_t
boost::mpl::false_ is_mimicable_t
Definition: joint-mimic.hpp:351
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::ConstraintTypeRef
Constraint_t & ConstraintTypeRef
Definition: joint-mimic.hpp:329
pinocchio::ScaledJointMotionSubspaceTpl::TransposeConst::operator*
JointForce operator*(const ForceDense< Derived > &f) const
Definition: joint-mimic.hpp:173
pinocchio::JointModelMimicTpl::nvExtended_impl
int nvExtended_impl() const
Definition: joint-mimic.hpp:635
pinocchio::ScaledJointMotionSubspaceTpl::constraint
const RefJointMotionSubspace & constraint() const
Definition: joint-mimic.hpp:221
pinocchio::JointModelTpl::createData
JointDataDerived createData() const
Definition: joint-generic.hpp:320
pinocchio::Dynamic
const int Dynamic
Definition: fwd.hpp:140
pinocchio::configVectorAffineTransform
void configVectorAffineTransform(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, const Eigen::MatrixBase< ConfigVectorIn > &qIn, const Scalar &scaling, const Scalar &offset, const Eigen::MatrixBase< ConfigVectorOut > &qOut)
Apply the correct affine transform, on a joint configuration, depending on the joint type.
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::MotionSubspace
ScaledJointMotionSubspaceTpl< S2, O2, MD2 > MotionSubspace
Definition: joint-mimic.hpp:271
pinocchio::JointModelMimicTpl::m_jmodel_mimicking
JointModel m_jmodel_mimicking
Definition: joint-mimic.hpp:784
pinocchio::JointModelMimicTpl::JointModelMimicTpl
JointModelMimicTpl(const JointModelBase< JointModel > &jmodel, const Scalar &scaling, const Scalar &offset)
Definition: joint-mimic.hpp:591
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::ConstMatrixReturnType
traits< RefJointMotionSubspace >::ConstMatrixReturnType ConstMatrixReturnType
Definition: joint-mimic.hpp:42
pinocchio::JointModelMimicTpl::jmodel
const JointModel & jmodel() const
Definition: joint-mimic.hpp:755
pinocchio::JointModelTpl< Scalar, Options, JointCollectionTpl >
pinocchio::JointMimicTpl
Definition: joint-mimic.hpp:294
pinocchio::JointModelMimicTpl::SE3
SE3Tpl< Scalar, Options > SE3
Definition: joint-mimic.hpp:573
pinocchio::JointDataMimicTpl::PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::JointDataTpl::U
U_t U() const
Definition: joint-generic.hpp:144
pinocchio::JointDataMimicTpl::joint_q
ConfigVector_t joint_q
original configuration vector
Definition: joint-mimic.hpp:535
joint-base.hpp
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::TansformTypeRef
Transformation_t TansformTypeRef
Definition: joint-mimic.hpp:331
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::Bias_t
MotionTpl< Scalar, Options > Bias_t
Definition: joint-mimic.hpp:321
pinocchio::SizeDepType::middleRows
static RowsReturn< D >::ConstType middleRows(const Eigen::MatrixBase< D > &mat, typename Eigen::DenseBase< D >::Index start, typename Eigen::DenseBase< D >::Index size=NV)
Definition: matrix-block.hpp:77
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Constraint
ScaledJointMotionSubspaceTpl< S2, O2, MD2 > Constraint
Definition: joint-mimic.hpp:258
pinocchio::JointModelMimicTpl::JointMappedConfigSelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::Type JointMappedConfigSelector_impl(Eigen::MatrixBase< D > &a) const
Definition: joint-mimic.hpp:801
pinocchio::MultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::ReturnType
Eigen::Matrix< S2, 6, Eigen::Dynamic, O2, 6, MD2 > ReturnType
Definition: joint-mimic.hpp:272
pinocchio::SizeDepType::segment
static SegmentReturn< D >::ConstType segment(const Eigen::MatrixBase< D > &mat, typename Eigen::DenseBase< D >::Index start, typename Eigen::DenseBase< D >::Index size=NV)
Definition: matrix-block.hpp:23
pinocchio::JointModelMimicTpl::jointCols_impl
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols_impl(const Eigen::MatrixBase< D > &A) const
Definition: joint-mimic.hpp:826
pinocchio::JointModelMimicTpl::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::JointModelBase::idx_vExtended
int idx_vExtended() const
Definition: joint-model-base.hpp:179
simulation-contact-dynamics.A
A
Definition: simulation-contact-dynamics.py:110
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::MatrixReturnType
traits< RefJointMotionSubspace >::MatrixReturnType MatrixReturnType
Definition: joint-mimic.hpp:41
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVectorTypeConstRef
const typedef ConfigVector_t & ConfigVectorTypeConstRef
Definition: joint-mimic.hpp:346
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::run
static ReturnType run(const Eigen::MatrixBase< M6Like > &Y, const Constraint &scaled_constraint)
Definition: joint-mimic.hpp:286
pinocchio::JointModelMimicTpl::shortname
std::string shortname() const
Definition: joint-mimic.hpp:736
pinocchio::MultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::Scalar
Constraint::Scalar Scalar
Definition: joint-mimic.hpp:246
pinocchio::JointDataTpl::UDinv
UD_t UDinv() const
Definition: joint-generic.hpp:152
pinocchio::ScaledJointMotionSubspaceTpl::ScaledJointMotionSubspaceTpl
ScaledJointMotionSubspaceTpl(const Scalar &scaling_factor)
Definition: joint-mimic.hpp:111
pinocchio::JointModelBase::nq
int nq() const
Definition: joint-model-base.hpp:148
pinocchio::JointDataMimicTpl::classname
static std::string classname()
Definition: joint-mimic.hpp:425
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::ConstraintTypeConstRef
const typedef Constraint_t & ConstraintTypeConstRef
Definition: joint-mimic.hpp:328
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::JointForce
traits< RefJointMotionSubspace >::JointForce JointForce
Definition: joint-mimic.hpp:39
pinocchio::JointDataMimicTpl::jdata
RefJointData & jdata()
Definition: joint-mimic.hpp:486
pinocchio::nvExtended
int nvExtended(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNvExtendVisitor to get the dimension of the joint extended tangent...
pinocchio::ScaledJointMotionSubspaceTpl::ScaledJointMotionSubspaceTpl
ScaledJointMotionSubspaceTpl()
Definition: joint-mimic.hpp:105
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::JointModelMimicTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &jdata, const typename Eigen::MatrixBase< ConfigVector > &qs) const
Definition: joint-mimic.hpp:694
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 ...
a
Vec3f a
pinocchio::JointModelMimicTpl::JointMappedConfigSelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::ConstType JointMappedConfigSelector_impl(const Eigen::MatrixBase< D > &a) const
Definition: joint-mimic.hpp:793
pinocchio::JointDataMimicTpl::U_accessor
U_t U_accessor() const
Definition: joint-mimic.hpp:460
pinocchio::JointModelMimicTpl::jointRows_impl
SizeDepType< NV >::template RowsReturn< D >::Type jointRows_impl(Eigen::MatrixBase< D > &A) const
Definition: joint-mimic.hpp:851
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::JointDataMimicTpl::JointDataMimicTpl
JointDataMimicTpl()
Definition: joint-mimic.hpp:381
pinocchio::setIndexes
void setIndexes(JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointIndex id, int q, int v, int vExtended)
Visit a JointModelTpl through JointSetIndexesVisitor to set the indexes of the joint in the kinematic...
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::D_t
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > D_t
Definition: joint-mimic.hpp:325
pinocchio::ConstraintForceSetOp
Return type of the Constraint::Transpose * ForceSet operation.
Definition: joint-motion-subspace-base.hpp:53
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::Constraint_t
ScaledJointMotionSubspaceTpl< Scalar, Options, MaxNVMimicked > Constraint_t
Definition: joint-mimic.hpp:318
pinocchio::JointModelMimicTpl::JointMappedVelocitySelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::ConstType JointMappedVelocitySelector_impl(const Eigen::MatrixBase< D > &a) const
Definition: joint-mimic.hpp:809
pinocchio::JointModelMimicTpl::jointBlock_impl
SizeDepType< NV >::template BlockReturn< D >::ConstType jointBlock_impl(const Eigen::MatrixBase< D > &Mat) const
Definition: joint-mimic.hpp:861
pinocchio::ScaledJointMotionSubspaceTpl::Base
JointMotionSubspaceBase< ScaledJointMotionSubspaceTpl > Base
Definition: joint-mimic.hpp:98
pinocchio::ScaledJointMotionSubspaceTpl::matrix_impl
DenseBase & matrix_impl()
Definition: joint-mimic.hpp:199
pinocchio::JointModelMimicTpl::JointCollection
JointCollectionTpl< Scalar, Options > JointCollection
Definition: joint-mimic.hpp:570
pinocchio::JointDataMimicTpl::v_accessor
Motion_t v_accessor() const
Definition: joint-mimic.hpp:450
pinocchio::traits< JointDataMimicTpl< _Scalar, Options, JointCollectionTpl > >::JointDerived
JointMimicTpl< _Scalar, Options, JointCollectionTpl > JointDerived
Definition: joint-mimic.hpp:357
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:171
joint-basic-visitors.hpp
pinocchio::ScaledJointMotionSubspaceTpl::TransposeConst::ref
const ScaledJointMotionSubspaceTpl & ref
Definition: joint-mimic.hpp:165
pinocchio::JointDataTpl::Dinv
D_t Dinv() const
Definition: joint-generic.hpp:148
pinocchio::ConstraintForceSetOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceSet >::ReturnType
ScalarMatrixProduct< _Scalar, RefReturnType >::type ReturnType
Definition: joint-mimic.hpp:83
pinocchio::ScalarMatrixProduct
Definition: math/matrix.hpp:78
pinocchio::JointModelMimicTpl::jointBlock_impl
SizeDepType< NV >::template BlockReturn< D >::Type jointBlock_impl(Eigen::MatrixBase< D > &Mat) const
Definition: joint-mimic.hpp:870
pinocchio::ScaledJointMotionSubspaceTpl::SE3ActionReturnType
SE3GroupAction< RefJointMotionSubspace >::ReturnType SE3ActionReturnType
Definition: joint-mimic.hpp:103
pinocchio::ForceDense
Definition: context/casadi.hpp:35
pinocchio::impl::LhsMultiplicationOp< Eigen::MatrixBase< M6Like >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::ReturnType
MultiplicationOp< Eigen::MatrixBase< M6Like >, Constraint >::ReturnType ReturnType
Definition: joint-mimic.hpp:283
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::DTypeRef
D_t DTypeRef
Definition: joint-mimic.hpp:339
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::Scalar
traits< RefJointMotionSubspace >::Scalar Scalar
Definition: joint-mimic.hpp:28
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::BiasTypeRef
Bias_t BiasTypeRef
Definition: joint-mimic.hpp:335
pinocchio::ScaledJointMotionSubspaceTpl::transpose
TransposeConst transpose() const
Definition: joint-mimic.hpp:188
pinocchio::JointDataMimicTpl::StU_accessor
D_t StU_accessor() const
Definition: joint-mimic.hpp:475
pinocchio::JointModelMimicTpl::scaling
const Scalar & scaling() const
Definition: joint-mimic.hpp:764
pinocchio::ScaledJointMotionSubspaceTpl::se3ActionInverse
SE3ActionReturnType se3ActionInverse(const SE3Tpl< S1, O1 > &m) const
Definition: joint-mimic.hpp:153
pinocchio::JointModelMimicTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-mimic.hpp:682
pinocchio::ScaledJointMotionSubspaceTpl::isEqual
bool isEqual(const ScaledJointMotionSubspaceTpl &other) const
Definition: joint-mimic.hpp:230
PINOCCHIO_CONSTRAINT_TYPEDEF_TPL
#define PINOCCHIO_CONSTRAINT_TYPEDEF_TPL(DERIVED)
Definition: joint-motion-subspace-base.hpp:36
pinocchio::ConstraintForceOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceDerived >::RefJointMotionSubspace
ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >::RefJointMotionSubspace RefJointMotionSubspace
Definition: joint-mimic.hpp:69
fwd.hpp
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVectorTypeRef
ConfigVector_t & ConfigVectorTypeRef
Definition: joint-mimic.hpp:347
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::ReturnType
MultiplicationOp< Inertia, Constraint >::ReturnType ReturnType
Definition: joint-mimic.hpp:259
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:26
pinocchio::JointModelMimicTpl
Definition: multibody/joint/fwd.hpp:155
Y
Y
pinocchio::JointDataMimicTpl::v_transformed
const TangentVector_t & v_transformed() const
Definition: joint-mimic.hpp:521
codegen-rnea.nv
nv
Definition: codegen-rnea.py:19
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::TansformTypeConstRef
Transformation_t TansformTypeConstRef
Definition: joint-mimic.hpp:330
pinocchio::ScaledJointMotionSubspaceTpl::scaling
Scalar & scaling()
Definition: joint-mimic.hpp:216
pinocchio::JointModelMimicTpl::setMimicIndexes
void setMimicIndexes(JointIndex id, int q, int v, int vExtended)
Specific way for mimic joints to set the mimicked q,v indexes. Used for manipulating tree (e....
Definition: joint-mimic.hpp:665
pinocchio::ScaledJointMotionSubspaceTpl::ScaledJointMotionSubspaceTpl
ScaledJointMotionSubspaceTpl(const ConstraintTpl &constraint, const Scalar &scaling_factor)
Definition: joint-mimic.hpp:118
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::JointModelMimicTpl::m_scaling
Scalar m_scaling
Definition: joint-mimic.hpp:785
pinocchio::JointDataMimicTpl::JointDataMimicTpl
JointDataMimicTpl(const RefJointData &jdata, const Scalar &scaling, const int &nq, const int &nv)
Definition: joint-mimic.hpp:390
pinocchio::ScaledJointMotionSubspaceTpl::NV
@ NV
Definition: joint-mimic.hpp:95
pinocchio::JointModelMimicTpl::offset
Scalar & offset()
Definition: joint-mimic.hpp:777
pinocchio::JointDataMimicTpl::joint_q_transformed
ConfigVector_t joint_q_transformed
Transformed configuration vector.
Definition: joint-mimic.hpp:537
pinocchio::JointModelMimicTpl::scaling
Scalar & scaling()
Definition: joint-mimic.hpp:768
pinocchio::JointModelMimicTpl::calc_aba
void calc_aba(JointDataDerived &, const Eigen::MatrixBase< VectorLike > &, const Eigen::MatrixBase< Matrix6Like > &, const bool) const
Definition: joint-mimic.hpp:719
pinocchio::JointDataMimicTpl::Dinv_accessor
D_t Dinv_accessor() const
Definition: joint-mimic.hpp:465
pinocchio::JointModelBase::nv
int nv() const
Definition: joint-model-base.hpp:144
Base
pinocchio::SizeDepType::block
static BlockReturn< D >::ConstType block(const Eigen::MatrixBase< D > &mat, typename Eigen::DenseBase< D >::Index row_id, typename Eigen::DenseBase< D >::Index col_id, typename Eigen::DenseBase< D >::Index row_size_block=NV, typename Eigen::DenseBase< D >::Index col_size_block=NV)
Definition: matrix-block.hpp:104
pinocchio::ConstraintForceOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceDerived >::RefReturnType
ConstraintForceOp< RefJointMotionSubspace, ForceDerived >::ReturnType RefReturnType
Definition: joint-mimic.hpp:71
pinocchio::ScaledJointMotionSubspaceTpl::__mult__
JointMotion __mult__(const Eigen::MatrixBase< VectorLike > &v) const
Definition: joint-mimic.hpp:138
pinocchio::JointDataMimicTpl
Definition: multibody/joint/fwd.hpp:162
pinocchio::MotionTpl< Scalar, Options >
pinocchio::CastType
Type of the cast of a class C templated by Scalar and Options, to a new NewScalar type....
Definition: fwd.hpp:99
pinocchio::JointDataTpl::shortname
std::string shortname() const
Definition: joint-generic.hpp:224
pinocchio::traits< JointDataMimicTpl< _Scalar, Options, JointCollectionTpl > >::Scalar
_Scalar Scalar
Definition: joint-mimic.hpp:358
pinocchio::JointDataMimicTpl::jdata
const RefJointData & jdata() const
Definition: joint-mimic.hpp:482
pinocchio::JointDataMimicTpl::JointDerived
JointMimicTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-mimic.hpp:375
dcrba.NV
NV
Definition: dcrba.py:536
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::U_t
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > U_t
Definition: joint-mimic.hpp:324
Scalar
double Scalar
Definition: timings-cppad-jit.cpp:37
pinocchio::traits< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim > >::JointMotion
traits< RefJointMotionSubspace >::JointMotion JointMotion
Definition: joint-mimic.hpp:38
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::UTypeConstRef
U_t UTypeConstRef
Definition: joint-mimic.hpp:336
pinocchio::traits< JointMimicTpl< _Scalar, _Options, JointCollectionTpl > >::JointModelDerived
JointModelMimicTpl< Scalar, Options, JointCollectionTpl > JointModelDerived
Definition: joint-mimic.hpp:316
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
pinocchio::ScaledJointMotionSubspaceTpl::MaxDim
@ MaxDim
Definition: joint-mimic.hpp:96
pinocchio::ScaledJointMotionSubspaceTpl::nv_impl
int nv_impl() const
Definition: joint-mimic.hpp:158
isEqual
virtual bool isEqual(const CollisionGeometry &other) const=0
pinocchio::JointDataTpl::M
Transformation_t M() const
Definition: joint-generic.hpp:130
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
pinocchio::JointModelMimicTpl::createData
JointDataDerived createData() const
Definition: joint-mimic.hpp:676
pinocchio::JointDataMimicTpl::joint_v_accessor
TangentVectorTypeRef joint_v_accessor()
Definition: joint-mimic.hpp:508
pinocchio::JointDataMimicTpl::JointDataMimicTpl
JointDataMimicTpl(const JointDataMimicTpl &other)
Definition: joint-mimic.hpp:401
pinocchio::impl::LhsMultiplicationOp< InertiaTpl< S1, O1 >, ScaledJointMotionSubspaceTpl< S2, O2, MD2 > >::run
static ReturnType run(const Inertia &Y, const Constraint &scaled_constraint)
Definition: joint-mimic.hpp:261
pinocchio::JointModelMimicTpl::nv_impl
int nv_impl() const
Definition: joint-mimic.hpp:631
pinocchio::ConstraintForceSetOp< ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >, ForceSet >::RefJointMotionSubspace
ScaledJointMotionSubspaceTpl< _Scalar, _Options, _MaxDim >::RefJointMotionSubspace RefJointMotionSubspace
Definition: joint-mimic.hpp:80
pinocchio::JointMotionSubspaceTpl
Definition: joint-motion-subspace-generic.hpp:65
pinocchio::ScalarCast
Cast scalar type from type FROM to type TO.
Definition: fwd.hpp:105
pinocchio::JointModelTpl::shortname
std::string shortname() const
Definition: joint-generic.hpp:410
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33
pinocchio::JointModelTpl::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVector > &q) const
Definition: joint-generic.hpp:353
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:183


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