#include <KatanaKinematics5M180.h>
Classes | |
struct | angles_calc |
struct | position |
Public Member Functions | |
void | DK (coordinates &solution, encoders const ¤t_encoders) const |
void | IK (encoders::iterator solution, coordinates const &pose, encoders const &cur_angles) const |
void | init (metrics const &length, parameter_container const ¶meters) |
Private Types | |
typedef std::vector< angles_calc > | angles_container |
Private Member Functions | |
void | _setLength (metrics const &length) |
void | _setParameters (parameter_container const ¶meters) |
Private Attributes | |
metrics | _length |
parameter_container | _parameters |
Static Private Attributes | |
static const int | _nrOfPossibleSolutions = 1 |
static const double | _tolerance = 0.001 |
Definition at line 39 of file KatanaKinematics5M180.h.
typedef std::vector<angles_calc> KNI::KatanaKinematics5M180::angles_container [private] |
Definition at line 70 of file KatanaKinematics5M180.h.
void KNI::KatanaKinematics5M180::_setLength | ( | metrics const & | length | ) | [inline, private] |
Definition at line 78 of file KatanaKinematics5M180.h.
void KNI::KatanaKinematics5M180::_setParameters | ( | parameter_container const & | parameters | ) | [inline, private] |
Definition at line 79 of file KatanaKinematics5M180.h.
void KNI::KatanaKinematics5M180::DK | ( | coordinates & | solution, |
encoders const & | current_encoders | ||
) | const [virtual] |
Direct Kinematic. Calculates the actual position in cartesian coordinates using the given encoders
solution | This is where the algorithm will store the solution to (in cartesian coordinates) |
current_encoders | The encoder values which are being used for the calculation |
Implements KNI::KatanaKinematics.
Definition at line 30 of file KatanaKinematics5M180.cpp.
void KNI::KatanaKinematics5M180::IK | ( | encoders::iterator | solution, |
coordinates const & | pose, | ||
encoders const & | cur_angles | ||
) | const [virtual] |
Inverse Kinematic. Calculates one set of encoders (=one solution) for the given cartesian coordinates. You also have to provide the current encoders to allow the algorithm to choose between different valid solutions.
solution | This is where the algorithm will store the solution to (in encoders) |
pose | The target position in cartesian coordinates plus the euler angles for the direction of the gripper |
cur_angles | The current angles (in encoders) of the robot |
Implements KNI::KatanaKinematics.
Definition at line 65 of file KatanaKinematics5M180.cpp.
void KNI::KatanaKinematics5M180::init | ( | metrics const & | length, |
parameter_container const & | parameters | ||
) | [virtual] |
Initialize the parameters for the calculations. This is needed to validate the calculated angles and to choose an appropriate solution You have to provide 5 or 6 length's and parameters, depending on you robot type
Implements KNI::KatanaKinematics.
Definition at line 56 of file KatanaKinematics5M180.cpp.
metrics KNI::KatanaKinematics5M180::_length [private] |
Definition at line 72 of file KatanaKinematics5M180.h.
const int KNI::KatanaKinematics5M180::_nrOfPossibleSolutions = 1 [static, private] |
Definition at line 76 of file KatanaKinematics5M180.h.
Definition at line 73 of file KatanaKinematics5M180.h.
const double KNI::KatanaKinematics5M180::_tolerance = 0.001 [static, private] |
Definition at line 75 of file KatanaKinematics5M180.h.