joint-model-base.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2019 CNRS INRIA
3 // Copyright (c) 2015 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_multibody_joint_model_base_hpp__
7 #define __pinocchio_multibody_joint_model_base_hpp__
8 
11 
13 
14 #include <limits>
15 
16 #define PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, TYPENAME) \
17  typedef Eigen::DenseIndex Index; \
18  typedef TYPENAME traits<Joint>::Scalar Scalar; \
19  typedef TYPENAME traits<Joint>::JointDataDerived JointDataDerived; \
20  typedef TYPENAME traits<Joint>::JointModelDerived JointModelDerived; \
21  typedef TYPENAME traits<Joint>::Constraint_t Constraint_t; \
22  typedef TYPENAME traits<Joint>::Transformation_t Transformation_t; \
23  typedef TYPENAME traits<Joint>::Motion_t Motion_t; \
24  typedef TYPENAME traits<Joint>::Bias_t Bias_t; \
25  typedef TYPENAME traits<Joint>::U_t U_t; \
26  typedef TYPENAME traits<Joint>::D_t D_t; \
27  typedef TYPENAME traits<Joint>::UD_t UD_t; \
28  enum \
29  { \
30  Options = traits<Joint>::Options, \
31  NQ = traits<Joint>::NQ, \
32  NV = traits<Joint>::NV \
33  }; \
34  typedef TYPENAME traits<Joint>::ConfigVector_t ConfigVector_t; \
35  typedef TYPENAME traits<Joint>::TangentVector_t TangentVector_t
36 
37 #ifdef __clang__
38 
39  #define PINOCCHIO_JOINT_TYPEDEF(Joint) \
40  PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, PINOCCHIO_EMPTY_ARG)
41  #define PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(Joint) \
42  PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, typename)
43 
44 #elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4) && (__GNUC_PATCHLEVEL__ == 2)
45 
46  #define PINOCCHIO_JOINT_TYPEDEF(Joint) \
47  PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, PINOCCHIO_EMPTY_ARG)
48  #define PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(Joint) \
49  PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, typename)
50 
51 #else
52 
53  #define PINOCCHIO_JOINT_TYPEDEF(Joint) PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, typename)
54  #define PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(Joint) \
55  PINOCCHIO_JOINT_MODEL_TYPEDEF_GENERIC(Joint, typename)
56 
57 #endif
58 
59 #define PINOCCHIO_JOINT_USE_INDEXES(Joint) \
60  typedef JointModelBase<Joint> Base; \
61  using Base::idx_q; \
62  using Base::idx_v
63 
64 #define PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelTpl) \
65  template<typename Scalar, int Options, typename NewScalar> \
66  struct CastType<NewScalar, JointModelTpl<Scalar, Options>> \
67  { \
68  typedef JointModelTpl<NewScalar, Options> type; \
69  }
70 
71 namespace pinocchio
72 {
73 
74  template<typename Derived>
75  struct JointModelBase : NumericalBase<Derived>
76  {
77  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
78 
81 
82  JointModelDerived & derived()
83  {
84  return *static_cast<Derived *>(this);
85  }
86  const JointModelDerived & derived() const
87  {
88  return *static_cast<const Derived *>(this);
89  }
90 
91  JointDataDerived createData() const
92  {
93  return derived().createData();
94  }
95 
96  const std::vector<bool> hasConfigurationLimit() const
97  {
98  return derived().hasConfigurationLimit();
99  }
100 
101  const std::vector<bool> hasConfigurationLimitInTangent() const
102  {
103  return derived().hasConfigurationLimitInTangent();
104  }
105 
106  template<typename ConfigVectorType>
107  void calc(JointDataDerived & data, const Eigen::MatrixBase<ConfigVectorType> & qs) const
108  {
109  derived().calc(data, qs.derived());
110  }
111 
112  template<typename TangentVectorType>
113  void calc(
114  JointDataDerived & data,
115  const Blank not_used,
116  const Eigen::MatrixBase<TangentVectorType> & vs) const
117  {
118  derived().calc(data, not_used, vs.derived());
119  }
120 
121  template<typename ConfigVectorType, typename TangentVectorType>
122  void calc(
123  JointDataDerived & data,
124  const Eigen::MatrixBase<ConfigVectorType> & qs,
125  const Eigen::MatrixBase<TangentVectorType> & vs) const
126  {
127  derived().calc(data, qs.derived(), vs.derived());
128  }
129 
130  template<typename VectorLike, typename Matrix6Like>
131  void calc_aba(
132  JointDataDerived & data,
133  const Eigen::MatrixBase<VectorLike> & armature,
134  const Eigen::MatrixBase<Matrix6Like> & I,
135  const bool update_I = false) const
136  {
137  derived().calc_aba(
138  data, armature.derived(), PINOCCHIO_EIGEN_CONST_CAST(Matrix6Like, I), update_I);
139  }
140 
141  int nv() const
142  {
143  return derived().nv_impl();
144  }
145  int nq() const
146  {
147  return derived().nq_impl();
148  }
149 
150  // Default _impl methods are reimplemented by dynamic-size joints.
151  int nv_impl() const
152  {
153  return NV;
154  }
155  int nq_impl() const
156  {
157  return NQ;
158  }
159 
160  int idx_q() const
161  {
162  return derived().idx_q_impl();
163  }
164  int idx_v() const
165  {
166  return derived().idx_v_impl();
167  }
168  JointIndex id() const
169  {
170  return derived().id_impl();
171  }
172 
173  int idx_q_impl() const
174  {
175  return i_q;
176  }
177  int idx_v_impl() const
178  {
179  return i_v;
180  }
182  {
183  return i_id;
184  }
185 
186  void setIndexes(JointIndex id, int q, int v)
187  {
188  derived().setIndexes_impl(id, q, v);
189  }
190 
191  void setIndexes_impl(JointIndex id, int q, int v)
192  {
193  i_id = id, i_q = q;
194  i_v = v;
195  }
196 
197  void disp(std::ostream & os) const
198  {
199  using namespace std;
200  os << shortname() << endl
201  << " index: " << id() << endl
202  << " index q: " << idx_q() << endl
203  << " index v: " << idx_v() << endl
204  << " nq: " << nq() << endl
205  << " nv: " << nv() << endl;
206  }
207 
208  friend std::ostream & operator<<(std::ostream & os, const JointModelBase<Derived> & joint)
209  {
210  joint.disp(os);
211  return os;
212  }
213 
214  std::string shortname() const
215  {
216  return derived().shortname();
217  }
218  static std::string classname()
219  {
220  return Derived::classname();
221  }
222 
223  template<typename NewScalar>
225  {
226  return derived().template cast<NewScalar>();
227  }
228 
229  template<class OtherDerived>
230  bool operator==(const JointModelBase<OtherDerived> & other) const
231  {
232  return derived().isEqual(other.derived());
233  }
234 
235  template<class OtherDerived>
236  bool operator!=(const JointModelBase<OtherDerived> & other) const
237  {
238  return !(internal::comparison_eq(derived(), other.derived()));
239  }
240 
241  template<class OtherDerived>
243  {
244  return false;
245  }
246 
247  bool isEqual(const JointModelBase<Derived> & other) const
248  {
249  return derived().hasSameIndexes(other.derived());
250  }
251 
252  template<class OtherDerived>
254  {
255  return internal::comparison_eq(other.id(), id())
256  && internal::comparison_eq(other.idx_q(), idx_q())
257  && internal::comparison_eq(other.idx_v(), idx_v());
258  }
259 
260  /* Acces to dedicated segment in robot config space. */
261  // Const access
262  template<typename D>
263  typename SizeDepType<NQ>::template SegmentReturn<D>::ConstType
264  jointConfigSelector(const Eigen::MatrixBase<D> & a) const
265  {
266  return derived().jointConfigSelector_impl(a);
267  }
268 
269  template<typename D>
270  typename SizeDepType<NQ>::template SegmentReturn<D>::ConstType
271  jointConfigSelector_impl(const Eigen::MatrixBase<D> & a) const
272  {
273  return SizeDepType<NQ>::segment(a.derived(), idx_q(), nq());
274  }
275 
276  // Non-const access
277  template<typename D>
278  typename SizeDepType<NQ>::template SegmentReturn<D>::Type
279  jointConfigSelector(Eigen::MatrixBase<D> & a) const
280  {
281  return derived().jointConfigSelector_impl(a);
282  }
283 
284  template<typename D>
285  typename SizeDepType<NQ>::template SegmentReturn<D>::Type
286  jointConfigSelector_impl(Eigen::MatrixBase<D> & a) const
287  {
288  return SizeDepType<NQ>::segment(a, idx_q(), nq());
289  }
290 
291  /* Acces to dedicated segment in robot config velocity space. */
292  // Const access
293  template<typename D>
294  typename SizeDepType<NV>::template SegmentReturn<D>::ConstType
295  jointVelocitySelector(const Eigen::MatrixBase<D> & a) const
296  {
297  return derived().jointVelocitySelector_impl(a.derived());
298  }
299 
300  template<typename D>
301  typename SizeDepType<NV>::template SegmentReturn<D>::ConstType
302  jointVelocitySelector_impl(const Eigen::MatrixBase<D> & a) const
303  {
304  return SizeDepType<NV>::segment(a.derived(), idx_v(), nv());
305  }
306 
307  // Non-const access
308  template<typename D>
309  typename SizeDepType<NV>::template SegmentReturn<D>::Type
310  jointVelocitySelector(Eigen::MatrixBase<D> & a) const
311  {
312  return derived().jointVelocitySelector_impl(a.derived());
313  }
314 
315  template<typename D>
316  typename SizeDepType<NV>::template SegmentReturn<D>::Type
317  jointVelocitySelector_impl(Eigen::MatrixBase<D> & a) const
318  {
319  return SizeDepType<NV>::segment(a.derived(), idx_v(), nv());
320  }
321 
322  /* Acces to dedicated columns in a ForceSet or MotionSet matrix.*/
323  // Const access
324  template<typename D>
325  typename SizeDepType<NV>::template ColsReturn<D>::ConstType
326  jointCols(const Eigen::MatrixBase<D> & A) const
327  {
328  return derived().jointCols_impl(A.derived());
329  }
330 
331  template<typename D>
332  typename SizeDepType<NV>::template ColsReturn<D>::ConstType
333  jointCols_impl(const Eigen::MatrixBase<D> & A) const
334  {
335  return SizeDepType<NV>::middleCols(A.derived(), idx_v(), nv());
336  }
337 
338  // Non-const access
339  template<typename D>
340  typename SizeDepType<NV>::template ColsReturn<D>::Type jointCols(Eigen::MatrixBase<D> & A) const
341  {
342  return derived().jointCols_impl(A.derived());
343  }
344 
345  template<typename D>
346  typename SizeDepType<NV>::template ColsReturn<D>::Type
347  jointCols_impl(Eigen::MatrixBase<D> & A) const
348  {
349  return SizeDepType<NV>::middleCols(A.derived(), idx_v(), nv());
350  }
351 
352  /* Acces to dedicated rows in a matrix.*/
353  // Const access
354  template<typename D>
355  typename SizeDepType<NV>::template RowsReturn<D>::ConstType
356  jointRows(const Eigen::MatrixBase<D> & A) const
357  {
358  return derived().jointRows_impl(A.derived());
359  }
360 
361  template<typename D>
362  typename SizeDepType<NV>::template RowsReturn<D>::ConstType
363  jointRows_impl(const Eigen::MatrixBase<D> & A) const
364  {
365  return SizeDepType<NV>::middleRows(A.derived(), idx_v(), nv());
366  }
367 
368  // Non-const access
369  template<typename D>
370  typename SizeDepType<NV>::template RowsReturn<D>::Type jointRows(Eigen::MatrixBase<D> & A) const
371  {
372  return derived().jointRows_impl(A.derived());
373  }
374 
375  template<typename D>
376  typename SizeDepType<NV>::template RowsReturn<D>::Type
377  jointRows_impl(Eigen::MatrixBase<D> & A) const
378  {
379  return SizeDepType<NV>::middleRows(A.derived(), idx_v(), nv());
380  }
381 
384  // Const access
385  template<typename D>
386  typename SizeDepType<NV>::template BlockReturn<D>::ConstType
387  jointBlock(const Eigen::MatrixBase<D> & Mat) const
388  {
389  return derived().jointBlock_impl(Mat.derived());
390  }
391 
392  template<typename D>
393  typename SizeDepType<NV>::template BlockReturn<D>::ConstType
394  jointBlock_impl(const Eigen::MatrixBase<D> & Mat) const
395  {
396  return SizeDepType<NV>::block(Mat.derived(), idx_v(), idx_v(), nv(), nv());
397  }
398 
399  // Non-const access
400  template<typename D>
401  typename SizeDepType<NV>::template BlockReturn<D>::Type
402  jointBlock(Eigen::MatrixBase<D> & Mat) const
403  {
404  return derived().jointBlock_impl(Mat.derived());
405  }
406 
407  template<typename D>
408  typename SizeDepType<NV>::template BlockReturn<D>::Type
409  jointBlock_impl(Eigen::MatrixBase<D> & Mat) const
410  {
411  return SizeDepType<NV>::block(Mat.derived(), idx_v(), idx_v(), nv(), nv());
412  }
413 
414  protected:
418  inline JointModelBase()
419  : i_id(std::numeric_limits<JointIndex>::max())
420  , i_q(-1)
421  , i_v(-1)
422  {
423  }
424 
430  {
431  *this = clone;
432  }
433 
439  {
440  i_id = clone.i_id;
441  i_q = clone.i_q;
442  i_v = clone.i_v;
443  return *this;
444  }
445 
446  // data
447  JointIndex i_id; // ID of the joint in the multibody list.
448  int i_q; // Index of the joint configuration in the joint configuration vector.
449  int i_v; // Index of the joint velocity in the joint velocity vector.
450 
451  }; // struct JointModelBase
452 
453 } // namespace pinocchio
454 
455 #endif // ifndef __pinocchio_multibody_joint_model_base_hpp__
pinocchio::JointModelBase::JointModelBase
JointModelBase(const JointModelBase &clone)
Definition: joint-model-base.hpp:429
pinocchio::SizeDepType
Definition: matrix-block.hpp:13
pinocchio::JointModelBase::createData
JointDataDerived createData() const
Definition: joint-model-base.hpp:91
pinocchio::JointModelBase::jointConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::Type jointConfigSelector(Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:279
pinocchio::JointModelBase::calc
void calc(JointDataDerived &data, const Blank not_used, const Eigen::MatrixBase< TangentVectorType > &vs) const
Definition: joint-model-base.hpp:113
pinocchio::NumericalBase
Definition: fwd.hpp:89
pinocchio::JointModelBase::JointModelBase
JointModelBase()
Definition: joint-model-base.hpp:418
pinocchio::JointModelBase::jointRows
SizeDepType< NV >::template RowsReturn< D >::ConstType jointRows(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:356
pinocchio::JointModelBase::jointBlock_impl
SizeDepType< NV >::template BlockReturn< D >::Type jointBlock_impl(Eigen::MatrixBase< D > &Mat) const
Definition: joint-model-base.hpp:409
pinocchio::JointModelBase::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-model-base.hpp:96
pinocchio::JointModelBase::setIndexes_impl
void setIndexes_impl(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:191
pinocchio::JointModelBase::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs, const Eigen::MatrixBase< TangentVectorType > &vs) const
Definition: joint-model-base.hpp:122
pinocchio::JointModelBase::hasSameIndexes
bool hasSameIndexes(const JointModelBase< OtherDerived > &other) const
Definition: joint-model-base.hpp:253
joint-common-operations.hpp
pinocchio::JointModelBase::nq_impl
int nq_impl() const
Definition: joint-model-base.hpp:155
pinocchio::JointModelBase
Definition: joint-model-base.hpp:75
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_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::JointModelBase::isEqual
bool isEqual(const JointModelBase< Derived > &other) const
Definition: joint-model-base.hpp:247
pinocchio::JointModelBase::id_impl
JointIndex id_impl() const
Definition: joint-model-base.hpp:181
matrix-block.hpp
pinocchio::JointModelBase::jointConfigSelector
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:264
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::JointModelBase::i_id
JointIndex i_id
Definition: joint-model-base.hpp:447
pinocchio::JointModelBase::cast
CastType< NewScalar, Derived >::type cast() const
Definition: joint-model-base.hpp:224
pinocchio::JointModelBase::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:186
pinocchio::JointModelBase::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::JointModelBase::jointRows
SizeDepType< NV >::template RowsReturn< D >::Type jointRows(Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:370
pinocchio::Blank
Blank type.
Definition: fwd.hpp:76
pinocchio::JointModelBase::jointVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:295
pinocchio::JointModelBase::jointCols
SizeDepType< NV >::template ColsReturn< D >::Type jointCols(Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:340
pinocchio::JointModelBase::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I=false) const
Definition: joint-model-base.hpp:131
pinocchio::JointModelBase::i_v
int i_v
Definition: joint-model-base.hpp:449
pinocchio::JointModelBase::jointConfigSelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::Type jointConfigSelector_impl(Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:286
pinocchio::JointModelBase::classname
static std::string classname()
Definition: joint-model-base.hpp:218
pinocchio::JointModelBase::idx_q_impl
int idx_q_impl() const
Definition: joint-model-base.hpp:173
pinocchio::JointModelBase::jointCols_impl
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols_impl(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:333
pinocchio::JointModelBase::operator=
JointModelBase & operator=(const JointModelBase &clone)
Definition: joint-model-base.hpp:438
pinocchio::JointModelBase::nv_impl
int nv_impl() const
Definition: joint-model-base.hpp:151
pinocchio::JointModelBase::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef traits< Derived >::JointDerived JointDerived
Definition: joint-model-base.hpp:79
pinocchio::JointModelBase::shortname
std::string shortname() const
Definition: joint-model-base.hpp:214
pinocchio::JointModelBase::operator!=
bool operator!=(const JointModelBase< OtherDerived > &other) const
Definition: joint-model-base.hpp:236
pinocchio::JointModelBase::operator==
bool operator==(const JointModelBase< OtherDerived > &other) const
Definition: joint-model-base.hpp:230
joint-base.hpp
pinocchio::JointModelBase::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-model-base.hpp:101
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::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::JointModelBase::jointVelocitySelector_impl
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector_impl(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:302
simulation-contact-dynamics.A
A
Definition: simulation-contact-dynamics.py:110
pinocchio::JointModelBase::jointBlock
SizeDepType< NV >::template BlockReturn< D >::ConstType jointBlock(const Eigen::MatrixBase< D > &Mat) const
Returns a block of dimension nv()xnv() located at position idx_v(),idx_v() in the matrix Mat.
Definition: joint-model-base.hpp:387
pinocchio::JointModelBase::nq
int nq() const
Definition: joint-model-base.hpp:145
pinocchio::JointModelBase::jointRows_impl
SizeDepType< NV >::template RowsReturn< D >::Type jointRows_impl(Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:377
pinocchio::JointModelBase::idx_v_impl
int idx_v_impl() const
Definition: joint-model-base.hpp:177
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1083
pinocchio::JointModelBase::jointCols_impl
SizeDepType< NV >::template ColsReturn< D >::Type jointCols_impl(Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:347
a
Vec3f a
pinocchio::JointModelBase::operator<<
friend std::ostream & operator<<(std::ostream &os, const JointModelBase< Derived > &joint)
Definition: joint-model-base.hpp:208
clone
virtual CollisionGeometry * clone() const=0
pinocchio::JointModelBase::idx_v
int idx_v() const
Definition: joint-model-base.hpp:164
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::internal::comparison_eq
bool comparison_eq(const LhsType &lhs_value, const RhsType &rhs_value)
Definition: utils/static-if.hpp:120
pinocchio::JointModelBase::jointCols
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:326
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:160
pinocchio::JointModelBase::jointRows_impl
SizeDepType< NV >::template RowsReturn< D >::ConstType jointRows_impl(const Eigen::MatrixBase< D > &A) const
Definition: joint-model-base.hpp:363
std
Definition: autodiff/casadi/utils/static-if.hpp:64
pinocchio::JointModelBase::calc
void calc(JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs) const
Definition: joint-model-base.hpp:107
pinocchio::JointModelBase::jointBlock
SizeDepType< NV >::template BlockReturn< D >::Type jointBlock(Eigen::MatrixBase< D > &Mat) const
Definition: joint-model-base.hpp:402
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:26
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::JointModelBase::jointBlock_impl
SizeDepType< NV >::template BlockReturn< D >::ConstType jointBlock_impl(const Eigen::MatrixBase< D > &Mat) const
Definition: joint-model-base.hpp:394
pinocchio::JointModelBase::jointVelocitySelector
SizeDepType< NV >::template SegmentReturn< D >::Type jointVelocitySelector(Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:310
pinocchio::JointModelBase::jointConfigSelector_impl
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector_impl(const Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:271
pinocchio::JointModelBase::nv
int nv() const
Definition: joint-model-base.hpp:141
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::JointModelBase::disp
void disp(std::ostream &os) const
Definition: joint-model-base.hpp:197
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::JointModelBase::derived
const JointModelDerived & derived() const
Definition: joint-model-base.hpp:86
dcrba.NV
NV
Definition: dcrba.py:536
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
pinocchio::JointModelBase::jointVelocitySelector_impl
SizeDepType< NV >::template SegmentReturn< D >::Type jointVelocitySelector_impl(Eigen::MatrixBase< D > &a) const
Definition: joint-model-base.hpp:317
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
CppAD::max
AD< Scalar > max(const AD< Scalar > &x, const AD< Scalar > &y)
Definition: autodiff/cppad.hpp:181
pinocchio::JointModelBase::isEqual
bool isEqual(const JointModelBase< OtherDerived > &) const
Definition: joint-model-base.hpp:242
pinocchio::JointModelBase::derived
JointModelDerived & derived()
Definition: joint-model-base.hpp:82
pinocchio::JointModelBase::i_q
int i_q
Definition: joint-model-base.hpp:448
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:168


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