hpp::constraints::explicit_::RelativeTransformation Class Reference

Relative transformation as a mapping between configuration variables. More...

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

Inheritance diagram for hpp::constraints::explicit_::RelativeTransformation:
[legend]
Collaboration diagram for hpp::constraints::explicit_::RelativeTransformation:
[legend]

Public Member Functions

const JointConstPtr_tjoint1 () const
 Get joint 1. More...
 
const JointConstPtr_tjoint2 () const
 Get joint 2. More...
 
- Public Member Functions inherited from hpp::constraints::DifferentiableFunction
virtual ~DifferentiableFunction ()
 
LiegroupElement operator() (vectorIn_t argument) const
 Evaluate the function at a given parameter. More...
 
void value (LiegroupElementRef result, vectorIn_t argument) const
 Evaluate the function at a given parameter. More...
 
void jacobian (matrixOut_t jacobian, vectorIn_t argument) const
 Computes the jacobian. More...
 
const ArrayXbactiveParameters () const
 Returns a vector of booleans that indicates whether the corresponding configuration parameter influences this constraints. More...
 
const ArrayXbactiveDerivativeParameters () const
 Returns a vector of booleans that indicates whether the corresponding velocity parameter influences this constraints. More...
 
size_type inputSize () const
 Get dimension of input vector. More...
 
size_type inputDerivativeSize () const
 Get dimension of input derivative vector. More...
 
LiegroupSpacePtr_t outputSpace () const
 Get output element. More...
 
size_type outputSize () const
 Get dimension of output vector. More...
 
size_type outputDerivativeSize () const
 Get dimension of output derivative vector. More...
 
const std::string & name () const
 Get function name. More...
 
virtual std::ostream & print (std::ostream &o) const
 Display object in a stream. More...
 
std::string context () const
 
void context (const std::string &c)
 
void finiteDifferenceForward (matrixOut_t jacobian, vectorIn_t arg, DevicePtr_t robot=DevicePtr_t(), value_type eps=std::sqrt(Eigen::NumTraits< value_type >::epsilon())) const
 Approximate the jacobian using forward finite difference. More...
 
void finiteDifferenceCentral (matrixOut_t jacobian, vectorIn_t arg, DevicePtr_t robot=DevicePtr_t(), value_type eps=std::sqrt(Eigen::NumTraits< value_type >::epsilon())) const
 Approximate the jacobian using forward finite difference. More...
 

Static Public Member Functions

static RelativeTransformationPtr_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

 RelativeTransformation (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))
 
 RelativeTransformation (const RelativeTransformation &other)
 
void init (const RelativeTransformationWkPtr_t &weak)
 
void impl_compute (LiegroupElementRef 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
 
- Protected Member Functions inherited from hpp::constraints::DifferentiableFunction
 DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, size_type sizeOutput, std::string name=std::string())
 Concrete class constructor should call this constructor. More...
 
 DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, const LiegroupSpacePtr_t &outputSpace, std::string name=std::string())
 Concrete class constructor should call this constructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from hpp::constraints::DifferentiableFunction
size_type inputSize_
 Dimension of input vector. More...
 
size_type inputDerivativeSize_
 Dimension of input derivative. More...
 
LiegroupSpacePtr_t outputSpace_
 Dimension of output vector. More...
 
ArrayXb activeParameters_
 Initialized to true by this class. More...
 
ArrayXb activeDerivativeParameters_
 Initialized to true by this class. More...
 

Detailed Description

Relative transformation as a mapping between configuration variables.

When the positions of two joints are constrained by a full transformation constraint, if the second joint is hold by a freeflyer joint, 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

typedef Eigen::BlockIndex hpp::constraints::explicit_::RelativeTransformation::BlockIndex
protected
typedef Eigen::ColBlockIndices hpp::constraints::explicit_::RelativeTransformation::ColBlockIndices
protected
typedef Eigen::RowBlockIndices hpp::constraints::explicit_::RelativeTransformation::RowBlockIndices
protected

Constructor & Destructor Documentation

hpp::constraints::explicit_::RelativeTransformation::RelativeTransformation ( 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::constraints::explicit_::RelativeTransformation::RelativeTransformation ( const RelativeTransformation other)
inlineprotected

Member Function Documentation

static RelativeTransformationPtr_t hpp::constraints::explicit_::RelativeTransformation::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,
void hpp::constraints::explicit_::RelativeTransformation::impl_compute ( LiegroupElementRef  result,
vectorIn_t  argument 
) const
protectedvirtual

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.

Implements hpp::constraints::DifferentiableFunction.

void hpp::constraints::explicit_::RelativeTransformation::impl_jacobian ( matrixOut_t  jacobian,
vectorIn_t  arg 
) const
protectedvirtual
void hpp::constraints::explicit_::RelativeTransformation::init ( const RelativeTransformationWkPtr_t &  weak)
inlineprotected
const JointConstPtr_t& hpp::constraints::explicit_::RelativeTransformation::joint1 ( ) const
inline

Get joint 1.

const JointConstPtr_t& hpp::constraints::explicit_::RelativeTransformation::joint2 ( ) const
inline

Get joint 2.