Joint Class Reference

Abstract base class for a single axis robot joint. More...

#include <joint.h>

Inheritance diagram for Joint:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void applyInternalWrench (double magnitude)=0
virtual void applyPassiveInternalWrenches ()
void cloneFrom (const Joint *original)
int getChainNum () const
 Returns the index of the chain this belongs to in the robot scheme.
double getCouplingRatio () const
DHTransformgetDH () const
double getDisplacement () const
 Returns the current displacement of the joint compared to the rest value.
int getDOFNum () const
virtual transf getDynamicsTran () const =0
double getDynamicsVal () const
double getFriction () const
SoTransform * getIVTran () const
double getMax () const
double getMin () const
int getNum () const
double getOffset () const
double getSpringForce () const
double getSpringStiffness ()
 Returns the linear stiffness coefficient of this joint spring.
transf const & getTran () const
virtual transf getTran (double jointVal) const =0
virtual JointT getType () const =0
virtual double getVal () const =0
double getVelocity () const
vec3 const & getWorldAxis () const
virtual int initJointFromXml (const TiXmlElement *root, int jnum)=0
 Joint (KinematicChain *k)
void setDraggerAttached (bool b)
void setDynamicsVal (double v)
void setMax (double max)
void setMin (double min)
void setRestValue (double r)
 Sets the rest value of the attached joint spring.
void setSpringStiffness (double k)
 Sets the linear stiffness coefficient of this joint spring.
virtual int setVal (double q)=0
void setVelocity (double v)
void setWorldAxis (const vec3 &wa)
virtual ~Joint ()

Static Public Member Functions

static Matrix jacobian (const Joint *joint, const transf &jointTran, const transf &toTarget, bool worldCoords)
 The Jacobian relating movement of this joint to movement of a point in the world.

Public Attributes

DynJointdynJoint
 [Temporary] this points to the DynJoint that contains this joint

Protected Attributes

double c
 Joint offset.
DHTransformDH
 The DHTransform from this joint frame to the next.
int DOFnum
 Index of the robot DOF this joint is connected to.
bool draggerAttached
 TRUE if an Inventor dragger is currently attached to this joint
double dynamicsVal
 The current value of the joint computed by inverse kinematic during dynamics.
double f0
 Coulomb friction value (constant offset).
double f1
 The coefficient of viscous friction.
SoTransform * IVTran
 A pointer to the associated Inventor transform used for joint draggers.
int jointNum
 The number of this joint in the robot's list.
double maxVal
double mCouplingRatio
 Linear multiplier of DOF value. JointVal = mCouplingRatio * (DOFVal) + c.
double minVal
 Joint limit.
double mK
double mRestVal
 The rest value of the joint spring.
KinematicChainowner
 A pointer to the kinematic chain that this joint is a part of.
double velocity
 The current velocity of the joint (first order approximation).
vec3 worldAxis
 Current joint axis expressed in world coordinates.

Detailed Description

Abstract base class for a single axis robot joint.

A robot joint allows either translation or rotation on a single axis. It is part of a kinematic chain, which is a serial set of links and joints. Multiple joints can be defined between two links. The value of the joint is linearly related to a robot DOF value, and has its own minimum and maximum values. The joint also computes its friction value during dynamic simulation using viscous and Coulomb friction values defined in the robot configuration file. The joint can also have a spring behavior, and it computes its own spring forces based on a linear stiffness coefficient.

Definition at line 132 of file joint.h.


Constructor & Destructor Documentation

Joint::Joint ( KinematicChain k  )  [inline]

Initializes all values and pointers to zero. Joint should set up with initJoint.

Definition at line 189 of file joint.h.

Joint::~Joint (  )  [virtual]

Unreferences the associated Inventor transform, and deletes the DHTransform associated with this joint.

Definition at line 113 of file joint.cpp.


Member Function Documentation

virtual void Joint::applyInternalWrench ( double  magnitude  )  [pure virtual]

This applies an internal wrench to this joint

Implemented in PrismaticJoint, and RevoluteJoint.

void Joint::applyPassiveInternalWrenches (  )  [virtual]

Applies internal passive joint wrenches (such as friction or springs)

Definition at line 143 of file joint.cpp.

void Joint::cloneFrom ( const Joint original  ) 

Clones this joint from another joint

Definition at line 119 of file joint.cpp.

int Joint::getChainNum (  )  const

Returns the index of the chain this belongs to in the robot scheme.

Definition at line 137 of file joint.cpp.

double Joint::getCouplingRatio (  )  const [inline]

Returns the linear multiplier relating this joint value to the DOF value.

Definition at line 267 of file joint.h.

DHTransform* Joint::getDH (  )  const [inline]

Returns a pointer to the DHTransform associated with this joint.

Definition at line 307 of file joint.h.

double Joint::getDisplacement (  )  const [inline]

Returns the current displacement of the joint compared to the rest value.

Definition at line 250 of file joint.h.

int Joint::getDOFNum (  )  const [inline]

Returns the index of the robot DOF this joint is connected to.

Definition at line 264 of file joint.h.

virtual transf Joint::getDynamicsTran (  )  const [pure virtual]

Returns the current joint transform as computed from IK during dynamic simulation.

Implemented in PrismaticJoint, and RevoluteJoint.

double Joint::getDynamicsVal (  )  const [inline]

Returns the current joint value as computed from the IK during dyanmic simulation.

Definition at line 298 of file joint.h.

double Joint::getFriction (  )  const [inline]

Returns the magnitude of friction acting on this joint. This uses both viscous friction, which is proportional to the joint velocity, and Coulomb friction, which is constant.

Definition at line 287 of file joint.h.

SoTransform* Joint::getIVTran (  )  const [inline]

Returns a pointer to the Inventor transform associated with this joint that is used in the joint dragger sub graph.

Definition at line 311 of file joint.h.

double Joint::getMax (  )  const [inline]

Returns the maximum joint limit.

Definition at line 279 of file joint.h.

double Joint::getMin (  )  const [inline]

Returns the minimum joint limit

Definition at line 276 of file joint.h.

int Joint::getNum (  )  const [inline]

Returns the number of this joint in its kinematic chain

Definition at line 241 of file joint.h.

double Joint::getOffset (  )  const [inline]

Returns the constant joint offset value.

Definition at line 273 of file joint.h.

double Joint::getSpringForce (  )  const

Returns the spring force acting on this joint. This assumes a linear spring model, with constant stifness mK. Units are N*1.0e6 mm for torque or N*1.0e6 for force.

Assumes a linear spring with the rest value specified

Definition at line 157 of file joint.cpp.

double Joint::getSpringStiffness (  )  [inline]

Returns the linear stiffness coefficient of this joint spring.

Definition at line 270 of file joint.h.

transf const& Joint::getTran (  )  const [inline]

Returns the current value of the DHTransform associated with this joint.

Definition at line 301 of file joint.h.

virtual transf Joint::getTran ( double  jointVal  )  const [pure virtual]

Returns the transform to the next joint frame the results from substituting jointVal for the current joint value.

Implemented in PrismaticJoint, and RevoluteJoint.

virtual JointT Joint::getType (  )  const [pure virtual]

Return type of this joint, either REVOLUE or PRISMATIC.

Implemented in PrismaticJoint, and RevoluteJoint.

virtual double Joint::getVal (  )  const [pure virtual]

Returns the current joint value.

Implemented in PrismaticJoint, and RevoluteJoint.

double Joint::getVelocity (  )  const [inline]

Returns the current velocity of this joint (computed during dynamics).

Definition at line 282 of file joint.h.

vec3 const& Joint::getWorldAxis (  )  const [inline]

Returns the current direction of the joint axis in world coordinates.

Definition at line 304 of file joint.h.

virtual int Joint::initJointFromXml ( const TiXmlElement root,
int  jnum 
) [pure virtual]

Set up the joint using values from an XML DOM read from the robot configuration file.

Implemented in PrismaticJoint, and RevoluteJoint.

Matrix Joint::jacobian ( const Joint joint,
const transf jointTran,
const transf toTarget,
bool  worldCoords 
) [static]

The Jacobian relating movement of this joint to movement of a point in the world.

The joint Jacobian is a 6x1 matrix that relates movement of a joint (1 DOF) to movement (translation and rotation) of a point in 3D space placed at world coordinates toTarget. If worldCoords is true, the jacobian is expressed in world coordinate system; otherwise, it is expressed in the local coordinate system of the target point.

Definition at line 169 of file joint.cpp.

void Joint::setDraggerAttached ( bool  b  )  [inline]

Updates draggerAttached when a dragger is added or removed from this joint.

Definition at line 230 of file joint.h.

void Joint::setDynamicsVal ( double  v  )  [inline]

Sets the current value of the joint (computed during dynamics).

Definition at line 223 of file joint.h.

void Joint::setMax ( double  max  )  [inline]

Set the maximum joint limit.

Definition at line 211 of file joint.h.

void Joint::setMin ( double  min  )  [inline]

Sets the minimum joint limit

Definition at line 208 of file joint.h.

void Joint::setRestValue ( double  r  )  [inline]

Sets the rest value of the attached joint spring.

Definition at line 236 of file joint.h.

void Joint::setSpringStiffness ( double  k  )  [inline]

Sets the linear stiffness coefficient of this joint spring.

Definition at line 233 of file joint.h.

virtual int Joint::setVal ( double  q  )  [pure virtual]

This sets the joint value

Implemented in PrismaticJoint, and RevoluteJoint.

void Joint::setVelocity ( double  v  )  [inline]

Sets the current joint velocity (computed during dynamics).

Definition at line 220 of file joint.h.

void Joint::setWorldAxis ( const vec3 wa  )  [inline]

Sets the current orientation of the joint axis in world coordinates. (computed during dynamics)

Definition at line 227 of file joint.h.


Member Data Documentation

double Joint::c [protected]

Joint offset.

Definition at line 159 of file joint.h.

DHTransform* Joint::DH [protected]

The DHTransform from this joint frame to the next.

Definition at line 178 of file joint.h.

int Joint::DOFnum [protected]

Index of the robot DOF this joint is connected to.

Definition at line 135 of file joint.h.

bool Joint::draggerAttached [protected]

TRUE if an Inventor dragger is currently attached to this joint

Definition at line 144 of file joint.h.

double Joint::dynamicsVal [protected]

The current value of the joint computed by inverse kinematic during dynamics.

Definition at line 147 of file joint.h.

[Temporary] this points to the DynJoint that contains this joint

Definition at line 185 of file joint.h.

double Joint::f0 [protected]

Coulomb friction value (constant offset).

Definition at line 165 of file joint.h.

double Joint::f1 [protected]

The coefficient of viscous friction.

Definition at line 162 of file joint.h.

SoTransform* Joint::IVTran [protected]

A pointer to the associated Inventor transform used for joint draggers.

Definition at line 181 of file joint.h.

int Joint::jointNum [protected]

The number of this joint in the robot's list.

Definition at line 141 of file joint.h.

double Joint::maxVal [protected]

Definition at line 153 of file joint.h.

double Joint::mCouplingRatio [protected]

Linear multiplier of DOF value. JointVal = mCouplingRatio * (DOFVal) + c.

Definition at line 156 of file joint.h.

double Joint::minVal [protected]

Joint limit.

Definition at line 153 of file joint.h.

double Joint::mK [protected]

Joint spring stiffness, in N * 1.0e6 mm / rad for torque or N * 1.0e6 / mm for force. 0 if this joint has no spring.

Definition at line 169 of file joint.h.

double Joint::mRestVal [protected]

The rest value of the joint spring.

Definition at line 172 of file joint.h.

A pointer to the kinematic chain that this joint is a part of.

Definition at line 138 of file joint.h.

double Joint::velocity [protected]

The current velocity of the joint (first order approximation).

Definition at line 150 of file joint.h.

vec3 Joint::worldAxis [protected]

Current joint axis expressed in world coordinates.

Definition at line 175 of file joint.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


graspit
Author(s):
autogenerated on Wed Jan 25 11:00:22 2012