joint-generic.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2016-2021 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_joint_generic_hpp__
6 #define __pinocchio_multibody_joint_generic_hpp__
7 
10 #include "pinocchio/multibody/joint/joint-basic-visitors.hxx"
12 
13 #include <boost/mpl/contains.hpp>
14 
15 namespace pinocchio
16 {
17 
18  template<
19  typename Scalar,
21  template<typename S, int O> class JointCollectionTpl = JointCollectionDefaultTpl>
22  struct JointTpl;
24 
25  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
26  struct traits<JointTpl<_Scalar, _Options, JointCollectionTpl>>
27  {
28  enum
29  {
30  Options = _Options,
31  NQ = Eigen::Dynamic, // Dynamic because unknown at compile time
33  NVExtended = Eigen::Dynamic
34  };
35 
36  typedef _Scalar Scalar;
37  typedef JointCollectionTpl<Scalar, Options> JointCollection;
40 
45 
46  // [ABA]
47  typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> U_t;
48  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Options> D_t;
49  typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> UD_t;
50 
59  typedef U_t UTypeConstRef;
60  typedef U_t UTypeRef;
61  typedef D_t DTypeConstRef;
62  typedef D_t DTypeRef;
64  typedef UD_t UDTypeRef;
65 
66  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> ConfigVector_t;
67  typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> TangentVector_t;
68 
73 
74  typedef boost::mpl::false_ is_mimicable_t;
75  };
76 
77  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
78  struct traits<JointDataTpl<_Scalar, _Options, JointCollectionTpl>>
79  {
82  };
83 
84  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
85  struct traits<JointModelTpl<_Scalar, _Options, JointCollectionTpl>>
86  {
89  };
90 
91  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
92  struct JointDataTpl
93  : public JointDataBase<JointDataTpl<_Scalar, _Options, JointCollectionTpl>>
94  , JointCollectionTpl<_Scalar, _Options>::JointDataVariant
95  {
96  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
97 
100 
102 
103  typedef JointCollectionTpl<_Scalar, _Options> JointCollection;
105 
106  using Base::operator==;
107  using Base::operator!=;
108 
110  {
111  return *static_cast<JointDataVariant *>(this);
112  }
113  const JointDataVariant & toVariant() const
114  {
115  return *static_cast<const JointDataVariant *>(this);
116  }
117 
118  ConfigVector_t joint_q() const
119  {
120  return pinocchio::joint_q(*this);
121  }
122  TangentVector_t joint_v() const
123  {
124  return pinocchio::joint_v(*this);
125  }
126  Constraint_t S() const
127  {
128  return joint_motin_subspace_xd(*this);
129  }
130  Transformation_t M() const
131  {
132  return joint_transform(*this);
133  }
134  Motion_t v() const
135  {
136  return motion(*this);
137  }
138  Bias_t c() const
139  {
140  return bias(*this);
141  }
142 
143  // [ABA CCRBA]
144  U_t U() const
145  {
146  return u_inertia(*this);
147  }
148  D_t Dinv() const
149  {
150  return dinv_inertia(*this);
151  }
152  UD_t UDinv() const
153  {
154  return udinv_inertia(*this);
155  }
156  D_t StU() const
157  {
158  return stu_inertia(*this);
159  }
160 
162  : JointDataVariant()
163  {
164  }
165 
166  JointDataTpl(const JointDataVariant & jdata_variant)
167  : JointDataVariant(jdata_variant)
168  {
169  }
170 
171  template<typename JointDataDerived>
174  {
175  BOOST_MPL_ASSERT((boost::mpl::contains<typename JointDataVariant::types, JointDataDerived>));
176  }
177 
178  // Define all the standard accessors
179  ConfigVector_t joint_q_accessor() const
180  {
181  return joint_q();
182  }
183  TangentVector_t joint_v_accessor() const
184  {
185  return joint_v();
186  }
187  Constraint_t S_accessor() const
188  {
189  return S();
190  }
191  Transformation_t M_accessor() const
192  {
193  return M();
194  }
195  Motion_t v_accessor() const
196  {
197  return v();
198  }
199  Bias_t c_accessor() const
200  {
201  return c();
202  }
203  U_t U_accessor() const
204  {
205  return U();
206  }
207  D_t Dinv_accessor() const
208  {
209  return Dinv();
210  }
211  UD_t UDinv_accessor() const
212  {
213  return UDinv();
214  }
215  D_t StU_accessor() const
216  {
217  return StU();
218  }
219 
220  static std::string classname()
221  {
222  return "JointData";
223  }
224  std::string shortname() const
225  {
227  }
228 
229  template<typename JointDataDerived>
230  bool isEqual(const JointDataBase<JointDataDerived> & other) const
231  {
232  return ::pinocchio::isEqual(*this, other.derived());
233  }
234 
235  bool isEqual(const JointDataTpl & other) const
236  {
237  return Base::isEqual(other) && toVariant() == other.toVariant();
238  }
239 
240  bool operator==(const JointDataTpl & other) const
241  {
242  return isEqual(other);
243  }
244 
245  bool operator!=(const JointDataTpl & other) const
246  {
247  return !(*this == other);
248  }
249  };
250 
251  template<
252  typename NewScalar,
253  typename Scalar,
254  int Options,
255  template<typename S, int O> class JointCollectionTpl>
256  struct CastType<NewScalar, JointModelTpl<Scalar, Options, JointCollectionTpl>>
257  {
259  };
260 
261  template<typename _Scalar, int _Options, template<typename S, int O> class JointCollectionTpl>
262  struct JointModelTpl
263  : JointModelBase<JointModelTpl<_Scalar, _Options, JointCollectionTpl>>
264  , JointCollectionTpl<_Scalar, _Options>::JointModelVariant
265  {
266  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
267 
269 
272 
273  typedef JointCollectionTpl<Scalar, Options> JointCollection;
276 
277  using Base::id;
278  using Base::setIndexes;
279  using Base::operator==;
280  using Base::operator!=;
281 
284  {
285  }
286 
287  JointModelTpl(const JointModelVariant & jmodel_variant)
288  : JointCollection::JointModelVariant(jmodel_variant)
289  {
290  }
291 
292  const std::vector<bool> hasConfigurationLimit() const
293  {
295  }
296 
297  const std::vector<bool> hasConfigurationLimitInTangent() const
298  {
300  }
301 
302  template<typename JointModelDerived>
304  : JointModelVariant((JointModelVariant)jmodel.derived())
305  {
306  BOOST_MPL_ASSERT(
307  (boost::mpl::contains<typename JointModelVariant::types, JointModelDerived>));
308  }
309 
311  {
312  return *static_cast<JointModelVariant *>(this);
313  }
314 
315  const JointModelVariant & toVariant() const
316  {
317  return *static_cast<const JointModelVariant *>(this);
318  }
319 
320  JointDataDerived createData() const
321  {
322  return ::pinocchio::createData<Scalar, Options, JointCollectionTpl>(*this);
323  }
324 
325  template<typename JointModelDerived>
326  bool isEqual(const JointModelBase<JointModelDerived> & other) const
327  {
328  return ::pinocchio::isEqual(*this, other.derived());
329  }
330 
331  template<typename JointModelDerived>
333  {
335  }
336 
337  bool isEqual(const JointModelTpl & other) const
338  {
339  return Base::isEqual(other) && toVariant() == other.toVariant();
340  }
341 
342  bool operator==(const JointModelTpl & other) const
343  {
344  return isEqual(other);
345  }
346 
347  bool operator!=(const JointModelTpl & other) const
348  {
349  return !(*this == other);
350  }
351 
352  template<typename ConfigVector>
353  void calc(JointDataDerived & data, const Eigen::MatrixBase<ConfigVector> & q) const
354  {
355  calc_zero_order(*this, data, q.derived());
356  }
357 
358  template<typename TangentVector>
359  void calc(
360  JointDataDerived & data, const Blank blank, const Eigen::MatrixBase<TangentVector> & v) const
361  {
362  calc_first_order(*this, data, blank, v.derived());
363  }
364 
365  template<typename ConfigVector, typename TangentVector>
366  void calc(
367  JointDataDerived & data,
368  const Eigen::MatrixBase<ConfigVector> & q,
369  const Eigen::MatrixBase<TangentVector> & v) const
370  {
371  calc_first_order(*this, data, q.derived(), v.derived());
372  }
373 
374  template<typename VectorLike, typename Matrix6Like>
375  void calc_aba(
376  JointDataDerived & data,
377  const Eigen::MatrixBase<VectorLike> & armature,
378  const Eigen::MatrixBase<Matrix6Like> & I,
379  const bool update_I) const
380  {
382  *this, data, armature.derived(), PINOCCHIO_EIGEN_CONST_CAST(Matrix6Like, I), update_I);
383  }
384 
385  /* Acces to dedicated segment in robot config space. */
386  // Const access
387  template<typename D>
388  typename SizeDepType<NV>::template SegmentReturn<D>::ConstType
389  JointMappedConfigSelector_impl(const Eigen::MatrixBase<D> & a) const
390  {
391  typedef const Eigen::MatrixBase<D> & InputType;
392  typedef typename SizeDepType<NV>::template SegmentReturn<D>::ConstType ReturnType;
393  typedef JointMappedConfigSelectorVisitor<InputType, ReturnType> Visitor;
394  typename Visitor::ArgsType arg(a);
395  return Visitor::run(*this, arg);
396  }
397 
398  // Non-const access
399  template<typename D>
400  typename SizeDepType<NV>::template SegmentReturn<D>::Type
401  JointMappedConfigSelector_impl(Eigen::MatrixBase<D> & a) const
402  {
403  typedef Eigen::MatrixBase<D> & InputType;
404  typedef typename SizeDepType<NV>::template SegmentReturn<D>::Type ReturnType;
405  typedef JointMappedConfigSelectorVisitor<InputType, ReturnType> Visitor;
406  typename Visitor::ArgsType arg(a);
407  return Visitor::run(*this, arg);
408  }
409 
410  std::string shortname() const
411  {
413  }
414  static std::string classname()
415  {
416  return "JointModel";
417  }
418 
419  int nq_impl() const
420  {
421  return ::pinocchio::nq(*this);
422  }
423  int nv_impl() const
424  {
425  return ::pinocchio::nv(*this);
426  }
427  int nvExtended_impl() const
428  {
430  }
431 
432  int idx_q_impl() const
433  {
435  }
436  int idx_v_impl() const
437  {
439  }
440  int idx_vExtended_impl() const
441  {
443  }
444 
446  {
447  return ::pinocchio::id(*this);
448  }
449 
450  void setIndexes(JointIndex id, int nq, int nv)
451  {
452  ::pinocchio::setIndexes(*this, id, nq, nv, nv);
453  }
454 
455  void setIndexes(JointIndex id, int nq, int nv, int nvExtended)
456  {
457  ::pinocchio::setIndexes(*this, id, nq, nv, nvExtended);
458  }
459 
461  template<typename NewScalar>
463  {
464  return cast_joint<NewScalar, Scalar, Options, JointCollectionTpl>(*this);
465  }
466  };
467 
468  typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointData) JointDataVector;
469  typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointModel) JointModelVector;
470 
471  template<
472  typename Scalar,
473  int Options,
474  template<typename S, int O> class JointCollectionTpl,
475  typename JointDataDerived>
477  const JointDataBase<JointDataDerived> & joint_data,
478  const JointDataTpl<Scalar, Options, JointCollectionTpl> & joint_data_generic)
479  {
480  return joint_data_generic == joint_data.derived();
481  }
482 
483  template<
484  typename Scalar,
485  int Options,
486  template<typename S, int O> class JointCollectionTpl,
487  typename JointDataDerived>
489  const JointDataBase<JointDataDerived> & joint_data,
490  const JointDataTpl<Scalar, Options, JointCollectionTpl> & joint_data_generic)
491  {
492  return joint_data_generic != joint_data.derived();
493  }
494 
495  template<
496  typename Scalar,
497  int Options,
498  template<typename S, int O> class JointCollectionTpl,
499  typename JointModelDerived>
501  const JointModelBase<JointModelDerived> & joint_model,
502  const JointModelTpl<Scalar, Options, JointCollectionTpl> & joint_model_generic)
503  {
504  return joint_model_generic == joint_model.derived();
505  }
506 
507  template<
508  typename Scalar,
509  int Options,
510  template<typename S, int O> class JointCollectionTpl,
511  typename JointModelDerived>
513  const JointModelBase<JointModelDerived> & joint_model,
514  const JointModelTpl<Scalar, Options, JointCollectionTpl> & joint_model_generic)
515  {
516  return joint_model_generic != joint_model.derived();
517  }
518 
519 } // namespace pinocchio
520 
521 #endif // ifndef __pinocchio_multibody_joint_generic_hpp__
pinocchio::JointModelTpl::operator!=
bool operator!=(const JointModelTpl &other) const
Definition: joint-generic.hpp:347
pinocchio::SizeDepType
Definition: matrix-block.hpp:13
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::BiasTypeConstRef
Bias_t BiasTypeConstRef
Definition: joint-generic.hpp:57
pinocchio::traits< JointDataTpl< _Scalar, _Options, JointCollectionTpl > >::JointDerived
JointTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-generic.hpp:80
pinocchio::joint_q
JointDataTpl< Scalar, Options, JointCollectionTpl >::ConfigVector_t joint_q(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataVariant through JointConfigVisitor to get the joint configuration vector.
pinocchio::JointDataTpl::v
Motion_t v() const
Definition: joint-generic.hpp:134
pinocchio::JointDataTpl::Base
JointDataBase< JointDataTpl > Base
Definition: joint-generic.hpp:99
pinocchio::JointModelTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-generic.hpp:297
pinocchio::JointModelTpl::idx_v_impl
int idx_v_impl() const
Definition: joint-generic.hpp:436
pinocchio::JointModelTpl::nv_impl
int nv_impl() const
Definition: joint-generic.hpp:423
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVectorTypeRef
TangentVector_t TangentVectorTypeRef
Definition: joint-generic.hpp:72
pinocchio::JointDataTpl::JointDataTpl
JointDataTpl()
Definition: joint-generic.hpp:161
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::D_t
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > D_t
Definition: joint-generic.hpp:48
pinocchio::JointDataBase::isEqual
bool isEqual(const JointDataBase< Derived > &other) const
&#160;
Definition: joint-data-base.hpp:289
omniidl_be_python_with_docstring.run
def run(tree, args)
Definition: cmake/hpp/idl/omniidl_be_python_with_docstring.py:140
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::JointModelTpl::nq_impl
int nq_impl() const
Definition: joint-generic.hpp:419
pinocchio::JointModelBase
Definition: joint-model-base.hpp:78
pinocchio::JointDataTpl::joint_q_accessor
ConfigVector_t joint_q_accessor() const
Definition: joint-generic.hpp:179
pinocchio::JointModelTpl::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVector > &q, const Eigen::MatrixBase< TangentVector > &v) const
Definition: joint-generic.hpp:366
aligned-vector.hpp
pinocchio::idx_v
int idx_v(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxVVisitor to get the index in the model tangent space correspond...
pinocchio::Options
Options
Definition: joint-configuration.hpp:1082
pinocchio::JointTpl
Definition: joint-generic.hpp:22
pinocchio::JointDataTpl::joint_v_accessor
TangentVector_t joint_v_accessor() const
Definition: joint-generic.hpp:183
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::JointDataTpl::StU
D_t StU() const
Definition: joint-generic.hpp:156
pinocchio::JointDataTpl::operator!=
bool operator!=(const JointDataTpl &other) const
Definition: joint-generic.hpp:245
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::JointModelTpl::id_impl
JointIndex id_impl() const
Definition: joint-generic.hpp:445
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::SE3Tpl< Scalar, Options >
pinocchio::JointModelTpl::classname
static std::string classname()
Definition: joint-generic.hpp:414
pinocchio::JointDataTpl::v_accessor
Motion_t v_accessor() const
Definition: joint-generic.hpp:195
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::JointDataBase
Definition: joint-data-base.hpp:161
pinocchio::operator==
bool operator==(const ConstraintDataBase< ConstraintDataDerived > &data1, const ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &data2)
Definition: constraint-data-generic.hpp:104
pinocchio::JointDataTpl::U_accessor
U_t U_accessor() const
Definition: joint-generic.hpp:203
pinocchio::JointDataTpl::JointCollection
JointCollectionTpl< _Scalar, _Options > JointCollection
Definition: joint-generic.hpp:103
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::u_inertia
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > u_inertia(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointUInertiaVisitor to get the U matrix of the inertia matrix decomposi...
pinocchio::JointDataTpl::toVariant
JointDataVariant & toVariant()
Definition: joint-generic.hpp:109
pinocchio::JointModelTpl::JointModelTpl
JointModelTpl(const JointModelBase< JointModelDerived > &jmodel)
Definition: joint-generic.hpp:303
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::UTypeRef
U_t UTypeRef
Definition: joint-generic.hpp:60
pinocchio::JointModelTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-generic.hpp:292
pinocchio::JointDataTpl
Definition: multibody/joint/fwd.hpp:176
pinocchio::JointModelTpl::idx_q_impl
int idx_q_impl() const
Definition: joint-generic.hpp:432
pinocchio::JointModelTpl::JointModelTpl
JointModelTpl(const JointModelVariant &jmodel_variant)
Definition: joint-generic.hpp:287
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::MotionTypeRef
Motion_t MotionTypeRef
Definition: joint-generic.hpp:56
pinocchio::JointModelTpl::toVariant
JointModelVariant & toVariant()
Definition: joint-generic.hpp:310
pinocchio::JointModelTpl::setIndexes
void setIndexes(JointIndex id, int nq, int nv, int nvExtended)
Definition: joint-generic.hpp:455
pinocchio::JointModelTpl::isEqual
bool isEqual(const JointModelBase< JointModelDerived > &other) const
Definition: joint-generic.hpp:326
pinocchio::JointDataTpl::isEqual
bool isEqual(const JointDataBase< JointDataDerived > &other) const
Definition: joint-generic.hpp:230
pinocchio::JointModelTpl::calc
void calc(JointDataDerived &data, const Blank blank, const Eigen::MatrixBase< TangentVector > &v) const
Definition: joint-generic.hpp:359
pinocchio::Joint
JointTpl< context::Scalar > Joint
Definition: joint-generic.hpp:22
pinocchio::JointDataBase::derived
Derived & derived()
Definition: joint-data-base.hpp:168
pinocchio::JointDataTpl::c
Bias_t c() const
Definition: joint-generic.hpp:138
pinocchio::Blank
Blank type.
Definition: fwd.hpp:76
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::DTypeConstRef
D_t DTypeConstRef
Definition: joint-generic.hpp:61
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::DTypeRef
D_t DTypeRef
Definition: joint-generic.hpp:62
pinocchio::JointDataTpl::JointDataVariant
JointCollection::JointDataVariant JointDataVariant
Definition: joint-generic.hpp:104
pinocchio::traits< JointDataTpl< _Scalar, _Options, JointCollectionTpl > >::Scalar
traits< JointDerived >::Scalar Scalar
Definition: joint-generic.hpp:81
pinocchio::JointDataTpl::isEqual
bool isEqual(const JointDataTpl &other) const
Definition: joint-generic.hpp:235
pinocchio::JointModelTpl::JointModelTpl
JointModelTpl()
Definition: joint-generic.hpp:282
pinocchio::hasSameIndexes
bool hasSameIndexes(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel_generic, const JointModelBase< JointModelDerived > &jmodel)
Check whether JointModelTpl<Scalar,...> has the indexes than another JointModelDerived.
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::Bias_t
MotionTpl< Scalar, Options > Bias_t
Definition: joint-generic.hpp:44
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::UTypeConstRef
U_t UTypeConstRef
Definition: joint-generic.hpp:59
pinocchio::motion
MotionTpl< Scalar, Options > motion(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointMotionVisitor to get the joint internal motion as a dense motion.
pinocchio::JointModelTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-generic.hpp:268
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::TansformTypeConstRef
Transformation_t TansformTypeConstRef
Definition: joint-generic.hpp:53
pinocchio::CastType< NewScalar, JointModelTpl< Scalar, Options, JointCollectionTpl > >::type
JointModelTpl< NewScalar, Options, JointCollectionTpl > type
Definition: joint-generic.hpp:258
pinocchio::JointModelTpl::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
Definition: joint-generic.hpp:375
joint-composite.hpp
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVectorTypeConstRef
ConfigVector_t ConfigVectorTypeConstRef
Definition: joint-generic.hpp:69
pinocchio::JointModelTpl::setIndexes
void setIndexes(JointIndex id, int nq, int nv)
Definition: joint-generic.hpp:450
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::UD_t
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > UD_t
Definition: joint-generic.hpp:49
pinocchio::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointConfigurationLimitInTangentVisitor to get the configurations limit...
codegen-rnea.nq
nq
Definition: codegen-rnea.py:18
pinocchio::JointModelTpl::toVariant
const JointModelVariant & toVariant() const
Definition: joint-generic.hpp:315
joint-collection.hpp
pinocchio::JointDataTpl::joint_q
ConfigVector_t joint_q() const
Definition: joint-generic.hpp:118
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::U_t
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > U_t
Definition: joint-generic.hpp:47
pinocchio::JointDataTpl::operator==
bool operator==(const JointDataTpl &other) const
Definition: joint-generic.hpp:240
pinocchio::JointModelTpl::cast
JointModelTpl< NewScalar, Options, JointCollectionTpl > cast() const
Definition: joint-generic.hpp:462
pinocchio::JointData
JointDataTpl< context::Scalar > JointData
Definition: multibody/joint/fwd.hpp:176
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVector_t
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > TangentVector_t
Definition: joint-generic.hpp:67
pinocchio::joint_v
JointDataTpl< Scalar, Options, JointCollectionTpl >::TangentVector_t joint_v(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataVariant through JointConfigVisitor to get the joint velocity vector.
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVectorTypeRef
ConfigVector_t ConfigVectorTypeRef
Definition: joint-generic.hpp:70
pinocchio::JointModelTpl::createData
JointDataDerived createData() const
Definition: joint-generic.hpp:320
pinocchio::shortname
std::string shortname(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointShortnameVisitor to get the shortname of the derived joint model.
pinocchio::Dynamic
const int Dynamic
Definition: fwd.hpp:140
pinocchio::JointDataTpl::classname
static std::string classname()
Definition: joint-generic.hpp:220
pinocchio::JointDataTpl::StU_accessor
D_t StU_accessor() const
Definition: joint-generic.hpp:215
pinocchio::JointModelVariant
JointCollectionDefault::JointModelVariant JointModelVariant
Definition: joint-collection.hpp:201
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::MotionTypeConstRef
Motion_t MotionTypeConstRef
Definition: joint-generic.hpp:55
pinocchio::JointModelTpl< Scalar, Options, JointCollectionTpl >
pinocchio::calc_first_order
void calc_first_order(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcFirstOrderVisitor to comput...
pinocchio::joint_transform
SE3Tpl< Scalar, Options > joint_transform(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointTransformVisitor to get the joint internal transform (transform bet...
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::Scalar
_Scalar Scalar
Definition: joint-generic.hpp:36
pinocchio::JointDataTpl::U
U_t U() const
Definition: joint-generic.hpp:144
pinocchio::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointConfigurationLimitVisitor to get the configurations limits.
pinocchio::JointDataTpl::S_accessor
Constraint_t S_accessor() const
Definition: joint-generic.hpp:187
pinocchio::JointDataTpl::joint_v
TangentVector_t joint_v() const
Definition: joint-generic.hpp:122
pinocchio::JointDataTpl::UDinv_accessor
UD_t UDinv_accessor() const
Definition: joint-generic.hpp:211
pinocchio::JointDataTpl::Dinv_accessor
D_t Dinv_accessor() const
Definition: joint-generic.hpp:207
pinocchio::JointModelTpl::isEqual
bool isEqual(const JointModelTpl &other) const
Definition: joint-generic.hpp:337
pinocchio::traits< JointModelTpl< _Scalar, _Options, JointCollectionTpl > >::Scalar
traits< JointDerived >::Scalar Scalar
Definition: joint-generic.hpp:88
pinocchio::JointDataTpl::c_accessor
Bias_t c_accessor() const
Definition: joint-generic.hpp:199
pinocchio::calc_aba
void calc_aba(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Type > &I, const bool update_I)
Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcAbaVisitor to.
pinocchio::JointModelTpl::JointMappedConfigSelector_impl
SizeDepType< NV >::template SegmentReturn< D >::Type JointMappedConfigSelector_impl(Eigen::MatrixBase< D > &a) const
Definition: joint-generic.hpp:401
pinocchio::JointModel
JointModelTpl< context::Scalar > JointModel
Definition: multibody/joint/fwd.hpp:169
pinocchio::JointDataTpl::UDinv
UD_t UDinv() const
Definition: joint-generic.hpp:152
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::UDTypeRef
UD_t UDTypeRef
Definition: joint-generic.hpp:64
pinocchio::traits< JointModelTpl< _Scalar, _Options, JointCollectionTpl > >::JointDerived
JointTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-generic.hpp:87
pinocchio::JointDataTpl::S
Constraint_t S() const
Definition: joint-generic.hpp:126
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::ConfigVector_t
Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > ConfigVector_t
Definition: joint-generic.hpp:66
pinocchio::JointModelTpl::operator==
bool operator==(const JointModelTpl &other) const
Definition: joint-generic.hpp:342
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::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::ConstraintTypeRef
Constraint_t ConstraintTypeRef
Definition: joint-generic.hpp:52
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::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::bias
MotionTpl< Scalar, Options > bias(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointBiasVisitor to get the joint bias as a dense motion.
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::JointModelTpl::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::operator!=
bool operator!=(const JointDataBase< JointDataDerived > &joint_data, const JointDataTpl< Scalar, Options, JointCollectionTpl > &joint_data_generic)
Definition: joint-generic.hpp:488
pinocchio::context::Options
@ Options
Definition: context/generic.hpp:82
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::ConstraintTypeConstRef
Constraint_t ConstraintTypeConstRef
Definition: joint-generic.hpp:51
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::JointDataDerived
JointDataTpl< Scalar, Options, JointCollectionTpl > JointDataDerived
Definition: joint-generic.hpp:38
pinocchio::JointModelTpl::hasSameIndexes
bool hasSameIndexes(const JointModelBase< JointModelDerived > &other) const
Definition: joint-generic.hpp:332
pinocchio::dinv_inertia
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > dinv_inertia(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointDInvInertiaVisitor to get the D^{-1} matrix of the inertia matrix d...
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::UDTypeConstRef
UD_t UDTypeConstRef
Definition: joint-generic.hpp:63
pinocchio::JointDataTpl::Dinv
D_t Dinv() const
Definition: joint-generic.hpp:148
pinocchio::JointDataTpl::toVariant
const JointDataVariant & toVariant() const
Definition: joint-generic.hpp:113
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::Constraint_t
JointMotionSubspaceTpl< Eigen::Dynamic, Scalar, Options > Constraint_t
Definition: joint-generic.hpp:41
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::BiasTypeRef
Bias_t BiasTypeRef
Definition: joint-generic.hpp:58
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::JointModelDerived
JointModelTpl< Scalar, Options, JointCollectionTpl > JointModelDerived
Definition: joint-generic.hpp:39
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::JointCollection
JointCollectionTpl< Scalar, Options > JointCollection
Definition: joint-generic.hpp:37
pinocchio::JointModelTpl::JointModelVariant
JointCollection::JointModelVariant JointModelVariant
Definition: joint-generic.hpp:275
pinocchio::JointModelTpl::idx_vExtended_impl
int idx_vExtended_impl() const
Definition: joint-generic.hpp:440
pinocchio::JointDataTpl::JointDataTpl
JointDataTpl(const JointDataBase< JointDataDerived > &jdata)
Definition: joint-generic.hpp:172
pinocchio::udinv_inertia
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > udinv_inertia(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointUDInvInertiaVisitor to get U*D^{-1} matrix of the inertia matrix de...
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:26
pinocchio::JointDataTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointTpl< _Scalar, _Options, JointCollectionTpl > JointDerived
Definition: joint-generic.hpp:98
codegen-rnea.nv
nv
Definition: codegen-rnea.py:19
pinocchio::stu_inertia
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > stu_inertia(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataTpl through JointStUInertiaVisitor to get St*I*S matrix of the inertia matrix decomp...
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::JointDataVariant
JointCollectionDefault::JointDataVariant JointDataVariant
Definition: joint-collection.hpp:202
pinocchio::calc_zero_order
void calc_zero_order(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata, const Eigen::MatrixBase< ConfigVectorType > &q)
Visit a JointModelTpl and the corresponding JointDataTpl through JointCalcZeroOrderVisitor to compute...
pinocchio::JointModelTpl::JointDataVariant
JointCollection::JointDataVariant JointDataVariant
Definition: joint-generic.hpp:274
pinocchio::JointModelTpl::PINOCCHIO_JOINT_USE_INDEXES
PINOCCHIO_JOINT_USE_INDEXES(JointModelTpl)
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
dcrba.NV
NV
Definition: dcrba.py:536
Scalar
double Scalar
Definition: timings-cppad-jit.cpp:37
pinocchio::JointModelTpl::JointCollection
JointCollectionTpl< Scalar, Options > JointCollection
Definition: joint-generic.hpp:273
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
pinocchio::JointDataTpl::PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
isEqual
virtual bool isEqual(const CollisionGeometry &other) const=0
pinocchio::JointDataTpl::M
Transformation_t M() const
Definition: joint-generic.hpp:130
pinocchio::joint_motin_subspace_xd
JointMotionSubspaceTpl< Eigen::Dynamic, Scalar, Options > joint_motin_subspace_xd(const JointDataTpl< Scalar, Options, JointCollectionTpl > &jdata)
Visit a JointDataVariant through JointConstraintVisitor to get the joint constraint as a dense constr...
pinocchio::PINOCCHIO_ALIGNED_STD_VECTOR
typedef PINOCCHIO_ALIGNED_STD_VECTOR(JointData) JointDataVector
pinocchio::JointDataTpl::JointDataTpl
JointDataTpl(const JointDataVariant &jdata_variant)
Definition: joint-generic.hpp:166
pinocchio::JointMotionSubspaceTpl
Definition: joint-motion-subspace-generic.hpp:65
pinocchio::JointModelBase::derived
JointModelDerived & derived()
Definition: joint-model-base.hpp:85
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::Motion_t
MotionTpl< Scalar, Options > Motion_t
Definition: joint-generic.hpp:43
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::Transformation_t
SE3Tpl< Scalar, Options > Transformation_t
Definition: joint-generic.hpp:42
pinocchio::JointDataTpl::M_accessor
Transformation_t M_accessor() const
Definition: joint-generic.hpp:191
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::is_mimicable_t
boost::mpl::false_ is_mimicable_t
Definition: joint-generic.hpp:74
pinocchio::JointModelTpl::shortname
std::string shortname() const
Definition: joint-generic.hpp:410
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::TangentVectorTypeConstRef
TangentVector_t TangentVectorTypeConstRef
Definition: joint-generic.hpp:71
pinocchio::JointModelTpl::nvExtended_impl
int nvExtended_impl() const
Definition: joint-generic.hpp:427
pinocchio::traits< JointTpl< _Scalar, _Options, JointCollectionTpl > >::TansformTypeRef
Transformation_t TansformTypeRef
Definition: joint-generic.hpp:54
pinocchio::JointModelTpl::JointMappedConfigSelector_impl
SizeDepType< NV >::template SegmentReturn< D >::ConstType JointMappedConfigSelector_impl(const Eigen::MatrixBase< D > &a) const
Definition: joint-generic.hpp:389
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
Author(s):
autogenerated on Sat Apr 19 2025 02:41:34