#include <KatanaKinematics.h>
Public Types | |
typedef std::vector< double > | angles |
typedef std::vector< double > | coordinates |
typedef std::vector< int > | encoders |
typedef std::vector< double > | metrics |
typedef std::vector < KinematicParameters > | parameter_container |
Public Member Functions | |
virtual void | DK (coordinates &solution, encoders const ¤t_encoders) const =0 |
virtual void | IK (encoders::iterator solution, coordinates const &pose, encoders const &cur_angles) const =0 |
virtual void | init (metrics const &length, parameter_container const ¶meters)=0 |
virtual | ~KatanaKinematics () |
The base class for all kinematic implementations.
Definition at line 63 of file KatanaKinematics.h.
typedef std::vector<double> KNI::KatanaKinematics::angles |
Being used to store angles (in radian).
Definition at line 71 of file KatanaKinematics.h.
typedef std::vector<double> KNI::KatanaKinematics::coordinates |
To store coordinates.
Definition at line 74 of file KatanaKinematics.h.
typedef std::vector<int> KNI::KatanaKinematics::encoders |
To store encoders.
Definition at line 80 of file KatanaKinematics.h.
typedef std::vector<double> KNI::KatanaKinematics::metrics |
To store metrics, 'aka' the length's of the different segments of the robot.
Definition at line 77 of file KatanaKinematics.h.
typedef std::vector<KinematicParameters> KNI::KatanaKinematics::parameter_container |
Definition at line 67 of file KatanaKinematics.h.
virtual KNI::KatanaKinematics::~KatanaKinematics | ( | ) | [inline, virtual] |
Definition at line 65 of file KatanaKinematics.h.
virtual void KNI::KatanaKinematics::DK | ( | coordinates & | solution, |
encoders const & | current_encoders | ||
) | const [pure 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 |
Implemented in KNI::KatanaKinematics6M180, KNI::KatanaKinematics5M180, KNI::KatanaKinematics6M90G, and KNI::KatanaKinematics6M90T.
virtual void KNI::KatanaKinematics::IK | ( | encoders::iterator | solution, |
coordinates const & | pose, | ||
encoders const & | cur_angles | ||
) | const [pure 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 |
Implemented in KNI::KatanaKinematics6M180, KNI::KatanaKinematics5M180, KNI::KatanaKinematics6M90G, and KNI::KatanaKinematics6M90T.
virtual void KNI::KatanaKinematics::init | ( | metrics const & | length, |
parameter_container const & | parameters | ||
) | [pure 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
Implemented in KNI::KatanaKinematics6M180, KNI::KatanaKinematics5M180, KNI::KatanaKinematics6M90G, and KNI::KatanaKinematics6M90T.