joint-free-flyer.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 // Copyright (c) 2015-2016 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_multibody_joint_free_flyer_hpp__
7 #define __pinocchio_multibody_joint_free_flyer_hpp__
8 
9 #include "pinocchio/macros.hpp"
14 #include "pinocchio/math/fwd.hpp"
16 
17 namespace pinocchio
18 {
19 
20  template<typename Scalar, int Options>
22 
23  template<typename _Scalar, int _Options>
24  struct traits<JointMotionSubspaceIdentityTpl<_Scalar, _Options>>
25  {
26  typedef _Scalar Scalar;
27  enum
28  {
29  Options = _Options
30  };
31  typedef Eigen::Matrix<Scalar, 6, 6, Options> Matrix6;
32  enum
33  {
34  LINEAR = 0,
35  ANGULAR = 3
36  };
38  typedef Eigen::Matrix<Scalar, 6, 1, Options> JointForce;
39  typedef Eigen::Matrix<Scalar, 6, 6, Options> DenseBase;
40  typedef Eigen::Matrix<Scalar, 6, 6, Options> ReducedSquaredMatrix;
41 
42  typedef typename Matrix6::IdentityReturnType ConstMatrixReturnType;
43  typedef typename Matrix6::IdentityReturnType MatrixReturnType;
44  typedef typename Matrix6::IdentityReturnType StDiagonalMatrixSOperationReturnType;
45  }; // traits ConstraintRevolute
46 
47  template<typename _Scalar, int _Options>
49  : JointMotionSubspaceBase<JointMotionSubspaceIdentityTpl<_Scalar, _Options>>
50  {
51  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
53 
54  enum
55  {
56  NV = 6
57  };
58 
59  template<typename Vector6Like>
60  JointMotion __mult__(const Eigen::MatrixBase<Vector6Like> & vj) const
61  {
62  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector6Like, 6);
63  return JointMotion(vj);
64  }
65 
66  template<typename S1, int O1>
68  {
69  return m.toActionMatrix();
70  }
71 
72  template<typename S1, int O1>
74  {
75  return m.toActionMatrixInverse();
76  }
77 
78  int nv_impl() const
79  {
80  return NV;
81  }
82 
83  struct TransposeConst : JointMotionSubspaceTransposeBase<JointMotionSubspaceIdentityTpl>
84  {
85  template<typename Derived>
88  {
89  return phi.toVector();
90  }
91 
92  /* [CRBA] MatrixBase operator* (Constraint::Transpose S, ForceSet::Block) */
93  template<typename MatrixDerived>
94  typename PINOCCHIO_EIGEN_REF_CONST_TYPE(MatrixDerived)
95  operator*(const Eigen::MatrixBase<MatrixDerived> & F)
96  {
97  return F.derived();
98  }
99  };
100 
102  {
103  return TransposeConst();
104  }
105  MatrixReturnType matrix_impl() const
106  {
107  return DenseBase::Identity();
108  }
109 
110  template<typename MotionDerived>
111  typename MotionDerived::ActionMatrixType motionAction(const MotionBase<MotionDerived> & v) const
112  {
113  return v.toActionMatrix();
114  }
115 
117  {
118  return true;
119  }
120 
121  }; // struct JointMotionSubspaceIdentityTpl
122 
123  template<typename Scalar, int Options, typename Vector6Like>
126  const Eigen::MatrixBase<Vector6Like> & v)
127  {
128  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Vector6Like, 6);
129  // typedef typename JointMotionSubspaceIdentityTpl<Scalar,Options>::Motion Motion;
131  return Motion(v.derived());
132  }
133 
134  /* [CRBA] ForceSet operator* (Inertia Y,Constraint S) */
135  template<typename S1, int O1, typename S2, int O2>
136  inline typename InertiaTpl<S1, O1>::Matrix6
138  {
139  return Y.matrix();
140  }
141 
142  /* [ABA] Y*S operator*/
143  template<typename Matrix6Like, typename S2, int O2>
144  inline typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(
145  const Eigen::MatrixBase<Matrix6Like> & Y, const JointMotionSubspaceIdentityTpl<S2, O2> &)
146  {
147  return Y.derived();
148  }
149 
150  template<typename S1, int O1>
152  {
154  };
155 
156  template<typename S1, int O1, typename MotionDerived>
158  {
160  };
161 
162  template<typename Scalar, int Options>
164 
165  template<typename _Scalar, int _Options>
166  struct traits<JointFreeFlyerTpl<_Scalar, _Options>>
167  {
168  enum
169  {
170  NQ = 7,
171  NV = 6,
172  NVExtended = 6
173  };
174  typedef _Scalar Scalar;
175  enum
176  {
177  Options = _Options
178  };
185 
186  // [ABA]
187  typedef Eigen::Matrix<Scalar, 6, NV, Options> U_t;
188  typedef Eigen::Matrix<Scalar, NV, NV, Options> D_t;
189  typedef Eigen::Matrix<Scalar, 6, NV, Options> UD_t;
190 
191  typedef Eigen::Matrix<Scalar, NQ, 1, Options> ConfigVector_t;
192  typedef Eigen::Matrix<Scalar, NV, 1, Options> TangentVector_t;
193 
194  typedef boost::mpl::false_ is_mimicable_t;
195 
197  };
198 
199  template<typename _Scalar, int _Options>
200  struct traits<JointDataFreeFlyerTpl<_Scalar, _Options>>
201  {
203  typedef _Scalar Scalar;
204  };
205 
206  template<typename _Scalar, int _Options>
207  struct traits<JointModelFreeFlyerTpl<_Scalar, _Options>>
208  {
210  typedef _Scalar Scalar;
211  };
212 
213  template<typename _Scalar, int _Options>
214  struct JointDataFreeFlyerTpl : public JointDataBase<JointDataFreeFlyerTpl<_Scalar, _Options>>
215  {
216  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
220 
221  ConfigVector_t joint_q;
222  TangentVector_t joint_v;
223 
224  Constraint_t S;
225  Transformation_t M;
226  Motion_t v;
227  Bias_t c;
228 
229  // [ABA] specific data
230  U_t U;
231  D_t Dinv;
232  UD_t UDinv;
233  D_t StU;
234 
236  : joint_q(ConfigVector_t::Zero())
237  , joint_v(TangentVector_t::Zero())
238  , M(Transformation_t::Identity())
239  , v(Motion_t::Zero())
240  , U(U_t::Zero())
241  , Dinv(D_t::Zero())
242  , UDinv(UD_t::Identity())
243  , StU(D_t::Zero())
244  {
245  joint_q[6] = Scalar(1);
246  }
247 
248  static std::string classname()
249  {
250  return std::string("JointDataFreeFlyer");
251  }
252  std::string shortname() const
253  {
254  return classname();
255  }
256 
257  }; // struct JointDataFreeFlyerTpl
258 
283  PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelFreeFlyerTpl);
284  template<typename _Scalar, int _Options>
285  struct JointModelFreeFlyerTpl : public JointModelBase<JointModelFreeFlyerTpl<_Scalar, _Options>>
286  {
287  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
290 
292  using Base::id;
293  using Base::idx_q;
294  using Base::idx_v;
295  using Base::idx_vExtended;
296  using Base::setIndexes;
297 
298  JointDataDerived createData() const
299  {
300  return JointDataDerived();
301  }
302 
303  const std::vector<bool> hasConfigurationLimit() const
304  {
305  return {true, true, true, false, false, false, false};
306  }
307 
308  const std::vector<bool> hasConfigurationLimitInTangent() const
309  {
310  return {true, true, true, false, false, false};
311  }
312 
313  template<typename ConfigVectorLike>
314  inline void forwardKinematics(
315  Transformation_t & M, const Eigen::MatrixBase<ConfigVectorLike> & q_joint) const
316  {
317  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(ConfigVector_t, ConfigVectorLike);
318  typedef typename Eigen::Quaternion<
319  typename ConfigVectorLike::Scalar, PINOCCHIO_EIGEN_PLAIN_TYPE(ConfigVectorLike)::Options>
320  Quaternion;
321  typedef Eigen::Map<const Quaternion> ConstQuaternionMap;
322 
323  ConstQuaternionMap quat(q_joint.template tail<4>().data());
324  // assert(math::fabs(quat.coeffs().squaredNorm()-1.) <= sqrt(Eigen::NumTraits<typename
325  // V::Scalar>::epsilon())); TODO: check validity of the rhs precision
326  assert(math::fabs(static_cast<Scalar>(quat.coeffs().squaredNorm() - 1)) <= 1e-4);
327 
328  M.rotation(quat.matrix());
329  M.translation(q_joint.template head<3>());
330  }
331 
332  template<typename Vector3Derived, typename QuaternionDerived>
334  JointDataDerived & data,
335  const typename Eigen::MatrixBase<Vector3Derived> & trans,
336  const typename Eigen::QuaternionBase<QuaternionDerived> & quat) const
337  {
338  data.M.translation(trans);
339  data.M.rotation(quat.matrix());
340  }
341 
342  template<typename ConfigVector>
344  calc(JointDataDerived & data, const typename Eigen::MatrixBase<ConfigVector> & qs) const
345  {
346  typedef typename Eigen::Quaternion<Scalar, Options> Quaternion;
347  typedef Eigen::Map<const Quaternion> ConstQuaternionMap;
348 
349  data.joint_q = qs.template segment<NQ>(idx_q());
350  ConstQuaternionMap quat(data.joint_q.template tail<4>().data());
351 
352  calc(data, data.joint_q.template head<3>(), quat);
353  }
354 
355  template<typename TangentVector>
357  calc(JointDataDerived & data, const Blank, const typename Eigen::MatrixBase<TangentVector> & vs)
358  const
359  {
360  data.joint_v = vs.template segment<NV>(idx_v());
361  data.v = data.joint_v;
362  }
363 
364  template<typename ConfigVector, typename TangentVector>
366  JointDataDerived & data,
367  const typename Eigen::MatrixBase<ConfigVector> & qs,
368  const typename Eigen::MatrixBase<TangentVector> & vs) const
369  {
370  calc(data, qs.derived());
371 
372  data.joint_v = vs.template segment<NV>(idx_v());
373  data.v = data.joint_v;
374  }
375 
376  template<typename VectorLike, typename Matrix6Like>
377  void calc_aba(
378  JointDataDerived & data,
379  const Eigen::MatrixBase<VectorLike> & armature,
380  const Eigen::MatrixBase<Matrix6Like> & I,
381  const bool update_I) const
382  {
383  data.U = I;
384  data.StU = I;
385  data.StU.diagonal() += armature;
386 
388  data.UDinv.noalias() = I * data.Dinv;
389 
390  if (update_I)
391  PINOCCHIO_EIGEN_CONST_CAST(Matrix6Like, I).noalias() -= data.UDinv * data.U.transpose();
392  }
393 
394  static std::string classname()
395  {
396  return std::string("JointModelFreeFlyer");
397  }
398  std::string shortname() const
399  {
400  return classname();
401  }
402 
404  template<typename NewScalar>
406  {
408  ReturnType res;
409  res.setIndexes(id(), idx_q(), idx_v(), idx_vExtended());
410  return res;
411  }
412 
413  }; // struct JointModelFreeFlyerTpl
414 
415 } // namespace pinocchio
416 
417 #include <boost/type_traits.hpp>
418 
419 namespace boost
420 {
421  template<typename Scalar, int Options>
422  struct has_nothrow_constructor<::pinocchio::JointModelFreeFlyerTpl<Scalar, Options>>
423  : public integral_constant<bool, true>
424  {
425  };
426 
427  template<typename Scalar, int Options>
428  struct has_nothrow_copy<::pinocchio::JointModelFreeFlyerTpl<Scalar, Options>>
429  : public integral_constant<bool, true>
430  {
431  };
432 
433  template<typename Scalar, int Options>
434  struct has_nothrow_constructor<::pinocchio::JointDataFreeFlyerTpl<Scalar, Options>>
435  : public integral_constant<bool, true>
436  {
437  };
438 
439  template<typename Scalar, int Options>
440  struct has_nothrow_copy<::pinocchio::JointDataFreeFlyerTpl<Scalar, Options>>
441  : public integral_constant<bool, true>
442  {
443  };
444 } // namespace boost
445 
446 #endif // ifndef __pinocchio_multibody_joint_free_flyer_hpp__
pinocchio::traits< JointDataFreeFlyerTpl< _Scalar, _Options > >::JointDerived
JointFreeFlyerTpl< _Scalar, _Options > JointDerived
Definition: joint-free-flyer.hpp:202
pinocchio::InertiaTpl
Definition: context/generic.hpp:33
pinocchio::JointModelFreeFlyerTpl::shortname
std::string shortname() const
Definition: joint-free-flyer.hpp:398
PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
#define PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
Definition: joint-data-base.hpp:137
pinocchio::JointMotionSubspaceIdentityTpl::TransposeConst
Definition: joint-free-flyer.hpp:83
quaternion.hpp
pinocchio::JointModelFreeFlyerTpl::Base
JointModelBase< JointModelFreeFlyerTpl > Base
Definition: joint-free-flyer.hpp:291
test-cpp2pybind11.m
m
Definition: test-cpp2pybind11.py:25
pinocchio::JointDataFreeFlyerTpl
Definition: multibody/joint/fwd.hpp:114
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::Bias_t
MotionZeroTpl< Scalar, Options > Bias_t
Definition: joint-free-flyer.hpp:184
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
macros.hpp
pinocchio::JointMotionSubspaceIdentityTpl::NV
@ NV
Definition: joint-free-flyer.hpp:56
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::JointModelBase
Definition: joint-model-base.hpp:78
quat
quat
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::JointMotionSubspaceIdentityTpl::motionAction
MotionDerived::ActionMatrixType motionAction(const MotionBase< MotionDerived > &v) const
Definition: joint-free-flyer.hpp:111
pinocchio::JointMotionSubspaceBase
Definition: joint-motion-subspace-base.hpp:59
PINOCCHIO_EIGEN_CONST_CAST
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
Definition: eigen-macros.hpp:51
pinocchio::SE3Tpl
Definition: context/casadi.hpp:30
pinocchio::JointModelFreeFlyerTpl::forwardKinematics
void forwardKinematics(Transformation_t &M, const Eigen::MatrixBase< ConfigVectorLike > &q_joint) const
Definition: joint-free-flyer.hpp:314
pinocchio::internal::PerformStYSInversion::run
static EIGEN_STRONG_INLINE void run(const Eigen::MatrixBase< M1 > &StYS, const Eigen::MatrixBase< M2 > &Dinv)
Definition: joint-common-operations.hpp:27
pinocchio::JointDataBase
Definition: joint-data-base.hpp:161
pinocchio::SE3GroupAction< JointMotionSubspaceIdentityTpl< S1, O1 > >::ReturnType
SE3Tpl< S1, O1 >::ActionMatrixType ReturnType
Definition: joint-free-flyer.hpp:153
pinocchio::PINOCCHIO_EIGEN_REF_CONST_TYPE
PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(const Eigen
Definition: joint-free-flyer.hpp:144
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::MatrixReturnType
Matrix6::IdentityReturnType MatrixReturnType
Definition: joint-free-flyer.hpp:43
inertia.hpp
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::UD_t
Eigen::Matrix< Scalar, 6, NV, Options > UD_t
Definition: joint-free-flyer.hpp:189
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::StDiagonalMatrixSOperationReturnType
Matrix6::IdentityReturnType StDiagonalMatrixSOperationReturnType
Definition: joint-free-flyer.hpp:44
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::D_t
Eigen::Matrix< Scalar, NV, NV, Options > D_t
Definition: joint-free-flyer.hpp:188
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::JointForce
Eigen::Matrix< Scalar, 6, 1, Options > JointForce
Definition: joint-free-flyer.hpp:38
boost
explog.hpp
pinocchio::JointModelBase::setIndexes
void setIndexes(JointIndex id, int q, int v)
Definition: joint-model-base.hpp:205
pinocchio::JointModelFreeFlyerTpl
Definition: multibody/joint/fwd.hpp:110
pinocchio::JointMotionSubspaceIdentityTpl::matrix_impl
MatrixReturnType matrix_impl() const
Definition: joint-free-flyer.hpp:105
pinocchio::res
ReturnType res
Definition: spatial/classic-acceleration.hpp:57
pinocchio::traits< JointModelFreeFlyerTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-free-flyer.hpp:210
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::JointModelDerived
JointModelFreeFlyerTpl< Scalar, Options > JointModelDerived
Definition: joint-free-flyer.hpp:180
pinocchio::MotionAlgebraAction
Return type of the ation of a Motion onto an object of type D.
Definition: spatial/motion.hpp:45
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::Transformation_t
SE3Tpl< Scalar, Options > Transformation_t
Definition: joint-free-flyer.hpp:182
pinocchio::operator*
TridiagonalSymmetricMatrixApplyOnTheLeftReturnType< LhsMatrixType, TridiagonalSymmetricMatrixTpl< S, O > > operator*(const Eigen::MatrixBase< LhsMatrixType > &lhs, const TridiagonalSymmetricMatrixTpl< S, O > &rhs)
Definition: math/tridiagonal-matrix.hpp:319
pinocchio::JointMotionSubspaceIdentityTpl::nv_impl
int nv_impl() const
Definition: joint-free-flyer.hpp:78
pinocchio::Blank
Blank type.
Definition: fwd.hpp:76
pinocchio::traits< JointDataFreeFlyerTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-free-flyer.hpp:203
pinocchio::MotionBase
Definition: spatial/fwd.hpp:39
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::DenseBase
Eigen::Matrix< Scalar, 6, 6, Options > DenseBase
Definition: joint-free-flyer.hpp:39
pinocchio::SE3GroupAction
Definition: spatial/se3.hpp:39
pinocchio::MotionZeroTpl
Definition: context/casadi.hpp:24
pinocchio::JointDataFreeFlyerTpl::v
Motion_t v
Definition: joint-free-flyer.hpp:226
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
#define PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
Definition: joint-data-base.hpp:55
pinocchio::JointDataFreeFlyerTpl::classname
static std::string classname()
Definition: joint-free-flyer.hpp:248
pinocchio::python::context::Quaternion
Eigen::Quaternion< Scalar, Options > Quaternion
Definition: bindings/python/context/generic.hpp:49
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-free-flyer.hpp:26
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::U_t
Eigen::Matrix< Scalar, 6, NV, Options > U_t
Definition: joint-free-flyer.hpp:187
pinocchio::JointModelFreeFlyerTpl::cast
JointModelFreeFlyerTpl< NewScalar, Options > cast() const
Definition: joint-free-flyer.hpp:405
pinocchio::traits< JointModelFreeFlyerTpl< _Scalar, _Options > >::JointDerived
JointFreeFlyerTpl< _Scalar, _Options > JointDerived
Definition: joint-free-flyer.hpp:209
pinocchio::JointModelFreeFlyerTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-free-flyer.hpp:365
pinocchio::PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION
PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelFreeFlyerTpl)
Free-flyer joint in .
pinocchio::JointModelFreeFlyerTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointFreeFlyerTpl< _Scalar, _Options > JointDerived
Definition: joint-free-flyer.hpp:288
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::Motion_t
MotionTpl< Scalar, Options > Motion_t
Definition: joint-free-flyer.hpp:183
pinocchio::JointModelFreeFlyerTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
Definition: joint-free-flyer.hpp:344
pinocchio::JointMotionSubspaceIdentityTpl::transpose
TransposeConst transpose() const
Definition: joint-free-flyer.hpp:101
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::is_mimicable_t
boost::mpl::false_ is_mimicable_t
Definition: joint-free-flyer.hpp:194
pinocchio::JointDataFreeFlyerTpl::PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::ConfigVector_t
Eigen::Matrix< Scalar, NQ, 1, Options > ConfigVector_t
Definition: joint-free-flyer.hpp:191
fwd.hpp
pinocchio::JointDataFreeFlyerTpl::Dinv
D_t Dinv
Definition: joint-free-flyer.hpp:231
pinocchio::JointModelFreeFlyerTpl::hasConfigurationLimitInTangent
const std::vector< bool > hasConfigurationLimitInTangent() const
Definition: joint-free-flyer.hpp:308
pinocchio::JointDataFreeFlyerTpl::joint_q
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR ConfigVector_t joint_q
Definition: joint-free-flyer.hpp:221
joint-base.hpp
pinocchio::JointModelFreeFlyerTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
Definition: joint-free-flyer.hpp:357
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::JointDataDerived
JointDataFreeFlyerTpl< Scalar, Options > JointDataDerived
Definition: joint-free-flyer.hpp:179
pinocchio::JointDataFreeFlyerTpl::S
Constraint_t S
Definition: joint-free-flyer.hpp:224
pinocchio::JointModelBase::idx_vExtended
int idx_vExtended() const
Definition: joint-model-base.hpp:179
M
M
pinocchio::JointDataFreeFlyerTpl::c
Bias_t c
Definition: joint-free-flyer.hpp:227
pinocchio::JointModelFreeFlyerTpl::calc_aba
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
Definition: joint-free-flyer.hpp:377
pinocchio::JointFreeFlyerTpl
Definition: joint-free-flyer.hpp:163
pinocchio::JointModelFreeFlyerTpl::calc
PINOCCHIO_DONT_INLINE void calc(JointDataDerived &data, const typename Eigen::MatrixBase< Vector3Derived > &trans, const typename Eigen::QuaternionBase< QuaternionDerived > &quat) const
Definition: joint-free-flyer.hpp:333
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::ReducedSquaredMatrix
Eigen::Matrix< Scalar, 6, 6, Options > ReducedSquaredMatrix
Definition: joint-free-flyer.hpp:40
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 ...
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::TangentVector_t
Eigen::Matrix< Scalar, NV, 1, Options > TangentVector_t
Definition: joint-free-flyer.hpp:192
pinocchio::JointMotionSubspaceIdentityTpl::__mult__
JointMotion __mult__(const Eigen::MatrixBase< Vector6Like > &vj) const
Definition: joint-free-flyer.hpp:60
pinocchio::JointDataFreeFlyerTpl::UDinv
UD_t UDinv
Definition: joint-free-flyer.hpp:232
pinocchio::JointDataFreeFlyerTpl::StU
D_t StU
Definition: joint-free-flyer.hpp:233
pinocchio::JointModelBase::idx_v
int idx_v() const
Definition: joint-model-base.hpp:175
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1084
pinocchio::JointDataFreeFlyerTpl::M
Transformation_t M
Definition: joint-free-flyer.hpp:225
pinocchio::JointMotionSubspaceIdentityTpl::se3ActionInverse
SE3Tpl< S1, O1 >::ActionMatrixType se3ActionInverse(const SE3Tpl< S1, O1 > &m) const
Definition: joint-free-flyer.hpp:73
joint-motion-subspace.hpp
pinocchio::JointDataFreeFlyerTpl::shortname
std::string shortname() const
Definition: joint-free-flyer.hpp:252
pinocchio::JointModelBase::idx_q
int idx_q() const
Definition: joint-model-base.hpp:171
pinocchio::JointDataFreeFlyerTpl::JointDerived
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointFreeFlyerTpl< _Scalar, _Options > JointDerived
Definition: joint-free-flyer.hpp:217
pinocchio::JointDataFreeFlyerTpl::joint_v
TangentVector_t joint_v
Definition: joint-free-flyer.hpp:222
pinocchio::ForceDense
Definition: context/casadi.hpp:35
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::Constraint_t
JointMotionSubspaceIdentityTpl< Scalar, Options > Constraint_t
Definition: joint-free-flyer.hpp:181
pinocchio::JointModelFreeFlyerTpl::classname
static std::string classname()
Definition: joint-free-flyer.hpp:394
pinocchio::JointModelFreeFlyerTpl::PINOCCHIO_JOINT_TYPEDEF_TEMPLATE
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
pinocchio::Motion
MotionTpl<::CppAD::AD< double >, 0 > Motion
Definition: context/cppad.hpp:39
PINOCCHIO_CONSTRAINT_TYPEDEF_TPL
#define PINOCCHIO_CONSTRAINT_TYPEDEF_TPL(DERIVED)
Definition: joint-motion-subspace-base.hpp:36
Y
Y
pinocchio::traits< JointFreeFlyerTpl< _Scalar, _Options > >::Scalar
_Scalar Scalar
Definition: joint-free-flyer.hpp:174
pinocchio::JointModelFreeFlyerTpl::hasConfigurationLimit
const std::vector< bool > hasConfigurationLimit() const
Definition: joint-free-flyer.hpp:303
pinocchio::JointMotionSubspaceIdentityTpl::TransposeConst::PINOCCHIO_EIGEN_REF_CONST_TYPE
PINOCCHIO_EIGEN_REF_CONST_TYPE(MatrixDerived) operator*(const Eigen
Definition: joint-free-flyer.hpp:94
pinocchio::JointMotionSubspaceIdentityTpl::isEqual
bool isEqual(const JointMotionSubspaceIdentityTpl &) const
Definition: joint-free-flyer.hpp:116
pinocchio::traits
Common traits structure to fully define base classes for CRTP.
Definition: fwd.hpp:71
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::Matrix6
Eigen::Matrix< Scalar, 6, 6, Options > Matrix6
Definition: joint-free-flyer.hpp:31
pinocchio::PINOCCHIO_EIGEN_PLAIN_TYPE
PINOCCHIO_EIGEN_PLAIN_TYPE(ConfigVectorType) integrate(const ModelTpl< Scalar
Integrate a configuration vector for the specified model for a tangent vector during one unit time.
pinocchio::JointMotionSubspaceTransposeBase
Definition: joint-motion-subspace-base.hpp:185
pinocchio::MotionTpl< Scalar, Options >
dcrba.NV
NV
Definition: dcrba.py:536
Scalar
double Scalar
Definition: timings-cppad-jit.cpp:37
pinocchio::JointMotionSubspaceIdentityTpl::TransposeConst::operator*
ForceDense< Derived >::ToVectorConstReturnType operator*(const ForceDense< Derived > &phi)
Definition: joint-free-flyer.hpp:87
dpendulum.NQ
int NQ
Definition: dpendulum.py:9
meshcat-viewer.qs
qs
Definition: meshcat-viewer.py:128
pinocchio::MotionRef
Definition: context/casadi.hpp:39
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::JointMotion
MotionTpl< Scalar, Options > JointMotion
Definition: joint-free-flyer.hpp:37
pinocchio::MotionAlgebraAction< JointMotionSubspaceIdentityTpl< S1, O1 >, MotionDerived >::ReturnType
SE3Tpl< S1, O1 >::ActionMatrixType ReturnType
Definition: joint-free-flyer.hpp:159
pinocchio::JointMotionSubspaceIdentityTpl
Definition: joint-free-flyer.hpp:21
pinocchio::JointMotionSubspaceIdentityTpl::se3Action
SE3Tpl< S1, O1 >::ActionMatrixType se3Action(const SE3Tpl< S1, O1 > &m) const
Definition: joint-free-flyer.hpp:67
pinocchio::JointDataFreeFlyerTpl::JointDataFreeFlyerTpl
JointDataFreeFlyerTpl()
Definition: joint-free-flyer.hpp:235
pinocchio::traits< JointMotionSubspaceIdentityTpl< _Scalar, _Options > >::ConstMatrixReturnType
Matrix6::IdentityReturnType ConstMatrixReturnType
Definition: joint-free-flyer.hpp:42
pinocchio::JointModelFreeFlyerTpl::createData
JointDataDerived createData() const
Definition: joint-free-flyer.hpp:298
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:33
pinocchio::JointDataFreeFlyerTpl::U
U_t U
Definition: joint-free-flyer.hpp:230
pinocchio::JointModelBase::id
JointIndex id() const
Definition: joint-model-base.hpp:183


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