se3::JointModelBase< _JointModel > Struct Template Reference

#include <multibody/joint/joint-base.hpp>

List of all members.

Public Types

typedef _JointModel Derived
typedef JointModelBase
< _JointModel > 
Base
typedef traits< _JointModel >
::Joint 
Joint

Public Member Functions

JointModel & derived ()
const JointModel & derived () const
JointData createData () const
void calc (JointData &data, const Eigen::VectorXd &qs) const
void calc (JointData &data, const Eigen::VectorXd &qs, const Eigen::VectorXd &vs) const
void calc_aba (JointData &data, Inertia::Matrix6 &I, const bool update_I=false) const
ConfigVector_t integrate (const Eigen::VectorXd &q, const Eigen::VectorXd &v) const
 Integrate joint's configuration for a tangent vector during one unit time.
ConfigVector_t interpolate (const Eigen::VectorXd &q0, const Eigen::VectorXd &q1, double u) const
 Interpolation between two joint's configurations.
ConfigVector_t random () const
 Generate a random joint configuration, normalizing quaternions when necessary.
ConfigVector_t randomConfiguration (const ConfigVector_t &lower_pos_limit, const ConfigVector_t &upper_pos_limit) const
 Generate a configuration vector uniformly sampled among provided limits.
TangentVector_t difference (const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) const
 the tangent vector that must be integrated during one unit time to go from q0 to q1
double distance (const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) const
 Distance between two configurations of the joint.
int nv () const
int nq () const
int nv_impl () const
int nq_impl () const
const int & idx_q () const
const int & idx_v () const
const JointIndexid () const
void setIndexes (JointIndex id, int q, int v)
template<typename D >
SizeDepType< NQ >::template
SegmentReturn< D >::ConstType 
jointConfigSelector (const Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NQ >::template
SegmentReturn< D >::ConstType 
jointConfigSelector_impl (const Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NQ >::template
SegmentReturn< D >::Type 
jointConfigSelector (Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NQ >::template
SegmentReturn< D >::Type 
jointConfigSelector_impl (Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NV >::template
SegmentReturn< D >::ConstType 
jointVelocitySelector (const Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NV >::template
SegmentReturn< D >::ConstType 
jointVelocitySelector_impl (const Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NV >::template
SegmentReturn< D >::Type 
jointVelocitySelector (Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NV >::template
SegmentReturn< D >::Type 
jointVelocitySelector_impl (Eigen::MatrixBase< D > &a) const
template<typename D >
SizeDepType< NV >::template
ColsReturn< D >::ConstType 
jointCols (const Eigen::MatrixBase< D > &A) const
template<typename D >
SizeDepType< NV >::template
ColsReturn< D >::ConstType 
jointCols_impl (const Eigen::MatrixBase< D > &A) const
template<typename D >
SizeDepType< NV >::template
ColsReturn< D >::Type 
jointCols (Eigen::MatrixBase< D > &A) const
template<typename D >
SizeDepType< NV >::template
ColsReturn< D >::Type 
jointCols_impl (Eigen::MatrixBase< D > &A) const
JointModelDense< NQ, NV > toDense () const

Public Attributes

 SE3_JOINT_TYPEDEF_TEMPLATE
JointIndex i_id
int i_q
int i_v

template<typename _JointModel>
struct se3::JointModelBase< _JointModel >


Member Typedef Documentation

template<typename _JointModel>
typedef JointModelBase<_JointModel> se3::JointModelBase< _JointModel >::Base
template<typename _JointModel>
typedef _JointModel se3::JointModelBase< _JointModel >::Derived

Member Function Documentation

template<typename _JointModel>
const JointModel& se3::JointModelBase< _JointModel >::derived ( ) const [inline]
template<typename _JointModel>
TangentVector_t se3::JointModelBase< _JointModel >::difference ( const Eigen::VectorXd &  q0,
const Eigen::VectorXd &  q1 
) const [inline]

the tangent vector that must be integrated during one unit time to go from q0 to q1

Parameters:
[in]q0Initial configuration
[in]q1Wished configuration
Returns:
The corresponding velocity

Referenced by se3::DifferentiateStep::algo().

template<typename _JointModel>
double se3::JointModelBase< _JointModel >::distance ( const Eigen::VectorXd &  q0,
const Eigen::VectorXd &  q1 
) const [inline]

Distance between two configurations of the joint.

Parameters:
[in]q0Configuration 1
[in]q1Configuration 2
Returns:
The corresponding distance

Referenced by se3::DistanceStep::algo().

template<typename _JointModel>
ConfigVector_t se3::JointModelBase< _JointModel >::integrate ( const Eigen::VectorXd &  q,
const Eigen::VectorXd &  v 
) const [inline]

Integrate joint's configuration for a tangent vector during one unit time.

Parameters:
[in]qinitatial configuration (size full model.nq)
[in]vjoint velocity (size full model.nv)
Returns:
The configuration integrated

Referenced by se3::IntegrateStep::algo().

template<typename _JointModel>
ConfigVector_t se3::JointModelBase< _JointModel >::interpolate ( const Eigen::VectorXd &  q0,
const Eigen::VectorXd &  q1,
double  u 
) const [inline]

Interpolation between two joint's configurations.

Parameters:
[in]q0Initial configuration to interpolate
[in]q1Final configuration to interpolate
[in]uu in [0;1] position along the interpolation.
Returns:
The interpolated configuration (q0 if u = 0, q1 if u = 1)

Referenced by se3::InterpolateStep::algo().

template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template ColsReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointCols ( const Eigen::MatrixBase< D > &  A) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template ColsReturn<D>::Type se3::JointModelBase< _JointModel >::jointCols ( Eigen::MatrixBase< D > &  A) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template ColsReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointCols_impl ( const Eigen::MatrixBase< D > &  A) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template ColsReturn<D>::Type se3::JointModelBase< _JointModel >::jointCols_impl ( Eigen::MatrixBase< D > &  A) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NQ>::template SegmentReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointConfigSelector ( const Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NQ>::template SegmentReturn<D>::Type se3::JointModelBase< _JointModel >::jointConfigSelector ( Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NQ>::template SegmentReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointConfigSelector_impl ( const Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NQ>::template SegmentReturn<D>::Type se3::JointModelBase< _JointModel >::jointConfigSelector_impl ( Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template SegmentReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointVelocitySelector ( const Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template SegmentReturn<D>::Type se3::JointModelBase< _JointModel >::jointVelocitySelector ( Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template SegmentReturn<D>::ConstType se3::JointModelBase< _JointModel >::jointVelocitySelector_impl ( const Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
template<typename D >
SizeDepType<NV>::template SegmentReturn<D>::Type se3::JointModelBase< _JointModel >::jointVelocitySelector_impl ( Eigen::MatrixBase< D > &  a) const [inline]
template<typename _JointModel>
int se3::JointModelBase< _JointModel >::nq ( ) const [inline]
template<typename _JointModel>
int se3::JointModelBase< _JointModel >::nq_impl ( ) const [inline]
template<typename _JointModel>
int se3::JointModelBase< _JointModel >::nv ( ) const [inline]
template<typename _JointModel>
int se3::JointModelBase< _JointModel >::nv_impl ( ) const [inline]
template<typename _JointModel>
ConfigVector_t se3::JointModelBase< _JointModel >::random ( ) const [inline]

Generate a random joint configuration, normalizing quaternions when necessary.

Warning:
Do not take into account the joint limits. To shoot a configuration uniformingly depending on joint limits, see uniformySample
Returns:
The joint configuration
template<typename _JointModel>
ConfigVector_t se3::JointModelBase< _JointModel >::randomConfiguration ( const ConfigVector_t &  lower_pos_limit,
const ConfigVector_t &  upper_pos_limit 
) const [inline]

Generate a configuration vector uniformly sampled among provided limits.

Parameters:
[in]lower_pos_limitlower joint limit
[in]upper_pos_limitupper joint limit
Returns:
The joint configuration

Referenced by se3::RandomConfiguration::algo().

template<typename _JointModel>
void se3::JointModelBase< _JointModel >::setIndexes ( JointIndex  id,
int  q,
int  v 
) [inline]
template<typename _JointModel>
JointModelDense<NQ, NV> se3::JointModelBase< _JointModel >::toDense ( ) const [inline]

Member Data Documentation