Actin®  Version 5.2.0
Software for Robotics Simulation and Control
EcManipulatorLink Class Reference

Holds a description of a manipulator link. More...

#include <ecManipulatorLink.h>

Inheritance diagram for EcManipulatorLink:
EcXmlCompoundType EcXmlObject EcIndividualManipulator

Public Member Functions

 EcManipulatorLink ()
 default constructor
 
virtual ~EcManipulatorLink ()
 destructor
 
 EcManipulatorLink (const EcManipulatorLink &orig)
 copy constructor
 
EcManipulatorLinkoperator= (const EcManipulatorLink &orig)
 assignment operator
 
EcManipulatorLinkcopyAllButChildLinksFrom (const EcManipulatorLink &orig)
 assignment operator, except the child links
 
EcBoolean operator== (const EcManipulatorLink &orig) const
 equality operator
 
EcBoolean equalForReferencing (const EcManipulatorLink &orig) const
 equality operator for referencing
 
virtual EcBoolean xmlInit () EC_OVERRIDE
 initialize XML components for reading and writing
 
virtual EcXmlObjectclone () const EC_OVERRIDE
 clone - a virtual constructor to an EcXmlObject pointer
 
virtual void registerComponents () EC_OVERRIDE
 register components with the parent
 
virtual EcBoolean equality (const EcXmlObject *other) const EC_OVERRIDE
 equality - virtual equality to an EcXmlObject pointer
 
virtual EcXmlObjectnewObject () const EC_OVERRIDE
 virtual new that returns an EcXmlObject
 
virtual const EcStringlinkLabel () const
 gets an identifying label
 
virtual void setLinkLabel (const EcString &label)
 sets an identifying label
 
virtual void appendToAllLabels (const EcString &appendage)
 appends a string to all labels of all links including child links. More...
 
virtual EcBoolean setSurfacesByShapeID (const EcU32 &shapeID, const EcStringDataMapMap &surfaces)
 set shape surface properties by the shape ID.
 
virtual EcBoolean setSurfaces (const EcString &linkName, const EcU32 &shapeID, const EcStringDataMapMap &surfaces)
 
virtual EcBoolean setShapeSurfaceProperty (const EcString &linkName, const EcU32 &shapeID, const EcString &surfaceProperty)
 set shape surface property string if the name matched,
 
virtual EcBoolean setShapeIdentifier (const EcString &linkName, const EcU32 &shapeID, const EcString &identifier)
 set shape identifier string if the name matched,
 
virtual const EcLinkKinematicsContainerlinkKinematicsContainer () const
 gets Denavit-Hartenberg parameters
 
virtual void setLinkKinematicsContainer (const EcLinkKinematicsContainer &linkKinematicsContainer)
 sets Denavit-Hartenberg parameters
 
virtual void setLinkKinematics (const EcLinkKinematics &linkKinematics)
 sets the top element of the link kinematics container
 
virtual const EcManipulatorLinkVectorchildLinks () const
 gets the child links
 
virtual EcManipulatorLinkVectorchildLinks ()
 gets the child links – nonconst
 
virtual void setChildLinks (const EcManipulatorLinkVector &childLinks)
 sets the child links
 
virtual void addChild (const EcManipulatorLink &childLink)
 Adds a child link by copy at the end of the child links vector. More...
 
virtual void clearChildLinks ()
 clear the child links vector
 
virtual void addLinkToEndOfChain (const EcManipulatorLink &link)
 Adds a link by copy to the end of the first chain rooted at this link. More...
 
virtual EcBoolean addLinkToChildLinkByName (const EcManipulatorLink &link, const EcString &parent)
 Adds a link by copy to the link with the given label. More...
 
virtual const EcBasePhysicalExtentphysicalExtent () const
 gets the physical extent
 
virtual const EcCapsulecapsuleBoundingVolume () const
 gets the capsule bounding volume
 
virtual const EcShapeContainershapeContainer () const
 get the shape container (this may or may not be referenced)
 
virtual const EcShapeContainermemberShapeContainer () const
 get the member-variable shape container
 
virtual void setShapeContainer (const EcShapeContainer &shapeContainer)
 set the shape container
 
virtual void setShape (const EcShape &shape)
 sets the shape
 
virtual void setFromShape (const EcShape &shape, const EcReal mass=1.5)
 set all properties from a shape
 
virtual void setFromShapeContainer (const EcShapeContainer &shapeContainer)
 set all properties from a shape container
 
virtual const EcCoordinateSystemTransformationprimaryFrame () const
 gets the primary frame in local coordinates
 
virtual void setPrimaryFrame (const EcCoordinateSystemTransformation &primaryFrame)
 sets the primary frame More...
 
virtual const EcJointActuatorjointActuator () const
 gets the joint actuator
 
virtual void setJointActuator (const EcJointActuator &jointActuator)
 sets the joint actuator
 
virtual void truncateValues (const EcReal &precision=1e-10)
 truncate values in the physical extents to the precision specified.
 
virtual const EcRigidBodyMassPropertiesmassProperties (const EcStatedSystemStruct *statedSystemStruct=0) const
 gets mass properties expressed in primary frame. This is the base mass properties combined with the mass properties in the map, which is the total mass properties of this link. More...
 
virtual void setMassProperties (const EcRigidBodyMassProperties &massProperties)
 
virtual const EcRigidBodyMassPropertiesbaseMassProperties () const
 gets the base mass properties expressed in primary frame
 
virtual void setBaseMassProperties (const EcRigidBodyMassProperties &massProperties)
 sets the base mass properties expressed in primary frame
 
virtual const EcRigidBodyMassPropertiesMapmassPropertiesMap () const
 gets the map of mass properties. The map contains mass properties in addition to the base mass properties.
 
virtual void setMassPropertiesMap (const EcRigidBodyMassPropertiesMap &massPropMap)
 sets the map of mass properties
 
virtual void clearMassPropertiesMap ()
 clear all the mass properties in the map
 
virtual void addMassProperties (const EcString &identifier, const EcRigidBodyMassProperties &massProperties)
 add mass properties expressed in primary frame and identified by identifier. This will change the total mass properties of the link.
 
virtual EcBoolean deleteMassProperties (const EcString &identifier)
 
virtual const EcSpringPropertiesspringProperties () const
 get functions for String properties
 
virtual void setSpringProperties (const EcSpringProperties &springProperties)
 set functions for String properties
 
virtual const EcDamperPropertiesdamperProperties () const
 get functions for damper properties
 
virtual void setDamperProperties (const EcDamperProperties &damperProperties)
 set functions for damper properties
 
virtual const EcLinkReferenceDescriptionlinkReferenceDescription () const
 get the link reference description
 
virtual void setLinkReferenceDescription (const EcLinkReferenceDescription &linkReferenceDescription)
 set the link reference description
 
virtual const EcManipulatorLinkreferenceLink () const
 gets reference link
 
virtual void setReferenceLink (const EcManipulatorLink *pLink)
 sets reference link
 
virtual const EcManipulatorLinkconcreteReference () const
 gets the concrete link
 
virtual EcReal totalLocalTorque (EcManipulatorActiveState &activeState) const
 calculate total joint torque from spring + damper
 
virtual const EcRigidBodyMassPropertiesmassPropertiesInDHFrame (const EcStatedSystemStruct *statedSystemStruct=0) const
 gets the mass properties expressed in the D-H frame More...
 
virtual void transformComponentsBy (const EcCoordinateSystemTransformation xform)
 
virtual const EcManipulatorLinkparentLink () const
 gets parentLink
 
virtual void setParentLink (EcManipulatorLink *parentLink)
 sets parentLink
 
virtual EcU32 linkIndex () const
 gets the link index
 
virtual void setLinkIndex (const EcU32 index)
 sets the link index
 
virtual EcU32 subtreeLinkCount () const
 subtree Link count (count includes this link) More...
 
virtual EcReal lookupCollisionAvoidanceMetric () const
 get the collision avoidance metric for this link
 
virtual EcBoolean mapLinks (EcManipulatorLinkConstPointerVector &linkVector, EcManipulatorLinkPointerMap &linkMap)
 map this and all child links
 
virtual const EcCoordinateSystemTransformationdhFrameInSystem (EcManipulatorActivePositionState &actPosState) const
 get the link's D-H frame represented in the system frame More...
 
virtual const EcCoordinateSystemTransformationprimaryFrameInSystem (EcManipulatorActivePositionState &actPosState) const
 get the link's primary frame represented in the system frame
 
virtual const EcGeneralVelocitydhFrameVelocityInSystem (EcManipulatorActiveState &actState) const
 
virtual const EcGeneralVelocitydhFrameVelocityInLocal (EcManipulatorActiveState &actState) const
 get the link's D-H frame velocity represented in the local frame
 
virtual const EcGeneralVelocityprimaryFrameVelocityInSystem (EcManipulatorActiveState &actState) const
 
virtual const EcGeneralAccelerationdhFrameAccelerationInLocal (EcManipulatorActiveState &actState) const
 get the link's D-H frame acceleration represented in the local frame
 
virtual const EcGeneralAccelerationprimaryFrameAccelerationInSystem (EcManipulatorActiveState &actState) const
 get the link's primary frame acceleration represented in the system frame
 
virtual const EcGeneralForcedhFrameForceInLocal (const EcManipulatorExternalForce &manipExtForce, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 
virtual const EcRigidBodyMassPropertiescrbi (EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 
virtual const EcArticulatedBodyDynamicsarbd (const EcManipulatorExternalForce &manipExtForce, const EcManipulatorTorque &manipTorque, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 
virtual void addArbdToParent (EcArticulatedBodyDynamics &parentArbd, const EcManipulatorExternalForce &manipExtForce, const EcManipulatorTorque &manipTorque, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 add the arbd for this link to the parent's value. More...
 
virtual const EcGeneralAccelerationarbiSupplementalDhFrameAccelerationInLocal (const EcManipulatorExternalForce &manipExtForce, const EcManipulatorTorque &manipTorque, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 
virtual EcReal arbiJointAcceleration (const EcManipulatorExternalForce &manipExtForce, const EcManipulatorTorque &manipTorque, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the joint acceleration for this link calculated using the arbi algorithm More...
 
virtual void collectLeafLinks (EcManipulatorLinkConstPointerVector &linkPointerVector) const
 Collect leaf links into a list of link pointers. More...
 
virtual void optimizeForRendering ()
 reorganize this link for optimial rendering (only needs to be done once)
 
virtual EcBoolean lookup (const EcString &key, const EcDataMap *&property) const
 
virtual void recursiveOptimizeForRendering ()
 reorganize this and all child links for optimal rendering
 
virtual const EcIndividualManipulatormanipulator () const
 Returns the pointer to the manipulator that contains this link.
 
virtual void setManipulatorPointer (const EcIndividualManipulator *pManip)
 Sets the pointer to the individual manipulator that contains this link.
 
virtual EcReal upperBoundExtentDistance () const
 
virtual EcReal upperBoundSubmanipulatorExtentDistance () const
 
virtual void axisAlignedBoundingBoxVectorInSystem (EcManipulatorActivePositionState &state, EcAxisAlignedBoundingBoxVector &aabbVec, EcU32Vector &shapeIDVec) const
 
virtual void relabelSubtree (const EcString &label, EcU32 &index)
 relabel a subtree based on the root label passed in
 
virtual void deleteBoundingVolumes ()
 delete all the bounding volumes in the bvh hierarchy
 
virtual EcInt32 numberOfShapes () const
 returns the number of shapes associates with this link
 
virtual const EcShapeshapeByIndex (const EcU32 &index) const
 get the shape by the index passed in
 
virtual const EcShapeshapeByIdentifier (const EcString &name) const
 get a shape by string identifier
 
virtual EcBoolean mapShapes ()
 set the index for each shape associated with this link
 
virtual void setNumShapes (const EcU32 &nShapes)
 set the total number of shapes used to represent this link
 
virtual const EcU32numShapes () const
 get the total number of shapes used to represent this link
 
virtual EcU32 numShapesInPhysicalRepresentation () const
 
virtual void scaleIndividualLinkBy (EcReal scaleFactor)
 
virtual void scaleBy (EcReal scaleFactor)
 
virtual EcBoolean transformLinkTreeBy (const EcCoordinateSystemTransformation &xform)
 
virtual EcBoolean transformPrimaryFrame (const EcCoordinateSystemTransformation &xform)
 
virtual void intersectLineSegment (const EcLineSegment &lineSegment, EcLinkPointEvent &pointEvent, EcManipulatorActiveState *pActState, EcU32 levelOfDetail=0) const
 
virtual EcBoolean setLinkReferences (const EcManipulatorLinkPointerMap &linkMap)
 
virtual EcBoolean useReferencesWherePossible (const EcManipulatorLinkConstPointerVector &linkVector)
 change this link and the subtree to use references where possible
 
virtual EcBoolean removeLinkReferences ()
 remove references to this link
 
virtual void estimateMassProperties ()
 
virtual const EcTokentoken () const EC_OVERRIDE
 gets the xml token used for writing out. More...
 
virtual EcBoolean read (EcXmlReader &stream) EC_OVERRIDE
 read this object from an XML stream
 
virtual EcBoolean write (EcXmlWriter &stream) const EC_OVERRIDE
 write this object to an XML stream
 
virtual const EcShapegetNthNonBoundingShape (const EcU32 n) const
 get the nth none-bounding shape of this link.
 
virtual void boundingVolumes (EcShapeConstPointerVector &boundingShapes, const EcU32 &bvhLevel=1) const
 get all bounding volumes
 
virtual void deleteAllBoundingVolumes ()
 delete all bounding volumes from the
 
virtual EcBoolean setJointLimit (const EcString &linkLabel, EcBoolean isLowerLimit, EcReal value)
 set the new value for a joint limit More...
 
void addBoundingVolume (const EcShape::EcShapeValues &bv)
 add a bounding volume to the shape in the shape container
 
void copyLinkProperties (EcManipulatorLink &toLink) const
 copy the properties (link kinematics, mass properties, joint actuator, shape container, etc.) of this link to another link. This does not copy the child links. This should be used along with replaceLinkProperties method to efficiently modify some link properties of some link in the manipulator chain. More...
 
virtual EcBoolean replaceLinkProperties (const EcString &linkLabel, const EcManipulatorLink &newLink, EcBoolean includeShapeContainer=EcFalse)
 replace the link properties (link kinematics, mass properties, joint actuator, shape container, etc.) of the link identified by linkLabel with the properties of newLink. This does not affect the child links of the link identified by linkLabel. More...
 
virtual EcBoolean replaceMassProperties (const EcString &linkLabel, const EcRigidBodyMassProperties &newLink)
 replace the mass properties of the link identified by linkLabel. This does not affect the child links of the link identified by linkLabel. More...
 
EcBoolean replaceJointActuator (const EcString &linkLabel, const EcJointActuator &jointActuator)
 replace the joint actuator of the link identified by linkLabel. This does not affect the child links of the link identified by linkLabel. More...
 
virtual EcBoolean setSurfaceProperties (const EcString &key, const EcDataMap &properties)
 set the properties of the surface identified by key for all the shapes in this link. More...
 
virtual const EcLineSegmentforceVectorInLocal (const EcManipulatorActiveState &activeState) const
 get the link's force vector resulting from impact forces
 
virtual const EcGeneralVelocitycomVelocityInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the link's center of mass velocity represented in the local frame More...
 
virtual const EcGeneralAccelerationcomAccelerationInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the link's center of mass acceleration represented in the local frame More...
 
virtual const EcGeneralMotionspatialMomentumInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the spatial momentum at the center of mass of this link represented in the link's D-H frame. More...
 
virtual const EcGeneralMotioncompositeSpatialMomentumInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the composite spatial momentum of this link and its outboard links represented in the link's D-H frame. More...
 
virtual const EcGeneralMotionspatialMomentumRateInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the rate of spatial momentum at the center of mass of this link represented in the link's D-H frame. More...
 
virtual const EcGeneralMotioncompositeSpatialMomentumRateInLocal (EcManipulatorActiveState &activeState, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute and return the composite rate of spatial momentum of this link and its outboard links represented in the link's D-H frame. More...
 
virtual EcBoolean computeMomentFromLinearAcceleration (const EcVector &point, EcManipulatorActiveState &activeState, EcVector &moment, const EcStatedSystemStruct *statedSystemStruct=0) const
 compute the moment around a point due to linear acceleration of this link and its outboard links
 
virtual const EcStateConstraintContainerupperLimitConstraintContainer () const
 returns the upper limit constraint container for this link
 
virtual const EcBaseStateConstraintupperLimitConstraint () const
 returns the upper limit constraint for this link More...
 
virtual void setUpperLimitConstraint (const EcBaseStateConstraint &value)
 sets the upper limit constraint for this link
 
virtual const EcStateConstraintContainerlowerLimitConstraintContainer () const
 returns the lower limit constraint container for this link
 
virtual const EcBaseStateConstraintlowerLimitConstraint () const
 returns the lower limit constraint for this link More...
 
virtual void setLowerLimitConstraint (const EcBaseStateConstraint &value)
 sets the lower limit constraint for this link
 
virtual const EcNamedPointsnamedPoints () const
 returns the map of named points
 
virtual void setNamedPoints (const EcNamedPoints &value)
 sets the map of named points
 
virtual EcBoolean lookupNamedPoint (const EcString &key, EcVector &point) const
 returns a point
 
virtual void addNamedPoint (const EcString &key, const EcVector &point)
 adds a point to the map
 
virtual const EcNamedFramesnamedFrames () const
 returns the map of named frames
 
virtual void setNamedFrames (const EcNamedFrames &value)
 sets the map of named frames
 
virtual EcBoolean lookupNamedFrame (const EcString &key, EcCoordinateSystemTransformation &frame) const
 returns a frame
 
virtual EcBoolean addNamedFrame (const EcString &key, const EcCoordinateSystemTransformation &frame)
 adds a frame to the map
 
virtual EcBoolean isConstrained () const
 returns whether this link is constrained
 
virtual void setIsConstrained (EcBoolean value)
 sets whether this link is constrained
 
virtual void addLinkToUnion (const EcIndividualManipulator &manip, const EcCoordinateSystemTransformation &offset)
 add a link to the union
 
virtual EcBoolean popLinkFromUnion (const EcString &label, EcIndividualManipulator &manip, EcCoordinateSystemTransformation &offset)
 pop a link from the union
 
virtual void manipulatorLabelsInUnion (std::set< EcString > &labels) const
 labels in the union
 
virtual EcBoolean addSensor (const EcSensorBase *sensorPtr)
 add a sensor
 
virtual const EcSensorVectorsensorVector () const
 get sensor vector
 
virtual void setSensorVector (const EcSensorVector &sensorVec)
 set sensor vector
 
virtual void unreferenceShapes ()
 
virtual void removePhysicalExtentRedundancy (const EcReal eps=0.0)
 
virtual EcSensorVectorsensorVector ()
 
- Public Member Functions inherited from EcXmlCompoundType
 ECDECLARE_BIGFOUR (EcXmlCompoundType)
 
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 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 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
 

Static Public Member Functions

static EcManipulatorLink nullObject ()
 get a null link
 

Static Public Attributes

static const EcU32 BASEINDEX
 Copy of enumerations from foundCommon for backwards compatibility.
 
static const EcU32 VOIDINDEX
 

Protected Types

typedef std::vector< std::pair< EcIndividualManipulator, EcCoordinateSystemTransformation > > EcManipulatorLinkInUnion
 type definition of the manipulator link in union
 

Protected Member Functions

virtual void registerComponentsForBase ()
 register components with the parent for the base link
 
virtual void updateDefaultLimitConstraints ()
 updates the default upper and lower limit constraints
 
virtual void updateMassProperties ()
 recalculate the mass properties
 
virtual void updateDHMassProperties ()
 recalculate the mass properties expressed in the D-H frame
 
virtual EcShapefindShape (const EcString &linkName, const EcU32 &shapeID)
 return a pointer to the shape
 
- 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 Member Functions

static const EcArticulatedBodyDynamicstheDummyArbd ()
 gets the dummy Arbd
 

Protected Attributes

EcXmlString m_LinkLabel
 the identifying label
 
EcLinkKinematicsContainer m_LinkKinematicsContainer
 the general joint set for the link
 
EcManipulatorLinkVector m_ChildLinks
 the vector of child links
 
EcShapeContainer m_ShapeContainer
 the physical extent of the link
 
EcJointActuator m_JointActuator
 the actuator for the link
 
EcOldJointActuator m_OldJointActuator
 the actuator for the link – deprecated
 
EcJointActuatorContainer m_JointActuatorContainer
 the actuator for the link – deprecated
 
EcRigidBodyMassProperties m_MassProperties
 the rigid-body mass properties of the link
 
EcSpringProperties m_SpringProperties
 spring properties of this link
 
EcDamperProperties m_DamperProperties
 damper properties of this link
 
EcLinkReferenceDescription m_LinkReferenceDescription
 a reference information for this link
 
EcStateConstraintContainer m_UpperLimitConstraintContainer
 container for the upper limit constraint
 
EcStateConstraintContainer m_LowerLimitConstraintContainer
 container for the lower limit constraint
 
EcNamedPoints m_NamedPoints
 Named points.
 
EcNamedFrames m_NamedFrames
 Named frames.
 
EcXmlBoolean m_IsConstrained
 Constrained tag.
 
EcRigidBodyMassPropertiesMap m_MassPropertiesMap
 
EcSensorVector m_SensorVector
 The vector of sensors attached to this link.
 
EcManipulatorLinkInUnion m_vLinksInUnion
 a vector of manipulators in the union – used for manipulator combination
 
EcManipulatorLinkm_pParentLink
 a pointer to the parent link in the tree
 
EcU32 m_LinkIndex
 the depth-first link index
 
EcRigidBodyMassProperties m_TotalMassProperties
 the total mass properties of the link (combining the base one with all the ones in the map)
 
EcRigidBodyMassProperties m_TotalMassPropertiesInDHFrame
 the rigid-body mass properties of the link expressed in the D-H frame
 
EcU32 m_NumberOfShapes
 number of shapes used to represent this link
 
EcShapeConstPointerMap m_ShapePointerMap
 map of shape pointers for this link
 
EcShapePointerVector m_ShapePointerVec
 linear vector of shape pointers for this link
 
EcMultivariableJointStateConstraint m_DefaultUpperLimitConstraint
 the default upper limit constraint
 
EcMultivariableJointStateConstraint m_DefaultLowerLimitConstraint
 the default lower limit constraint
 
const EcIndividualManipulatorm_pManipulator
 a pointer to the individual manipulator that contains this link
 
const EcManipulatorLinkm_pReferenceLink
 a pointer to a reference link
 
EcRigidBodyMassProperties m_CombinedMassProperties
 the combined mass properties (combined with mass properties of link attached to this, if any)
 
EcCoordinateSystemTransformationVector m_Offsets
 offset transformations
 
EcU32Vector m_DependentManipulators
 dependent manipulators
 
- 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
 

Static Protected Attributes

static const EcCoordinateSystemTransformation m_theDummyTransformation
 a dummy transformation
 
static const EcGeneralVelocity m_theDummyGeneralVelocity
 a dummy general velocity
 
static const EcGeneralAcceleration m_theDummyGeneralAcceleration
 a dummy general acceleration
 
static const EcGeneralForce m_theDummyGeneralForce
 a dummy general force
 
static const EcRigidBodyMassProperties m_theDummyCrbi
 a dummy composite rigid-body inertia
 
static const EcArticulatedBodyDynamics m_theDummyArbd
 a dummy articulated rigid-body dynamics
 
static const EcCapsule m_theDummyCapsuleBoundingVolume
 a dummy capsule bounding volume
 
static const EcGeneralMotion m_theDummySpatialMomentum
 a dummy spatial momentum
 
static const EcGeneralMotion m_theDummySpatialMomentumRate
 a dummy spatial momentum rate
 
static const EcReal m_theDefaultCollisionAvoidanceMetric
 the default collision avoidance metric
 
- 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
 

Additional Inherited Members

- Public Types inherited from EcXmlCompoundType
enum  {
  READONLYCOMPONENT = 0,
  READONLYATTRIBUTE
}
 special-descriptor codes More...
 

Detailed Description

Holds a description of a manipulator link.

A Class describing a robotic manipulator link. This includes a list of child links, a string identifier, a Denavit-Hartenberg set, the physical extent, an actuator description, and mass properties.

This description includes the physical extent and geometry of the link. Each link can have any number of child links, so a link is in general the root of a tree.

Examples:
ecProgrammaticConstructionMain.cpp.

Definition at line 77 of file ecManipulatorLink.h.

Member Function Documentation

virtual void EcManipulatorLink::addArbdToParent ( EcArticulatedBodyDynamics parentArbd,
const EcManipulatorExternalForce manipExtForce,
const EcManipulatorTorque manipTorque,
EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

add the arbd for this link to the parent's value.

Parameters
parentArbdThe articulated-body dynamics of the parent's link
manipExtForceThe external force
manipTorqueThe manipulator torque
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
virtual void EcManipulatorLink::addChild ( const EcManipulatorLink childLink)
virtual

Adds a child link by copy at the end of the child links vector.

Parameters
childLinkThe child link to be added.

Reimplemented in EcIndividualManipulator.

virtual EcBoolean EcManipulatorLink::addLinkToChildLinkByName ( const EcManipulatorLink link,
const EcString parent 
)
virtual

Adds a link by copy to the link with the given label.

Parameters
[in]linkThe link to be added.
[in]parentName of link to attach to
Returns
true if parent link found

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::addLinkToEndOfChain ( const EcManipulatorLink link)
virtual

Adds a link by copy to the end of the first chain rooted at this link.

Parameters
linkThe link to be added.

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::appendToAllLabels ( const EcString appendage)
virtual

appends a string to all labels of all links including child links.

Parameters
[in]appendageA string to append.
virtual const EcArticulatedBodyDynamics& EcManipulatorLink::arbd ( const EcManipulatorExternalForce manipExtForce,
const EcManipulatorTorque manipTorque,
EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the articulated-body dynamics (articulated-body inertia and bias force) for this link represented in the link's D-H frame.

Parameters
manipExtForceThe external force
manipTorqueThe manipulator torque
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the articulated-body dynamics for this link represented in the link's D-H frame

Reimplemented in EcIndividualManipulator.

virtual EcReal EcManipulatorLink::arbiJointAcceleration ( const EcManipulatorExternalForce manipExtForce,
const EcManipulatorTorque manipTorque,
EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the joint acceleration for this link calculated using the arbi algorithm

Parameters
manipExtForceThe external force
manipTorqueThe manipulator torque
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the joint acceleration for this link
virtual const EcGeneralAcceleration& EcManipulatorLink::arbiSupplementalDhFrameAccelerationInLocal ( const EcManipulatorExternalForce manipExtForce,
const EcManipulatorTorque manipTorque,
EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

get the supplemental D-H frame acceleration represented in the local frame. this supplemental acceleration is the acceleration produced only by the base acceleration (if it exists) and joint accelerations.

Parameters
manipExtForceThe external force
manipTorqueThe manipulator torque
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the supplemental D-H frame acceleration represented in the local frame.

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::axisAlignedBoundingBoxVectorInSystem ( EcManipulatorActivePositionState state,
EcAxisAlignedBoundingBoxVector aabbVec,
EcU32Vector shapeIDVec 
) const
virtual

compute and return the vector of bounding boxes describing the shape (or shapes) the represent this link. This will always return one AABB unless the shape that defines the link is a union node, in which case it will return one AABB for each leaf node in the tree of unions.

virtual void EcManipulatorLink::collectLeafLinks ( EcManipulatorLinkConstPointerVector linkPointerVector) const
virtual

Collect leaf links into a list of link pointers.

Parameters
[out]linkPointerVectorThe list of link pointers containing all leaf links.
Examples:
ecProgrammaticConstructionMain.cpp, ecQuickStartMain.cpp, and ecVelocityControlMain.cpp.
virtual const EcGeneralAcceleration& EcManipulatorLink::comAccelerationInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the link's center of mass acceleration represented in the local frame

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the link's center of mass acceleration represented in the local frame
virtual const EcGeneralMotion& EcManipulatorLink::compositeSpatialMomentumInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the composite spatial momentum of this link and its outboard links represented in the link's D-H frame.

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the composite spatial momentum of this link and its outboard links represented in the link's D-H frame.

Reimplemented in EcIndividualManipulator.

virtual const EcGeneralMotion& EcManipulatorLink::compositeSpatialMomentumRateInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the composite rate of spatial momentum of this link and its outboard links represented in the link's D-H frame.

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the composite rate of spatial momentum of this link and its outboard links represented in the link's D-H frame.

Reimplemented in EcIndividualManipulator.

virtual const EcGeneralVelocity& EcManipulatorLink::comVelocityInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the link's center of mass velocity represented in the local frame

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the link's center of mass velocity represented in the local frame
void EcManipulatorLink::copyLinkProperties ( EcManipulatorLink toLink) const

copy the properties (link kinematics, mass properties, joint actuator, shape container, etc.) of this link to another link. This does not copy the child links. This should be used along with replaceLinkProperties method to efficiently modify some link properties of some link in the manipulator chain.

Parameters
[in]toLinkThe other link to which this link properties will be copied.
virtual const EcRigidBodyMassProperties& EcManipulatorLink::crbi ( EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the composite rigid-body inertia of this and all outboard links represented in the link's D-H frame.

Parameters
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the composite rigid-body inertia of this and all outboard links represented in the link's D-H frame

Reimplemented in EcIndividualManipulator.

virtual EcBoolean EcManipulatorLink::deleteMassProperties ( const EcString identifier)
virtual

delete the mass properties identified by identifier. Returns true if deletion is successful and this will change the total mass properties of the link. Or returns false if identifier doesn't exist.

virtual const EcGeneralForce& EcManipulatorLink::dhFrameForceInLocal ( const EcManipulatorExternalForce manipExtForce,
EcManipulatorActiveState actState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the general force that must be applied to the link to achieve the motion specified in the active state.

Parameters
manipExtForceThe external force
actStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the general force that must be applied to the link to achieve the motion

Reimplemented in EcIndividualManipulator.

virtual const EcCoordinateSystemTransformation& EcManipulatorLink::dhFrameInSystem ( EcManipulatorActivePositionState actPosState) const
virtual

get the link's D-H frame represented in the system frame

Parameters
[in,out]actPosState

Reimplemented in EcIndividualManipulator.

virtual const EcGeneralVelocity& EcManipulatorLink::dhFrameVelocityInSystem ( EcManipulatorActiveState actState) const
virtual

get the link's D-H frame velocity represented in the system frame. The point of application of this motion is the origin of the D-H frame.

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::estimateMassProperties ( )
virtual

try to guess the mass properties of this link using a bounding capsule and nominal density

Examples:
ecProgrammaticConstructionMain.cpp.
virtual void EcManipulatorLink::intersectLineSegment ( const EcLineSegment lineSegment,
EcLinkPointEvent pointEvent,
EcManipulatorActiveState pActState,
EcU32  levelOfDetail = 0 
) const
virtual

intersect a line segment with this link, returning the closest point along the line segment using the initial closest point provided in pointEvent.

virtual EcBoolean EcManipulatorLink::lookup ( const EcString key,
const EcDataMap *&  property 
) const
virtual

lookup the surface property given a key, this checks the local shape associated with this link, then the manipulators mapping

Parameters
[in]keyA string used to look up a surface property.
[out]propertyThe surface property associated with the key. Set to 0 if the key is not found.
Returns
True if the key is found or false otherwise.

Reimplemented in EcIndividualManipulator.

virtual const EcBaseStateConstraint& EcManipulatorLink::lowerLimitConstraint ( ) const
virtual

returns the lower limit constraint for this link

The constraint is in the general form of f(q)>=0, where q is the position state (base position plus joint positions). This allows, for example, the lower limit of this joint to be a function of the position of another joint. For example, if the lower limit of joint 1 is a linear function of joint 0 in the form of lowerLim0 = 2*q1 + 1.5. Then, the constraint will be q0-(2*q1+1.5)>=0. Thus, f(q) is q0 - 2*q1 - 1.5, where q0 and q1 is the joint positions of joints 0 and 1, respectively. Note that If the constraint container is empty, this will return a default constraint.

virtual const EcRigidBodyMassProperties& EcManipulatorLink::massProperties ( const EcStatedSystemStruct statedSystemStruct = 0) const
virtual

gets mass properties expressed in primary frame. This is the base mass properties combined with the mass properties in the map, which is the total mass properties of this link.

Parameters
[in]statedSystemStructA pointer to the stated system struct. If not null, the returned mass properties will be the combined mass properties of this link plus a link, if any, that's attached to this link.
virtual const EcRigidBodyMassProperties& EcManipulatorLink::massPropertiesInDHFrame ( const EcStatedSystemStruct statedSystemStruct = 0) const
virtual

gets the mass properties expressed in the D-H frame

Parameters
[in]statedSystemStructA pointer to the stated system struct. If not null, the returned mass properties will be the combined mass properties of this link plus a link, if any, that's attached to this link.
virtual EcU32 EcManipulatorLink::numShapesInPhysicalRepresentation ( ) const
virtual

gets the number of shapes used for the physical representation of the link. This is one unless union nodes are used.

virtual const EcGeneralVelocity& EcManipulatorLink::primaryFrameVelocityInSystem ( EcManipulatorActiveState actState) const
virtual

get the link's primary frame velocity represented in the system frame The point of application of this motion is the origin of the primary frame.

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::removePhysicalExtentRedundancy ( const EcReal  eps = 0.0)
virtual

remove physical extent redundancy eps (epsilon) is used to remove close points

EcBoolean EcManipulatorLink::replaceJointActuator ( const EcString linkLabel,
const EcJointActuator jointActuator 
)

replace the joint actuator of the link identified by linkLabel. This does not affect the child links of the link identified by linkLabel.

Parameters
[in]linkLabelThe string identifier of the link whose properties are to be changed.
[in]jointActuatorThe joint actuator that will be used.
Returns
True if successful or false if linkLabel is invalid.
virtual EcBoolean EcManipulatorLink::replaceLinkProperties ( const EcString linkLabel,
const EcManipulatorLink newLink,
EcBoolean  includeShapeContainer = EcFalse 
)
virtual

replace the link properties (link kinematics, mass properties, joint actuator, shape container, etc.) of the link identified by linkLabel with the properties of newLink. This does not affect the child links of the link identified by linkLabel.

Parameters
[in]linkLabelThe string identifier of the link whose properties are to be changed.
[in]newLinkA link whose properties will be used.
[in]includeShapeContainerIf true, the shape container of the link identified by linkLabel will be replaced by the shape container of newLink. Shape container is a special case because of it may be referenced, in which case it needs to be unreferenced. The default is false, i.e. the shape container will not be replaced.
Returns
True if successful or false if linkLabel is invalid.
virtual EcBoolean EcManipulatorLink::replaceMassProperties ( const EcString linkLabel,
const EcRigidBodyMassProperties newLink 
)
virtual

replace the mass properties of the link identified by linkLabel. This does not affect the child links of the link identified by linkLabel.

Parameters
[in]linkLabelThe string identifier of the link whose properties are to be changed.
[in]newLinkThe mass properties that will be used.
Returns
True if successful or false if linkLabel is invalid.
virtual void EcManipulatorLink::scaleBy ( EcReal  scaleFactor)
virtual

scale the link and all children by the specified value (scaleFactor=1.0 does not change the link)

virtual void EcManipulatorLink::scaleIndividualLinkBy ( EcReal  scaleFactor)
virtual

scale just this link by the specified value (scaleFactor=1.0 does not change the link)

virtual EcBoolean EcManipulatorLink::setJointLimit ( const EcString linkLabel,
EcBoolean  isLowerLimit,
EcReal  value 
)
virtual

set the new value for a joint limit

Parameters
[in]linkLabelThe identifying label of the link (joint)
[in]isLowerLimitTrue for a lower limit or false for upper limit
[in]valueThe new value for the joint limit
virtual EcBoolean EcManipulatorLink::setLinkReferences ( const EcManipulatorLinkPointerMap linkMap)
virtual

assign the references for this links in this and the subtree from the map (as needed)

virtual void EcManipulatorLink::setMassProperties ( const EcRigidBodyMassProperties massProperties)
virtual

sets the total mass properties expressed in primary frame. This will set the base mass properties to massProperties and clear the mass properties map

Examples:
ecProgrammaticConstructionMain.cpp.
virtual void EcManipulatorLink::setPrimaryFrame ( const EcCoordinateSystemTransformation primaryFrame)
virtual

sets the primary frame

Parameters
[in]primaryFrameThe primary frame in local coordinates
Examples:
ecProgrammaticConstructionMain.cpp.
virtual EcBoolean EcManipulatorLink::setSurfaceProperties ( const EcString key,
const EcDataMap properties 
)
virtual

set the properties of the surface identified by key for all the shapes in this link.

Parameters
[in]keyA string to identify the surface material.
[in]propertiesThe surface properties to be set.
Returns
True if key is found in at least one shape or false otherwise.

Reimplemented in EcIndividualManipulator.

virtual EcBoolean EcManipulatorLink::setSurfaces ( const EcString linkName,
const EcU32 shapeID,
const EcStringDataMapMap surfaces 
)
virtual

set shape surface properties if the name matched, visit the child link recursively.

virtual const EcGeneralMotion& EcManipulatorLink::spatialMomentumInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the spatial momentum at the center of mass of this link represented in the link's D-H frame.

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the spatial momentum at the center of mass of this link represented in the link's D-H frame.
virtual const EcGeneralMotion& EcManipulatorLink::spatialMomentumRateInLocal ( EcManipulatorActiveState activeState,
const EcStatedSystemStruct statedSystemStruct = 0 
) const
virtual

compute and return the rate of spatial momentum at the center of mass of this link represented in the link's D-H frame.

Parameters
activeStateThe manipulator active state
statedSystemStructThe stated system struct for use when there are other manipulators attached to this link. If so, the mass properties of the attached manipulators will be included in the calculation. If this parameter is null or there's not attached manipulator, then only this link's mass properties are used.
Returns
the rate of spatial momentum at the center of mass of this link represented in the link's D-H frame.
virtual EcU32 EcManipulatorLink::subtreeLinkCount ( ) const
virtual

subtree Link count (count includes this link)

Returns
The total number of links that belong to this link tree including this link.
virtual const EcToken& EcManipulatorLink::token ( ) const
virtual

gets the xml token used for writing out.

Implements EcXmlObject.

Reimplemented in EcIndividualManipulator.

virtual void EcManipulatorLink::transformComponentsBy ( const EcCoordinateSystemTransformation  xform)
virtual

transform components (mass properties and shape). this has the same effect as setting the primary frame from identity to this value

virtual EcBoolean EcManipulatorLink::transformLinkTreeBy ( const EcCoordinateSystemTransformation xform)
virtual

transform this with respect to its parent 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;

virtual EcBoolean EcManipulatorLink::transformPrimaryFrame ( const EcCoordinateSystemTransformation xform)
virtual

transform this link so that the primary frame transformation is that given, but the link does not change (i.e., if xform is identity, then the primary frame will coincide with the DH frame, but the link won't change). After calling the primary frame equals xform.

virtual void EcManipulatorLink::unreferenceShapes ( )
virtual

normally, the shapes are shared among the same link of the same manipulator in different copies of the system for space efficiency. Calling this method will copy the shape container and break that sharing. Note that this is performed on this link and the child links as well

virtual EcReal EcManipulatorLink::upperBoundExtentDistance ( ) const
virtual

returns the upper bound extent distance. This is the distance from the DH frame to the polygon furthest away from the frame for this link

virtual EcReal EcManipulatorLink::upperBoundSubmanipulatorExtentDistance ( ) const
virtual

returns the upper bound extent distance for the links that make up the sub-manipulator beneath this link

virtual const EcBaseStateConstraint& EcManipulatorLink::upperLimitConstraint ( ) const
virtual

returns the upper limit constraint for this link

The constraint is in the general form of f(q)>=0, where q is the position state (base position plus joint positions). This allows, for example, the upper limit of this joint to be a function of the position of another joint. For example, if the upper limit of joint 1 is a linear function of joint 0 in the form of upperLim0 = 2*q1 + 1.5. Then, the constraint will be 2*q1+1.5-q0>=0. Thus, f(q) is -q0 + 2*q1 + 1.5, where q0 and q1 is the joint positions of joints 0 and 1, respectively. Note that If the constraint container is empty, this will return a default constraint.

Member Data Documentation

EcRigidBodyMassPropertiesMap EcManipulatorLink::m_MassPropertiesMap
protected

The map containing mass properties in addition to the base mass properties. The total mass properties of the link is obtained by combining the base with all mass properties in the map.

Definition at line 1339 of file ecManipulatorLink.h.


The documentation for this class was generated from the following file:
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.