Actin  Version 5.5.2
Software for Robotics Simulation and Control
EcPositionControlSystem Class Reference

Holds a description of a position control system. More...

#include <ecPosContSystem.h>

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

Public Member Functions

 EcPositionControlSystem ()
 default constructor
 
virtual ~EcPositionControlSystem ()
 destructor
 
 EcPositionControlSystem (const EcPositionControlSystem &orig)
 copy constructor
 
EcPositionControlSystemoperator= (const EcPositionControlSystem &orig)
 assignment operator
 
EcBoolean operator== (const EcPositionControlSystem &orig) const
 equality operator
 
virtual EcBoolean equality (const EcXmlObject *other) const EC_OVERRIDE
 
virtual EcXmlObjectnewObject () const EC_OVERRIDE
 virtual new that returns an EcXmlObject
 
virtual EcBoolean xmlInit () EC_OVERRIDE
 initialize XML components for reading and writing
 
virtual EcXmlObjectclone () const EC_OVERRIDE
 
virtual void registerComponents () EC_OVERRIDE
 register components with the parent
 
virtual EcBoolean mergeWith (const EcPositionControlSystem &orig)
 
virtual const EcPositionControllerVectorpositionControllers () const
 gets the vector of position controllers
 
virtual void setPositionControllers (const EcPositionControllerVector &controllers)
 sets the vector of position controllers
 
virtual void setPositionControllersAndStatedSystem (const EcPositionControllerVector &controllers, EcStatedSystem *pStatedSystem)
 sets the vector of position controllers and stated system
 
virtual EcBoolean exchangePositionController (EcU32 index, const EcPositionController &posController)
 exchange the position controller at the index
 
virtual void addPositionController (const EcPositionController &posController)
 add a position controller
 
virtual EcBoolean deletePositionController (EcU32 index)
 delete position controller
 
virtual void setVelocityControlSystem (const EcVelocityControlSystem &velocityControlSystem)
 sets the velocity control system. Depracated.
 
virtual const EcStatedSystemstatedSystem () const
 gets the stated system
 
virtual void setStatedSystem (EcStatedSystem *pStatedSystem)
 
virtual EcReal timeStep () const
 gets the time step
 
virtual void setTimeStep (EcReal timeStep)
 sets the time step
 
virtual EcReal time () const
 get the current time
 
virtual void setTime (EcReal time)
 set the current time
 
virtual void setCurrentState (const EcManipulatorSystemState &state)
 set the current state
 
virtual EcU32 maxIterations () const
 gets the maximum number of iterations in a cycle
 
virtual void setMaxIterations (EcU32 maxIterations)
 sets the maximum number of iterations in a cycle
 
virtual EcU32 maxFinalPropagationSize () const
 gets the maximum final propagation size in steps
 
virtual void setMaxFinalPropagationSize (EcU32 maxFinalPropagationSize)
 sets the maximum final propagation size in steps
 
virtual EcBoolean isOn () const
 gets a flag indicating whether or not the position control system is on
 
virtual void setIsOn (EcBoolean isOn)
 sets a flag indicating whether or not the position control system is on
 
virtual EcBoolean setIsPositionControllerOn (EcU32 manipIndex, EcBoolean isOn)
 sets a flag indicating whether or not a position controller for a given manipulator is on
 
virtual EcU32 collisionAvoidanceMode () const
 gets the collision avoidance mode
 
virtual void setCollisionAvoidanceMode (EcU32 collisionAvoidanceMode)
 sets the collision avoidance mode
 
virtual EcBoolean usePositionControlCollisionAvoidance () const
 gets the flag indicating position control collision avoidance should be used
 
virtual void setUsePositionControlCollisionAvoidance (EcBoolean usePositionControlCD)
 sets the collision avoidance mode
 
virtual EcBoolean useExternalCollisionDetection (EcU32 manipulatorIndex) const
 
virtual void setUseExternalCollisionDetection (EcU32 manipulatorIndex, EcBoolean useExternalCollisionDetection)
 
virtual EcBoolean checkCollisionsOnBothPasses () const
 gets the flag indicating position control collision avoidance should be used
 
virtual void setCheckCollisionsOnBothPasses (EcBoolean checkBothPasses)
 sets the collision avoidance mode
 
virtual const EcReal collisionBreakdownThreshold () const
 
virtual void setCollisionBreakdownThreshold (const EcReal collisionBreakdownThreshold)
 sets the collision breakdown threshold
 
virtual EcU32 bvhPrecisionLevel () const
 gets the precision level
 
virtual void setBvhPrecisionLevel (EcU32 level)
 sets the precision level
 
const EcDataMapdataMapPointer (EcU32 manipulatorIndex) const
 gets the data-map pointer for a specified manipulator
 
void setDataMapPointer (EcU32 manipulatorIndex, const EcDataMap *pDataMap)
 sets the data-map pointer for a specified manipulator
 
virtual EcSystemActiveStatesystemActiveState () const
 gets the system active state
 
virtual EcManipulatorActiveStateactiveState (EcU32 manipIndex) const
 gets the active state of a manipulator
 
virtual const EcManipulatorEndEffectorPlacementVectordesiredPlacementVector () const
 gets the desired end-effector placements
 
virtual EcBoolean initDesiredPlacementVector (const EcSizeT &manipIndex)
 
virtual void setDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &desiredPlacementVector)
 sets the desired end-effector placements
 
virtual void setDesiredPlacement (const EcManipulatorEndEffectorPlacement &desiredPlacement, const EcU32 manipulatorIndex)
 sets an individual desired end-effector placement
 
virtual const EcEndEffectorPlacementdesiredPlacement (EcU32 manipulatorIndex, EcU32 endEffectorIndex) const
 
virtual EcBoolean setDesiredPlacement (EcU32 manipulatorIndex, EcU32 endEffectorIndex, const EcEndEffectorPlacement &placementInRelative)
 
virtual void addDesiredPlacement (const EcU32 manipulatorIndex, const EcManipulatorEndEffectorPlacement &placement)
 add desired placement
 
virtual const EcEndEffectorRelativeLinkDataendEffectorRelativeLinkData (EcU32 manipulatorIndex, EcU32 endEffectorIndex) const
 
virtual EcBoolean setEndEffectorRelativeLinkData (EcU32 manipulatorIndex, EcU32 endEffectorIndex, const EcEndEffectorRelativeLinkData &relData)
 
virtual const EcManipulatorEndEffectorVelocityVectordesiredVelocityVector () const
 
virtual void setDesiredVelocityVector (const EcManipulatorEndEffectorVelocityVector &desiredVelocityVector)
 
virtual void setDesiredVelocity (const EcManipulatorEndEffectorVelocity &desiredVelocity, const EcU32 manipulatorIndex)
 sets an individual desired end-effector velocity
 
virtual EcBoolean setDesiredVelocity (EcU32 manipulatorIndex, EcU32 endEffectorIndex, const EcXmlRealVector &velocity)
 
virtual void zeroDesiredVelocityVector ()
 zeros the desired velocity vector
 
virtual void setToZeroDesiredVelocityVector (EcManipulatorEndEffectorVelocityVector &desiredVelocityVector) const
 set the passed value to a zero desired velocity vector
 
virtual const EcEndEffectorPlacementactualPlacement (EcU32 manipulatorIndex, EcU32 endEffectorIndex) const
 
virtual const EcManipulatorEndEffectorPlacementVectoractualPlacementVector () const
 
virtual void setActualPlacementVector (const EcManipulatorEndEffectorPlacementVector &actualPlacementVector)
 
virtual EcBoolean addDefaultControlDescriptionAndEndEffectorSet (const EcIndividualManipulator &manipulator, const EcU32 manipulatorIndex)
 
virtual EcBoolean setActiveControlDescription (const EcU32 manipulatorIndex, const EcU32 index)
 
virtual EcU32 activeControlDescriptionIndex (const EcU32 manipulatorIndex) const
 
virtual const EcControlExpressionDescriptioncontrolExpressionDescription (const EcU32 manipulatorIndex) const
 
virtual void setControlExpressionDescription (const EcControlExpressionDescription &controlExpressionDescription, const EcU32 manipulatorIndex)
 
virtual EcBoolean setActiveEndEffectorSet (const EcU32 &manipulatorIndex, const EcU32 &index)
 
EcBoolean setJointControlEndEffectorSetAndPlacement (const EcU32 manipIndex, const EcEndEffectorPlacement &desiredPlacement)
 set the active end effector set to joint control and set desired placement
 
virtual EcU32 activeEndEffectorSetIndex (const EcU32 &manipulatorIndex) const
 
virtual const EcEndEffectorSetendEffectorSet (const EcU32 manipulatorIndex) const
 
virtual EcBoolean setEndEffectorSets (const EcU32 manipulatorIndex, const EcEndEffectorSetVector &eeSets)
 sets the list of end-effector sets (excluding the joint-control set) More...
 
virtual const EcEndEffectorSetVectorendEffectorSets (const EcU32 manipulatorIndex) const
 gets the list of end-effector sets (excluding the joint-control set) More...
 
virtual void setEndEffectorSet (const EcEndEffectorSet &endEffectorSet, const EcU32 manipulatorIndex)
 
virtual EcU32 activeEndEffectorIndex (const EcU32 manipIndex) const
 
virtual EcBoolean setActiveEndEffectorIndex (const EcU32 manipIndex, const EcU32 eeIndex)
 
virtual EcBoolean calculateState (const EcReal time, EcManipulatorSystemState &state)
 
virtual EcBoolean calculateStateTimeSteps (EcManipulatorSystemState &state, const EcU32 numTimeSteps=1, const EcReal extrapolationTime=0.0)
 
virtual void setSensedState (const EcManipulatorSystemState &state, EcReal timeStep, const EcBooleanVector &notSetFlags=EcBooleanVector(), EcBoolean baseOnly=EcFalse)
 
virtual void setSensedState (EcU32 manipIndex, const EcPositionState &posState, EcReal timeStep, EcBoolean baseOnly=EcFalse)
 
virtual EcBoolean calcEndEffectorPlacement (EcU32 manipIndex, EcU32 endEffectorIndex, EcManipulatorActiveState &activeState, EcEndEffectorPlacement &placementInSys) const
 
virtual EcBoolean calcAllEndEffectorPlacements (EcU32 manipIndex, EcManipulatorActiveState &activeState, EcEndEffectorPlacementVector &placementsInSys) const
 
virtual void calcAllEndEffectorPlacements (EcManipulatorActiveStateVector &activeState, EcManipulatorEndEffectorPlacementVector &placementsInSys) const
 
virtual EcBoolean read (EcXmlReader &stream) EC_OVERRIDE
 
virtual EcBoolean write (EcXmlWriter &stream) const EC_OVERRIDE
 
virtual const EcTokentoken () const EC_OVERRIDE
 
virtual EcBoolean integrityCheck () const
 
virtual const EcPropagationResultDataVectorpropagationResultDataVector () const
 get the result of collision for display
 
virtual EcBoolean setPropagationResultDataVector (const EcPropagationResultDataVector &vData)
 Set the propagation result data vector. More...
 
virtual EcBoolean setPropagationResultData (const EcU32 manipIndex, const EcPropagationResultData &data)
 Set the propagation result data. More...
 
virtual EcBoolean setPropagationResultData (const EcU32 manipIndex, const EcPropagationResultData &data, EcPropagationResultData::ExceptionType exceptionType)
 Set the propagation result data. More...
 
virtual const EcManipulatorSystemStatelastCalculatedState () const
 get the last state returned from the most recent call to calculateState() method.
 
virtual void setCollisionStoppingThreshold (const EcReal value)
 set the collision stopping threshold
 
virtual const EcReal collisionStoppingThreshold () const
 get the collision stopping threshold
 
virtual void setProximityTool (const EcBaseProximityTool &value)
 set the proximity tool
 
virtual const EcBaseProximityToolproximityTool () const
 get a const pointer to the proximity tool.
 
virtual EcU32 activeControlMethodIndex (EcU32 manipIndex) const
 get the index of the active control method
 
virtual EcBoolean setActiveControlMethod (EcU32 manipIndex, EcU32 methodIndex)
 set the active control method
 
virtual EcBoolean ignoreTimeStep () const
 
virtual void setIgnoreTimeStep (EcBoolean value)
 
virtual EcBoolean useSinglePass () const
 gets the flag indicating whether to use a single pass in the controller
 
virtual void setUseSinglePass (EcBoolean value)
 
virtual EcBoolean setBaseSpeedFactor (EcU32 manipIndex, EcReal value)
 
virtual EcBoolean setSpeedFactor (EcU32 manipIndex, EcReal speedFactor)
 
virtual EcBoolean setSpeedFactor (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcReal value)
 Set the speed factor for a particular end-effector. More...
 
virtual EcBoolean setBaseAccelerationFactor (EcU32 manipIndex, EcReal value)
 
virtual EcBoolean setAccelerationFactor (EcU32 manipIndex, EcReal value)
 
virtual EcBoolean setAccelerationFactor (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcReal value)
 Set the acceleration factor for a particular end-effector. More...
 
virtual EcBoolean setProfiledPositionEndEffectors (EcU32 manipIndex, const EcU32Vector &indices)
 
virtual EcBoolean getToolOffset (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcBoolean &useToolOffset, EcCoordinateSystemTransformation &value) const
 Get the tool offset for a given end effector. More...
 
virtual EcBoolean setToolOffset (EcU32 manipIndex, EcU32 toolIndex, const EcCoordinateSystemTransformation &value)
 
virtual EcBoolean setToolOffsetFixEE (EcU32 manipIndex, EcU32 toolIndex, const EcCoordinateSystemTransformation &value)
 
virtual EcBoolean setToolOffset (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, const EcCoordinateSystemTransformation &value)
 Set the tool offset in link primary frame for a given manipulator and end-effector. More...
 
virtual EcBoolean getToolOffset (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcCoordinateSystemTransformation &tcp) const
 Get the tool offset (in EE frame) More...
 
virtual EcBoolean addToolOffset (EcU32 manipIndex, const EcCoordinateSystemTransformation &value, EcU32 &index)
 add a tool offset to the end of tool offset vector
 
virtual EcBoolean setToolOffsetIndex (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcU32 toolOffsetIndex)
 set tool offset index
 
virtual EcBoolean getToolOffsetIndex (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcU32 &toolOffsetIndex)
 get tool offset index
 
virtual const EcAntiCollisionPriorityListcollisionPriorityList () const
 get the priority list used for anti-collision
 
virtual void setCollisionPriorityList (const EcAntiCollisionPriorityList &value)
 set the priority list used for anti-collision
 
virtual void setAttachmentMap (const EcManipulatorAttachmentMap &value)
 set the manipulator attachment map
 
virtual void setDynamicCollisionExclusionMap (const EcSystemCollisionExclusionMap &value)
 set the dynamic collision exclusion map
 
virtual EcBoolean setIsAntiCollisionOn (EcU32 manipIndex, EcBoolean on)
 set anti-collision on/off
 
virtual EcBoolean setControlMode (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 mode)
 Sets the control mode of an end-effector by index. More...
 
virtual EcBoolean setControlMode (EcU32 manipIndex, EcU32 mode)
 
virtual EcBoolean setIsHardConstraint (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcBoolean value)
 Set is hard constraint flag. More...
 
virtual EcBoolean setUseSoftEndEffectorSet (EcU32 manipIndex, EcBoolean soft)
 
virtual EcBoolean setCollisionStop (EcU32 manipIndex, EcBoolean value)
 turn on/off stop at collision in the control system for a given manipulator
 
virtual EcBoolean setHardStop (EcU32 manipIndex)
 this will force the velocity of the given manipulator to zero and abruptly stop at its current position
 
EcReal externalTimeStep () const
 get external time step
 
- 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 EcPositionControlSystem nullObject ()
 
static const EcTokenclassToken ()
 
static EcXmlObjectcreator ()
 

Protected Member Functions

virtual EcBaseProximityToolproximityTool ()
 get a non-const pointer to the proximity tool.
 
virtual void connectComponents (EcBoolean setSystem=EcTrue)
 
virtual void connectComponentsOfManipulator (const EcU32 manipIndex)
 
virtual EcBoolean initializeStates (EcBoolean calcVelState=EcTrue)
 
virtual void initializeStatesOfManipulator (const EcU32 manipIndex, const EcBoolean calcVelState=EcTrue)
 
EcBoolean initializeStatesForJointControlEndEffectorSet (const EcU32 manipIndex, const EcEndEffectorPlacement &desiredPlacement)
 initialize state for joint control end effector set
 
virtual void moveForwardOneTimeStep ()
 move forward in time by one timeStep amount
 
virtual void calculateVelocityState ()
 calculate velocity state
 
virtual void calculateVelocityState (const EcU32 manipIndex)
 calculate velocity state for an individual manipulator
 
virtual void calculateAccelerationState ()
 calculate acceleration state
 
virtual void calculateNewPlacements ()
 calculate the new placement vector from the new system state
 
virtual const EcBoolean checkForCollision (EcSystemActiveState &systemActiveState, const EcReal &collisionBreakthroughThreshold, const EcU32 &bvLevel, const EcReal &precision, EcPropagationResultDataVector &results) const
 
virtual void calculateCollisionStopping (EcBoolean firstPass)
 
virtual void resetActiveStates ()
 
virtual EcBoolean accelerationLimiterApplied () const
 returns whether any of the acceleration limiter have applied changes to the calculated state
 
- 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 ()
 

Protected Attributes

EcPositionControllerVector m_vPositionControllers
 the position controller vector
 
EcVelocityControlSystem m_VelocityControlSystem
 the velocity control system
 
EcXmlReal m_TimeStep
 the time step for position control
 
EcXmlU32 m_MaxIterations
 the maximum number of iterations in a cycle
 
EcXmlU32 m_MaxFinalPropagationSize
 the maximum propagation size in time steps
 
EcXmlBoolean m_IsOn
 a flag indicating whether or not the position control system is operating
 
EcXmlEnumU32 m_CollisionAvoidanceMode
 the collision avoidance mode
 
EcXmlBoolean m_UsePosContCollisionDet
 Set whether to use End Effector Error Filter or PosControlSystem Collision Detection.
 
EcXmlBoolean m_CheckCollisionsOnBothPasses
 Set whether to use End Effector Error Filter or PosControlSystem Collision Detection.
 
EcXmlReal m_CollisionBreakdownThreshold
 
EcXmlU32 m_BVHPrecision
 the level in the bounding volume hierarchy to use for collision detection
 
EcXmlReal m_CollisionStoppingThreshold
 
EcXmlBoolean m_UseSinglePass
 Flag indicating to use one or two control passes.
 
EcAntiCollisionPriorityList m_PriorityList
 the anti-collision priority list (only used in position controllers that support anti-collision)
 
EcXmlEnumU32 m_VelocityStateReturnMode
 deprecated. Only kept here for backward-compatibility purposes
 
EcXmlReal m_DefaultFeedbackAssimilationRate
 deprecated. Only kept here for backward-compatibility purposes
 
EcStringStoppingCriterionVectorMap m_StoppingCriteriaMap
 deprecated. Only kept here for backward-compatibility purposes
 
EcXmlBoolean m_UseTwoPasses
 deprecated. Only kept here for backward-compatibility purposes
 
EcXmlBoolean m_IgnoreTimeStep
 
EcProximityToolContainer m_ProximityToolContainer
 the proximity tool used to compute distances
 
EcStatedSystemm_pStatedSystem
 the stated system
 
EcSystemActiveState m_SystemActiveState
 the system active state
 
EcManipulatorEndEffectorPlacementVector m_DesiredPlacementVector
 the input desired end-effector placements
 
EcManipulatorEndEffectorVelocityVector m_DesiredVelocityVector
 the input desired end-effector velocities
 
EcManipulatorEndEffectorPlacementVector m_ActualPlacementVector
 the new actual end-effector placement
 
EcPropagationResultDataVector m_PropagationResultDataVector
 a vector of propagation diagnostics
 
EcManipulatorSystemState m_UtilityState1
 a utility state
 
EcManipulatorSystemState m_UtilityState2
 a utility state
 
EcSupplementalControlState m_ControlState
 the control state
 
EcVelocityStateVector m_UtilityVelStateVector
 utility velocity state vector
 
EcAccelerationStateVector m_UtilityAccelStateVector
 utility acceleration state vector
 
EcPropagationResultDataVector m_IterativeResultsVector
 a utility vector of propagation information results for iteration
 
EcReal m_ExternalTimeStep
 external time time, used for profiled position mode
 
EcBoolean m_StateUpdatedExternally
 The state has been updated using setCurrentState. Single pass control must recalculate.
 
- 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 EcIndividualVelocityControlDescription m_theNullControlDescription
 the null control description for error recovery
 
static const EcEndEffectorSet m_theNullEndEffectorSet
 the null end effector set for error recovery
 
static const EcEndEffectorSetVector m_theNullEndEffectorSetVector
 the null end effector set vector for error recovery
 
static const EcControlExpressionDescription m_theNullControlExpressionDescription
 the null control expression description for error recovery
 
static EcManipulatorActiveState m_theNullActiveState
 the null manipulator active state for error recovery
 
static const EcU32Vector m_theNullProfiledPositionEndEffectors
 the null ProfiledPositionEndEffectors
 
- 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 position control system.

Holds a description of a position control system, which at the most basic is a vector of position controllers, each of which controls a manipulator in the system.

Examples:
ecCirclePathExampleDirection.cpp, ecCollisionAvoidanceExample.cpp, and ecProgrammaticConstructionMain.cpp.

Definition at line 24 of file ecPosContSystem.h.

Member Function Documentation

virtual EcU32 EcPositionControlSystem::activeControlDescriptionIndex ( const EcU32  manipulatorIndex) const
virtual

gets the index of the active control description of the specified manipulator

Parameters
[in]manipulatorIndexThe index of the manipulator in query.
Returns
The index of the active control description of the specified manipulator.
virtual EcU32 EcPositionControlSystem::activeEndEffectorIndex ( const EcU32  manipIndex) const
virtual

gets the index of the active end-effector for the active EE set of the specified manipulator

Parameters
[in]manipIndexThe index of the manipulator in query.
Returns
The index of the active end-effector for the active EE set of the specified manipulator.
virtual EcU32 EcPositionControlSystem::activeEndEffectorSetIndex ( const EcU32 manipulatorIndex) const
virtual

gets the index of the active end-effector set of the specified manipulator

Parameters
[in]manipulatorIndexThe index of the manipulator in query.
Returns
The index of the active end-effector set of the specified manipulator.
virtual const EcEndEffectorPlacement& EcPositionControlSystem::actualPlacement ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex 
) const
virtual

gets an individual actual end-effector placement

Parameters
manipulatorIndexmanipulator selection
endEffectorIndexend effector selection
Returns
end effector placement

Reimplemented in EcPositionControlSystemWithConverter.

Examples:
ecCollisionAvoidanceExample.cpp.
virtual const EcManipulatorEndEffectorPlacementVector& EcPositionControlSystem::actualPlacementVector ( ) const
virtual

gets the actual end-effector placements

Returns
current placement vector

Reimplemented in EcPositionControlSystemWithConverter.

Examples:
ecCollisionAvoidanceExample.cpp.
virtual EcBoolean EcPositionControlSystem::addDefaultControlDescriptionAndEndEffectorSet ( const EcIndividualManipulator manipulator,
const EcU32  manipulatorIndex 
)
virtual

adds a control control description and an effector set with default parameters

Parameters
[in]manipulatorThe manipulator for which the control description and end effector will be added.
[in]manipulatorIndexThe index of the manipulator to which the control description and end effector will be added.
Returns
True if successful.
virtual EcBoolean EcPositionControlSystem::calcAllEndEffectorPlacements ( EcU32  manipIndex,
EcManipulatorActiveState activeState,
EcEndEffectorPlacementVector placementsInSys 
) const
virtual

calculate the placements of all end-effectors in the manipulator specified by a given index

Parameters
[in]manipIndexThe index of the manipulator.
[in,out]activeStateThe active state of the manipulator. Some elements of the active state may be modified.
[out]placementsInSysUpon return, the placements of all end-effectors in the manipulator in the system coordinates.
virtual void EcPositionControlSystem::calcAllEndEffectorPlacements ( EcManipulatorActiveStateVector activeState,
EcManipulatorEndEffectorPlacementVector placementsInSys 
) const
virtual

calculate the placements of all end-effectors in all manipulators

Parameters
[in,out]activeStateThe active state of the manipulator. Some elements of the active state may be modified.
[out]placementsInSysUpon return, the placements of all end-effectors in the manipulator in the system coordinates.
virtual EcBoolean EcPositionControlSystem::calcEndEffectorPlacement ( EcU32  manipIndex,
EcU32  endEffectorIndex,
EcManipulatorActiveState activeState,
EcEndEffectorPlacement placementInSys 
) const
virtual

calculate the placement of an end-effector in the manipulator specified by a given index

Parameters
[in]manipIndexThe index of the manipulator.
[in]endEffectorIndexThe index of the end-effector whose placement is to be calculated.
[in,out]activeStateThe active state of the manipulator. Some elements of the active state may be modified.
[out]placementInSysUpon return, the placement of the end-effector in the system coordinates.
Returns
False if the index is out of range or true otherwise.
virtual void EcPositionControlSystem::calculateCollisionStopping ( EcBoolean  firstPass)
protectedvirtual

Perform calculations needed to stop manipulators for collisions

Parameters
[in]firstPassflag indicating this is the first pass of control
virtual EcBoolean EcPositionControlSystem::calculateState ( const EcReal  time,
EcManipulatorSystemState state 
)
virtual

Calculate a new manipulator state that moves manipulators towards desired placements. Internally, this calls calculateStateTimeSteps() method. The number of time steps used in calculateStateTimeSteps() call depends on the current time of the internal state, the input time, and maxIterations(). The time in the returned state may be less than or equal to the input time. The returned state is almost guaranteed to be different then the internal state at the end of this call.

Parameters
timeInput time.
stateThe returned state.
Returns
error flag

Reimplemented in EcPositionControlSystemWithConverter.

Examples:
ecCollisionAvoidanceExample.cpp.
virtual EcBoolean EcPositionControlSystem::calculateStateTimeSteps ( EcManipulatorSystemState state,
const EcU32  numTimeSteps = 1,
const EcReal  extrapolationTime = 0.0 
)
virtual

Calculate a new manipulator state that moves manipulators towards desired placements by advancing by a given number of time steps. If extrapolationTime > 0, then the returned position state and time are extrapolated from the final position state and time at the end of the time steps by extrapolationTime. Otherwise, they are equal to the state at the end of the time steps. Let currentTime be the current time of the internal state (either from previous call by calculateStateTimeSteps, setCurrentState, etc.) at the beginning of this call. The time of the internal state at the end of the call will be currentTime + numTimeSteps*timeStep(). The time of the returned state will be currentTime + numTimeSteps*timeStep() + extrapolationTime. This method is more deterministic than calculateState() in the sense that inverse kinematics (IK) calculations will happen exactly numTimeSteps times if acceleration limiting is off. When acceleration limiting is on, the number of IK calculations could exceed numTimeSteps but the time of the internal state at the end of the call will still be currentTime + numTimeSteps*timeStep().

Parameters
[out]stateThe returned state.
[in]numTimeStepsThe number of time steps.
[in]extrapolationTimeThe extrapolation time at the end. Normally, it should be less than timeStep(). However, the value greater than timeStep() is allowed but discouraged since a large extrapolationTime may break Jacobian linearization.
Returns
False if timeStep() <= 0 or stated system is invalid. True otherwise.
virtual const EcBoolean EcPositionControlSystem::checkForCollision ( EcSystemActiveState systemActiveState,
const EcReal collisionBreakthroughThreshold,
const EcU32 bvLevel,
const EcReal precision,
EcPropagationResultDataVector results 
) const
protectedvirtual

Checks the given manipulator for collision and records collision information in propagation result data

static const EcToken& EcPositionControlSystem::classToken ( )
static

token for this class

Returns
token that describes the XML object
virtual EcXmlObject* EcPositionControlSystem::clone ( ) const
virtual

clone - a virtual constructor to an EcXmlObject pointer

Returns
cloned XML object

Implements EcXmlObject.

Reimplemented in EcPositionControlSystemWithConverter.

virtual const EcReal EcPositionControlSystem::collisionBreakdownThreshold ( ) const
virtual

gets the collision breakdown threshold

Returns
collision breakdown threshold
virtual void EcPositionControlSystem::connectComponents ( EcBoolean  setSystem = EcTrue)
protectedvirtual

connects member variables

Parameters
setSystemIf true, then the stated system will be set for all the position controllers This should only be true for initialization or there's a change to the stated system or control structures.
virtual void EcPositionControlSystem::connectComponentsOfManipulator ( const EcU32  manipIndex)
protectedvirtual

connects member variables of a given manipulator

Parameters
manipIndexThe index of the manipulator for which components should be connected. Note that manipIndex needs to be valid since it's not checked in this method.
virtual const EcControlExpressionDescription& EcPositionControlSystem::controlExpressionDescription ( const EcU32  manipulatorIndex) const
virtual

gets control expression description

Parameters
manipulatorIndexindex for selecting manipulator
Returns
control expression description for one manipulator
static EcXmlObject* EcPositionControlSystem::creator ( )
static

static creator function

Returns
XML object created during XML loading
virtual const EcEndEffectorPlacement& EcPositionControlSystem::desiredPlacement ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex 
) const
virtual

gets an individual desired end-effector placement. Returns identity if the indices are not valid.

Parameters
manipulatorIndexmanipulator selection
endEffectorIndexend effector selection
Returns
commanded placement for one end effector

Reimplemented in EcPositionControlSystemWithConverter.

virtual const EcManipulatorEndEffectorVelocityVector& EcPositionControlSystem::desiredVelocityVector ( ) const
virtual

gets the desired end-effector velocities

Returns
commanded velocity vector

Reimplemented in EcPositionControlSystemWithConverter.

virtual const EcEndEffectorRelativeLinkData& EcPositionControlSystem::endEffectorRelativeLinkData ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex 
) const
virtual

gets the relative link data. Returns identity if the indices are not valid.

Parameters
manipulatorIndexindex for selecting the manipulator
endEffectorIndexindex for selecting the end effector
Returns
relative link data for end effector

Reimplemented in EcPositionControlSystemWithConverter.

virtual const EcEndEffectorSet& EcPositionControlSystem::endEffectorSet ( const EcU32  manipulatorIndex) const
virtual

gets end effector set

Parameters
manipulatorIndexindex for selecting manipulator
Returns
end effector data for one manipulator

Reimplemented in EcPositionControlSystemWithConverter.

virtual const EcEndEffectorSetVector& EcPositionControlSystem::endEffectorSets ( const EcU32  manipulatorIndex) const
virtual

gets the list of end-effector sets (excluding the joint-control set)

virtual EcBoolean EcPositionControlSystem::equality ( const EcXmlObject other) const
virtual

equality - virtual equality to an EcXmlObject pointer

Parameters
otherXML object to test against
Returns
equality test result

Implements EcXmlObject.

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::getToolOffset ( EcU32  manipIndex,
EcU32  eeSetIndex,
EcU32  eeIndex,
EcBoolean useToolOffset,
EcCoordinateSystemTransformation value 
) const
virtual

Get the tool offset for a given end effector.

Parameters
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[out]useToolOffsetwhether the end-effector uses external tool offset
[out]valuethe tool offset
Returns
True if succeeded.
virtual EcBoolean EcPositionControlSystem::getToolOffset ( EcU32  manipIndex,
EcU32  eeSetIndex,
EcU32  eeIndex,
EcCoordinateSystemTransformation tcp 
) const
virtual

Get the tool offset (in EE frame)

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[out]tcpthe TCP. If the end-effector does not use tool offset, an identity transformation will be returned.
Returns
True if the indices are valid.
virtual EcBoolean EcPositionControlSystem::ignoreTimeStep ( ) const
virtual

gets the flag indicating whether to ignore the position control time step

virtual EcBoolean EcPositionControlSystem::initDesiredPlacementVector ( const EcSizeT manipIndex)
virtual

set desired end effector placement, either to the actual placement or the previously stored desired placement

virtual EcBoolean EcPositionControlSystem::initializeStates ( EcBoolean  calcVelState = EcTrue)
protectedvirtual

initialize XML components for reading and writing system states and desired end-effector states

Parameters
calcVelStateIf true (default), the velocity state will be calculated and set in the stated system.

Reimplemented in EcPositionControlSystemWithConverter.

virtual void EcPositionControlSystem::initializeStatesOfManipulator ( const EcU32  manipIndex,
const EcBoolean  calcVelState = EcTrue 
)
protectedvirtual

initialize the states, including desired end-effector placement, of a given manipulator

Parameters
manipIndexThe index of the manipulator whose states should be initialized. Note that manipIndex needs to be valid since it's not checked in this method.
virtual EcBoolean EcPositionControlSystem::integrityCheck ( ) const
virtual

check for the dimensional integrity of components

Returns
error flag
virtual EcBoolean EcPositionControlSystem::mergeWith ( const EcPositionControlSystem orig)
virtual

adds control description of input container to current control description

Parameters
origcontainer to merge with
Returns
error flag
static EcPositionControlSystem EcPositionControlSystem::nullObject ( )
static

get a null object

Returns
uninitialized position control system
virtual EcBoolean EcPositionControlSystem::read ( EcXmlReader stream)
virtual

read this object from an XML stream

Parameters
streamXML reader stream
Returns
error flag

Reimplemented from EcXmlCompoundType.

Reimplemented in EcPositionControlSystemWithConverter.

virtual void EcPositionControlSystem::resetActiveStates ( )
protectedvirtual

invalidates the active states and sets new position and velocity values This should be called whenever the state changes.

virtual EcBoolean EcPositionControlSystem::setAccelerationFactor ( EcU32  manipIndex,
EcReal  value 
)
virtual

sets the acceleration factor of the controller for the manipulator specified by manipIndex. Returns false if manipIndex is invalid or true otherwise.

See also
EcVelocityController::setAccelerationFactor
virtual EcBoolean EcPositionControlSystem::setAccelerationFactor ( EcU32  manipIndex,
EcU32  eeSetIndex,
EcU32  eeIndex,
EcReal  value 
)
virtual

Set the acceleration factor for a particular end-effector.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]valuethe acceleration factor, must be in (0, 1]
virtual EcBoolean EcPositionControlSystem::setActiveControlDescription ( const EcU32  manipulatorIndex,
const EcU32  index 
)
virtual

sets the active control description of a manipulator by index

Parameters
[in]manipulatorIndexThe index of the manipulator to which the active control description will be set.
[in]indexThe index of the active control description to be set.
Returns
True if successful or false if either manipulatorIndex or v is out of range.
virtual EcBoolean EcPositionControlSystem::setActiveEndEffectorIndex ( const EcU32  manipIndex,
const EcU32  eeIndex 
)
virtual

sets gets the index of the active end-effector for the active EE set of a manipulator by index

Parameters
[in]manipIndexThe index of the manipulator to which the active end-effector set will be set.
[in]eeIndexThe index of the active end-effector to be set.
Returns
True if successful or false if either manipulatorIndex or index is out of range.
virtual EcBoolean EcPositionControlSystem::setActiveEndEffectorSet ( const EcU32 manipulatorIndex,
const EcU32 index 
)
virtual

sets the active end-effector set of a manipulator by index

Parameters
[in]manipulatorIndexThe index of the manipulator to which the active end-effector set will be set.
[in]indexThe index of the active end-effector set to be set.
Returns
True if successful or false if either manipulatorIndex or index is out of range.

Reimplemented in EcPositionControlSystemWithConverter.

virtual void EcPositionControlSystem::setActualPlacementVector ( const EcManipulatorEndEffectorPlacementVector actualPlacementVector)
virtual

sets the actual end-effector placements

Parameters
actualPlacementVectorcurrent placement vector

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::setBaseAccelerationFactor ( EcU32  manipIndex,
EcReal  value 
)
virtual

sets the base acceleration factor of the controller for the manipulator specified by manipIndex. Returns false if manipIndex is invalid or true otherwise.

See also
EcVelocityController::setAccelerationFactor
virtual EcBoolean EcPositionControlSystem::setBaseSpeedFactor ( EcU32  manipIndex,
EcReal  value 
)
virtual

sets the base speed factor of the controller for the manipulator specified by manipIndex. Returns false if manipIndex is invalid or true otherwise.

See also
EcVelocityController::setBaseSpeedFactor
virtual void EcPositionControlSystem::setControlExpressionDescription ( const EcControlExpressionDescription controlExpressionDescription,
const EcU32  manipulatorIndex 
)
virtual

sets control expression description

Parameters
controlExpressionDescriptioncontrol expression description for one manipulator
manipulatorIndexindex for selecting manipulator
virtual EcBoolean EcPositionControlSystem::setControlMode ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcU32  mode 
)
virtual

Sets the control mode of an end-effector by index.

Parameters
[in]manipIndexThe index of the manipulator to which the control mode will be set.
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]modeThe control mode (EcEndEffector::ControlMode) to be set.
Returns
True if successful or false if an index is out of range.
See also
EcVelocityController::setControlMode
virtual EcBoolean EcPositionControlSystem::setControlMode ( EcU32  manipIndex,
EcU32  mode 
)
virtual

sets the control mode of a manipulator by index

Parameters
[in]manipIndexThe index of the manipulator to which the control mode will be set.
[in]modeThe control mode to be set.
Returns
True if successful or false if manipIndex is out of range.
virtual EcBoolean EcPositionControlSystem::setDesiredPlacement ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex,
const EcEndEffectorPlacement placementInRelative 
)
virtual

sets an individual desired end-effector placement (returns True for success)

Parameters
manipulatorIndexmanipulator selection
endEffectorIndexend effector selection
placementInRelativecommanded placement for one end-effector in the primary frame of the end-effector's relative link. If the end-effector is not relative, then it's the placement in the system coordinates.
Returns
error flag

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::setDesiredVelocity ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex,
const EcXmlRealVector velocity 
)
virtual

sets an individual desired end-effector velocity (returns True for success)

Parameters
manipulatorIndexmanipulator selection
endEffectorIndexend effector selection
velocitycommanded velocity for one end effector
Returns
error flag

Reimplemented in EcPositionControlSystemWithConverter.

virtual void EcPositionControlSystem::setDesiredVelocityVector ( const EcManipulatorEndEffectorVelocityVector desiredVelocityVector)
virtual

sets the desired end-effector velocities

Parameters
desiredVelocityVectorcommanded velocity vector

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::setEndEffectorRelativeLinkData ( EcU32  manipulatorIndex,
EcU32  endEffectorIndex,
const EcEndEffectorRelativeLinkData relData 
)
virtual

sets the relative link data

Parameters
manipulatorIndexindex for selecting the manipulator
endEffectorIndexindex for selecting the end effector
relDatarelative link data for end effector
Returns
error flag

Reimplemented in EcPositionControlSystemWithConverter.

virtual void EcPositionControlSystem::setEndEffectorSet ( const EcEndEffectorSet endEffectorSet,
const EcU32  manipulatorIndex 
)
virtual

sets an end effector set

Parameters
endEffectorSetend effector data for one manipulator
manipulatorIndexindex for selecting manipulator

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::setEndEffectorSets ( const EcU32  manipulatorIndex,
const EcEndEffectorSetVector eeSets 
)
virtual

sets the list of end-effector sets (excluding the joint-control set)

virtual void EcPositionControlSystem::setIgnoreTimeStep ( EcBoolean  value)
virtual

sets the flag indicating whether to ignore the position control time step. By default, this is false. Set it to true if calculateState is being called externally at a sufficiently fast cycle rate.

virtual EcBoolean EcPositionControlSystem::setIsHardConstraint ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcBoolean  value 
)
virtual

Set is hard constraint flag.

The method does nothing if the flag does not change.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]valuetrue if hard constraint, false if soft constraint
Returns
True if the indices are valid.
virtual EcBoolean EcPositionControlSystem::setProfiledPositionEndEffectors ( EcU32  manipIndex,
const EcU32Vector indices 
)
virtual

sets some end-effectors to follow profiled trajectory for the manipulator specified by manipIndex. If indices is not empty, it will temporarily turn on ignore time step so that profiled trajetory following works correctly. Returns false if manipIndex is invalid or true otherwise. See EcPositionController::setProfiledPositionEndEffectors for details.

virtual EcBoolean EcPositionControlSystem::setPropagationResultData ( const EcU32  manipIndex,
const EcPropagationResultData data 
)
virtual

Set the propagation result data.

Parameters
[in]manipIndexthe manipulator index
[in]datathe propagation result data
Returns
true if the index is valid
virtual EcBoolean EcPositionControlSystem::setPropagationResultData ( const EcU32  manipIndex,
const EcPropagationResultData data,
EcPropagationResultData::ExceptionType  exceptionType 
)
virtual

Set the propagation result data.

Parameters
[in]manipIndexthe manipulator index
[in]datathe propagation result data
Returns
true if the index is valid
virtual EcBoolean EcPositionControlSystem::setPropagationResultDataVector ( const EcPropagationResultDataVector vData)
virtual

Set the propagation result data vector.

Parameters
[in]vDatathe propagation result data vector
Returns
true if successful
virtual void EcPositionControlSystem::setSensedState ( const EcManipulatorSystemState state,
EcReal  timeStep,
const EcBooleanVector notSetFlags = EcBooleanVector(),
EcBoolean  baseOnly = EcFalse 
)
virtual

feed back the externally sensed position state to the position controller

Parameters
[in]stateThe sensed state to be fed back.
[in]timeStepThe time step of how frequently this method is called.
[in]notSetFlagsThe flags indicating which manipulator states will not be fed back. If this vector is empty, then all the states will be fed back.
[in]baseOnlyIf true only the sensed bases will be fed back.
virtual void EcPositionControlSystem::setSensedState ( EcU32  manipIndex,
const EcPositionState posState,
EcReal  timeStep,
EcBoolean  baseOnly = EcFalse 
)
virtual

feed back the externally sensed position state of a given manipulator to the position controller

Parameters
[in]manipIndexThe index of the manipulator for which the sensed state will be fed back
[in]posStateThe sensed position state to be fed back.
[in]timeStepThe time step of how frequently this method is called.
[in]baseOnlyIf true only the sensed base will be fed back.
virtual EcBoolean EcPositionControlSystem::setSpeedFactor ( EcU32  manipIndex,
EcReal  speedFactor 
)
virtual

sets the speed factor of the controller for the manipulator specified by manipIndex. Returns false if manipIndex is invalid or true otherwise.

See also
EcVelocityController::setSpeedFactor
virtual EcBoolean EcPositionControlSystem::setSpeedFactor ( EcU32  manipIndex,
EcU32  eeSetIndex,
EcU32  eeIndex,
EcReal  value 
)
virtual

Set the speed factor for a particular end-effector.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]valuethe speed factor, must be in (0, 1]
virtual void EcPositionControlSystem::setStatedSystem ( EcStatedSystem pStatedSystem)
virtual

sets the pointer to the stated system. Note that the stated system needs to always be valid (not out of scope) as long as the control is running. Normally, the system in the stated system is not altered by the control system but the state in the stated system will definitely change, esp. when the control is running.

Examples:
ecCollisionAvoidanceExample.cpp, and ecProgrammaticConstructionMain.cpp.
virtual EcBoolean EcPositionControlSystem::setToolOffset ( EcU32  manipIndex,
EcU32  toolIndex,
const EcCoordinateSystemTransformation value 
)
virtual

set the tool offset for a given tool index for a given manipulator. Returns false if manipIndex or toolIndex is invalid or true otherwise.

virtual EcBoolean EcPositionControlSystem::setToolOffset ( EcU32  manipIndex,
EcU32  eeSetIndex,
EcU32  eeIndex,
const EcCoordinateSystemTransformation value 
)
virtual

Set the tool offset in link primary frame for a given manipulator and end-effector.

This method will update the guide frame of the manipulator.

See also
EcVelocityController::setToolOffset
virtual EcBoolean EcPositionControlSystem::setToolOffsetFixEE ( EcU32  manipIndex,
EcU32  toolIndex,
const EcCoordinateSystemTransformation value 
)
virtual

set the tool offset for a given tool index for a given manipulator. Returns false if manipIndex or toolIndex is invalid or true otherwise. This version will not change the guide frame or end effector frame. The tool stays where it was.

Parameters
[in]manipIndexThe index of the manipulator.
[in]toolIndex.Tool index, different from link index.
Returns
True if successful or false if index is out of range.
virtual void EcPositionControlSystem::setUseExternalCollisionDetection ( EcU32  manipulatorIndex,
EcBoolean  useExternalCollisionDetection 
)
virtual

sets the use-external-collision-detection flag

Parameters
[in]use-external-collision-detectionvalue to set
virtual void EcPositionControlSystem::setUseSinglePass ( EcBoolean  value)
virtual

sets the flag indicating whether to use a single pass in the controller By default, this is false. Set it to true to use the more efficient (but less conservative) single pass controller

virtual EcBoolean EcPositionControlSystem::setUseSoftEndEffectorSet ( EcU32  manipIndex,
EcBoolean  soft 
)
virtual

sets whether to use soft end effector set for a given manipulator by index

Parameters
[in]manipIndexThe index of the manipulator for which to use soft end effector set
[in]softTrue if we want to use soft end effector set or false otherwise
Returns
True if successful or false if manipulatorIndex is out of range.
See also
EcVelocityController::setUseSoftEndEffectorSet
virtual const EcToken& EcPositionControlSystem::token ( ) const
virtual

return a token

Returns
token that describes the XML object

Implements EcXmlObject.

Reimplemented in EcPositionControlSystemWithConverter.

virtual EcBoolean EcPositionControlSystem::useExternalCollisionDetection ( EcU32  manipulatorIndex) const
virtual

gets the use-external-collision-detection flag

Returns
The use-external-collision-detection flag
virtual EcBoolean EcPositionControlSystem::write ( EcXmlWriter stream) const
virtual

write this object to an XML stream

Parameters
streamXML writer stream
Returns
error flag

Reimplemented from EcXmlCompoundType.

Reimplemented in EcPositionControlSystemWithConverter.

Member Data Documentation

EcXmlReal EcPositionControlSystem::m_CollisionBreakdownThreshold
protected

the threshold specifying when a material will break down and allow an object to pass through. Typically this value is set to 1, meaning the system will stop at all link collisions.

Definition at line 1210 of file ecPosContSystem.h.

EcXmlReal EcPositionControlSystem::m_CollisionStoppingThreshold
protected

Collision stopping threshold. Distance from a collision where the control system should stop The default for this is 0

Definition at line 1217 of file ecPosContSystem.h.

EcXmlBoolean EcPositionControlSystem::m_IgnoreTimeStep
protected

Flag indicating whether to ignore the position control time step

Definition at line 1240 of file ecPosContSystem.h.


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