pinocchio  1.2.6-7-g6de3e-dirty
JointModelBase< Derived > Struct Template Reference
Collaboration diagram for JointModelBase< Derived >:
[legend]

Public Member Functions

JointModelDerived & derived ()
 
const JointModelDerived & derived () const
 
JointDataDerived createData () const
 
void calc (JointDataDerived &data, const Eigen::VectorXd &qs) const
 
void calc (JointDataDerived &data, const Eigen::VectorXd &qs, const Eigen::VectorXd &vs) const
 
void calc_aba (JointDataDerived &data, Inertia::Matrix6 &I, const bool update_I=false) const
 
ConfigVector_t::Scalar finiteDifferenceIncrement () const
 Return the resolution of the finite differerence increment according to the Scalar type. More...
 
ConfigVector_t integrate (const Eigen::VectorXd &q, const Eigen::VectorXd &v) const
 Integrate joint's configuration for a tangent vector during one unit time. More...
 
ConfigVector_t interpolate (const Eigen::VectorXd &q0, const Eigen::VectorXd &q1, double u) const
 Interpolation between two joint's configurations. More...
 
ConfigVector_t random () const
 Generate a random joint configuration, normalizing quaternions when necessary. More...
 
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. More...
 
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 More...
 
double distance (const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) const
 Distance between two configurations of the joint. More...
 
ConfigVector_t neutralConfiguration () const
 Get neutral configuration of joint. More...
 
void normalize (Eigen::VectorXd &q) const
 Normalize a configuration. More...
 
void normalize_impl (Eigen::VectorXd &) const
 Default implementation of normalize.
 
bool isSameConfiguration (const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, const Scalar &prec=Eigen::NumTraits< Scalar >::dummy_precision()) const
 Check if two configurations are equivalent within the given precision. More...
 
int nv () const
 
int nq () const
 
int nv_impl () const
 
int nq_impl () const
 
int idx_q () const
 
int idx_v () const
 
JointIndex id () const
 
void setIndexes (JointIndex id, int q, int v)
 
void setIndexes_impl (JointIndex id, int q, int v)
 
void disp (std::ostream &os) const
 
std::string shortname () const
 
template<class OtherDerived >
bool operator== (const JointModelBase< OtherDerived > &other) const
 
template<class OtherDerived >
bool isEqual (const JointModelBase< OtherDerived > &) const
 
bool isEqual (const JointModelBase< Derived > &other) const
 
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
 

Static Public Member Functions

static std::string classname ()
 

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef traits< Derived >::JointDerived JointDerived
 
 SE3_JOINT_TYPEDEF_TEMPLATE
 
JointIndex i_id
 
int i_q
 
int i_v
 

Protected Member Functions

 JointModelBase ()
 
 JointModelBase (const JointModelBase &clone)
 
JointModelBaseoperator= (const JointModelBase &clone)
 

Friends

std::ostream & operator<< (std::ostream &os, const JointModelBase< Derived > &joint)
 

Detailed Description

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

Definition at line 196 of file joint-base.hpp.

Constructor & Destructor Documentation

JointModelBase ( )
inlineprotected

Default constructor: protected.

Prevent the construction of stand-alone JointModelBase.

Definition at line 435 of file joint-base.hpp.

JointModelBase ( const JointModelBase< Derived > &  clone)
inlineprotected

Copy constructor: protected.

Copy of stand-alone JointModelBase are prevented, but can be used from inhereting objects. Copy is done by calling copy operator.

Definition at line 441 of file joint-base.hpp.

Member Function Documentation

TangentVector_t 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

Definition at line 290 of file joint-base.hpp.

double 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

Definition at line 301 of file joint-base.hpp.

ConfigVector_t::Scalar finiteDifferenceIncrement ( ) const
inline

Return the resolution of the finite differerence increment according to the Scalar type.

Remarks
Ideally, this function must depend on the value of q
Returns
The finite difference increment.

Definition at line 229 of file joint-base.hpp.

ConfigVector_t 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

Definition at line 240 of file joint-base.hpp.

ConfigVector_t 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)

Definition at line 253 of file joint-base.hpp.

bool isSameConfiguration ( const Eigen::VectorXd &  q1,
const Eigen::VectorXd &  q2,
const Scalar &  prec = Eigen::NumTraits<Scalar>::dummy_precision() 
) const
inline

Check if two configurations are equivalent within the given precision.

Parameters
[in]q1Configuration 1 (size full model.nq)
[in]q2Configuration 2 (size full model.nq)

Definition at line 331 of file joint-base.hpp.

ConfigVector_t neutralConfiguration ( ) const
inline

Get neutral configuration of joint.

Returns
The joint's neutral configuration

Definition at line 309 of file joint-base.hpp.

void normalize ( Eigen::VectorXd &  q) const
inline

Normalize a configuration.

Parameters
[in,out]qConfiguration to normalize (size full model.nq)

Definition at line 317 of file joint-base.hpp.

JointModelBase& operator= ( const JointModelBase< Derived > &  clone)
inlineprotected

Copy operator: protected.

Copy of stand-alone JointModelBase are prevented, but can be used from inhereting objects.

Definition at line 447 of file joint-base.hpp.

ConfigVector_t 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

Definition at line 265 of file joint-base.hpp.

ConfigVector_t 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

Definition at line 277 of file joint-base.hpp.


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