KatanaNativeInterface  $VERSION$
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
KNI::KatanaKinematics6M90G Class Reference

#include <KatanaKinematics6M90G.h>

Inheritance diagram for KNI::KatanaKinematics6M90G:
Inheritance graph
Collaboration diagram for KNI::KatanaKinematics6M90G:
Collaboration graph

List of all members.

Classes

struct  angles_calc
struct  position

Public Member Functions

void init (metrics const &length, parameter_container const &parameters)
 Initialize the parameters for the calculations.
void DK (coordinates &solution, encoders const &current_encoders) const
 Direct Kinematic.
void IK (encoders::iterator solution, coordinates const &pose, encoders const &cur_angles) const
 Inverse Kinematic.
- Public Member Functions inherited from KNI::KatanaKinematics
virtual ~KatanaKinematics ()

Private Types

typedef std::vector< angles_calcangles_container

Private Member Functions

void _setLength (metrics const &length)
void _setParameters (parameter_container const &parameters)
void IK_theta234theta5 (angles_calc &angle, const position &p_gr) const
void IK_b1b2costh3_6MS (angles_calc &a, const position &p) const
void thetacomp (angles_calc &a, const position &p_m) const
bool angledef (angles_calc &a) const
bool GripperTest (const position &p_gr, const angles_calc &angle) const
bool AnglePositionTest (const angles_calc &a) const
bool PositionTest6MS (const angles_calc &a, const position &p) const

Private Attributes

metrics _length
parameter_container _parameters

Static Private Attributes

static const double _tolerance
static const int _nrOfPossibleSolutions

Additional Inherited Members

- Public Types inherited from KNI::KatanaKinematics
typedef std::vector
< KinematicParameters
parameter_container
typedef std::vector< double > angles
 Being used to store angles (in radian).
typedef std::vector< double > coordinates
 To store coordinates.
typedef std::vector< double > metrics
 To store metrics, 'aka' the length's of the different segments of the robot.
typedef std::vector< int > encoders
 To store encoders.

Detailed Description

Author:
Tiziano Mueller tizia.nosp@m.no.m.nosp@m.uelle.nosp@m.r@ne.nosp@m.uroni.nosp@m.cs.c.nosp@m.h
Christoph Voser chris.nosp@m.toph.nosp@m..vose.nosp@m.r@ne.nosp@m.uroni.nosp@m.cs.c.nosp@m.h

Definition at line 39 of file KatanaKinematics6M90G.h.


Member Typedef Documentation

Definition at line 70 of file KatanaKinematics6M90G.h.


Member Function Documentation

void KNI::KatanaKinematics6M90G::_setLength ( metrics const &  length)
inlineprivate

Definition at line 78 of file KatanaKinematics6M90G.h.

void KNI::KatanaKinematics6M90G::_setParameters ( parameter_container const &  parameters)
inlineprivate

Definition at line 79 of file KatanaKinematics6M90G.h.

bool KNI::KatanaKinematics6M90G::angledef ( angles_calc a) const
private
bool KNI::KatanaKinematics6M90G::AnglePositionTest ( const angles_calc a) const
private
void KNI::KatanaKinematics6M90G::DK ( coordinates solution,
encoders const &  current_encoders 
) const
virtual

Direct Kinematic.

Calculates the actual position in cartesian coordinates using the given encoders

Parameters:
solutionThis is where the algorithm will store the solution to (in cartesian coordinates)
current_encodersThe encoder values which are being used for the calculation
Note:
strong guarantee provided

Implements KNI::KatanaKinematics.

bool KNI::KatanaKinematics6M90G::GripperTest ( const position p_gr,
const angles_calc angle 
) const
private
void KNI::KatanaKinematics6M90G::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.

Parameters:
solutionThis is where the algorithm will store the solution to (in encoders)
poseThe target position in cartesian coordinates plus the euler angles for the direction of the gripper
cur_anglesThe current angles (in encoders) of the robot
Note:
strong guarantee provided

Implements KNI::KatanaKinematics.

void KNI::KatanaKinematics6M90G::IK_b1b2costh3_6MS ( angles_calc a,
const position p 
) const
private
void KNI::KatanaKinematics6M90G::IK_theta234theta5 ( angles_calc angle,
const position p_gr 
) const
private
void KNI::KatanaKinematics6M90G::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.

bool KNI::KatanaKinematics6M90G::PositionTest6MS ( const angles_calc a,
const position p 
) const
private
void KNI::KatanaKinematics6M90G::thetacomp ( angles_calc a,
const position p_m 
) const
private

Member Data Documentation

metrics KNI::KatanaKinematics6M90G::_length
private

Definition at line 72 of file KatanaKinematics6M90G.h.

const int KNI::KatanaKinematics6M90G::_nrOfPossibleSolutions
staticprivate

Definition at line 76 of file KatanaKinematics6M90G.h.

parameter_container KNI::KatanaKinematics6M90G::_parameters
private

Definition at line 73 of file KatanaKinematics6M90G.h.

const double KNI::KatanaKinematics6M90G::_tolerance
staticprivate

Definition at line 75 of file KatanaKinematics6M90G.h.


The documentation for this class was generated from the following file: