joint-basic-visitors.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2016-2020 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_multibody_joint_basic_visitors_hpp__
6 #define __pinocchio_multibody_joint_basic_visitors_hpp__
7 
9 
10 namespace pinocchio
11 {
12 
22  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
23  inline JointDataTpl<Scalar, Options, JointCollectionTpl>
24  createData(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
25 
38  template<
39  typename Scalar,
40  int Options,
41  template<typename S, int O>
42  class JointCollectionTpl,
43  typename ConfigVectorType>
44  inline void calc_zero_order(
45  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel,
46  JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata,
47  const Eigen::MatrixBase<ConfigVectorType> & q);
48 
63  template<
64  typename Scalar,
65  int Options,
66  template<typename S, int O>
67  class JointCollectionTpl,
68  typename ConfigVectorType,
69  typename TangentVectorType>
70  inline void calc_first_order(
71  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel,
72  JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata,
73  const Eigen::MatrixBase<ConfigVectorType> & q,
74  const Eigen::MatrixBase<TangentVectorType> & v);
75 
88  template<
89  typename Scalar,
90  int Options,
91  template<typename S, int O>
92  class JointCollectionTpl,
93  typename TangentVectorType>
94  inline void calc_first_order(
95  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel,
96  JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata,
97  const Blank blank,
98  const Eigen::MatrixBase<TangentVectorType> & v);
99 
115  template<
116  typename Scalar,
117  int Options,
118  template<typename S, int O>
119  class JointCollectionTpl,
120  typename VectorLike,
121  typename Matrix6Type>
122  inline void calc_aba(
123  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel,
124  JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata,
125  const Eigen::MatrixBase<VectorLike> & armature,
126  const Eigen::MatrixBase<Matrix6Type> & I,
127  const bool update_I);
128 
137  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
138  inline int nv(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
139 
148  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
149  inline int nq(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
150 
159  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
160  inline const std::vector<bool>
161  hasConfigurationLimit(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
162 
171  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
172  inline const std::vector<bool>
173  hasConfigurationLimitInTangent(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
174 
184  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
185  inline int idx_q(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
186 
196  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
197  inline int idx_v(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
198 
207  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
208  inline JointIndex id(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
209 
223  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
224  inline void setIndexes(
225  JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel, JointIndex id, int q, int v);
226 
233  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
234  inline std::string shortname(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
235 
245  template<
246  typename NewScalar,
247  typename Scalar,
248  int Options,
249  template<typename S, int O>
250  class JointCollectionTpl>
251  typename CastType<NewScalar, JointModelTpl<Scalar, Options, JointCollectionTpl>>::type
252  cast_joint(const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel);
253 
262  template<
263  typename Scalar,
264  int Options,
265  template<typename S, int O>
266  class JointCollectionTpl,
267  typename JointModelDerived>
268  bool isEqual(
269  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel_generic,
270  const JointModelBase<JointModelDerived> & jmodel);
271 
281  template<
282  typename NewScalar,
283  typename Scalar,
284  int Options,
285  template<typename S, int O>
286  class JointCollectionTpl,
287  typename JointModelDerived>
288  bool hasSameIndexes(
289  const JointModelTpl<Scalar, Options, JointCollectionTpl> & jmodel_generic,
290  const JointModelBase<JointModelDerived> & jmodel);
291 
292  //
293  // Visitors on JointDatas
294  //
295 
304  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
305  inline typename JointDataTpl<Scalar, Options, JointCollectionTpl>::ConfigVector_t
306  joint_q(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
307 
316  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
317  inline typename JointDataTpl<Scalar, Options, JointCollectionTpl>::TangentVector_t
318  joint_v(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
319 
328  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
329  inline JointMotionSubspaceTpl<Eigen::Dynamic, Scalar, Options>
330  joint_motin_subspace_xd(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
331 
340  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
341  inline SE3Tpl<Scalar, Options>
342  joint_transform(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
343 
352  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
353  inline MotionTpl<Scalar, Options>
354  motion(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
355 
364  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
365  inline MotionTpl<Scalar, Options>
366  bias(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
367 
376  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
377  inline Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options>
378  u_inertia(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
379 
388  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
389  inline Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Options>
390  dinv_inertia(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
391 
400  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
401  inline Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options>
402  udinv_inertia(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
403 
412  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
413  inline Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Options>
414  stu_inertia(const JointDataTpl<Scalar, Options, JointCollectionTpl> & jdata);
415 
424  template<
425  typename Scalar,
426  int Options,
427  template<typename S, int O>
428  class JointCollectionTpl,
429  typename JointDataDerived>
430  bool isEqual(
431  const JointDataTpl<Scalar, Options, JointCollectionTpl> & jmodel_generic,
432  const JointDataBase<JointDataDerived> & jmodel);
433 
434 } // namespace pinocchio
435 
436 /* --- Details -------------------------------------------------------------------- */
437 // Included later
438 // #include "pinocchio/multibody/joint/joint-basic-visitors.hxx"
439 
440 #endif // ifndef __pinocchio_multibody_joint_basic_visitors_hpp__
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::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::idx_v
int idx_v(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxVVisitor to get the index in the full model tangent space corre...
pinocchio::Options
Options
Definition: joint-configuration.hpp:1116
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::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::nq
int nq(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointNqVisitor to get the dimension of the joint configuration space.
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::python::Scalar
context::Scalar Scalar
Definition: admm-solver.cpp:29
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.
simulation-pendulum.type
type
Definition: simulation-pendulum.py:18
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::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointConfigurationLimitInTangentVisitor to get the configurations limit...
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::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::createData
ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > createData(const ConstraintModelTpl< Scalar, Options, ConstraintCollectionTpl > &cmodel)
Definition: constraint-model-visitor.hpp:248
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::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointConfigurationLimitVisitor to get the configurations limits.
pinocchio::setIndexes
void setIndexes(JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel, JointIndex id, int q, int v)
Visit a JointModelTpl through JointSetIndexesVisitor to set the indexes of the joint in the kinematic...
pinocchio::cast_joint
CastType< NewScalar, JointModelTpl< Scalar, Options, JointCollectionTpl > >::type cast_joint(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl<Scalar,...> to cast it into JointModelTpl<NewScalar,...>
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::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1117
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1118
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::isEqual
bool isEqual(const ConstraintDataTpl< Scalar, Options, ConstraintCollectionTpl > &cdata_generic, const ConstraintDataBase< ConstraintDataDerived > &cdata)
Definition: constraint-model-visitor.hpp:284
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::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...
fwd.hpp
pinocchio::JointIndex
Index JointIndex
Definition: multibody/fwd.hpp:26
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::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::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
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Tue Jun 25 2024 02:42:38