virtual ~GenericTransformation ()void reference (const Transform3s &reference)Transform3s reference () const Get desired relative orientation. void joint1 (const JointConstPtr_t &joint) Set joint 1. JointConstPtr_t joint1 () const Get joint 1. void joint2 (const JointConstPtr_t &joint) Set joint 2. JointConstPtr_t joint2 () const Get joint 2. void frame1InJoint1 (const Transform3s &M) Set position of frame 1 in joint 1. const Transform3s & frame1InJoint1 () const Get position of frame 1 in joint 1. void frame2InJoint2 (const Transform3s &M) Set position of frame 2 in joint 2. const Transform3s & frame2InJoint2 () const Get position of frame 2 in joint 2. std::pair< JointConstPtr_t , JointConstPtr_t > dependsOnRelPoseBetween (DeviceConstPtr_t ) constvirtual std::ostream & print (std::ostream &o) const Display object in a stream. GenericTransformation (const std::string &name , const DevicePtr_t &robot, std::vector< bool > mask)virtual ~DifferentiableFunction ()LiegroupElement operator() (vectorIn_t argument) constvoid value (LiegroupElementRef result, vectorIn_t argument) constvoid jacobian (matrixOut_t jacobian, vectorIn_t argument) constconst ArrayXb & activeParameters () constconst ArrayXb & activeDerivativeParameters () constsize_type inputSize () const Get dimension of input vector. size_type inputDerivativeSize () constLiegroupSpacePtr_t outputSpace () const Get output space. size_type outputSize () const Get dimension of output vector. size_type outputDerivativeSize () const Get dimension of output derivative vector. const std::string & name () const Get function name. std::string context () constvoid 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())) constvoid finiteDifferenceCentral (matrixOut_t jacobian , vectorIn_t arg, DevicePtr_t robot=DevicePtr_t (), value_type eps=std::sqrt(Eigen::NumTraits< value_type >::epsilon())) constbool operator== (DifferentiableFunction const &other) constbool operator!= (DifferentiableFunction const &b) const
static Ptr_t create (const std::string &name , const DevicePtr_t &robot, const JointConstPtr_t &joint2 , const Transform3s &reference , std::vector< bool > mask=std::vector< bool >(DerSize , true))static Ptr_t create (const std::string &name , const DevicePtr_t &robot, const JointConstPtr_t &joint2 , const Transform3s &frame2, const Transform3s &frame1, std::vector< bool > mask=std::vector< bool >(DerSize , true))static Ptr_t create (const std::string &name , const DevicePtr_t &robot, const JointConstPtr_t &joint1 , const JointConstPtr_t &joint2 , const Transform3s &reference , std::vector< bool > mask=std::vector< bool >(DerSize , true))static Ptr_t create (const std::string &name , const DevicePtr_t &robot, const JointConstPtr_t &joint1 , const JointConstPtr_t &joint2 , const Transform3s &frame1, const Transform3s &frame2, std::vector< bool > mask=std::vector< bool >(DerSize , true))static DifferentiableFunctionPtr_t extract (DifferentiableFunctionPtr_t original, interval_t interval)
void init (const WkPtr_t &self)virtual void impl_compute (LiegroupElementRef result, ConfigurationIn_t argument) constvirtual void impl_jacobian (matrixOut_t jacobian , ConfigurationIn_t arg) constbool isEqual (const DifferentiableFunction &other) const DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, size_type sizeOutput, std::string name =std::string()) Concrete class constructor should call this constructor. DifferentiableFunction (size_type sizeInput, size_type sizeInputDerivative, const LiegroupSpacePtr_t &outputSpace , std::string name =std::string()) Concrete class constructor should call this constructor. virtual void impl_compute (LiegroupElementRef result, vectorIn_t argument) const =0 User implementation of function evaluation. virtual void impl_jacobian (matrixOut_t jacobian , vectorIn_t arg) const =0 DifferentiableFunction ()
template<int _Options> class hpp::constraints::GenericTransformation< _Options >
GenericTransformation class encapsulates 10 possible differentiable functions: Position , Orientation , OrientationSO3 , Transformation, TransformationR3xSO3 and their relative versions RelativeTransformationR3xSO3 , RelativePosition , RelativeOrientation , RelativeOrientationSO3 , RelativeTransformation .
These functions compute the position of frame GenericTransformation::frame2InJoint2 in joint GenericTransformation::joint2 frame, in the frame GenericTransformation::frame1InJoint1 in GenericTransformation::joint1 frame. For absolute functions, GenericTransformation::joint1 is NULL and joint1 frame is the world frame.
The value of the RelativeTransformation function is a 6-dimensional vector. The 3 first coordinates are the position of the center of the second frame expressed in the first frame. The 3 last coordinates are the log of the orientation of frame 2 in frame 1. The values of RelativePosition and RelativeOrientation are respectively the 3 first and the 3 last components of the above 6 dimensional vector.
The Jacobian is given by
For RelativeTransformationR3xSO3 , OrientationSO3 , the 3 last components are replaced by a quaternion.