3 #ifndef __SCREW_THEORY_IK_SUBPROBLEMS_HPP__
4 #define __SCREW_THEORY_IK_SUBPROBLEMS_HPP__
6 #include <kdl/frames.hpp>
8 #include "ScrewTheoryIkProblem.hpp"
9 #include "MatrixExponential.hpp"
47 const KDL::Rotation axisPow;
85 const KDL::Vector p, r, axesCross;
86 const KDL::Rotation axisPow1, axisPow2;
123 const KDL::Vector p, k;
124 const KDL::Rotation axisPow;
196 const KDL::Vector p, crossPr2;
197 const double crossPr2Norm;
234 const KDL::Vector p, k;
272 const KDL::Vector p, n;
273 const KDL::Rotation axisPow;
Abstraction of a term in a product of exponentials (POE) formula.
Definition: MatrixExponential.hpp:19
First Paden-Kahan subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:24
PadenKahanOne(int id, const MatrixExponential &exp, const KDL::Vector &p)
Constructor.
Definition: PadenKahanSubproblems.cpp:13
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PadenKahanSubproblems.cpp:22
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:40
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:37
Third Paden-Kahan subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:100
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PadenKahanSubproblems.cpp:161
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:117
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:114
PadenKahanThree(int id, const MatrixExponential &exp, const KDL::Vector &p, const KDL::Vector &k)
Constructor.
Definition: PadenKahanSubproblems.cpp:151
Second Paden-Kahan subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:60
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PadenKahanSubproblems.cpp:64
PadenKahanTwo(int id1, int id2, const MatrixExponential &exp1, const MatrixExponential &exp2, const KDL::Vector &p, const KDL::Vector &r)
Constructor.
Definition: PadenKahanSubproblems.cpp:49
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:76
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:79
Fourth Pardos-Gotor subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:248
PardosGotorFour(int id1, int id2, const MatrixExponential &exp1, const MatrixExponential &exp2, const KDL::Vector &p)
Constructor.
Definition: PardosGotorSubproblems.cpp:148
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PardosGotorSubproblems.cpp:160
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:263
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:266
First Pardos-Gotor subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:137
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:150
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PardosGotorSubproblems.cpp:32
PardosGotorOne(int id, const MatrixExponential &exp, const KDL::Vector &p)
Constructor.
Definition: PardosGotorSubproblems.cpp:24
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:153
Third Pardos-Gotor subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:211
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:228
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:225
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PardosGotorSubproblems.cpp:107
PardosGotorThree(int id, const MatrixExponential &exp, const KDL::Vector &p, const KDL::Vector &k)
Constructor.
Definition: PardosGotorSubproblems.cpp:98
Second Pardos-Gotor subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:172
bool solve(const KDL::Frame &rhs, const KDL::Frame &pointTransform, Solutions &solutions) const override
Finds a closed geometric solution for this IK subproblem.
Definition: PardosGotorSubproblems.cpp:63
PardosGotorTwo(int id1, int id2, const MatrixExponential &exp1, const MatrixExponential &exp2, const KDL::Vector &p)
Constructor.
Definition: PardosGotorSubproblems.cpp:51
const char * describe() const override
Return a human-readable description of this IK subproblem.
Definition: ScrewTheoryIkSubproblems.hpp:190
int solutions() const override
Number of local IK solutions.
Definition: ScrewTheoryIkSubproblems.hpp:187
Interface shared by all IK subproblems found in Screw Theory applied to Robotics.
Definition: ScrewTheoryIkProblem.hpp:26
std::vector< JointIdsToSolutions > Solutions
Collection of local IK solutions.
Definition: ScrewTheoryIkProblem.hpp:35
The main, catch-all namespace for Robotics Lab UC3M.
Definition: groups.dox:6