Actin  Version 5.5.2
Software for Robotics Simulation and Control
EcLinkKinematics Class Referenceabstract

Holds a description of a base class for link motion. It supports general joint types with one degree of freedom. More...

#include <ecLinkKinematics.h>

Inheritance diagram for EcLinkKinematics:
[legend]
Collaboration diagram for EcLinkKinematics:
[legend]

Public Types

enum  {
  LINEAR,
  ANGULAR,
  OTHER
}
 unit type enumeration
 
- Public Types inherited from EcXmlCompoundType
enum  {
  READONLYCOMPONENT = 0,
  READONLYATTRIBUTE
}
 special-descriptor codes More...
 

Public Member Functions

 EcLinkKinematics ()
 default constructor - should not be used
 
virtual ~EcLinkKinematics ()
 destructor
 
 EcLinkKinematics (const EcLinkKinematics &orig)
 copy constructor
 
EcLinkKinematicsoperator= (const EcLinkKinematics &orig)
 assignment operator
 
EcBoolean operator== (const EcLinkKinematics &orig) const
 equality operator
 
virtual void registerComponents () EC_OVERRIDE
 register components in this class
 
virtual EcBoolean approxEq (const EcLinkKinematics &dh2, EcReal tol) const
 test for approximate equality
 
virtual const EcCoordinateSystemTransformationprimaryFrame () const
 kinematics functions More...
 
virtual const EcCoordinateSystemTransformationprimaryFrameInverse () const
 get Primary Frame Inverse
 
virtual void setPrimaryFrame (const EcCoordinateSystemTransformation &value)
 set Primary Frame
 
virtual const EcCoordinateSystemTransformationcalculateTransform (EcReal jointValue) const =0
 calculate transformation More...
 
virtual void transformBy (EcCoordinateSystemTransformation &xform, EcReal jointValue) const =0
 transform an inboard transformation to the link's frame More...
 
virtual const EcGeneralMotioncalculateVelocity (EcReal jointValue, EcReal jointVelocity) const
 get the general motion of the frame (locally represented). More...
 
virtual const EcGeneralAccelerationcalculateAcceleration (EcReal jointValue, EcReal jointVelocity, EcReal jointAcceleration) const
 get the general acceleration of the frame (locally represented). More...
 
virtual EcReal unitAccelerationTorque (EcReal jointValue, const EcArticulatedBodyInertia &inertia) const
 
virtual EcReal torqueRequiredToExert (EcReal jointValue, const EcGeneralForce &exertedGeneralForce) const
 get the torque required to exert the specified general force More...
 
virtual EcReal upperBoundDhFrameDistance (const EcJointActuator &jointActuator) const =0
 
virtual EcBoolean addChildArbdToParent (EcArticulatedBodyDynamics &parentArbd, const EcArticulatedBodyDynamics &childArbd, const EcReal jointValue, const EcReal jointTorque, const EcReal effectiveMotorInertia) const
 add child arbd to parent's arbd
 
virtual void scaleBy (EcReal scaleFactor)=0
 
virtual void transformBy (const EcCoordinateSystemTransformation &xform)=0
 
virtual EcReal jointParameterScalability () const =0
 
virtual void changeInboardFrameBy (const EcCoordinateSystemTransformation &offset)=0
 change the inboard frame by an offset. This is to account for uncertainty in link measurements, both linear and angular. If offset is identity, then this does nothing.
 
virtual EcU32 unitType () const =0
 return the unit type of the link kinematics (joint).
 
- Public Member Functions inherited from EcBaseExpressionTreeElement
 EcBaseExpressionTreeElement ()
 default constructor
 
 EcBaseExpressionTreeElement (const EcXmlBaseVariableCompoundType *containerPointer)
 constructor given container pointer
 
virtual ~EcBaseExpressionTreeElement ()
 destructor
 
 EcBaseExpressionTreeElement (const EcBaseExpressionTreeElement &orig)
 copy constructor
 
EcBaseExpressionTreeElementoperator= (const EcBaseExpressionTreeElement &orig)
 assignment operator
 
EcBoolean operator== (const EcBaseExpressionTreeElement &orig) const
 equality operator
 
virtual const EcXmlBaseVariableCompoundTypecontainer () const
 gets the container
 
virtual void setContainer (const EcXmlBaseVariableCompoundType *container)
 sets the container
 
- Public Member Functions inherited from EcXmlCompoundType
 ECDECLARE_BIGFOUR (EcXmlCompoundType)
 
virtual EcBoolean xmlInit () EC_OVERRIDE
 xmlInitialize
 
virtual EcBoolean read (EcXmlReader &stream) EC_OVERRIDE
 read object from an XML stream
 
virtual EcBoolean readAttributes (EcXmlReader &stream)
 read object attributes from an XML stream
 
virtual EcBoolean readElements (EcXmlReader &stream)
 read object elements from an XML stream
 
virtual EcBoolean write (EcXmlWriter &stream) const EC_OVERRIDE
 write object to an XML stream
 
virtual EcBoolean writeAttributes (EcXmlWriter &stream) const
 write object attributes to an XML stream
 
virtual EcBoolean writeElements (EcXmlWriter &stream) const
 write object elements to an XML stream
 
virtual EcBoolean writeSchema (EcXmlSchema &stream) const EC_OVERRIDE
 write schema
 
virtual EcBoolean writeSchemaAttributes (EcXmlSchema &stream) const
 write schema attributes
 
virtual EcBoolean writeSchemaElements (EcXmlSchema &stream) const
 write schema elements
 
virtual void registerComponent (const EcToken &token, EcXmlObject *obj)
 register a single component More...
 
virtual void registerComponent (EcXmlObject *obj)
 register a single component More...
 
virtual void registerComponentReadOnly (const EcToken &token, EcXmlObject *obj)
 register a single component as read-only More...
 
virtual const EcXmlComponentMapcomponentMap () const
 get a reference to the component map
 
virtual void registerAttributeComponent (const EcToken &AttribToken, EcXmlObject *Obj)
 register a single attribute component More...
 
virtual void registerAttributeComponentReadOnly (const EcToken &AttribToken, EcXmlObject *Obj)
 register a single attribute component read-only More...
 
virtual const EcXmlComponentMapattributeComponentMap ()
 get a reference to the component attribute map
 
virtual const EcXmlSpecialDescriptorMapspecialDescriptorMap ()
 get a reference to the special-descriptor map
 
virtual void registerComponentDescriptor (const EcToken &xmlToken, const EcToken &descriptorToken, const EcString &descriptorString)
 register an XML token-string descriptor More...
 
virtual const EcXmlTokenStringDescriptorMapMaptokenStringDescriptorMap ()
 get a reference to the XML token-string descriptor map
 
virtual EcBoolean hasChildren () const
 return EcTrue if there are children components or EcFalse if an empty element.
 
virtual EcBoolean hasAttributes () const
 return EcTrue if there are attributes in the element.
 
- Public Member Functions inherited from EcXmlObject
 ECDECLARE_BIGFOUR (EcXmlObject)
 
virtual EcXmlObjectclone () const =0
 clone
 
virtual EcBoolean readAttribute (EcXmlReader &stream)
 read this attribute from an XML stream
 
virtual EcBoolean createSchema (const EcString &filename, const EcToken &objectName=EcXml::EcDefaultToken) const
 create schema
 
virtual EcBoolean xmlInitialized () const
 get XML initialized flag. This bit is set on initialization.
 
virtual void setXmlInitialized (EcBoolean val=EcTrue)
 set XML initialized flag. This bit is set on initialization.
 
virtual EcBoolean specified () const
 get specified flag. This bit is set upon reading from an XML file.
 
virtual void setSpecified (EcBoolean val=EcTrue)
 set specified flag. This bit is set upon reading from an XML file.
 
virtual EcBoolean isBasicType () const
 Return true/false for basic type.
 
virtual EcBoolean equalsDefault () const
 tests equality of XML object with default
 
virtual EcBoolean equality (const EcXmlObject *other) const =0
 equality - a virtual equality to an EcXmlObject pointer
 
virtual EcXmlObjectnewObject () const =0
 creates new object - a virtual new to an EcXmlObject pointer
 
virtual const EcTokentoken () const =0
 gets the xml token used for writing out.
 

Protected Attributes

EcCoordinateSystemTransformation m_PrimaryFrame
 the primary frame for the link represented in the link's DH frame
 
EcCoordinateSystemTransformation m_PrimaryFrameInverse
 non-XML data below More...
 
EcCoordinateSystemTransformation m_FrameTransform
 a value for the transformation
 
EcGeneralMotion m_FrameVelocity
 a value for the frame velocity
 
EcGeneralAcceleration m_FrameAcceleration
 a value for the frame Acceleration
 
EcGeneralMotion m_GMotion0
 First utility EcGeneralMotion.
 
EcGeneralMotion m_GMotion1
 Second utility EcGeneralMotion.
 
EcGeneralMotion m_GMotion2
 Third utility EcGeneralMotion.
 
EcCoordinateSystemTransformation m_XForm0
 First utility EcCoordinateSystemTransformation.
 
EcCoordinateSystemTransformation m_XForm1
 Second utility EcCoordinateSystemTransformation.
 
- Protected Attributes inherited from EcBaseExpressionTreeElement
const EcXmlBaseVariableCompoundTypem_pContainer
 a pointer to the container
 
- Protected Attributes inherited from EcXmlCompoundType
EcXmlComponentMapm_pComponentMap
 
EcXmlComponentMapm_pAttributeComponentMap
 
EcXmlSpecialDescriptorMapm_pSpecialDescriptorMap
 
EcXmlTokenStringDescriptorMapMapm_pComponentMapTokenStringDescriptor
 
- Protected Attributes inherited from EcXmlObject
EcU8 m_State
 the state of the object - eight boolean flags
 

Additional Inherited Members

- Protected Member Functions inherited from EcXmlCompoundType
virtual EcBoolean readValueFromToken (const EcToken &token, EcXmlReader &stream)
 
virtual EcBoolean readValueFromSpecialToken (const EcToken &token, EcXmlReader &stream)
 read value from unregistered token
 
virtual EcBoolean readAttributeFromToken (const EcToken &token, EcXmlReader &stream)
 
virtual EcXmlComponentMapnewComponentMap () const
 allocate a new componentMap
 
virtual EcXmlSpecialDescriptorMapnewSpecialDescriptorMap ()
 allocate a new specialDescriptorsMap
 
virtual EcXmlTokenStringDescriptorMapMapnewTokenStringDescriptorMap ()
 allocate a new tokenStringDescriptorsMap
 
virtual void createComponentMap () const
 create component map
 
virtual void createAttributeComponentMap ()
 create attribute component map
 
virtual void createSpecialDescriptorMap ()
 create special-descriptors map
 
virtual void createTokenStringDescriptorMap ()
 create token-string descriptor map
 
virtual EcBoolean isReadOnlyComponent (const EcToken token) const
 check to see if the token corresponds to a read-only component
 
virtual EcBoolean isReadOnlyAttribute (const EcToken token) const
 check to see if the token corresponds to a read-only attribute
 
virtual EcXmlObjectlibraryAttribute ()
 
- Static Protected Attributes inherited from EcXmlObject
static const EcU8 m_theXmlInitializedBit
 the bit used to describe xml initialization
 
static const EcU8 m_theSpecifiedBit
 the bit used to describe specification
 

Detailed Description

Holds a description of a base class for link motion. It supports general joint types with one degree of freedom.

Holds a description of a base class for link motion.

Examples:
ecCustomTypeLink.cpp.

Definition at line 23 of file ecLinkKinematics.h.

Member Function Documentation

virtual const EcGeneralAcceleration& EcLinkKinematics::calculateAcceleration ( EcReal  jointValue,
EcReal  jointVelocity,
EcReal  jointAcceleration 
) const
virtual

get the general acceleration of the frame (locally represented).

The default frame velocity calculation. The acceleration is the relative acceleration of the current frame to the parent frame represented in the current frame. The default method will do a differentiation of the velocity, which is not as accurate if the close form solution of the frame acceleration can be implemented in the child class.

Parameters
[in]jointValueThe joint value.
[in]jointVelocityThe joint velocity.
[in]jointAccelerationThe joint acceleration.

Reimplemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, and EcCustomTypeLink.

virtual const EcCoordinateSystemTransformation& EcLinkKinematics::calculateTransform ( EcReal  jointValue) const
pure virtual

calculate transformation

Parameters
[in]jointValueThe joint value used to calculate the link transformation.
Returns
The link transformation at jointValue.

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

virtual const EcGeneralMotion& EcLinkKinematics::calculateVelocity ( EcReal  jointValue,
EcReal  jointVelocity 
) const
virtual

get the general motion of the frame (locally represented).

The default frame velocity calculation. The velocity is the relative speed of the current frame to the parent frame represented in the current frame. The default method will do a differentiation of the transformation, which is not as accurate if the close form solution of the frame velocity can be implemented in the child class.

Parameters
[in]jointValueThe joint value.
[in]jointVelocityThe joint velocity.

Reimplemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, and EcCustomTypeLink.

virtual EcReal EcLinkKinematics::jointParameterScalability ( ) const
pure virtual

return the scale factor for the joint parameter (=1 for a distance-based parameter, 0 for non-distance-based)

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

virtual const EcCoordinateSystemTransformation& EcLinkKinematics::primaryFrame ( ) const
virtual

kinematics functions

get Primary Frame, which is the primary frame for the link represented in the link's DH frame

Returns
The primary frame for this link. This frame is used to specify physical extent, mass properties, and end effectors.
Examples:
ecCustomTypeLink.cpp.
virtual void EcLinkKinematics::scaleBy ( EcReal  scaleFactor)
pure virtual

scale the kinematics by the specified distance-scale value (scaleFactor=1.0 does not change the object)

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

virtual EcReal EcLinkKinematics::torqueRequiredToExert ( EcReal  jointValue,
const EcGeneralForce exertedGeneralForce 
) const
virtual

get the torque required to exert the specified general force

Parameters
[in]jointValueThe joint value.
[in]exertedGeneralForceThe desired general force.
Returns
The torque required to exert the desired force.
virtual void EcLinkKinematics::transformBy ( EcCoordinateSystemTransformation xform,
EcReal  jointValue 
) const
pure virtual

transform an inboard transformation to the link's frame

Parameters
[in,out]xformThe output transformation which is xform*calculateTransform(jointValue).
[in]jointValueThe joint value used to calculate the transformation.

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

virtual void EcLinkKinematics::transformBy ( const EcCoordinateSystemTransformation xform)
pure virtual

transform this by a general coordinate system transformation. This transformation is inserted before the link placement. If the kinematics class has a precursor P, the P=XForm*P;

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

virtual EcReal EcLinkKinematics::unitAccelerationTorque ( EcReal  jointValue,
const EcArticulatedBodyInertia inertia 
) const
virtual

get the torque required to produce a unit acceleration of an articulated rigid body

Parameters
[in]jointValueThe joint value.
[in]inertiaThe articulated body inertia attached to the link.
Returns
The torque required to produce a unit acceleration.
virtual EcReal EcLinkKinematics::upperBoundDhFrameDistance ( const EcJointActuator jointActuator) const
pure virtual

compute an upper-bound distance between this DH and the parent

Implemented in EcDenavitHartenberg, EcQuadrilateralTypeLink, EcScrewTypeLink, EcGenericFunctionTypeLink, and EcCustomTypeLink.

Member Data Documentation

EcCoordinateSystemTransformation EcLinkKinematics::m_PrimaryFrameInverse
protected

non-XML data below

the inverse of the primary frame for the link represented in the link's DH frame this is stored for easy access

Definition at line 220 of file ecLinkKinematics.h.


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