Simox  2.3.50
VirtualRobot::JacobiProvider Class Referenceabstract
Inheritance diagram for VirtualRobot::JacobiProvider:
VirtualRobot::CoMIK VirtualRobot::Constraint VirtualRobot::DifferentialIK VirtualRobot::JointLimitAvoidanceJacobi

Public Types

enum  InverseJacobiMethod { eSVD, eSVDDamped, eTranspose }
 Several methods are offered for inverting the Jacobi (i.e. building the Pseudoinverse) More...
 

Public Member Functions

 JacobiProvider (RobotNodeSetPtr rns, InverseJacobiMethod invJacMethod=eSVD)
 
virtual ~JacobiProvider ()
 
virtual Eigen::MatrixXf getJacobianMatrix ()=0
 
virtual Eigen::MatrixXd getJacobianMatrixD ()
 
virtual Eigen::MatrixXf getJacobianMatrix (SceneObjectPtr tcp)=0
 
virtual Eigen::MatrixXd getJacobianMatrixD (SceneObjectPtr tcp)
 
virtual Eigen::MatrixXf computePseudoInverseJacobianMatrix (const Eigen::MatrixXf &m) const
 
virtual Eigen::MatrixXd computePseudoInverseJacobianMatrixD (const Eigen::MatrixXd &m) const
 
virtual Eigen::MatrixXf computePseudoInverseJacobianMatrix (const Eigen::MatrixXf &m, float invParameter) const
 
virtual Eigen::MatrixXd computePseudoInverseJacobianMatrixD (const Eigen::MatrixXd &m, double invParameter) const
 
virtual void updatePseudoInverseJacobianMatrix (Eigen::MatrixXf &invJac, const Eigen::MatrixXf &m, float invParameter=0.0f) const
 
virtual void updatePseudoInverseJacobianMatrixD (Eigen::MatrixXd &invJac, const Eigen::MatrixXd &m, double invParameter=0.0) const
 
virtual Eigen::MatrixXf getPseudoInverseJacobianMatrix ()
 
virtual Eigen::MatrixXd getPseudoInverseJacobianMatrixD ()
 
virtual Eigen::MatrixXf getPseudoInverseJacobianMatrix (SceneObjectPtr tcp)
 
virtual Eigen::MatrixXd getPseudoInverseJacobianMatrixD (SceneObjectPtr tcp)
 
VirtualRobot::RobotNodeSetPtr getRobotNodeSet ()
 
virtual Eigen::VectorXf getError (float stepSize=1.0f)=0
 
virtual bool checkTolerances ()=0
 
bool isInitialized ()
 
void setJointWeights (const Eigen::VectorXf &jointWeights)
 
virtual void print ()
 print Print current status of the IK solver More...
 

Protected Attributes

std::string name
 
RobotNodeSetPtr rns
 
InverseJacobiMethod inverseMethod
 
bool initialized
 
Eigen::VectorXf jointWeights
 

Member Enumeration Documentation

Several methods are offered for inverting the Jacobi (i.e. building the Pseudoinverse)

Enumerator
eSVD 
eSVDDamped 
eTranspose 

Constructor & Destructor Documentation

VirtualRobot::JacobiProvider::JacobiProvider ( RobotNodeSetPtr  rns,
InverseJacobiMethod  invJacMethod = eSVD 
)
VirtualRobot::JacobiProvider::~JacobiProvider ( )
virtual

Member Function Documentation

virtual bool VirtualRobot::JacobiProvider::checkTolerances ( )
pure virtual
Eigen::MatrixXf VirtualRobot::JacobiProvider::computePseudoInverseJacobianMatrix ( const Eigen::MatrixXf &  m) const
virtual
Eigen::MatrixXf VirtualRobot::JacobiProvider::computePseudoInverseJacobianMatrix ( const Eigen::MatrixXf &  m,
float  invParameter 
) const
virtual
virtual Eigen::MatrixXd VirtualRobot::JacobiProvider::computePseudoInverseJacobianMatrixD ( const Eigen::MatrixXd &  m) const
virtual
Eigen::MatrixXd VirtualRobot::JacobiProvider::computePseudoInverseJacobianMatrixD ( const Eigen::MatrixXd &  m,
double  invParameter 
) const
virtual
virtual Eigen::VectorXf VirtualRobot::JacobiProvider::getError ( float  stepSize = 1.0f)
pure virtual

The error vector. the value depends on the implementation.

Implemented in VirtualRobot::DifferentialIK, VirtualRobot::Constraint, VirtualRobot::CoMIK, and VirtualRobot::JointLimitAvoidanceJacobi.

virtual Eigen::MatrixXf VirtualRobot::JacobiProvider::getJacobianMatrix ( )
pure virtual
virtual Eigen::MatrixXf VirtualRobot::JacobiProvider::getJacobianMatrix ( SceneObjectPtr  tcp)
pure virtual
MatrixXd VirtualRobot::JacobiProvider::getJacobianMatrixD ( )
virtual
MatrixXd VirtualRobot::JacobiProvider::getJacobianMatrixD ( SceneObjectPtr  tcp)
virtual
Eigen::MatrixXf VirtualRobot::JacobiProvider::getPseudoInverseJacobianMatrix ( )
virtual

Reimplemented in VirtualRobot::DifferentialIK.

Eigen::MatrixXf VirtualRobot::JacobiProvider::getPseudoInverseJacobianMatrix ( SceneObjectPtr  tcp)
virtual
Eigen::MatrixXd VirtualRobot::JacobiProvider::getPseudoInverseJacobianMatrixD ( )
virtual
Eigen::MatrixXd VirtualRobot::JacobiProvider::getPseudoInverseJacobianMatrixD ( SceneObjectPtr  tcp)
virtual
VirtualRobot::RobotNodeSetPtr VirtualRobot::JacobiProvider::getRobotNodeSet ( )
bool VirtualRobot::JacobiProvider::isInitialized ( )
void VirtualRobot::JacobiProvider::print ( )
virtual

print Print current status of the IK solver

Reimplemented in VirtualRobot::DifferentialIK, and VirtualRobot::CoMIK.

void VirtualRobot::JacobiProvider::setJointWeights ( const Eigen::VectorXf &  jointWeights)
void VirtualRobot::JacobiProvider::updatePseudoInverseJacobianMatrix ( Eigen::MatrixXf &  invJac,
const Eigen::MatrixXf &  m,
float  invParameter = 0.0f 
) const
virtual
void VirtualRobot::JacobiProvider::updatePseudoInverseJacobianMatrixD ( Eigen::MatrixXd &  invJac,
const Eigen::MatrixXd &  m,
double  invParameter = 0.0 
) const
virtual

Field Documentation

bool VirtualRobot::JacobiProvider::initialized
protected
InverseJacobiMethod VirtualRobot::JacobiProvider::inverseMethod
protected
Eigen::VectorXf VirtualRobot::JacobiProvider::jointWeights
protected
std::string VirtualRobot::JacobiProvider::name
protected
RobotNodeSetPtr VirtualRobot::JacobiProvider::rns
protected