#include <KatanaKinematics6M180.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) |
bool | angledef (angles_calc &a) const |
bool | AnglePositionTest (const angles_calc &a) const |
void | IK_b1b2costh3_6M180 (angles_calc &a, const position &p) const |
bool | PositionTest6M180 (const angles_calc &a, const position &p) const |
void | thetacomp (angles_calc &a, const position &p_m) const |
Private Attributes | |
metrics | _length |
parameter_container | _parameters |
Static Private Attributes | |
static const int | _nrOfPossibleSolutions = 8 |
static const double | _tolerance = 0.001 |
Definition at line 40 of file KatanaKinematics6M180.h.
typedef std::vector<angles_calc> KNI::KatanaKinematics6M180::angles_container [private] |
Definition at line 71 of file KatanaKinematics6M180.h.
void KNI::KatanaKinematics6M180::_setLength | ( | metrics const & | length | ) | [inline, private] |
Definition at line 79 of file KatanaKinematics6M180.h.
void KNI::KatanaKinematics6M180::_setParameters | ( | parameter_container const & | parameters | ) | [inline, private] |
Definition at line 80 of file KatanaKinematics6M180.h.
bool KNI::KatanaKinematics6M180::angledef | ( | angles_calc & | a | ) | const [private] |
Definition at line 142 of file KatanaKinematics6M180.cpp.
bool KNI::KatanaKinematics6M180::AnglePositionTest | ( | const angles_calc & | a | ) | const [private] |
Definition at line 166 of file KatanaKinematics6M180.cpp.
void KNI::KatanaKinematics6M180::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 31 of file KatanaKinematics6M180.cpp.
void KNI::KatanaKinematics6M180::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 190 of file KatanaKinematics6M180.cpp.
void KNI::KatanaKinematics6M180::IK_b1b2costh3_6M180 | ( | angles_calc & | a, |
const position & | p | ||
) | const [private] |
Definition at line 100 of file KatanaKinematics6M180.cpp.
void KNI::KatanaKinematics6M180::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 92 of file KatanaKinematics6M180.cpp.
bool KNI::KatanaKinematics6M180::PositionTest6M180 | ( | const angles_calc & | a, |
const position & | p | ||
) | const [private] |
Definition at line 126 of file KatanaKinematics6M180.cpp.
void KNI::KatanaKinematics6M180::thetacomp | ( | angles_calc & | a, |
const position & | p_m | ||
) | const [private] |
Definition at line 112 of file KatanaKinematics6M180.cpp.
metrics KNI::KatanaKinematics6M180::_length [private] |
Definition at line 73 of file KatanaKinematics6M180.h.
const int KNI::KatanaKinematics6M180::_nrOfPossibleSolutions = 8 [static, private] |
Definition at line 77 of file KatanaKinematics6M180.h.
Definition at line 74 of file KatanaKinematics6M180.h.
const double KNI::KatanaKinematics6M180::_tolerance = 0.001 [static, private] |
Definition at line 76 of file KatanaKinematics6M180.h.