Simox  2.3.74.0
VirtualRobot::JointLimitAvoidanceJacobi Class Reference
Inheritance diagram for VirtualRobot::JointLimitAvoidanceJacobi:
VirtualRobot::JacobiProvider

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW JointLimitAvoidanceJacobi (RobotNodeSetPtr rns, JacobiProvider::InverseJacobiMethod invJacMethod=JacobiProvider::eSVD)
 
Eigen::MatrixXf getJacobianMatrix () override
 
Eigen::MatrixXf getJacobianMatrix (VirtualRobot::SceneObjectPtr tcp) override
 
Eigen::VectorXf getError (float stepSize=1.0f) override
 
bool checkTolerances () override
 
- Public Member Functions inherited from VirtualRobot::JacobiProvider
 JacobiProvider (RobotNodeSetPtr rns, InverseJacobiMethod invJacMethod=eSVD)
 
virtual ~JacobiProvider ()
 
virtual Eigen::MatrixXd getJacobianMatrixD ()
 
virtual Eigen::MatrixXd getJacobianMatrixD (SceneObjectPtr tcp)
 
virtual Eigen::MatrixXf computePseudoInverseJacobianMatrix (const Eigen::MatrixXf &m, const Eigen::VectorXf regularization=Eigen::VectorXf()) const
 
virtual Eigen::MatrixXd computePseudoInverseJacobianMatrixD (const Eigen::MatrixXd &m, const Eigen::VectorXd regularization=Eigen::VectorXd()) const
 
virtual Eigen::MatrixXf computePseudoInverseJacobianMatrix (const Eigen::MatrixXf &m, float invParameter, const Eigen::VectorXf regularization=Eigen::VectorXf()) const
 
virtual Eigen::MatrixXd computePseudoInverseJacobianMatrixD (const Eigen::MatrixXd &m, double invParameter, const Eigen::VectorXd regularization=Eigen::VectorXd()) const
 
virtual void updatePseudoInverseJacobianMatrix (Eigen::MatrixXf &invJac, const Eigen::MatrixXf &m, float invParameter=0.0f, Eigen::VectorXf regularization=Eigen::VectorXf()) const
 
virtual void updatePseudoInverseJacobianMatrixD (Eigen::MatrixXd &invJac, const Eigen::MatrixXd &m, double invParameter=0.0, Eigen::VectorXd regularization=Eigen::VectorXd()) const
 
virtual Eigen::MatrixXf getPseudoInverseJacobianMatrix (const Eigen::VectorXf regularization=Eigen::VectorXf())
 
virtual Eigen::MatrixXd getPseudoInverseJacobianMatrixD (const Eigen::VectorXd regularization=Eigen::VectorXd())
 
virtual Eigen::MatrixXf getPseudoInverseJacobianMatrix (SceneObjectPtr tcp, const Eigen::VectorXf regularization=Eigen::VectorXf())
 
virtual Eigen::MatrixXd getPseudoInverseJacobianMatrixD (SceneObjectPtr tcp, const Eigen::VectorXd regularization=Eigen::VectorXd())
 
virtual Eigen::VectorXf getJacobiRegularization (IKSolver::CartesianSelection mode=IKSolver::All)
 
VirtualRobot::RobotNodeSetPtr getRobotNodeSet ()
 
bool isInitialized ()
 
void setJointWeights (const Eigen::VectorXf &jointWeights)
 
virtual void print ()
 print Print current status of the IK solver More...
 
float getDampedSvdLambda () const
 
void setDampedSvdLambda (float value)
 
float getJacobiMMRegularization () const
 
void setJacobiMMRegularization (float value)
 
float getJacobiRadianRegularization () const
 
void setJacobiRadianRegularization (float value)
 

Protected Attributes

std::vector< RobotNodePtrnodes
 
- Protected Attributes inherited from VirtualRobot::JacobiProvider
std::string name
 
RobotNodeSetPtr rns
 
InverseJacobiMethod inverseMethod
 
bool initialized
 
Eigen::VectorXf jointWeights
 
float dampedSvdLambda
 
float jacobiMMRegularization
 
float jacobiRadianRegularization
 

Additional Inherited Members

- Public Types inherited from VirtualRobot::JacobiProvider
enum  InverseJacobiMethod { eSVD, eSVDDamped, eSVDDampedDynamic, eTranspose }
 Several methods are offered for inverting the Jacobi (i.e. building the Pseudoinverse) More...
 
- Protected Member Functions inherited from VirtualRobot::JacobiProvider
virtual void updatePseudoInverseJacobianMatrixInternal (Eigen::MatrixXf &invJac, const Eigen::MatrixXf &m, float invParameter=0.0f) const
 
virtual void updatePseudoInverseJacobianMatrixDInternal (Eigen::MatrixXd &invJac, const Eigen::MatrixXd &m, double invParameter=0.0) const
 

Detailed Description

This class creates a dummy Jacobian matrix (identity) that can be used to specify a joint space task (e.g. a joint limit avoidance task)

Constructor & Destructor Documentation

◆ JointLimitAvoidanceJacobi()

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

Member Function Documentation

◆ checkTolerances()

bool VirtualRobot::JointLimitAvoidanceJacobi::checkTolerances ( )
overridevirtual

Not used, only implemented because of superclass JacobiProvider, always returns true

Implements VirtualRobot::JacobiProvider.

◆ getError()

Eigen::VectorXf VirtualRobot::JointLimitAvoidanceJacobi::getError ( float  stepSize = 1.0f)
overridevirtual

Computes the complete error vector that is given by the distance to the center of the joint limits. Translational Joints are ignored (error = 0)

Parameters
stepSizeThe error can be reduced by this factor.

Implements VirtualRobot::JacobiProvider.

◆ getJacobianMatrix() [1/2]

Eigen::MatrixXf VirtualRobot::JointLimitAvoidanceJacobi::getJacobianMatrix ( )
overridevirtual

◆ getJacobianMatrix() [2/2]

Eigen::MatrixXf VirtualRobot::JointLimitAvoidanceJacobi::getJacobianMatrix ( VirtualRobot::SceneObjectPtr  tcp)
overridevirtual

Field Documentation

◆ nodes

std::vector<RobotNodePtr> VirtualRobot::JointLimitAvoidanceJacobi::nodes
protected