Template Struct JointModelFreeFlyerTpl

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Scalar, int _Options>
struct JointModelFreeFlyerTpl : public pinocchio::JointModelBase<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).

Public Types

typedef JointModelBase<JointModelFreeFlyerTpl> Base

Public Functions

PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
inline JointDataDerived createData() const
inline const std::vector<bool> hasConfigurationLimit() const
inline const std::vector<bool> hasConfigurationLimitInTangent() const
template<typename ConfigVectorLike>
inline void forwardKinematics(Transformation_t &M, const Eigen::MatrixBase<ConfigVectorLike> &q_joint) const
template<typename Vector3Derived, typename QuaternionDerived> inline PINOCCHIO_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< Vector3Derived > &trans, const typename Eigen::QuaternionBase< QuaternionDerived > &quat) const
template<typename ConfigVector> inline PINOCCHIO_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
template<typename TangentVector> inline PINOCCHIO_DONT_INLINE void calc (JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
template<typename ConfigVector, typename TangentVector> inline PINOCCHIO_DONT_INLINE void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
template<typename VectorLike, typename Matrix6Like>
inline void calc_aba(JointDataDerived &data, const Eigen::MatrixBase<VectorLike> &armature, const Eigen::MatrixBase<Matrix6Like> &I, const bool update_I) const
inline std::string shortname() const
template<typename NewScalar>
inline JointModelFreeFlyerTpl<NewScalar, Options> cast() const
Returns:

An expression of *this with the Scalar type casted to NewScalar.

inline JointIndex id() const
inline int idx_q() const
inline int idx_v() const
inline int idx_vExtended() const
inline void setIndexes(JointIndex id, int q, int v)
inline void setIndexes(JointIndex id, int q, int v, int vExtended)

Public Members

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointFreeFlyerTpl< _Scalar, _Options > JointDerived

Public Static Functions

static inline std::string classname()