kinematics-dynamics
Loading...
Searching...
No Matches
ChainIkSolverPos_ST.hpp
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3#ifndef __CHAIN_IK_SOLVER_POS_ST_HPP__
4#define __CHAIN_IK_SOLVER_POS_ST_HPP__
5
6#include <kdl/chainiksolver.hpp>
7
8#include "ScrewTheoryIkProblem.hpp"
9#include "ConfigurationSelector.hpp"
10
11namespace roboticslab
12{
13
23class ChainIkSolverPos_ST : public KDL::ChainIkSolverPos
24{
25public:
27 virtual ~ChainIkSolverPos_ST();
28
39 int CartToJnt(const KDL::JntArray & q_init, const KDL::Frame & p_in, KDL::JntArray & q_out) override;
40
48 void updateInternalDataStructures() override;
49
58 const char * strError(const int error) const override;
59
69 static KDL::ChainIkSolverPos * create(const KDL::Chain & chain, const ConfigurationSelectorFactory & configFactory);
70
72 static const int E_SOLUTION_NOT_FOUND = -100;
73
75 static const int E_OUT_OF_LIMITS = -101;
76
78 static const int E_NOT_REACHABLE = 100;
79
80private:
81 ChainIkSolverPos_ST(const KDL::Chain & chain, ScrewTheoryIkProblem * problem, ConfigurationSelector * config);
82
83 const KDL::Chain & chain;
84
85 ScrewTheoryIkProblem * problem;
86
87 ConfigurationSelector * config;
88};
89
90} // namespace roboticslab
91
92#endif // __CHAIN_IK_SOLVER_POS_ST_HPP__
IK solver using Screw Theory.
Definition ChainIkSolverPos_ST.hpp:24
static KDL::ChainIkSolverPos * create(const KDL::Chain &chain, const ConfigurationSelectorFactory &configFactory)
Create an instance of ChainIkSolverPos_ST.
Definition ChainIkSolverPos_ST.cpp:87
static const int E_SOLUTION_NOT_FOUND
Return code, IK solution not found.
Definition ChainIkSolverPos_ST.hpp:72
void updateInternalDataStructures() override
Update the internal data structures.
Definition ChainIkSolverPos_ST.cpp:69
int CartToJnt(const KDL::JntArray &q_init, const KDL::Frame &p_in, KDL::JntArray &q_out) override
Calculate inverse position kinematics.
Definition ChainIkSolverPos_ST.cpp:36
static const int E_OUT_OF_LIMITS
Return code, target pose out of robot limits.
Definition ChainIkSolverPos_ST.hpp:75
virtual ~ChainIkSolverPos_ST()
Destructor.
Definition ChainIkSolverPos_ST.cpp:25
static const int E_NOT_REACHABLE
Return code, solution out of reach.
Definition ChainIkSolverPos_ST.hpp:78
const char * strError(const int error) const override
Return a description of the last error.
Definition ChainIkSolverPos_ST.cpp:111
Base factory class for ConfigurationSelector.
Definition ConfigurationSelector.hpp:202
Abstract base class for a robot configuration strategy selector.
Definition ConfigurationSelector.hpp:21
Proxy IK problem solver class that iterates over a sequence of subproblems.
Definition ScrewTheoryIkProblem.hpp:99
The main, catch-all namespace for Robotics Lab UC3M.
Definition groups.dox:6