Simox  2.3.49
VirtualRobot::HierarchicalIK Class Reference
Inheritance diagram for VirtualRobot::HierarchicalIK:

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW HierarchicalIK (RobotNodeSetPtr rns, JacobiProvider::InverseJacobiMethod method=JacobiProvider::eSVD)
virtual ~HierarchicalIK ()
Eigen::VectorXf computeStep (const std::vector< JacobiProviderPtr > &jacDefs, float stepSize=0.2f)
void setVerbose (bool v)

Protected Attributes

RobotNodeSetPtr rns
bool verbose
JacobiProvider::InverseJacobiMethod method

Detailed Description

With hierarchical IK methods several tasks/constraints can be considered for IK solving. Internally a hierarchical gradient descent is generated where the Nullspace of the preceding task definition is used for the computation of the joint delta in the current task.

This implementation is based on the following publication: "A general framework for managing multiple tasks in highly redundant robotic systems.", Siciliano, B. ; Slotine, J.-J.E., Advanced Robotics, 1991. 'Robots in Unstructured Environments', 91 ICAR., Fifth International Conference on

Constructor & Destructor Documentation

VirtualRobot::HierarchicalIK::HierarchicalIK ( VirtualRobot::RobotNodeSetPtr  rns,
JacobiProvider::InverseJacobiMethod  method = JacobiProvider::eSVD 
VirtualRobot::HierarchicalIK::~HierarchicalIK ( )

Member Function Documentation

Eigen::VectorXf VirtualRobot::HierarchicalIK::computeStep ( const std::vector< JacobiProviderPtr > &  jacDefs,
float  stepSize = 0.2f 

computes hierarchical Jacobi step

jacDefsAll Jacobians an the corresponding error vectors that should be considered for computing a gradient step. The jacProviders specify the Jacobian and InverseJacobian functions. Jacobians must cover the same RobotNodeSet (i.e., the same number of DoF). The deltas specify the error for each Jacobian (e.g. in workspace). deltas[i].rows() must be equal to jacobies[i].rows().
stepSizeThe deltas can be reduced in order to avoid oscillating behavior.
void VirtualRobot::HierarchicalIK::setVerbose ( bool  v)

Field Documentation

JacobiProvider::InverseJacobiMethod VirtualRobot::HierarchicalIK::method
RobotNodeSetPtr VirtualRobot::HierarchicalIK::rns
bool VirtualRobot::HierarchicalIK::verbose