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...
 
- Public Member Functions inherited from hpp::constraints::DifferentiableFunction
virtual ~DifferentiableFunction ()
 
LiegroupElement operator() (vectorIn_t argument) const
 
void value (LiegroupElement &result, vectorIn_t argument) const
 
void jacobian (matrixOut_t jacobian, vectorIn_t argument) const
 
const ArrayXbactiveParameters () const
 
const ArrayXbactiveDerivativeParameters () const
 
size_type inputSize () const
 
size_type inputDerivativeSize () const
 
LiegroupSpacePtr_t outputSpace () const
 
size_type outputSize () const
 
size_type outputDerivativeSize () const
 
const std::string & name () const
 
virtual std::ostream & print (std::ostream &o) const
 
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
 
void finiteDifferenceCentral (matrixOut_t jacobian, vectorIn_t arg, DevicePtr_t robot=DevicePtr_t(), value_type eps=std::sqrt(Eigen::NumTraits< value_type >::epsilon())) const
 

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
 
- Protected Member Functions inherited from hpp::constraints::DifferentiableFunction
 DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, size_type sizeOutput, std::string name=std::string())
 
 DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, const LiegroupSpacePtr_t &outputSpace, std::string name=std::string())
 

Additional Inherited Members

- Protected Attributes inherited from hpp::constraints::DifferentiableFunction
size_type inputSize_
 
size_type inputDerivativeSize_
 
LiegroupSpacePtr_t outputSpace_
 
ArrayXb activeParameters_
 
ArrayXb activeDerivativeParameters_
 

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

◆ BlockIndex

◆ ColBlockIndices

◆ RowBlockIndices

Constructor & Destructor Documentation

◆ ExplicitRelativeTransformation() [1/2]

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

◆ ExplicitRelativeTransformation() [2/2]

hpp::core::ExplicitRelativeTransformation::ExplicitRelativeTransformation ( const ExplicitRelativeTransformation other)
inlineprotected

Member Function Documentation

◆ create()

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,

◆ createNumericalConstraint()

ExplicitNumericalConstraintPtr_t hpp::core::ExplicitRelativeTransformation::createNumericalConstraint ( )

◆ impl_compute()

void hpp::core::ExplicitRelativeTransformation::impl_compute ( LiegroupElement 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.

◆ impl_jacobian()

void hpp::core::ExplicitRelativeTransformation::impl_jacobian ( matrixOut_t  jacobian,
vectorIn_t  arg 
) const
protectedvirtual

◆ init()

void hpp::core::ExplicitRelativeTransformation::init ( const ExplicitRelativeTransformationWkPtr_t &  weak)
inlineprotected

◆ joint1()

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

Get joint 1.

◆ joint2()

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

Get joint 2.