
Namespace for algorithms related to solving the inverse kinematics. More...
Classes  
class  GlobalIKBase 
class  GlobalIKExtensive 
Finds all solutions to the Global IK. More...  
class  GlobalIKSemiBreadth 
Expands all nets until a resolution has been reached, then search only for a single solution. More...  
struct  GraphNode 
struct  Solution 
Typedefs  
using  SolutionSet = std::vector< Solution > 
Return type of the global inverse kinematics solvers. More...  
Functions  
bool  operator< (const GraphNode &left, const GraphNode &right) 
SolutionSet  solveGlobalIK (KBM::Models::KBM_ptr kbm, const Vector &lower, const Vector &upper, Real resolution=M_PI/90.0f) 
Algorithm to find the global solution to the inverse kinematics based on the KBM structure. More...  
SolutionSet  solveGlobalIK (Models::KBM_ptr kbm, const Vector &target, Real resolution) 
void  solveGlobalIK (unsigned int recursion, int side, SolutionSet &solutionSet, Models::KBM_ptr kbm, const Vector &lower, const Vector &upper, Real resolution, Vector spreadAngles, Vector center) 
Namespace for algorithms related to solving the inverse kinematics.
using SolutionSet = std::vector<Solution> 
Definition at line 647 of file inverse.cpp.
SolutionSet solveGlobalIK  (  KBM::Models::KBM_ptr  kbm, 
const Vector &  lower,  
const Vector &  upper,  
Real  resolution = M_PI/90.0f 

) 
Algorithm to find the global solution to the inverse kinematics based on the KBM structure.
Work in progress.
kbm  The already learned KBM representation of a kinematics. 
lower  The lower bound of the interval in Cartesian space. 
upper  The upper bound of the interval in Cartesian space. Lower and upper bounds should be a target destination plus a desired tolerance, but can be chosen with equal values. 
resolution  The granularity of the found solutions (defaults to ). 
This algorithm solves the inverse kinematics globally and numerically by using an interval based version of the forward kinemtatics
which can be subdivided easily because of the linearisation emerging from the KBM model. This means that if there exist more than a single solution, a list of intervals that probably contain a solution. Specifically, this means that the target position lies within the bounding box of the control net of the subdivised kbm. If a sufficient amount of steps has been performed, the solution is garantueed to lie at least close to the desired target. The number of steps can be regulated by the resolution parameter (i.e., ). An intervalbased version of this algorithm exists to define this distance in Cartesian space.
Allow for additional constraints and behaviors in the form of a functor parameter.
Transform into class (with solution set embedded). For easier parameter settings. Further, SolutionSet should be a class with more information.
Change the enum type in KBM::Models::KBM::BBCheckType such that they can be combined by binary operators.
Allow depth search, also conditional after a given accuracy to avoid multiple solutions.
Definition at line 424 of file inverse.cpp.
SolutionSet memoryx::KBM::Inverse::solveGlobalIK  (  Models::KBM_ptr  kbm, 
const Vector &  target,  
Real  resolution  
) 
void memoryx::KBM::Inverse::solveGlobalIK  (  unsigned int  recursion, 
int  side,  
SolutionSet &  solutionSet,  
Models::KBM_ptr  kbm,  
const Vector &  lower,  
const Vector &  upper,  
Real  resolution,  
Vector  spreadAngles,  
Vector  center  
) 
Definition at line 344 of file inverse.cpp.