kinematics-dynamics
|
Automated IK solution finder. More...
#include <ScrewTheoryIkProblem.hpp>
Classes | |
struct | PoeTerm |
Helper structure that holds the state of a POE term. More... | |
Public Member Functions | |
ScrewTheoryIkProblemBuilder (const PoeExpression &poe) | |
Constructor. | |
ScrewTheoryIkProblem * | build () |
Finds a valid sequence of geometric subproblems that solve a global IK problem. | |
Private Member Functions | |
ScrewTheoryIkProblem::Steps | searchSolutions () |
void | refreshSimplificationState () |
void | simplify (int depth) |
void | simplifyWithPadenKahanOne (const KDL::Vector &point) |
void | simplifyWithPadenKahanThree (const KDL::Vector &point) |
void | simplifyWithPardosOne () |
ScrewTheoryIkProblem::JointIdsToSubproblem | trySolve (int depth) |
Static Private Member Functions | |
static std::vector< KDL::Vector > | searchPoints (const PoeExpression &poe) |
Private Attributes | |
PoeExpression | poe |
std::vector< KDL::Vector > | points |
std::vector< KDL::Vector > | testPoints |
std::vector< PoeTerm > | poeTerms |
Static Private Attributes | |
static const int | MAX_SIMPLIFICATION_DEPTH = 2 |
This class helps to automate the process for configuring a valid IK problem given its geometric data only. It is intended to take care of the generation and configuration of known subproblems, whereas particular joint-space solutions are meant to be computed on runtime by ScrewTheoryIkProblem.
ScrewTheoryIkProblemBuilder::ScrewTheoryIkProblemBuilder | ( | const PoeExpression & | poe | ) |
poe | Product of exponentials (POE) formula. |
ScrewTheoryIkProblem * ScrewTheoryIkProblemBuilder::build | ( | ) |