hpp-constraints  6.0.0
Definition of basic geometric constraints for motion planning
hpp::constraints::explicit_::ImplicitFunction Class Reference

#include <hpp/constraints/explicit/implicit-function.hh>

Inheritance diagram for hpp::constraints::explicit_::ImplicitFunction:
Collaboration diagram for hpp::constraints::explicit_::ImplicitFunction:

Public Types

typedef shared_ptr< ImplicitFunctionPtr_t
 

Public Member Functions

const DifferentiableFunctionPtr_tinputToOutput () const
 Get function f that maps input variables to output variables. More...
 
- Public Member Functions inherited from hpp::constraints::DifferentiableFunction
virtual ~DifferentiableFunction ()
 
LiegroupElement operator() (vectorIn_t argument) const
 
void value (LiegroupElementRef result, vectorIn_t argument) const
 
void jacobian (matrixOut_t jacobian, vectorIn_t argument) const
 
const ArrayXbactiveParameters () const
 
const ArrayXbactiveDerivativeParameters () const
 
size_type inputSize () const
 Get dimension of input vector. More...
 
size_type inputDerivativeSize () const
 
LiegroupSpacePtr_t outputSpace () const
 Get output space. 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
 
void finiteDifferenceCentral (matrixOut_t jacobian, vectorIn_t arg, DevicePtr_t robot=DevicePtr_t(), value_type eps=std::sqrt(Eigen::NumTraits< value_type >::epsilon())) const
 
bool operator== (DifferentiableFunction const &other) const
 
bool operator!= (DifferentiableFunction const &b) const
 

Static Public Member Functions

static Ptr_t create (const LiegroupSpacePtr_t &configSpace, const DifferentiableFunctionPtr_t &function, const segments_t &inputConf, const segments_t &outputConf, const segments_t &inputVelocity, const segments_t &outputVelocity)
 

Protected Member Functions

 ImplicitFunction (const LiegroupSpacePtr_t &configSpace, const DifferentiableFunctionPtr_t &function, const segments_t &inputConf, const segments_t &outputConf, const segments_t &inputVelocity, const segments_t &outputVelocity)
 
void impl_compute (LiegroupElementRef result, vectorIn_t argument) const
 Compute g (q_out) - f (q_in) More...
 
void impl_jacobian (matrixOut_t jacobian, vectorIn_t arg) const
 Compute Jacobian of g (q_out) - f (q_in) with respect to q. More...
 
bool isEqual (const DifferentiableFunction &other) const
 
std::pair< JointConstPtr_t, JointConstPtr_tdependsOnRelPoseBetween (DeviceConstPtr_t robot) 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...
 
 DifferentiableFunction ()
 

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_
 
ArrayXb activeDerivativeParameters_
 

Detailed Description

Function of the form q -> g (q_out) - f (q_in)

where

  • q_out is a vector composed of configuration variables of q,
  • q_in is the vector composed of other configuration variables of q,
  • f, g are differentiable functions with values in a Lie group.

This class is mainly used to create hpp::constraints::Explicit instances.

Member Typedef Documentation

◆ Ptr_t

Constructor & Destructor Documentation

◆ ImplicitFunction()

hpp::constraints::explicit_::ImplicitFunction::ImplicitFunction ( const LiegroupSpacePtr_t configSpace,
const DifferentiableFunctionPtr_t function,
const segments_t inputConf,
const segments_t outputConf,
const segments_t inputVelocity,
const segments_t outputVelocity 
)
protected

Constructor

Parameters
configSpaceinput space of this function - usually a robot configuration space,
functionfunction f,
inputConfset of indices defining q_in,
inputVelocityset of indices defining q_in derivative,
outputConfset of indices defining q_out
outputVelocityset of indices defining q_out derivative

Member Function Documentation

◆ create()

static Ptr_t hpp::constraints::explicit_::ImplicitFunction::create ( const LiegroupSpacePtr_t configSpace,
const DifferentiableFunctionPtr_t function,
const segments_t inputConf,
const segments_t outputConf,
const segments_t inputVelocity,
const segments_t outputVelocity 
)
static

create instance and return shared pointer

Parameters
configSpaceinput space of this function - usually a robot configuration space,
functionfunction f,
inputConfset of indices defining q_in,
inputVelocityset of indices defining q_in derivative,
outputConfset of indices defining q_out
outputVelocityset of indices defining q_out derivative

◆ dependsOnRelPoseBetween()

std::pair<JointConstPtr_t, JointConstPtr_t> hpp::constraints::explicit_::ImplicitFunction::dependsOnRelPoseBetween ( DeviceConstPtr_t  robot) const
protectedvirtual

Return pair of joints the relative pose between which modifies the function value if any

Currently checks if the implicit function specifies a joint where

  • q_out is a vector corresponding to only 1 joint
  • q_in is an empty vector (since f is constant and specifies the whole or part of the pose of the joint)
Parameters
robotthe robot the constraints are applied on,
Returns
pair of pointers to the lock joint and its parent joint, arranged in order of increasing joint index, or a pair of empty shared pointers if the implicit function does not specify a locked joint.

Reimplemented from hpp::constraints::DifferentiableFunction.

◆ impl_compute()

void hpp::constraints::explicit_::ImplicitFunction::impl_compute ( LiegroupElementRef  result,
vectorIn_t  argument 
) const
protectedvirtual

Compute g (q_out) - f (q_in)

Implements hpp::constraints::DifferentiableFunction.

◆ impl_jacobian()

void hpp::constraints::explicit_::ImplicitFunction::impl_jacobian ( matrixOut_t  jacobian,
vectorIn_t  arg 
) const
protectedvirtual

Compute Jacobian of g (q_out) - f (q_in) with respect to q.

Implements hpp::constraints::DifferentiableFunction.

◆ inputToOutput()

const DifferentiableFunctionPtr_t& hpp::constraints::explicit_::ImplicitFunction::inputToOutput ( ) const

Get function f that maps input variables to output variables.

◆ isEqual()

bool hpp::constraints::explicit_::ImplicitFunction::isEqual ( const DifferentiableFunction other) const
inlineprotectedvirtual

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