kinematics-dynamics
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
roboticslab::ScrewTheoryIkProblemBuilder Class Reference

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. More...
 
ScrewTheoryIkProblembuild ()
 Finds a valid sequence of geometric subproblems that solve a global IK problem. More...
 

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 ()
 
ScrewTheoryIkSubproblemtrySolve (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< PoeTermpoeTerms
 

Static Private Attributes

static const int MAX_SIMPLIFICATION_DEPTH = 2
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ScrewTheoryIkProblemBuilder()

ScrewTheoryIkProblemBuilder::ScrewTheoryIkProblemBuilder ( const PoeExpression poe)
Parameters
poeProduct of exponentials (POE) formula.

Member Function Documentation

◆ build()

ScrewTheoryIkProblem * ScrewTheoryIkProblemBuilder::build ( )
Returns
An instance of an IK problem solver if valid, null otherwise.

The documentation for this class was generated from the following files: