![]() |
Actin
Version 5.5.2
Software for Robotics Simulation and Control
|
Holds a description of a manipulator link. More...
#include <ecManipulatorLink.h>
Public Member Functions | |
EcManipulatorLink () | |
default constructor | |
virtual | ~EcManipulatorLink () |
destructor | |
EcManipulatorLink (const EcManipulatorLink &orig) | |
copy constructor | |
EcManipulatorLink & | operator= (const EcManipulatorLink &orig) |
assignment operator | |
EcManipulatorLink & | copyAllButChildLinksFrom (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 EcXmlObject * | clone () 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 EcXmlObject * | newObject () const EC_OVERRIDE |
virtual new that returns an EcXmlObject | |
virtual const EcString & | linkLabel () 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 EcLinkKinematicsContainer & | linkKinematicsContainer () 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 EcManipulatorLinkVector & | childLinks () const |
gets the child links | |
virtual EcManipulatorLinkVector & | childLinks () |
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 EcBasePhysicalExtent * | physicalExtent () const |
gets the physical extent | |
virtual const EcCapsule & | capsuleBoundingVolume () const |
gets the capsule bounding volume | |
virtual const EcShapeContainer & | shapeContainer () const |
get the shape container (this may or may not be referenced) | |
virtual const EcShapeContainer & | memberShapeContainer () 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 EcCoordinateSystemTransformation & | primaryFrame () const |
gets the primary frame in local coordinates | |
virtual void | setPrimaryFrame (const EcCoordinateSystemTransformation &primaryFrame) |
sets the primary frame More... | |
virtual const EcJointActuator & | jointActuator () 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 EcRigidBodyMassProperties & | massProperties (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 EcRigidBodyMassProperties & | baseMassProperties () 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 EcRigidBodyMassPropertiesMap & | massPropertiesMap () 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 EcSpringProperties & | springProperties () const |
get functions for String properties | |
virtual void | setSpringProperties (const EcSpringProperties &springProperties) |
set functions for String properties | |
virtual const EcDamperProperties & | damperProperties () const |
get functions for damper properties | |
virtual void | setDamperProperties (const EcDamperProperties &damperProperties) |
set functions for damper properties | |
virtual const EcLinkReferenceDescription & | linkReferenceDescription () const |
get the link reference description | |
virtual void | setLinkReferenceDescription (const EcLinkReferenceDescription &linkReferenceDescription) |
set the link reference description | |
virtual const EcManipulatorLink * | referenceLink () const |
gets reference link | |
virtual void | setReferenceLink (const EcManipulatorLink *pLink) |
sets reference link | |
virtual const EcManipulatorLink * | concreteReference () const |
gets the concrete link | |
virtual EcReal | totalLocalTorque (EcManipulatorActiveState &activeState) const |
calculate total joint torque from spring + damper | |
virtual const EcRigidBodyMassProperties & | massPropertiesInDHFrame (const EcStatedSystemStruct *statedSystemStruct=0) const |
gets the mass properties expressed in the D-H frame More... | |
virtual void | transformComponentsBy (const EcCoordinateSystemTransformation xform) |
virtual const EcManipulatorLink * | parentLink () 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 EcCoordinateSystemTransformation | dhFrameInSystem (const EcPositionState &posState) const |
virtual const EcCoordinateSystemTransformation & | dhFrameInSystem (EcManipulatorActivePositionState &actPosState) const |
virtual EcCoordinateSystemTransformation | primaryFrameInSystem (const EcPositionState &posState) const |
virtual const EcCoordinateSystemTransformation & | primaryFrameInSystem (EcManipulatorActivePositionState &actPosState) const |
virtual EcGeneralVelocity | dhFrameVelocityInSystem (const EcManipulatorState &manipState) const |
virtual const EcGeneralVelocity & | dhFrameVelocityInSystem (EcManipulatorActiveState &actState) const |
virtual EcGeneralVelocity | dhFrameVelocityInLocal (const EcManipulatorState &manipState) const |
virtual const EcGeneralVelocity & | dhFrameVelocityInLocal (EcManipulatorActiveState &actState) const |
virtual EcGeneralVelocity | primaryFrameVelocityInSystem (const EcManipulatorState &manipState) const |
virtual const EcGeneralVelocity & | primaryFrameVelocityInSystem (EcManipulatorActiveState &actState) const |
virtual EcGeneralAcceleration | dhFrameAccelerationInLocal (const EcManipulatorState &manipState) const |
virtual const EcGeneralAcceleration & | dhFrameAccelerationInLocal (EcManipulatorActiveState &actState) const |
virtual EcGeneralAcceleration | primaryFrameAccelerationInSystem (const EcManipulatorState &manipState) const |
virtual const EcGeneralAcceleration & | primaryFrameAccelerationInSystem (EcManipulatorActiveState &actState) const |
virtual const EcGeneralForce & | dhFrameForceInLocal (const EcManipulatorExternalForce &manipExtForce, EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const |
virtual const EcRigidBodyMassProperties & | crbi (EcManipulatorActiveState &actState, const EcStatedSystemStruct *statedSystemStruct=0) const |
virtual const EcArticulatedBodyDynamics & | arbd (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 EcGeneralAcceleration & | arbiSupplementalDhFrameAccelerationInLocal (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 EcIndividualManipulator * | manipulator () 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 EcShape * | shapeByIndex (const EcU32 &index) const |
get the shape by the index passed in | |
virtual const EcShape * | shapeByIdentifier (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 EcU32 & | numShapes () 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 EcToken & | token () 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 EcShape * | getNthNonBoundingShape (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 EcLineSegment & | forceVectorInLocal (const EcManipulatorActiveState &activeState) const |
get the link's force vector resulting from impact forces | |
virtual const EcGeneralVelocity & | comVelocityInLocal (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 EcGeneralAcceleration & | comAccelerationInLocal (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 EcGeneralMotion & | spatialMomentumInLocal (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 EcGeneralMotion & | compositeSpatialMomentumInLocal (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 EcGeneralMotion & | spatialMomentumRateInLocal (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 EcGeneralMotion & | compositeSpatialMomentumRateInLocal (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 EcStateConstraintContainer & | upperLimitConstraintContainer () const |
returns the upper limit constraint container for this link | |
virtual const EcBaseStateConstraint & | upperLimitConstraint () 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 EcStateConstraintContainer & | lowerLimitConstraintContainer () const |
returns the lower limit constraint container for this link | |
virtual const EcBaseStateConstraint & | lowerLimitConstraint () 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 EcNamedPoints & | namedPoints () 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 EcNamedFrames & | namedFrames () 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 (EcStringSet &labels) const |
labels in the union | |
virtual EcBoolean | addSensor (const EcBaseSensor *sensorPtr) |
add a sensor | |
virtual const EcSensorVector & | sensorVector () 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 EcSensorVector & | sensorVector () |
![]() | |
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 EcXmlComponentMap & | componentMap () 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 EcXmlComponentMap & | attributeComponentMap () |
get a reference to the component attribute map | |
virtual const EcXmlSpecialDescriptorMap & | specialDescriptorMap () |
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 EcXmlTokenStringDescriptorMapMap & | tokenStringDescriptorMap () |
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. | |
![]() | |
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 EcShape * | findShape (const EcString &linkName, const EcU32 &shapeID) |
return a pointer to the shape | |
![]() | |
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 EcXmlComponentMap * | newComponentMap () const |
allocate a new componentMap | |
virtual EcXmlSpecialDescriptorMap * | newSpecialDescriptorMap () |
allocate a new specialDescriptorsMap | |
virtual EcXmlTokenStringDescriptorMapMap * | newTokenStringDescriptorMap () |
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 EcXmlObject * | libraryAttribute () |
Static Protected Member Functions | |
static const EcArticulatedBodyDynamics & | theDummyArbd () |
gets the dummy Arbd | |
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 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 | |
![]() | |
enum | { READONLYCOMPONENT = 0, READONLYATTRIBUTE } |
special-descriptor codes More... | |
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.
Definition at line 78 of file ecManipulatorLink.h.
|
virtual |
add the arbd for this link to the parent's value.
parentArbd | The articulated-body dynamics of the parent's link |
manipExtForce | The external force |
manipTorque | The manipulator torque |
actState | The manipulator active state |
statedSystemStruct | The 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 |
Adds a child link by copy at the end of the child links vector.
childLink | The child link to be added. |
Reimplemented in EcIndividualManipulator.
|
virtual |
Adds a link by copy to the link with the given label.
[in] | link | The link to be added. |
[in] | parent | Name of link to attach to |
Reimplemented in EcIndividualManipulator.
|
virtual |
Adds a link by copy to the end of the first chain rooted at this link.
link | The link to be added. |
Reimplemented in EcIndividualManipulator.
|
virtual |
appends a string to all labels of all links including child links.
[in] | appendage | A string to append. |
|
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.
manipExtForce | The external force |
manipTorque | The manipulator torque |
actState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
|
virtual |
compute and return the joint acceleration for this link calculated using the arbi algorithm
manipExtForce | The external force |
manipTorque | The manipulator torque |
actState | The manipulator active state |
statedSystemStruct | The 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 |
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.
manipExtForce | The external force |
manipTorque | The manipulator torque |
actState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
|
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 |
Collect leaf links into a list of link pointers.
[out] | linkPointerVector | The list of link pointers containing all leaf links. |
|
virtual |
compute and return the link's center of mass acceleration represented in the local frame
activeState | The manipulator active state |
statedSystemStruct | The 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 |
compute and return the composite spatial momentum of this link and its outboard links represented in the link's D-H frame.
activeState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
|
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.
activeState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
|
virtual |
compute and return the link's center of mass velocity represented in the local frame
activeState | The manipulator active state |
statedSystemStruct | The 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. |
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.
[in] | toLink | The other link to which this link properties will be copied. |
|
virtual |
compute and return the composite rigid-body inertia of this and all outboard links represented in the link's D-H frame.
actState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
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 |
get the link's D-H frame acceleration represented in the local frame from a manipulator state This is suitable for one-time calculate since the computed value is not cached.
[in] | manipState | The manipulator state at which the DH frame acceleration is calculated. The manipulator state must have valid position, velocity, and acceleration states |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame acceleration represented in the local frame Note that the active state caches the computed value, which can be reused.
[in,out] | actState | The active state at which the DH frame acceleration is calculated. |
Reimplemented in EcIndividualManipulator.
|
virtual |
compute and return the general force that must be applied to the link to achieve the motion specified in the active state.
manipExtForce | The external force |
actState | The manipulator active state |
statedSystemStruct | The 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. |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame represented in the system frame from a position state. This is suitable for one-time calculate since the computed value is not cached.
[in] | posState | The position state at which the DH frame is calculated. |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame represented in the system frame from an active position state. Note that the active position state caches the computed value, which can be reused.
[in,out] | actPosState | The active position state at which the DH frame is calculated. |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame velocity represented in the local frame from a manipulator state. This is suitable for one-time calculate since the computed value is not cached.
[in] | manipState | The manipulator state at which the DH frame velocity is calculated. The manipulator state must have valid position state and velocity state |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame velocity represented in the local frame from an active state. Note that the active state caches the computed value, which can be reused.
[in,out] | actState | The active state at which the DH frame velocity is calculated. |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame velocity represented in the system frame from a manipulator state. The point of application of this motion is the origin of the D-H frame. This is suitable for one-time calculate since the computed value is not cached.
[in] | manipState | The manipulator state at which the DH frame velocity is calculated. The manipulator state must have valid position state and velocity state |
Reimplemented in EcIndividualManipulator.
|
virtual |
get the link's D-H frame velocity represented in the system frame from an active state. The point of application of this motion is the origin of the D-H frame. Note that the active state caches the computed value, which can be reused.
[in,out] | actState | The active state at which the DH frame velocity is calculated. |
Reimplemented in EcIndividualManipulator.
|
virtual |
try to guess the mass properties of this link using a bounding capsule and nominal density
|
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 |
lookup the surface property given a key, this checks the local shape associated with this link, then the manipulators mapping
[in] | key | A string used to look up a surface property. |
[out] | property | The surface property associated with the key. Set to 0 if the key is not found. |
Reimplemented in EcIndividualManipulator.
|
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 |
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.
[in] | statedSystemStruct | A 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 |
gets the mass properties expressed in the D-H frame
[in] | statedSystemStruct | A 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 |
gets the number of shapes used for the physical representation of the link. This is one unless union nodes are used.
|
virtual |
get the link's primary frame acceleration represented in the system frame from a manipulator state This is suitable for one-time calculate since the computed value is not cached.
[in] | manipState | The manipulator state at which the DH frame acceleration is calculated. The manipulator state must have valid position, velocity, and acceleration states |
|
virtual |
get the link's primary frame acceleration represented in the system frame Note that the active state caches the computed value, which can be reused.
[in,out] | actState | The active state at which the primary frame acceleration is calculated. |
|
virtual |
get the link's primary frame represented in the system frame from a position state This is suitable for one-time calculate since the computed value is not cached.
[in] | posState | The position state at which the primary frame is calculated. |
|
virtual |
get the link's primary frame represented in the system frame from an active position state Note that the active position state caches the computed value, which can be reused.
[in,out] | actPosState | The active position state at which the primary frame is calculated. |
|
virtual |
get the link's primary frame velocity represented in the system frame from a manipulator state. The point of application of this motion is the origin of the primary frame. This is suitable for one-time calculate since the computed value is not cached.
[in] | manipState | The manipulator state at which the primary frame velocity is calculated. The manipulator state must have valid position state and velocity state |
|
virtual |
get the link's primary frame velocity represented in the system frame from an active state. The point of application of this motion is the origin of the primary frame. Note that the active state caches the computed value, which can be reused.
[in,out] | actState | The active state at which the primary frame velocity is calculated. |
Reimplemented in EcIndividualManipulator.
|
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.
[in] | linkLabel | The string identifier of the link whose properties are to be changed. |
[in] | jointActuator | The joint actuator that will be used. |
|
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.
[in] | linkLabel | The string identifier of the link whose properties are to be changed. |
[in] | newLink | A link whose properties will be used. |
[in] | includeShapeContainer | If 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. |
|
virtual |
replace the mass properties of the link identified by linkLabel. This does not affect the child links of the link identified by linkLabel.
[in] | linkLabel | The string identifier of the link whose properties are to be changed. |
[in] | newLink | The mass properties that will be used. |
|
virtual |
scale the link and all children by the specified value (scaleFactor=1.0 does not change the link)
|
virtual |
scale just this link by the specified value (scaleFactor=1.0 does not change the link)
|
virtual |
set the new value for a joint limit
[in] | linkLabel | The identifying label of the link (joint) |
[in] | isLowerLimit | True for a lower limit or false for upper limit |
[in] | value | The new value for the joint limit |
|
virtual |
assign the references for this links in this and the subtree from the map (as needed)
|
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
|
virtual |
sets the primary frame
[in] | primaryFrame | The primary frame in local coordinates |
|
virtual |
set the properties of the surface identified by key for all the shapes in this link.
[in] | key | A string to identify the surface material. |
[in] | properties | The surface properties to be set. |
Reimplemented in EcIndividualManipulator.
|
virtual |
set shape surface properties if the name matched, visit the child link recursively.
|
virtual |
compute and return the spatial momentum at the center of mass of this link represented in the link's D-H frame.
activeState | The manipulator active state |
statedSystemStruct | The 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 |
compute and return the rate of spatial momentum at the center of mass of this link represented in the link's D-H frame.
activeState | The manipulator active state |
statedSystemStruct | The 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 |
subtree Link count (count includes this link)
|
virtual |
gets the xml token used for writing out.
Implements EcXmlObject.
Reimplemented in EcIndividualManipulator.
|
virtual |
transform components (mass properties and shape). this has the same effect as setting the primary frame from identity to this value
|
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 |
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 |
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 |
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 |
returns the upper bound extent distance for the links that make up the sub-manipulator beneath this link
|
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.
|
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 1412 of file ecManipulatorLink.h.