|
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> |
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 interval-based version of this algorithm exists to define this distance in Cartesian space.
Definition at line 477 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 365 of file inverse.cpp.