pinocchio  3.3.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
JointModelFreeFlyerTpl< _Scalar, _Options > Struct Template Reference

Free-flyer joint in \(SE(3)\). More...

#include <pinocchio/multibody/joint/joint-free-flyer.hpp>

Inheritance diagram for JointModelFreeFlyerTpl< _Scalar, _Options >:
Collaboration diagram for JointModelFreeFlyerTpl< _Scalar, _Options >:

Public Types

typedef JointModelBase< JointModelFreeFlyerTplBase
 
typedef JointFreeFlyerTpl< _Scalar, _Options > JointDerived
 
- Public Types inherited from JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > >
typedef traits< JointModelFreeFlyerTpl< _Scalar, _Options > >::JointDerived JointDerived
 
- Public Types inherited from NumericalBase< Derived >
typedef traits< Derived >::Scalar Scalar
 

Public Member Functions

template<typename TangentVector >
EIGEN_DONT_INLINE void calc (JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
 
template<typename ConfigVector >
EIGEN_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
 
template<typename ConfigVector , typename TangentVector >
EIGEN_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
 
template<typename Vector3Derived , typename QuaternionDerived >
EIGEN_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< Vector3Derived > &trans, const typename Eigen::QuaternionBase< QuaternionDerived > &quat) const
 
template<typename VectorLike , typename Matrix6Like >
void calc_aba (JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
 
template<typename NewScalar >
JointModelFreeFlyerTpl< NewScalar, Options > cast () const
 
JointDataDerived createData () const
 
template<typename ConfigVectorLike >
void forwardKinematics (Transformation_t &M, const Eigen::MatrixBase< ConfigVectorLike > &q_joint) const
 
const std::vector< bool > hasConfigurationLimit () const
 
const std::vector< bool > hasConfigurationLimitInTangent () const
 
JointIndex id () const
 
int idx_q () const
 
int idx_v () const
 
 PINOCCHIO_JOINT_TYPEDEF_TEMPLATE (JointDerived)
 
void setIndexes (JointIndex id, int q, int v)
 
std::string shortname () const
 
- Public Member Functions inherited from JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > >
void calc (JointDataDerived &data, const Blank not_used, const Eigen::MatrixBase< TangentVectorType > &vs) const
 
void calc (JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs) const
 
void calc (JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs, const Eigen::MatrixBase< TangentVectorType > &vs) const
 
void calc_aba (JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I=false) const
 
CastType< NewScalar, JointModelFreeFlyerTpl< _Scalar, _Options > >::type cast () const
 
JointDataDerived createData () const
 
JointModelDerived & derived ()
 
const JointModelDerived & derived () const
 
void disp (std::ostream &os) const
 
const std::vector< bool > hasConfigurationLimit () const
 
const std::vector< bool > hasConfigurationLimitInTangent () const
 
bool hasSameIndexes (const JointModelBase< OtherDerived > &other) const
 
JointIndex id () const
 
JointIndex id_impl () const
 
int idx_q () const
 
int idx_q_impl () const
 
int idx_v () const
 
int idx_v_impl () const
 
bool isEqual (const JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > > &other) const
 
bool isEqual (const JointModelBase< OtherDerived > &) const
 
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.
 
SizeDepType< NV >::template BlockReturn< D >::Type jointBlock (Eigen::MatrixBase< D > &Mat) const
 
SizeDepType< NV >::template BlockReturn< D >::ConstType jointBlock_impl (const Eigen::MatrixBase< D > &Mat) const
 
SizeDepType< NV >::template BlockReturn< D >::Type jointBlock_impl (Eigen::MatrixBase< D > &Mat) const
 
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols (const Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template ColsReturn< D >::Type jointCols (Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template ColsReturn< D >::ConstType jointCols_impl (const Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template ColsReturn< D >::Type jointCols_impl (Eigen::MatrixBase< D > &A) const
 
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector (const Eigen::MatrixBase< D > &a) const
 
SizeDepType< NQ >::template SegmentReturn< D >::Type jointConfigSelector (Eigen::MatrixBase< D > &a) const
 
SizeDepType< NQ >::template SegmentReturn< D >::ConstType jointConfigSelector_impl (const Eigen::MatrixBase< D > &a) const
 
SizeDepType< NQ >::template SegmentReturn< D >::Type jointConfigSelector_impl (Eigen::MatrixBase< D > &a) const
 
SizeDepType< NV >::template RowsReturn< D >::ConstType jointRows (const Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template RowsReturn< D >::Type jointRows (Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template RowsReturn< D >::ConstType jointRows_impl (const Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template RowsReturn< D >::Type jointRows_impl (Eigen::MatrixBase< D > &A) const
 
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector (const Eigen::MatrixBase< D > &a) const
 
SizeDepType< NV >::template SegmentReturn< D >::Type jointVelocitySelector (Eigen::MatrixBase< D > &a) const
 
SizeDepType< NV >::template SegmentReturn< D >::ConstType jointVelocitySelector_impl (const Eigen::MatrixBase< D > &a) const
 
SizeDepType< NV >::template SegmentReturn< D >::Type jointVelocitySelector_impl (Eigen::MatrixBase< D > &a) const
 
int nq () const
 
int nq_impl () const
 
int nv () const
 
int nv_impl () const
 
bool operator!= (const JointModelBase< OtherDerived > &other) const
 
bool operator== (const JointModelBase< OtherDerived > &other) const
 
 PINOCCHIO_JOINT_TYPEDEF_TEMPLATE (JointDerived)
 
void setIndexes (JointIndex id, int q, int v)
 
void setIndexes_impl (JointIndex id, int q, int v)
 
std::string shortname () const
 

Static Public Member Functions

static std::string classname ()
 
- Static Public Member Functions inherited from JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > >
static std::string classname ()
 

Additional Inherited Members

- Protected Member Functions inherited from JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > >
 JointModelBase ()
 
 JointModelBase (const JointModelBase &clone)
 
JointModelBaseoperator= (const JointModelBase &clone)
 
- Protected Attributes inherited from JointModelBase< JointModelFreeFlyerTpl< _Scalar, _Options > >
JointIndex i_id
 
int i_q
 
int i_v
 

Detailed Description

template<typename _Scalar, int _Options>
struct pinocchio::JointModelFreeFlyerTpl< _Scalar, _Options >

Free-flyer joint in \(SE(3)\).

A free-flyer joint adds seven coordinates to the configuration space. Given a configuration vector q:

  • q[idx_q:idx_q + 3] are the translation coordinates, in meters, representing the position of the child frame in the parent frame.
  • q[idx_q + 3:idx_q + 7] is a unit quaternion representing the rotation from the child frame to the parent frame, with quaternion coordinates ordered as (x, y, z, w).

Likewise, a free-flyer joint adds six coordinates to the tangent space. Let's consider a tangent vector v, say, a velocity vector. Following Featherstone's convention, all our tangent vectors are body rather than spatial vectors:

  • v[idx_v:idx_v + 3] is the linear velocity, in meters / second, corresponding to the linear velocity of the child frame with respect to the parent frame, expressed in the child frame (body linear velocity of the child frame).
  • v[idx_v + 3:idx_v + 6] is the angular velocity, in radians / second, corresponding to the angular velocity from the child frame to the parent frame, expressed in the child frame (body angular velocity of the child frame).

Definition at line 282 of file joint-free-flyer.hpp.

Member Function Documentation

◆ cast()

JointModelFreeFlyerTpl<NewScalar, Options> cast ( ) const
inline
Returns
An expression of *this with the Scalar type casted to NewScalar.

Definition at line 401 of file joint-free-flyer.hpp.


The documentation for this struct was generated from the following files: