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

Holds a description of a position controller for one manipulator. More...

#include <ecPositionController.h>

Inheritance diagram for EcPositionController:
EcXmlCompoundType EcXmlObject EcAntiCollisionPositionController

Public Types

enum  {
  POSITIONCONTROLRESULT =0,
  DESIREDVELOCITYBASED =1,
  ZERO =2,
  FINITEDIFFERENCERESULT =3
}
 
- Public Types inherited from EcXmlCompoundType
enum  {
  READONLYCOMPONENT = 0,
  READONLYATTRIBUTE
}
 special-descriptor codes More...
 

Public Member Functions

 EcPositionController ()
 default constructor
 
virtual ~EcPositionController ()
 destructor
 
 EcPositionController (const EcPositionController &orig)
 copy constructor
 
EcPositionControlleroperator= (const EcPositionController &orig)
 assignment operator
 
EcBoolean operator== (const EcPositionController &orig) const
 equality operator
 
virtual EcBoolean equality (const EcXmlObject *other) const EC_OVERRIDE
 equality - virtual equality to an EcXmlObject pointer More...
 
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
 clone - a virtual constructor to an EcXmlObject pointer More...
 
virtual void registerComponents () EC_OVERRIDE
 register components with the parent
 
virtual EcU32 manipulatorIndex () const
 gets the manipulator index for this controller
 
virtual void setManipulatorIndex (EcU32 value)
 sets the manipulator index for this controller
 
virtual const EcVelocityControllervelocityController () const
 gets the velocity controller
 
virtual EcVelocityControllervelocityController ()
 gets the velocity controller – non-const version
 
virtual void setVelocityController (const EcVelocityController &value)
 sets the velocity controller
 
virtual const EcPositionControlMethodVectorpositionControlMethods () const
 gets the vector of position control methods
 
virtual void setPositionControlMethods (const EcPositionControlMethodVector &value)
 sets the vector of position control methods
 
virtual EcU32 activeControlMethodIndex () const
 gets the index of the active position control method
 
virtual EcBoolean setActiveControlMethod (EcU32 value)
 sets the index of the active position control method
 
virtual EcReal timeStep () const
 gets the time step
 
virtual void setTimeStep (EcReal timeStep)
 sets the time step
 
virtual EcBoolean isOn () const
 gets a flag indicating whether or not the position controller is on
 
virtual void setIsOn (EcBoolean isOn)
 sets a flag indicating whether or not the position controller is on
 
virtual EcBoolean stopOnCollision () const
 gets a flag indicating whether or not the manipulator stops at collisions
 
virtual void setStopOnCollision (EcBoolean stopAtCollision)
 sets a flag indicating whether or not the manipulator stops at collisions
 
virtual EcBoolean useExternalCollisionDetection () const
 
virtual void setUseExternalCollisionDetection (EcBoolean useExternalCollisionDetection=EcFalse)
 
virtual void generateCollisionReport (EcPropagationResultData &collisions, const EcU32 &bvLevel=1, const EcReal &precision=0) const
 
virtual EcU32 velocityStateReturnMode () const
 gets the velocity state return mode
 
virtual void setVelocityStateReturnMode (EcU32 velocityStateReturnMode)
 sets the velocity state return mode
 
virtual EcReal defaultFeedbackAssimilationRate () const
 gets the default feedback assimilation rate
 
virtual void setDefaultFeedbackAssimilationRate (EcReal defaultFeedbackAssimilationRate)
 sets the default feedback assimilation rate
 
virtual void setStatedSystem (EcStatedSystem *value)
 set the pointer to the stated system
 
virtual EcStatedSystemstatedSystem () const
 get the pointer to the stated system
 
virtual const EcManipulatorEndEffectorVelocitycalculatedEndEffectorVelocity () const
 get the end-effector velocity calculated for velocity control
 
virtual void setCalculatedEndEffectorVelocity (const EcManipulatorEndEffectorVelocity &value)
 set the end-effector velocity calculated for velocity control
 
virtual const EcManipulatorEndEffectorAccelerationcalculatedEndEffectorAcceleration () const
 get the end-effector acceleration calculated for velocity control
 
virtual void setCalculatedEndEffectorAcceleration (const EcManipulatorEndEffectorAcceleration &value)
 set the end-effector acceleration calculated for velocity control
 
virtual void setDesiredEndEffectorPlacement (EcManipulatorEndEffectorPlacement *value)
 set the pointer to the input desired end-effector placement
 
virtual EcManipulatorEndEffectorPlacementdesiredEndEffectorPlacement () const
 get the pointer to the input desired end-effector placement
 
virtual void setDesiredEndEffectorVelocity (EcManipulatorEndEffectorVelocity *value)
 set the pointer to the input desired end-effector velocity
 
virtual EcManipulatorEndEffectorVelocitydesiredEndEffectorVelocity () const
 get the pointer to the input desired end-effector velocity
 
virtual void setActualEndEffectorPlacement (EcManipulatorEndEffectorPlacement *value)
 set the pointer to the actual end-effector placement
 
virtual EcManipulatorEndEffectorPlacementactualEndEffectorPlacement () const
 get the pointer to the actual end-effector placement
 
virtual void setPropagationResultData (EcPropagationResultData *value)
 set the pointer to the propagation result data
 
virtual EcPropagationResultDatapropagationResultData () const
 get the pointer to the propagation result data
 
virtual void setPreviousEndEffectorVelocity (EcManipulatorEndEffectorVelocity *value)
 set the pointer to the end-effector velocities from previous cycle
 
virtual EcManipulatorEndEffectorVelocitypreviousEndEffectorVelocity () const
 get the pointer to the end-effector velocities from previous cycle
 
virtual void setPreviousEndEffectorAcceleration (EcManipulatorEndEffectorAcceleration *value)
 set the pointer to the end-effector accelerations from previous cycle
 
virtual EcManipulatorEndEffectorAccelerationpreviousEndEffectorAcceleration () const
 get the pointer to the end-effector accelerations from previous cycle
 
virtual void setSystemActiveState (EcSystemActiveState *value)
 set the pointer to the system active state
 
virtual EcSystemActiveStatesystemActiveState () const
 get the pointer to the system active state
 
virtual const EcPositionControlSystempositionControlSystem () const
 get the pointer to the position control system
 
virtual void setPositionControlSystem (const EcPositionControlSystem *value)
 set the pointer to the position control system
 
virtual EcBoolean setEndEffectorRelativeLinkData (const EcU32 endEffectorIndex, const EcEndEffectorRelativeLinkData &relData)
 sets the relative link data More...
 
virtual const EcEndEffectorRelativeLinkDataendEffectorRelativeLinkData (const EcU32 endEffectorIndex) const
 
virtual const EcControlExpressionDescriptioncontrolExpressionDescription () const
 
virtual void setControlExpressionDescription (const EcControlExpressionDescription &controlExpressionDescription)
 sets the active control expression description More...
 
virtual const EcEndEffectorSetendEffectorSet () const
 gets the active end-effector set More...
 
virtual void setEndEffectorSet (const EcEndEffectorSet &endEffectorSet)
 sets the active end-effector set More...
 
virtual EcBoolean addDefaultControlDescriptionAndEndEffectorSet (const EcIndividualManipulator &manipulator)
 
virtual const EcControlExpressionDescriptionVectorcontrolDescriptions () const
 gets the list of control descriptions More...
 
virtual EcBoolean setControlDescriptions (const EcControlExpressionDescriptionVector &controlDescriptions)
 sets the vector of control descriptions More...
 
virtual EcBoolean setActiveControlDescription (EcU32 index)
 
virtual EcU32 activeControlDescriptionIndex () const
 
virtual const EcEndEffectorSetVectorendEffectorSets () const
 gets the list of end-effector sets (excluding the joint-control set) More...
 
virtual EcBoolean setEndEffectorSets (const EcEndEffectorSetVector &eeSets)
 sets the list of end-effector sets (excluding the joint-control set) More...
 
virtual EcBoolean setActiveEndEffectorSet (EcU32 index)
 
virtual EcU32 activeEndEffectorSetIndex () const
 gets the index of the active end-effector set More...
 
const EcDataMapdataMapPointer () const
 gets the data-map pointer for a specified manipulator More...
 
virtual void setDataMapPointer (const EcDataMap *pDataMap)
 sets the data-map pointer for a specified manipulator More...
 
virtual const EcStoppingCriterionVectorstoppingCriteria () const
 gets the stopping criteria
 
virtual void setStoppingCriteria (const EcStoppingCriterionVector &value)
 sets the stopping criteria
 
virtual EcReal jointMotionThreshold () const
 
virtual void setJointMotionThreshold (EcReal value)
 sets the joint motion threshold
 
virtual const EcEndEffectorToolendEffectorTool () const
 get the end-effector tool
 
virtual EcBoolean read (EcXmlReader &stream) EC_OVERRIDE
 read object from an XML stream More...
 
virtual EcBoolean write (EcXmlWriter &stream) const EC_OVERRIDE
 write object to an XML stream More...
 
virtual const EcTokentoken () const EC_OVERRIDE
 gets the xml token used for writing out. More...
 
virtual void connectComponents (EcBoolean setSystem)
 
virtual void configureEndEffectorTool ()
 configure the end-effector tool
 
virtual void saveDeterminantAndNullSpace () const
 save the primary determinant and null space for multipassFilter
 
virtual void multipassFilter (const EcVelocityState &passOneState, const EcVelocityState &passTwoState, EcVelocityState &outputState) const
 
virtual EcBoolean singlePassFilter (const EcVelocityState &prevState, const EcVelocityState &newState, EcVelocityState &outputState) const
 
virtual EcBoolean calculateGeneralMotion ()
 
virtual void calculateVelocityState ()
 calculate velocity state
 
virtual void calculateNewPlacements ()
 calculate the new placement from the new state
 
virtual EcBoolean calculatePlacements (const EcPositionState &posState, EcManipulatorEndEffectorPlacement &placement) const
 
virtual void calculateNewVelocities ()
 calculate the new end-effector velocities from the new state
 
virtual void calculateNewAccelerations ()
 calculate the new end-effector accelerations from the new state
 
virtual void checkStoppingCriteria (const EcStatedSystem &statedSystem, EcPropagationResultData &propagationResultsData) const
 check stopping criteria
 
virtual EcBoolean resetAndStopManipulator (EcStatedSystem &statedSystem, const EcPropagationResultData &propagationResultData, const EcManipulatorSystemState &initialState)
 reset and stop manipulator due to collision and general stopping criteria More...
 
virtual EcManipulatorActiveStateactiveState () const
 gets the active state
 
virtual void resetActiveState ()
 
virtual void calculateVelocityStateNoPositionControl (EcVelocityState &velocityState)
 calculate velocity state without the component for position control
 
virtual void calculateFiniteDifferenceVelocityState (const EcPositionState &lastState, const EcPositionState &newState, EcReal deltaTime, EcVelocityState &velocityState)
 calculate the velocity state using finite differencing
 
virtual void setVelocityState (const EcManipulatorSystemState &lastState, EcManipulatorSystemState &newState)
 set the velocity state based on the velocity state return mode
 
virtual void preCalculateStateCondition ()
 
virtual void postCalculateStateCondition ()
 
virtual void setSensedState (const EcPositionState &posState, EcReal timeStep, EcBoolean baseOnly=EcFalse)
 feed back the externally sensed state to the position controller
 
virtual void setSensedState (const EcPositionState &posState, const EcVelocityState &velState, EcReal timeStep, EcBoolean baseOnly=EcFalse)
 feed back the externally sensed state to the position controller
 
virtual void setInternalJointControl (EcBoolean on)
 set the joint-control EE set as active internally
 
virtual const EcEndEffectorSetjointControlEndEffectorSet () const
 gets the joint control end-effector set
 
virtual void setJointControlEndEffectorSet (const EcEndEffectorSet &endEffectorSet)
 
virtual EcBoolean isConverging () const
 return whether the controller is converging towards the desired end-effector placement
 
virtual void resetConvergenceTest () const
 reset convergence test
 
virtual EcBoolean isMoving (EcReal threshold=0.0) const
 
virtual void setProfiledPositionEndEffectors (const EcU32Vector &indices)
 
virtual const EcManipulatorEndEffectorPlacementactualEndEffectorPlacement (EcU32 eeSetIndex) const
 get the end-effector placement of the end-effectors in the EE set for a given index.
 
virtual void setPriorityListPointer (const EcAntiCollisionPriorityList *pList)
 set pointer to the priority list
 
virtual EcBoolean isAntiCollisionOn () const
 get flag indicating whether anti-collision is on
 
virtual void setIsAntiCollisionOn (EcBoolean value)
 set flag indicating whether anti-collision is on
 
virtual const EcAccelerationLimiteraccelerationLimiter () const
 
virtual EcAccelerationLimiteraccelerationLimiter ()
 get the acceleration limiter (non-const)
 
virtual void setAccelerationLimiter (const EcAccelerationLimiter &value)
 set the acceleration limiter
 
EcReal determinant () const
 return the determinant
 
virtual void setDeterminant (const EcReal determinant)
 
const EcReArraynullSpace () const
 return the null space
 
virtual void setNullSpace (const EcReArray &nullSpace)
 
virtual void setStoredDesiredPlacement (const EcSizeT &eeId, const EcEndEffectorPlacement &placement)
 to store desired end effector placement to the end effector
 
- 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 const EcTokenclassToken ()
 token for this class More...
 
static EcXmlObjectcreator ()
 static creator function More...
 
static EcPositionController buildPositionController (const EcIndividualManipulator &manipulator, EcBoolean massMatrix, EcReal scalar)
 build a position controller
 

Protected Member Functions

virtual void multipassFilter (const EcVelocityState &passOneState, const EcVelocityState &passTwoState, EcReal determinant1, EcReal determinant2, EcVelocityState &outputState) const
 filter the joint rates based on two passes More...
 
virtual EcBoolean singlePassFilter (const EcVelocityState &prevState, const EcVelocityState &newState, EcReal determinant1, EcReal determinant2, EcVelocityState &outputState) const
 filter the joint rates based on two time steps (for single-pass control) returns true if a singularity is crossed More...
 
virtual EcBoolean checkSingularityCrossing (EcReal determinant1, EcReal determinant2) const
 Check whether asingularity has been crossed based on the two determinants returns true if a singularity was crossed.
 
virtual void handleSingularityCrossing (const EcVelocityState &state1, const EcVelocityState &state2, EcVelocityState &outputState) const
 stop the smallest sub-manipulator if a singularity was crossed More...
 
virtual void processDeterminant (EcReal &determinant2, const EcReArray &nullSpace1, const EcReArray &nullSpace2) const
 a utility to support NULL space matching More...
 
- 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

EcVelocityController m_VelocityController
 the velocity controller
 
EcPositionControlMethodVector m_vControlMethods
 the vector of position control methods
 
EcXmlU32 m_ActiveControlMethodIndex
 the index of the active control method
 
EcXmlBoolean m_IsOn
 a flag indicating whether or not the position control system is operating
 
EcXmlEnumU32 m_VelocityStateReturnMode
 the velocity state return mode
 
EcXmlReal m_DefaultFeedbackAssimilationRate
 
EcStoppingCriterionVector m_StoppingCriteria
 control-level stopping criteria
 
EcXmlReal m_JointMotionThreshold
 
EcAccelerationLimiter m_AccelerationLimiter
 acceleration limiter
 
EcXmlBoolean m_StopOnCollision
 a flag indicating whether or not to stop at collisions
 
EcXmlBoolean m_UseExternalCollisionDetection
 a flag indicating whether or not to use external collision detection results
 
EcXmlEnumU32 m_ControlMode
 the control model More...
 
EcU32 m_ManipulatorIndex
 the index of the manipulator for which this controller is
 
EcStatedSystemm_pStatedSystem
 the stated system
 
EcReal m_TimeStep
 the time step for position control
 
EcManipulatorEndEffectorVelocity m_VelocityControlVelocity
 the desired end-effector velocities calculated for velocity control
 
EcManipulatorEndEffectorAcceleration m_VelocityControlAcceleration
 the desired end-effector accelerations calculated for velocity control
 
EcManipulatorEndEffectorPlacementm_pDesiredPlacement
 the input desired end-effector placements
 
EcManipulatorEndEffectorVelocitym_pDesiredVelocity
 the input desired end-effector velocities
 
EcManipulatorEndEffectorPlacementm_pActualPlacement
 the new actual end-effector placement
 
EcPropagationResultDatam_pPropagationResultData
 propagation diagnostics data
 
EcManipulatorEndEffectorVelocitym_pPrevEndEffectorVelocity
 the end-effector velocities from previous cycle
 
EcManipulatorEndEffectorAccelerationm_pPrevEndEffectorAcceleration
 the end-effector accelerations from previous cycle
 
EcSystemActiveStatem_pSystemActiveState
 the system active state
 
const EcPositionControlSystemm_pPositionControlSystem
 pointer to the position control system
 
EcEndEffectorTool m_EndEffectorTool
 a utility end-effector tool
 
EcVelocityState m_NoPosControlVelocityState
 
EcVelocityState m_FiniteDifferenceVelocityState
 
EcU32 m_OrigEeSetIndex
 the original EE set index
 
EcBoolean m_InternalJointControl
 flag indicating whether internal joint control is on
 
EcManipulatorEndEffectorPlacement m_UtilityEndEffectorPlacement
 utility end-effector placement
 
EcReArray m_UtilityArray
 utility array
 
EcVelocityState m_UtilityVelState1
 first utility velocity state
 
EcVelocityState m_UtilityVelState2
 second utility velocity state
 
EcReal m_Determinant1
 determinant1 used in multi-pass
 
EcReArray m_NullSpace1
 null-space1 used in multi-pass
 
EcSingularityProximityFunction m_SingularityProximityFunction
 the singularity proximity function
 
EcEndEffectorPlacement m_UtilityEndEffectorPlacment
 the utility end effector placement
 
EcManipulatorEndEffectorVelocity m_DesiredVelocityInLocal
 desired EE velocity in local
 
EcManipulatorProximityTool m_ProximityTool
 proximity tool
 
- Protected Attributes inherited from EcXmlCompoundType
EcXmlComponentMapm_pComponentMap
 
EcXmlComponentMapm_pAttributeComponentMap
 
EcXmlSpecialDescriptorMapm_pSpecialDescriptorMap
 
EcXmlTokenStringDescriptorMapMapm_pComponentMapTokenStringDescriptor
 
- Protected Attributes inherited from EcXmlObject
EcU8 m_State
 the state of the object - eight boolean flags
 

Additional Inherited Members

- Static Protected Attributes inherited from EcXmlObject
static const EcU8 m_theXmlInitializedBit
 the bit used to describe xml initialization
 
static const EcU8 m_theSpecifiedBit
 the bit used to describe specification
 

Detailed Description

Holds a description of a position controller for one manipulator.

Examples:
ecCirclePathExampleDirection.cpp, ecPathPlanningCoreMain.cpp, ecPathPlanningMain.cpp, and ecQuickStartKinematicsMain.cpp.

Definition at line 29 of file ecPositionController.h.

Member Function Documentation

virtual const EcAccelerationLimiter& EcPositionController::accelerationLimiter ( ) const
virtual

get the acceleration limiter. The limiter process the state computed by the velocity control system just before it is returned by calculateState method.

virtual EcU32 EcPositionController::activeControlDescriptionIndex ( ) const
virtual

gets the index of the active control description

Returns
The index of the active control description.
virtual EcU32 EcPositionController::activeEndEffectorSetIndex ( ) const
virtual

gets the index of the active end-effector set

Examples:
ecCirclePathExampleDirection.cpp.
virtual EcBoolean EcPositionController::addDefaultControlDescriptionAndEndEffectorSet ( const EcIndividualManipulator manipulator)
virtual

adds a control control description, an effector set with default parameters, and a joint control end-effector set

Parameters
[in]manipulatorThe manipulator for which the control description will be added.
Returns
True if successful.
virtual EcBoolean EcPositionController::calculateGeneralMotion ( )
virtual

calculate a general motion set that will make a tradeoff between driving the end effectors from the first set of locations to the second while achieving the desired general motion.

Reimplemented in EcAntiCollisionPositionController.

virtual EcBoolean EcPositionController::calculatePlacements ( const EcPositionState posState,
EcManipulatorEndEffectorPlacement placement 
) const
virtual

calculate the placement from a given position state

Parameters
[in]posStateThe position state for which the EE placement is calculated
[out]placementThe calculated EE placement.
static const EcToken& EcPositionController::classToken ( )
static

token for this class

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

clone - a virtual constructor to an EcXmlObject pointer

Returns
cloned XML object

Implements EcXmlObject.

Reimplemented in EcAntiCollisionPositionController.

virtual void EcPositionController::connectComponents ( EcBoolean  setSystem)
virtual

connects member variables

Parameters
setSystemIf true, then the stated system will be set in the underlying velocity controller This should only be true for initialization or there's a change to the stated system or control structures.
virtual const EcControlExpressionDescriptionVector& EcPositionController::controlDescriptions ( ) const
virtual

gets the list of control descriptions

virtual const EcControlExpressionDescription& EcPositionController::controlExpressionDescription ( ) const
virtual

gets the active control expression description. This should be called only if isControlExpressionDescriptionValid returns true to prevent out-of-range error.

static EcXmlObject* EcPositionController::creator ( )
static

static creator function

Returns
XML object created during XML loading
const EcDataMap* EcPositionController::dataMapPointer ( ) const

gets the data-map pointer for a specified manipulator

virtual const EcEndEffectorRelativeLinkData& EcPositionController::endEffectorRelativeLinkData ( const EcU32  endEffectorIndex) const
virtual

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

virtual const EcEndEffectorSet& EcPositionController::endEffectorSet ( ) const
virtual

gets the active end-effector set

virtual const EcEndEffectorSetVector& EcPositionController::endEffectorSets ( ) const
virtual

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

Examples:
ecCirclePathExampleDirection.cpp, and ecQuickStartKinematicsMain.cpp.
virtual EcBoolean EcPositionController::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 EcAntiCollisionPositionController.

virtual void EcPositionController::generateCollisionReport ( EcPropagationResultData collisions,
const EcU32 bvLevel = 1,
const EcReal precision = 0 
) const
virtual

generate a collision report based on the current state of the system.

virtual void EcPositionController::handleSingularityCrossing ( const EcVelocityState state1,
const EcVelocityState state2,
EcVelocityState outputState 
) const
protectedvirtual

stop the smallest sub-manipulator if a singularity was crossed

Parameters
newStatestate from new time step (needed for correct sizing)
outputStatenew state to send to the manipulator
virtual EcBoolean EcPositionController::isMoving ( EcReal  threshold = 0.0) const
virtual

return whether the manipulator under control is moving

Parameters
thresholdThe threshold against which the joint velocity values are check. If the magnitudes of ALL joint velocities are below this value, then the robot is considered not move and isMoving will return false. Otherwise, it returns true. If threshold is less than or equal to 0, then the defaut threshold provided by jointMotionThreshold() is used as the threshold.
virtual EcReal EcPositionController::jointMotionThreshold ( ) const
virtual

gets the threshold for joint velocities. If the magnitude of a joint velocity is less than this threshold, the joint is considered not moving

virtual void EcPositionController::multipassFilter ( const EcVelocityState passOneState,
const EcVelocityState passTwoState,
EcVelocityState outputState 
) const
virtual

set the state to the filtered value. This averages the state velocities or sets the velocities to zero if a singularity was crossed.

virtual void EcPositionController::multipassFilter ( const EcVelocityState passOneState,
const EcVelocityState passTwoState,
EcReal  determinant1,
EcReal  determinant2,
EcVelocityState outputState 
) const
protectedvirtual

filter the joint rates based on two passes

Parameters
passOneStatestate from first pass
passTwoStatestate from second pass
determinant1determinant from first state
determinant2determinant from second state
outputStatenew state (average of two states or zero if singularity hit)
virtual void EcPositionController::postCalculateStateCondition ( )
virtual

perform necessary operations specific to the active control method. This method is called at the end of calculateState

virtual void EcPositionController::preCalculateStateCondition ( )
virtual

perform necessary operations specific to the active control method. This method is called at the start of calculateState

Reimplemented in EcAntiCollisionPositionController.

virtual void EcPositionController::processDeterminant ( EcReal determinant2,
const EcReArray nullSpace1,
const EcReArray nullSpace2 
) const
protectedvirtual

a utility to support NULL space matching

Parameters
determinant2second determinant
nullSpace1first null space array
nullSpace2second null space array
virtual EcBoolean EcPositionController::read ( EcXmlReader stream)
virtual

read object from an XML stream

Reimplemented from EcXmlCompoundType.

virtual void EcPositionController::resetActiveState ( )
virtual

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

virtual EcBoolean EcPositionController::resetAndStopManipulator ( EcStatedSystem statedSystem,
const EcPropagationResultData propagationResultData,
const EcManipulatorSystemState initialState 
)
virtual

reset and stop manipulator due to collision and general stopping criteria

Parameters
statedSystemstated system to stop during collision
propagationResultDatajoint limit and collision flags
initialStatestate date (for getting joint positions)
virtual EcBoolean EcPositionController::setActiveControlDescription ( EcU32  index)
virtual

sets the active control description by index.

Parameters
[in]indexThe index of the active control description to be set.
Returns
True if successful or false if value is out of range.
virtual EcBoolean EcPositionController::setActiveEndEffectorSet ( EcU32  index)
virtual

sets the active end-effector set by index.

Parameters
[in]indexThe index of the active control description to be set. Use JOINT_CONTROL_INDEX to set the joint control end-effector set active.
Returns
True if successful or false if value is out of range.
virtual EcBoolean EcPositionController::setControlDescriptions ( const EcControlExpressionDescriptionVector controlDescriptions)
virtual

sets the vector of control descriptions

virtual void EcPositionController::setControlExpressionDescription ( const EcControlExpressionDescription controlExpressionDescription)
virtual

sets the active control expression description

virtual void EcPositionController::setDataMapPointer ( const EcDataMap pDataMap)
virtual

sets the data-map pointer for a specified manipulator

virtual void EcPositionController::setDeterminant ( const EcReal  determinant)
virtual

set the primary determinant value from an external source. This is needed for single-pass position control with acceleration limiting and should be used with extreme caution.

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

sets the relative link data

virtual void EcPositionController::setEndEffectorSet ( const EcEndEffectorSet endEffectorSet)
virtual

sets the active end-effector set

virtual EcBoolean EcPositionController::setEndEffectorSets ( const EcEndEffectorSetVector eeSets)
virtual

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

virtual void EcPositionController::setNullSpace ( const EcReArray nullSpace)
virtual

set the null space matrix from an external source. This is needed for single-pass position control with acceleration limiting and should be used with extreme caution.

virtual void EcPositionController::setProfiledPositionEndEffectors ( const EcU32Vector indices)
virtual

sets some end-effectors to follow profiled trajectory. If indices is not empty, the control mode will automatically be set to PROFILED_POSITION and the speed factors of the end-effectors specified by indices will be changed to 0 (no limit). If indices is empty, the control mode will be set back to POSITION_CONTROL and the speed factors of all end-effectors will be set to 1.

virtual void EcPositionController::setUseExternalCollisionDetection ( EcBoolean  useExternalCollisionDetection = EcFalse)
virtual

sets the use-external-collision-detection flag

Parameters
[in]use-external-collision-detectionvalue to set
virtual EcBoolean EcPositionController::singlePassFilter ( const EcVelocityState prevState,
const EcVelocityState newState,
EcVelocityState outputState 
) const
virtual

set the state to the filtered value. This sets the velocities to zero if a singularity was crossed and returns true if a singularity is crossed

virtual EcBoolean EcPositionController::singlePassFilter ( const EcVelocityState prevState,
const EcVelocityState newState,
EcReal  determinant1,
EcReal  determinant2,
EcVelocityState outputState 
) const
protectedvirtual

filter the joint rates based on two time steps (for single-pass control) returns true if a singularity is crossed

Parameters
prevStatestate from previous time step
newStatestate from new time step
determinant1determinant from first state
determinant2determinant from second state
outputStatenew state (0 if determinant was hit)
virtual const EcToken& EcPositionController::token ( ) const
virtual

gets the xml token used for writing out.

Implements EcXmlObject.

Reimplemented in EcAntiCollisionPositionController.

virtual EcBoolean EcPositionController::useExternalCollisionDetection ( ) const
virtual

gets the use-external-collision-detection flag

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

write object to an XML stream

Reimplemented from EcXmlCompoundType.

Member Data Documentation

EcXmlEnumU32 EcPositionController::m_ControlMode
protected

the control model

Definition at line 894 of file ecPositionController.h.

EcXmlReal EcPositionController::m_DefaultFeedbackAssimilationRate
protected

the default level of sensor feedback assimilation per second this is only used for foating-base mechanisms

Definition at line 874 of file ecPositionController.h.

EcVelocityState EcPositionController::m_FiniteDifferenceVelocityState
protected

a variable that is used when calculating joint rates by finite differencing position control results

Definition at line 946 of file ecPositionController.h.

EcXmlReal EcPositionController::m_JointMotionThreshold
protected

the threshold for joint velocities. If the magnitude of a joint velocity is less than this threshold, the joint is considered not moving

Definition at line 881 of file ecPositionController.h.

EcVelocityState EcPositionController::m_NoPosControlVelocityState
protected

a variable that is used when calculating joint rates for no position control contribution

Definition at line 942 of file ecPositionController.h.


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