KatanaNativeInterface  $VERSION$
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CikBase Class Reference

#include <ikBase.h>

Inheritance diagram for CikBase:
Inheritance graph
Collaboration diagram for CikBase:
Collaboration graph

Public Member Functions

 CikBase ()
 
 ~CikBase ()
 
void DKApos (double *position)
 Returns the current position of the robot in cartesian coordinates. More...
 
void getCoordinates (double &x, double &y, double &z, double &phi, double &theta, double &psi, bool refreshEncoders=true)
 Returns the current position of the robot in cartesian coordinates. More...
 
void IKCalculate (double X, double Y, double Z, double Al, double Be, double Ga, std::vector< int >::iterator solution_iter)
 Calculates a set of encoders for the given coordinates. More...
 
void IKCalculate (double X, double Y, double Z, double Al, double Be, double Ga, std::vector< int >::iterator solution_iter, const std::vector< int > &actualPosition)
 Calculates a set of encoders for the given coordinates. More...
 
void IKGoto (double X, double Y, double Z, double Al, double Be, double Ga, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Moves to robot to given cartesian coordinates and euler-angles. More...
 
void moveRobotTo (double x, double y, double z, double phi, double theta, double psi, bool waitUntilReached=false, int waitTimeout=TM_ENDLESS)
 Moves to robot to given cartesian coordinates and euler-angles. More...
 
void moveRobotTo (std::vector< double > coordinates, bool waitUntilReached=false, int waitTimeout=TM_ENDLESS)
 This method does the same as the one above and is mainly provided for convenience. More...
 
- Public Member Functions inherited from CKatana
CKatBaseGetBase ()
 Returns pointer to 'CKatBase*'. More...
 
 CKatana ()
 Constructor. More...
 
 ~CKatana ()
 Destructor. More...
 
void create (const char *configurationFile, CCplBase *protocol)
 Create routine. More...
 
void create (KNI::kmlFactory *infos, CCplBase *protocol)
 
void create (TKatGNL &gnl, TKatMOT &mot, TKatSCT &sct, TKatEFF &eff, CCplBase *protocol)
 Create routine. More...
 
void calibrate ()
 
void calibrate (long idx, TMotCLB clb, TMotSCP scp, TMotDYL dyl)
 
void searchMechStop (long idx, TSearchDir dir, TMotSCP scp, TMotDYL dyl)
 
void inc (long idx, int dif, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Increments the motor specified by an index postion in encoders. More...
 
void dec (long idx, int dif, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Decrements the motor specified by an index postion in encoders. More...
 
void mov (long idx, int tar, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Moves the motor specified by an index to a given target position in encoders. More...
 
void incDegrees (long idx, double dif, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Increments the motor specified by an index postion in degree units. More...
 
void decDegrees (long idx, double dif, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Decrements the motor specified by an index postion in degree units. More...
 
void movDegrees (long idx, double tar, bool wait=false, int tolerance=100, long timeout=TM_ENDLESS)
 Moves the motor specified by an index to a given target position in degree units. More...
 
void setTPSP (long idx, int tar)
 Sets the target position of a motor in encoders and allows the movement of that motor during the parallel movement. More...
 
void resetTPSP ()
 Forbid the movement of all the motors during the parallel movement. More...
 
void sendTPSP (bool wait=false, long timeout=TM_ENDLESS)
 Moves the allowed motors simultaneously. More...
 
void setTPSPDegrees (long idx, double tar)
 Sets the target position of a motor in degree Units and allows the movement of that motor during the parallel movement. More...
 
bool checkENLD (long idx, double degrees)
 Check if the absolute position in degrees is out of range. More...
 
void setGripperParameters (bool isPresent, int openEncoders, int closeEncoders)
 Tell the robot about the presence of a gripper. More...
 
void enableCrashLimits ()
 crash limits enable More...
 
void disableCrashLimits ()
 crash limits disable More...
 
void unBlock ()
 unblock robot after a crash More...
 
void setCrashLimit (long idx, int limit)
 unblock robot after a crash More...
 
void setPositionCollisionLimit (long idx, int limit)
 set collision position limits More...
 
void setSpeedCollisionLimit (long idx, int limit)
 set collision speed limits More...
 
short getNumberOfMotors () const
 
int getMotorEncoders (short number, bool refreshEncoders=true) const
 
std::vector< int >::iterator getRobotEncoders (std::vector< int >::iterator start, std::vector< int >::const_iterator end, bool refreshEncoders=true) const
 Write the cached encoders into the container. More...
 
std::vector< int > getRobotEncoders (bool refreshEncoders=true) const
 Get the current robot encoders as a vector-container. More...
 
short getMotorVelocityLimit (short number) const
 
short getMotorAccelerationLimit (short number) const
 
void setMotorVelocityLimit (short number, short velocity)
 
void setMotorAccelerationLimit (short number, short acceleration)
 
void setRobotVelocityLimit (short velocity)
 
void setRobotAccelerationLimit (short acceleration)
 Set the velocity of all motors together. More...
 
void moveMotorByEnc (short number, int encoders, bool waitUntilReached=false, int waitTimeout=0)
 
void moveMotorBy (short number, double radianAngle, bool waitUntilReached=false, int waitTimeout=0)
 
void moveMotorToEnc (short number, int encoders, bool waitUntilReached=false, int encTolerance=100, int waitTimeout=0)
 
void moveMotorTo (short number, double radianAngle, bool waitUntilReached=false, int waitTimeout=0)
 
void waitForMotor (short number, int encoders, int encTolerance=100, short mode=0, int waitTimeout=5000)
 
void moveRobotToEnc (std::vector< int >::const_iterator start, std::vector< int >::const_iterator end, bool waitUntilReached=false, int encTolerance=100, int waitTimeout=0)
 Move to robot to given encoders. More...
 
void moveRobotToEnc (std::vector< int > encoders, bool waitUntilReached=false, int encTolerance=100, int waitTimeout=0)
 Move to robot to given encoders in the vector-container. More...
 
void moveRobotToEnc4D (std::vector< int > target, int velocity=180, int acceleration=1, int encTolerance=100)
 Move to robot to given target in the vector-container with the given velocity, acceleration and tolerance. More...
 
void openGripper (bool waitUntilReached=false, int waitTimeout=100)
 
void closeGripper (bool waitUntilReached=false, int waitTimeout=100)
 
void freezeRobot ()
 
void freezeMotor (short number)
 
void switchRobotOn ()
 
void switchRobotOff ()
 
void switchMotorOn (short number)
 
void switchMotorOff (short number)
 
void startSplineMovement (bool exactflag, int moreflag=1)
 Start a spline movement. More...
 
void startFourSplinesMovement (bool exactflag)
 Start a fourSplines movement. More...
 
void sendSplineToMotor (unsigned short number, short targetPosition, short duration, short p1, short p2, short p3, short p4)
 Send one spline to the motor. More...
 
void sendFourSplinesToMotor (unsigned short number, short targetPosition, short duration, std::vector< short > &coefficients)
 Send four splines to the motor. More...
 
void sendFourSplinesToMotor (unsigned short number, short targetPosition, short duration, short p01, short p11, short p21, short p31, short p02, short p12, short p22, short p32, short p03, short p13, short p23, short p33, short p04, short p14, short p24, short p34)
 

Private Member Functions

void _initKinematics ()
 

Private Attributes

std::auto_ptr< KNI::KatanaKinematics_kinematicsImpl
 
bool _kinematicsIsInitialized
 

Additional Inherited Members

- Protected Member Functions inherited from CKatana
void setTolerance (long idx, int enc_tolerance)
 Sets the tolerance range in encoder units for the robots movements. More...
 
- Protected Attributes inherited from CKatana
CKatBasebase
 base katana More...
 
bool _gripperIsPresent
 
int _gripperOpenEncoders
 
int _gripperCloseEncoders
 
int mKatanaType
 The type of KatanaXXX (300 or 400) More...
 

Detailed Description

Definition at line 44 of file ikBase.h.

Constructor & Destructor Documentation

§ CikBase()

CikBase::CikBase ( )
inline

Definition at line 53 of file ikBase.h.

§ ~CikBase()

CikBase::~CikBase ( )
inline

Definition at line 54 of file ikBase.h.

References TM_ENDLESS.

Member Function Documentation

§ _initKinematics()

void CikBase::_initKinematics ( )
private

§ DKApos()

void CikBase::DKApos ( double *  position)

Returns the current position of the robot in cartesian coordinates.

Note
This method is deprecated, please use getCoordinates(...) instead

§ getCoordinates()

void CikBase::getCoordinates ( double &  x,
double &  y,
double &  z,
double &  phi,
double &  theta,
double &  psi,
bool  refreshEncoders = true 
)

Returns the current position of the robot in cartesian coordinates.

Parameters
refreshEncodersWith this parameter you can determine if the method reads the actual encoders from the robot or if it will use the cached ones
Note
This function returns a tuple in python

§ IKCalculate() [1/2]

void CikBase::IKCalculate ( double  X,
double  Y,
double  Z,
double  Al,
double  Be,
double  Ga,
std::vector< int >::iterator  solution_iter 
)

Calculates a set of encoders for the given coordinates.

This method reads the current encoders from the robot and involves therefore also communication to the robot

§ IKCalculate() [2/2]

void CikBase::IKCalculate ( double  X,
double  Y,
double  Z,
double  Al,
double  Be,
double  Ga,
std::vector< int >::iterator  solution_iter,
const std::vector< int > &  actualPosition 
)

Calculates a set of encoders for the given coordinates.

For this method you have to pass an actualPosition too. No communication with the robot will be done here.

§ IKGoto()

void CikBase::IKGoto ( double  X,
double  Y,
double  Z,
double  Al,
double  Be,
double  Ga,
bool  wait = false,
int  tolerance = 100,
long  timeout = TM_ENDLESS 
)

Moves to robot to given cartesian coordinates and euler-angles.

Note
This method is deprecated, please use moveRobotTo(...) instead

§ moveRobotTo() [1/2]

void CikBase::moveRobotTo ( double  x,
double  y,
double  z,
double  phi,
double  theta,
double  psi,
bool  waitUntilReached = false,
int  waitTimeout = TM_ENDLESS 
)

Moves to robot to given cartesian coordinates and euler-angles.

Note
Instead of a given tolerance, a default tolerance is being used

§ moveRobotTo() [2/2]

void CikBase::moveRobotTo ( std::vector< double >  coordinates,
bool  waitUntilReached = false,
int  waitTimeout = TM_ENDLESS 
)

This method does the same as the one above and is mainly provided for convenience.

Note
You can call this function in python using tuples: Example: katana.moveRobotTo( (x,y,z,phi,theta,psi) )
If the size of the container is smaller than 6, it will throw an exception

Member Data Documentation

§ _kinematicsImpl

std::auto_ptr<KNI::KatanaKinematics> CikBase::_kinematicsImpl
private

Definition at line 47 of file ikBase.h.

§ _kinematicsIsInitialized

bool CikBase::_kinematicsIsInitialized
private

Definition at line 48 of file ikBase.h.


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