All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | List of all members
hpp::core::ExplicitRelativeTransformation Class Reference

Relative transformation as an explicit constraint. More...

#include <hpp/core/explicit-relative-transformation.hh>

Inheritance diagram for hpp::core::ExplicitRelativeTransformation:
[legend]
Collaboration diagram for hpp::core::ExplicitRelativeTransformation:
[legend]

Public Member Functions

ExplicitNumericalConstraintPtr_t createNumericalConstraint ()
 
const JointConstPtr_tjoint1 () const
 Get joint 1. More...
 
const JointConstPtr_tjoint2 () const
 Get joint 2. More...
 

Static Public Member Functions

static
ExplicitRelativeTransformationPtr_t 
create (const std::string &name, const DevicePtr_t &robot, const JointConstPtr_t &joint1, const JointConstPtr_t &joint2, const Transform3f &frame1, const Transform3f &frame2)
 Return a shared pointer to a new instance. More...
 

Protected Types

typedef Eigen::BlockIndex BlockIndex
 
typedef Eigen::RowBlockIndices RowBlockIndices
 
typedef Eigen::ColBlockIndices ColBlockIndices
 

Protected Member Functions

 ExplicitRelativeTransformation (const std::string &name, const DevicePtr_t &robot, const JointConstPtr_t &joint1, const JointConstPtr_t &joint2, const Transform3f &frame1, const Transform3f &frame2, const segments_t inConf, const segments_t outConf, const segments_t inVel, const segments_t outVel, std::vector< bool > mask=std::vector< bool >(6, true))
 
 ExplicitRelativeTransformation (const ExplicitRelativeTransformation &other)
 
void init (const ExplicitRelativeTransformationWkPtr_t &weak)
 
void impl_compute (LiegroupElement &result, vectorIn_t argument) const
 Compute the value (dimension 7) of the freeflyer joint 2. More...
 
void impl_jacobian (matrixOut_t jacobian, vectorIn_t arg) const
 

Detailed Description

Relative transformation as an explicit constraint.

When the positions of two joints are constrained by a full transformation constraint, if the second joint is hold by a freeflyer sequence (R3 x SO(3)), the position of this latter joint can be explicitely expressed with respect to the position of the first joint.

This class provides this expression. The input configuration variables are the joint values of all joints except the above mentioned freeflyer joint. The output configuration variables are the 7 configuration variables of the freeflyer joint.

Member Typedef Documentation

Constructor & Destructor Documentation

hpp::core::ExplicitRelativeTransformation::ExplicitRelativeTransformation ( const std::string &  name,
const DevicePtr_t robot,
const JointConstPtr_t joint1,
const JointConstPtr_t joint2,
const Transform3f frame1,
const Transform3f frame2,
const segments_t  inConf,
const segments_t  outConf,
const segments_t  inVel,
const segments_t  outVel,
std::vector< bool >  mask = std::vector< bool >(6, true) 
)
protected
hpp::core::ExplicitRelativeTransformation::ExplicitRelativeTransformation ( const ExplicitRelativeTransformation other)
inlineprotected

Member Function Documentation

static ExplicitRelativeTransformationPtr_t hpp::core::ExplicitRelativeTransformation::create ( const std::string &  name,
const DevicePtr_t robot,
const JointConstPtr_t joint1,
const JointConstPtr_t joint2,
const Transform3f frame1,
const Transform3f frame2 
)
static

Return a shared pointer to a new instance.

Parameters
namethe name of the constraints,
robotthe robot the constraints is applied to,
joint1input joint
joint2output joint: position of this joint is computed with respect to joint1 position
frame1position of a fixed frame in joint 1,
frame2position of a fixed frame in joint 2,
ExplicitNumericalConstraintPtr_t hpp::core::ExplicitRelativeTransformation::createNumericalConstraint ( )
void hpp::core::ExplicitRelativeTransformation::impl_compute ( LiegroupElement result,
vectorIn_t  argument 
) const
protected

Compute the value (dimension 7) of the freeflyer joint 2.

Parameters
argumentvector of input configuration variables (all joints except freeflyer joint)
Return values
resultvector of output configuration variables corresponding to the freeflyer value.
void hpp::core::ExplicitRelativeTransformation::impl_jacobian ( matrixOut_t  jacobian,
vectorIn_t  arg 
) const
protected
void hpp::core::ExplicitRelativeTransformation::init ( const ExplicitRelativeTransformationWkPtr_t &  weak)
inlineprotected
const JointConstPtr_t& hpp::core::ExplicitRelativeTransformation::joint1 ( ) const
inline

Get joint 1.

const JointConstPtr_t& hpp::core::ExplicitRelativeTransformation::joint2 ( ) const
inline

Get joint 2.