Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

SIGEL_Robot::SIG_Joint Class Reference

SIG_Joint is an abstract class modelling a joint. More...

#include <SIG_Joint.h>

Inheritance diagram for SIGEL_Robot::SIG_Joint:

SIGEL_Robot::SIG_CylindricalJoint SIGEL_Robot::SIG_GlueJoint SIGEL_Robot::SIG_RotationalJoint SIGEL_Robot::SIG_TranslationalJoint List of all members.

Public Types

enum  JointType { tTranslationalJoint, tRotationalJoint, tCylindricalJoint, tGlueJoint }
 Because typeid does not work with all compilers, this enum indicates the type of link the objects stands for.


Public Methods

 SIG_Joint (SIG_Robot *par, QString n, int nr)
 Default constructor. More...

 SIG_Joint (SIG_Robot *par, QTextStream & tx)
 Stream constructor. More...

virtual ~SIG_Joint (void)
 Destructor. More...

QString getName (void) const
 Returns the name of the joint. More...

int getNumber (void) const
 Returns the number of the joint. More...

virtual JointType getJointType (void) const = 0
 Returns the type of the joint the object represents.

void setLeftLink (SIG_Link *thelink)
 Sets the left_side link. More...

void setRightLink (SIG_Link *thelink)
 Sets the right-side link. More...

SIG_Link const* getLeftLink () const
 Returns the left-side link. More...

SIG_Link const* getRightLink () const
 Returns the right-side link. More...

SIG_LinkotherSide (SIG_Link *myself) const
 Returns the link on the opposite side of the joint. More...

virtual void transformPoints (SIG_Link *side, DL_vector mov, DL_matrix rot) = 0
 Translates and rotates the points associated to the given link.

virtual void getGeomRelation (DL_vector &t, DL_matrix &o, SIG_Link *origin) = 0
 Returns the initial geometric relation of the link on the opposite side. More...

virtual void getMDH (SIG_Link * & predecessor, double & a, double & alpha, double & d, double & theta, double & screwD, double & screwTheta)
 If this is a joint with exactly one Degree of Freedom, getMDH will return a set of modified Denavit-Hartenberg parameters. More...

double getMechsMinPos () const
double getMechsMaxPos () const
virtual void writeToFileTransfer (QTextStream &tx)
 Writes the general joint data into a stream. More...

void transformToDynaMechs ( SIG_Link *predecessor, double screwD, double screwTheta )
bool continuable ( SIG_Link *predecessor ) const
void calculateMDH ( SIG_Link *caller )

Static Public Methods

void calculateCut ( DL_vector a, DL_vector u, DL_vector v, DL_vector b, DL_vector w, DL_vector &cut )
double normalizeRadAngle ( double input )

Protected Methods

void tfap (DL_vector mov, DL_matrix rot, DL_vector *p)
 some method to make my living easier. More...


Protected Attributes

SIG_Robotparent
QString name
int number
SIG_LinkleftLink
SIG_LinkrightLink
double mdh_a
double mdh_alpha
double mdh_d
double mdh_theta
double mdh_screw_d
double mdh_screw_theta
double mechsMinPos
double mechsMaxPos
int mdh_predecessor_is_left

Detailed Description

SIG_Joint is an abstract class modelling a joint.

The two adjacent links are named left and right. Despite this naming scheme, both links are treated equally.

Definition at line 19 of file SIG_Joint.h.


Member Enumeration Documentation

enum SIGEL_Robot::SIG_Joint::JointType
 

Because typeid does not work with all compilers, this enum indicates the type of link the objects stands for.

Definition at line 27 of file SIG_Joint.h.


Constructor & Destructor Documentation

SIGEL_Robot::SIG_Joint::SIG_Joint ( SIG_Robot * par,
QString n,
int nr )
 

Default constructor.

This will be used when the robot is parsed.

Definition at line 15 of file SIG_Joint.cpp.

SIGEL_Robot::SIG_Joint::SIG_Joint ( SIG_Robot * par,
QTextStream & tx )
 

Stream constructor.

This will be used when the robot has been serialised for saving or transmitting.

This is intended to be called by the constructor of a derived class, and therefore designed that way. Expect ugly things to happen otherwise.

Definition at line 26 of file SIG_Joint.cpp.

SIGEL_Robot::SIG_Joint::~SIG_Joint ( void ) [virtual]
 

Destructor.

Definition at line 46 of file SIG_Joint.cpp.


Member Function Documentation

void SIGEL_Robot::SIG_Joint::calculateCut ( DL_vector a,
DL_vector u,
DL_vector v,
DL_vector b,
DL_vector w,
DL_vector & cut ) [static]
 

Definition at line 734 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::calculateMDH ( SIG_Link * caller )
 

Definition at line 200 of file SIG_Joint.cpp.

bool SIGEL_Robot::SIG_Joint::continuable ( SIG_Link * predecessor ) const
 

Definition at line 193 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::getGeomRelation ( DL_vector & t,
DL_matrix & o,
SIG_Link * origin ) [pure virtual]
 

Returns the initial geometric relation of the link on the opposite side.

t will be filled with a translation vector, o with a rotation matrix.

Reimplemented in SIGEL_Robot::SIG_CylindricalJoint, SIGEL_Robot::SIG_GlueJoint, SIGEL_Robot::SIG_RotationalJoint, and SIGEL_Robot::SIG_TranslationalJoint.

SIG_Link const * SIGEL_Robot::SIG_Joint::getLeftLink ( void ) const
 

Returns the left-side link.

Definition at line 78 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::getMDH ( SIG_Link *& predecessor,
double & a,
double & alpha,
double & d,
double & theta,
double & screwD,
double & screwTheta ) [virtual]
 

If this is a joint with exactly one Degree of Freedom, getMDH will return a set of modified Denavit-Hartenberg parameters.

Reimplemented in SIGEL_Robot::SIG_RotationalJoint, and SIGEL_Robot::SIG_TranslationalJoint.

Definition at line 96 of file SIG_Joint.cpp.

double SIGEL_Robot::SIG_Joint::getMechsMaxPos ( ) const
 

Definition at line 132 of file SIG_Joint.cpp.

double SIGEL_Robot::SIG_Joint::getMechsMinPos ( ) const
 

Definition at line 127 of file SIG_Joint.cpp.

QString SIGEL_Robot::SIG_Joint::getName ( void ) const
 

Returns the name of the joint.

Definition at line 49 of file SIG_Joint.cpp.

Referenced by SIGEL_Simulation::SIG_DynaMechsSimulationQueries::sense().

int SIGEL_Robot::SIG_Joint::getNumber ( void ) const
 

Returns the number of the joint.

Definition at line 54 of file SIG_Joint.cpp.

Referenced by SIGEL_Simulation::SIG_DynaMechsSimulationData::SIG_DynaMechsSimulationData(), and SIGEL_Simulation::SIG_DynaMechsSimulationQueries::sense().

SIG_Link const * SIGEL_Robot::SIG_Joint::getRightLink ( void ) const
 

Returns the right-side link.

Definition at line 83 of file SIG_Joint.cpp.

double SIGEL_Robot::SIG_Joint::normalizeRadAngle ( double input ) [static]
 

Definition at line 757 of file SIG_Joint.cpp.

SIG_Link * SIGEL_Robot::SIG_Joint::otherSide ( SIG_Link * myself ) const
 

Returns the link on the opposite side of the joint.

Definition at line 88 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::setLeftLink ( SIG_Link * theLink )
 

Sets the left_side link.

Links on both side are treated equally. Left and right are only meant to identify them.

Definition at line 66 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::setRightLink ( SIG_Link * theLink )
 

Sets the right-side link.

Definition at line 72 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::tfap ( DL_vector mov,
DL_matrix rot,
DL_vector * p ) [protected]
 

some method to make my living easier.

Definition at line 120 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::transformToDynaMechs ( SIG_Link * predecessor,
double screwD,
double screwTheta )
 

Definition at line 137 of file SIG_Joint.cpp.

void SIGEL_Robot::SIG_Joint::writeToFileTransfer ( QTextStream & tx ) [virtual]
 

Writes the general joint data into a stream.

Reimplemented in SIGEL_Robot::SIG_CylindricalJoint, SIGEL_Robot::SIG_GlueJoint, SIGEL_Robot::SIG_RotationalJoint, and SIGEL_Robot::SIG_TranslationalJoint.

Definition at line 106 of file SIG_Joint.cpp.


Member Data Documentation

SIG_Link * SIGEL_Robot::SIG_Joint::leftLink [protected]
 

Definition at line 35 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_a [protected]
 

Definition at line 36 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_alpha [protected]
 

Definition at line 36 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_d [protected]
 

Definition at line 36 of file SIG_Joint.h.

int SIGEL_Robot::SIG_Joint::mdh_predecessor_is_left [protected]
 

Definition at line 38 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_screw_d [protected]
 

Definition at line 37 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_screw_theta [protected]
 

Definition at line 37 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mdh_theta [protected]
 

Definition at line 36 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mechsMaxPos [protected]
 

Definition at line 37 of file SIG_Joint.h.

double SIGEL_Robot::SIG_Joint::mechsMinPos [protected]
 

Definition at line 37 of file SIG_Joint.h.

QString SIGEL_Robot::SIG_Joint::name [protected]
 

Definition at line 33 of file SIG_Joint.h.

int SIGEL_Robot::SIG_Joint::number [protected]
 

Definition at line 34 of file SIG_Joint.h.

SIG_Robot * SIGEL_Robot::SIG_Joint::parent [protected]
 

Definition at line 32 of file SIG_Joint.h.

SIG_Link * SIGEL_Robot::SIG_Joint::rightLink [protected]
 

Definition at line 35 of file SIG_Joint.h.


The documentation for this class was generated from the following files:
Generated at Mon Sep 3 01:32:50 2001 for PG 368 - SIGEL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000