JointModelEllipsoidTpl () Default constructor. Creates a spherical joint with all radii equal to 0. JointModelEllipsoidTpl (const Scalar &radius_x, const Scalar &radius_y, const Scalar &radius_z) Constructor with specified radii. template<typename TangentVector> void calc (JointDataDerived &data, const Blank , const typename Eigen::MatrixBase< TangentVector > &vs) consttemplate<typename ConfigVector> void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) consttemplate<typename ConfigVector, typename TangentVector> void calc (JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) consttemplate<typename VectorLike, typename Matrix6Like> void calc_aba (JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) consttemplate<typename NewScalar> JointModelEllipsoidTpl < NewScalar, Options > cast () constvoid computeBiais (const Scalar &s0, const Scalar &c0, const Scalar &s1, const Scalar &c1, const Scalar &s2, const Scalar &c2, const Scalar &dndotx_dqdot1, const Scalar &dndoty_dqdot0, const Scalar &dndoty_dqdot1, const Scalar &dndotz_dqdot0, const Scalar &dndotz_dqdot1, JointDataDerived &data) consttemplate<typename ConfigVector, typename TangentVector> void computeBiais (JointDataDerived &data, const Eigen::MatrixBase< ConfigVector > &qs, const Eigen::MatrixBase< TangentVector > &) const Computes the bias acceleration c(q, v) = Sdot(q)·v. void computeMotionSubspace (const Scalar &s0, const Scalar &c0, const Scalar &s1, const Scalar &c1, const Scalar &s2, const Scalar &c2, const Scalar &dndotx_dqdot1, const Scalar &dndoty_dqdot0, const Scalar &dndoty_dqdot1, const Scalar &dndotz_dqdot0, const Scalar &dndotz_dqdot1, JointDataDerived &data) constvoid computeMotionSubspace (const Scalar &s0, const Scalar &c0, const Scalar &s1, const Scalar &c1, const Scalar &s2, const Scalar &c2, JointDataDerived &data) constvoid computeSpatialTransform (const Scalar &c0, const Scalar &s0, const Scalar &c1, const Scalar &s1, const Scalar &c2, const Scalar &s2, JointDataDerived &data) const Computes the spatial transformation M(q) from joint configuration. JointDataDerived createData () constconst std::vector< bool > hasConfigurationLimit () constconst std::vector< bool > hasConfigurationLimitInTangent () constJointIndex id () constint idx_q () constint idx_v () constint idx_vExtended () const PINOCCHIO_JOINT_TYPEDEF_TEMPLATE (JointDerived )void setIndexes (JointIndex id , int q, int v)void setIndexes (JointIndex id , int q, int v, int vExtended)std::string shortname () constvoid calc (JointDataDerived &data, const Eigen::MatrixBase< ConfigVectorType > &qs) constvoid calc_aba (JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I=false) constCastType < NewScalar, JointModelEllipsoidTpl < _Scalar, _Options > >::type cast () constJointDataDerived createData () constJointModelDerived & derived ()void disp (std::ostream &os) constconst std::vector< bool > hasConfigurationLimit () constconst std::vector< bool > hasConfigurationLimitInTangent () constbool hasSameIndexes (const JointModelBase < OtherDerived > &other) constJointIndex id () constJointIndex id_impl () constint idx_q () constint idx_q_impl () constint idx_v () constint idx_v_impl () constint idx_vExtended () constint idx_vExtended_impl () constbool isEqual (const JointModelBase < OtherDerived > &) constSizeDepType < 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 >::ConstType jointBlock_impl (const Eigen::MatrixBase< D > &Mat) constSizeDepType < NV >::template ColsReturn< D >::ConstType jointCols (const Eigen::MatrixBase< D > &A) constSizeDepType < NV >::template ColsReturn< D >::ConstType jointCols_impl (const Eigen::MatrixBase< D > &A) constSizeDepType < NQ >::template SegmentReturn< D >::ConstType jointConfigSelector (const Eigen::MatrixBase< D > &a) constSizeDepType < NQ >::template SegmentReturn< D >::ConstType jointConfigSelector_impl (const Eigen::MatrixBase< D > &a) constSizeDepType < NVExtended >::template BlockReturn< D >::ConstType jointExtendedModelBlock (const Eigen::MatrixBase< D > &Mat) constSizeDepType < NVExtended >::template BlockReturn< D >::ConstType jointExtendedModelBlock_impl (const Eigen::MatrixBase< D > &Mat) constSizeDepType < NVExtended >::template ColsReturn< D >::ConstType jointExtendedModelCols (const Eigen::MatrixBase< D > &A) constSizeDepType < NVExtended >::template ColsReturn< D >::ConstType jointExtendedModelCols_impl (const Eigen::MatrixBase< D > &A) constSizeDepType < NVExtended >::template RowsReturn< D >::ConstType jointExtendedModelRows (const Eigen::MatrixBase< D > &A) constSizeDepType < NVExtended >::template RowsReturn< D >::ConstType jointExtendedModelRows_impl (const Eigen::MatrixBase< D > &A) constSizeDepType < NQ >::template SegmentReturn< D >::ConstType JointMappedConfigSelector (const Eigen::MatrixBase< D > &a) constSizeDepType < NQ >::template SegmentReturn< D >::ConstType JointMappedConfigSelector_impl (const Eigen::MatrixBase< D > &a) constSizeDepType < NV >::template SegmentReturn< D >::ConstType JointMappedVelocitySelector (const Eigen::MatrixBase< D > &a) constSizeDepType < NV >::template SegmentReturn< D >::ConstType JointMappedVelocitySelector_impl (const Eigen::MatrixBase< D > &a) constSizeDepType < NV >::template RowsReturn< D >::ConstType jointRows (const Eigen::MatrixBase< D > &A) constSizeDepType < NV >::template RowsReturn< D >::ConstType jointRows_impl (const Eigen::MatrixBase< D > &A) constSizeDepType < NV >::template SegmentReturn< D >::ConstType jointVelocitySelector (const Eigen::MatrixBase< D > &a) constSizeDepType < NV >::template SegmentReturn< D >::ConstType jointVelocitySelector_impl (const Eigen::MatrixBase< D > &a) constint nq () constint nq_impl () constint nv () constint nv_impl () constint nvExtended () constint nvExtended_impl () constbool operator!= (const JointModelBase < OtherDerived > &other) constbool 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, int vExtended)std::string shortname () const
template<typename _Scalar, int _Options> struct pinocchio::JointModelEllipsoidTpl< _Scalar, _Options >
Ellipsoid joint - constrains motion to ellipsoid surface with 3-DOF.
The configuration space uses three angles (q₀, q₁, q₂) representing:
Rotation about the x-axis Rotation about the y-axis Spin about the "normal" direction The joint position on the ellipsoid surface is computed as:
where are the radii along the x, y, z axes respectively.
Note For non-spherical ellipsoids, the third rotation axis is only approximately normal to the surface. It corresponds to the normal of an equivalent sphere while the translation follows the true ellipsoid surface. The "normal" direction is truly normal only when all radii are equal (sphere case). See also Seth et al., "Minimal formulation of joint motion for biomechanisms," Nonlinear Dynamics 62(1):291-303, 2010. Definition at line 389 of file joint-ellipsoid.hpp .