Actin  Version 5.5.5
Software for Robotics Simulation and Control
EcVelocityControlSystem Class Reference

Holds a description of a velocity control system, which includes a manipulator system, a description of end effectors, and a description of control systems. More...

#include <ecVelContSystem.h>

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

Public Member Functions

 EcVelocityControlSystem ()
 default constructor
 
virtual ~EcVelocityControlSystem ()
 destructor
 
 EcVelocityControlSystem (const EcVelocityControlSystem &orig)
 copy constructor
 
EcVelocityControlSystemoperator= (const EcVelocityControlSystem &orig)
 assignment operator
 
EcBoolean operator== (const EcVelocityControlSystem &orig) const
 equality operator
 
virtual EcBoolean mergeWith (const EcVelocityControlSystem &other)
 merge control description vectors with another control system by adding the control description vectors of the other control system to the end of this one. More...
 
virtual EcBoolean xmlInit () EC_OVERRIDE
 initialize XML components for reading and writing
 
virtual EcXmlObjectclone () const EC_OVERRIDE
 clone - a virtual constructor to an EcXmlObject pointer
 
virtual void registerComponents () EC_OVERRIDE
 register components with the parent
 
virtual EcBoolean equality (const EcXmlObject *other) const EC_OVERRIDE
 equality - virtual equality to an EcXmlObject pointer
 
virtual EcXmlObjectnewObject () const EC_OVERRIDE
 virtual new that returns an EcXmlObject
 
virtual void setControlDescriptions (const EcVelocityControlDescriptionVector &controlDescriptions)
 sets the vector of control descriptions More...
 
virtual void addControlDescription (const EcIndividualVelocityControlDescription &controlDescription)
 pushes back a velocity control description More...
 
virtual const EcManipulatorEndEffectorVelocityVectorendEffectorVelocities () const
 gets the end effector velocities
 
virtual void setEndEffectorVelocities (const EcManipulatorEndEffectorVelocityVector &endEffectorVelocities)
 sets the end effector velocities
 
virtual const EcStatedSystemstatedSystem () const
 gets the stated system
 
virtual void setStatedSystem (const EcStatedSystem *statedSystem)
 sets the stated system
 
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 void setSystemActiveState (const EcSystemActiveState &sysActState)
 sets the system active state
 
virtual EcManipulatorActiveStateVectoractiveStates () const
 gets the active states
 
virtual const EcVelocityStateVectorcalculatedVelocityStates () const
 gets the calculated velocity states
 
virtual void setCalculatedVelocityStates (const EcVelocityStateVector &calculatedVelocityStates)
 sets the calculated velocity states
 
virtual void setSystemTimeStep (EcReal timeStep)
 sets the time step for all the manipulators in the system
 
virtual void setPrimaryDeterminant (const EcXmlRealVector &vPrimaryDeterminant)
 sets the primary determinants
 
virtual const EcXmlRealVectorprimaryDeterminant () const
 gets the primary determinants
 
virtual EcBoolean setEndEffectorRelativeLinkData (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcEndEffectorRelativeLinkData &relData)
 sets the relative link data
 
virtual const EcEndEffectorRelativeLinkDataendEffectorRelativeLinkData (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex) const
 
virtual void setVNullSpace (const std::vector< EcReArray > &vNullSpace)
 sets the vector of nullspace of the Jacobian
 
virtual const std::vector< EcReArray > & vNullSpace () const
 gets the vNullSpace
 
virtual const EcIndividualVelocityControlDescriptionindividualVelocityControlDescription (const EcU32 manipulatorIndex) const
 gets an individual velocity control description More...
 
virtual void setIndividualVelocityControlDescription (const EcIndividualVelocityControlDescription &individualVelocityControlDescription, const EcU32 manipulatorIndex)
 Replace the active velocity control description of the specified manipulator with another. More...
 
virtual const EcControlExpressionContainercontrolExpressionContainer (const EcU32 manipulatorIndex) const
 gets control expression container
 
virtual void setControlExpressionContainer (const EcControlExpressionContainer &controlExpressionContainer, const EcU32 manipulatorIndex)
 sets control expression container
 
virtual const EcEndEffectorSetendEffectorSet (const EcU32 manipulatorIndex) const
 gets an end effector
 
virtual void setEndEffectorSet (const EcEndEffectorSet &endEffectorSet, const EcU32 manipulatorIndex)
 sets an end effector
 
virtual EcBoolean calculate ()
 calculates the inverse velocity kinematics
 
virtual EcBoolean exactHandMotion () const
 check to see if end-effector motion exactly matches that desired
 
virtual const EcTokentoken () const EC_OVERRIDE
 gets the xml token used for writing out. More...
 
virtual EcBoolean read (EcXmlReader &stream) EC_OVERRIDE
 read this object from an XML stream
 
virtual EcBoolean write (EcXmlWriter &stream) const EC_OVERRIDE
 write this object to an XML stream
 
void initializeEndEffectorVelocities ()
 initialize XML components for reading and writing the desired end-effector velocities to zero
 
virtual EcBoolean integrityCheck ()
 check for the dimensional integrity of components
 
virtual void resetActiveStates ()
 
virtual const EcVelocityControlDescriptionVectorVectorcontrolDescriptionVectors () const
 gets the control description vectors
 
virtual void setControlDescriptionVectors (const EcVelocityControlDescriptionVectorVector &controlDescriptionVectors)
 sets the control description vectors
 
virtual EcBoolean addControlDescription (const EcIndividualVelocityControlDescription &individualVelocityControlDescription, const EcU32 &manipulatorIndex)
 adds a control description to a manipulator More...
 
virtual EcBoolean addDefaultControlDescription (const EcIndividualManipulator &manipulator, const EcU32 &manipulatorIndex)
 adds a control system with default parameters More...
 
virtual EcBoolean deleteControlDescription (const EcU32 &manipulatorIndex, const EcU32 &controlDescriptionIndex)
 deletes a control description from a manipulator More...
 
virtual EcBoolean deleteControlDescriptions (const EcU32 &manipulatorIndex)
 deletes the list of control descriptions of a manipulator More...
 
virtual const EcVelocityControlDescriptionVectorcontrolDescriptions (const EcU32 &manipulatorIndex) const
 gets the list of control descriptions for a manipulator More...
 
virtual EcBoolean setControlDescriptions (const EcVelocityControlDescriptionVector &velocityControlDescriptions, const EcU32 &manipulatorIndex)
 sets the control descriptions of a manipulator More...
 
virtual EcU32 addControlDescriptions (const EcVelocityControlDescriptionVector &velocityControlDescriptions)
 adds a list of control descriptions for a new manipulator. More...
 
virtual const EcIndividualVelocityControlDescriptionactiveControlDescription (const EcU32 &manipulatorIndex) const
 gets the active control description for the specified manipulator index More...
 
virtual EcBoolean setActiveControlDescription (const EcU32 &manipulatorIndex, const EcU32 &activeControlDescriptionIndex)
 sets the active control description of a manipulator by index More...
 
virtual EcBoolean setActiveControlDescription (const EcU32 &manipulatorIndex, const EcString &activeControlDescriptionLabel)
 sets the active control description of a manipulator by label More...
 
virtual EcU32 activeControlDescriptionIndex (const EcU32 &manipulatorIndex) const
 gets the index of the active control description of the specified manipulator More...
 
virtual EcU32 getNumSupportedManipulators () const
 gets the number of manipulators that this control system supports
 
virtual EcU32 getNumControlDescriptions (const EcU32 &manipulatorIndex) const
 gets the number of available control descriptions for the specified manipulator More...
 
- 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 EcVelocityControlSystem nullObject ()
 get a null object
 

Protected Member Functions

virtual void connectComponents ()
 sets all data and pointers needed by member variables
 
virtual void connectStatedSystem ()
 connects the stated system to other components
 
virtual void copyControlDescriptions ()
 copies the control descriptions to vectors of control descriptions
 
- 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

EcVelocityControlDescriptionVector m_ControlDescriptions
 the control descriptions
 
EcVelocityControlDescriptionVectorVector m_ControlDescriptionVectors
 vectors of control descriptions
 
EcXmlU32Vector m_ActiveControlDescriptionIndices
 the indices of active control descriptions
 
EcManipulatorEndEffectorVelocityVector m_EndEffectorVelocities
 the end effector velocities
 
const EcStatedSystemm_pStatedSystem
 the stated system
 
EcVelocityStateVector m_CalculatedVelocityStates
 the vector of manipulator calculated velocity states
 
EcSystemActiveState m_SystemActiveState
 the system active state
 
EcManipulatorActiveStateVector m_ManipulatorActiveStates
 the vector of manipulator active states
 
EcXmlRealVector m_vPrimaryDeterminant
 store the determinants for each manipluator
 
std::vector< EcReArraym_vNullSpace
 store the null space for two steps velocity control singularity detection
 
- 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 EcControlExpressionContainer m_theNullControlExpressionContainer
 the null control expression container for error recovery
 
static const EcVelocityControlDescriptionVector m_theNullControlDescriptions
 the null control description vector for error recovery
 
- 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 velocity control system, which includes a manipulator system, a description of end effectors, and a description of control systems.

Holds a description of a velocity control system. Includes a manipulator system, a description of end effectors, and, for each manipulator, a set of selectable control descriptions. Mostly deprecated.

Examples:
ecCollisionAvoidanceExample.cpp, and ecProgrammaticConstructionMain.cpp.

Definition at line 23 of file ecVelContSystem.h.

Member Function Documentation

virtual const EcIndividualVelocityControlDescription& EcVelocityControlSystem::activeControlDescription ( const EcU32 manipulatorIndex) const
virtual

gets the active control description for the specified manipulator index

Parameters
[in]manipulatorIndexThe manipulator index in query.
Returns
The active control description for manipulatorIndex.
virtual EcU32 EcVelocityControlSystem::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 void EcVelocityControlSystem::addControlDescription ( const EcIndividualVelocityControlDescription controlDescription)
virtual

pushes back a velocity control description

Examples:
ecCollisionAvoidanceExample.cpp, and ecProgrammaticConstructionMain.cpp.
virtual EcBoolean EcVelocityControlSystem::addControlDescription ( const EcIndividualVelocityControlDescription individualVelocityControlDescription,
const EcU32 manipulatorIndex 
)
virtual

adds a control description to a manipulator

Parameters
[in]individualVelocityControlDescriptionThe control description to be added.
[in]manipulatorIndexThe index of the manipulator to which the control description will be added.
Returns
True if successful or false if manipulatorIndex is out of range.
virtual EcU32 EcVelocityControlSystem::addControlDescriptions ( const EcVelocityControlDescriptionVector velocityControlDescriptions)
virtual

adds a list of control descriptions for a new manipulator.

Adds a list of control descriptions for a new manipulator (not yet in index). This will increment the index by one. The index of active control description for the new manipulator will be set to 0. Call setActiveControlDescription(const EcU32&, const EcU32&) to set the active control description as desired.

Parameters
[in]velocityControlDescriptionsThe vector of control descriptions to be added.
Returns
The index of the newly added vector of control descriptions.
virtual EcBoolean EcVelocityControlSystem::addDefaultControlDescription ( const EcIndividualManipulator manipulator,
const EcU32 manipulatorIndex 
)
virtual

adds a control system with default parameters

Parameters
[in]manipulatorThe manipulator for which the control description will be added.
[in]manipulatorIndexThe index of the manipulator to which the control description will be added.
Returns
True if successful.
virtual const EcVelocityControlDescriptionVector& EcVelocityControlSystem::controlDescriptions ( const EcU32 manipulatorIndex) const
virtual

gets the list of control descriptions for a manipulator

Parameters
[in]manipulatorIndexThe index of the manipulator from which the control description is queried.
Returns
The list of control descriptions for the specified manipulator or null object if manipulatorIndex is out of range.
virtual EcBoolean EcVelocityControlSystem::deleteControlDescription ( const EcU32 manipulatorIndex,
const EcU32 controlDescriptionIndex 
)
virtual

deletes a control description from a manipulator

Deletes a control description from a manipulator. Note the after this operation, the indices of control descriptions for that manipulator may be shifted.

Parameters
[in]manipulatorIndexThe index of the manipulator from which a control description will be deleted.
[in]controlDescriptionIndexThe index of the control description to be deleted. If this index is currently the active index, then the active index will be changed to 0.
Returns
True if successful or false if manipulatorIndex or controlDescriptionIndex is out of range. Also, if there's only one control description for this manipulator, then it will not be deleted and false will be returned.
virtual EcBoolean EcVelocityControlSystem::deleteControlDescriptions ( const EcU32 manipulatorIndex)
virtual

deletes the list of control descriptions of a manipulator

Deletes the list of control descriptions of a manipulator. Since end-effector set and end-effector relative data are parts of control description, they will also be deleted.

Parameters
[in]manipulatorIndexThe index of the manipulator from which the control descriptions will be deleted.
Returns
True if successful or false if manipulatorIndex is out of range.
virtual const EcEndEffectorRelativeLinkData& EcVelocityControlSystem::endEffectorRelativeLinkData ( const EcU32  manipulatorIndex,
const EcU32  endEffectorIndex 
) const
virtual

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

virtual EcU32 EcVelocityControlSystem::getNumControlDescriptions ( const EcU32 manipulatorIndex) const
virtual

gets the number of available control descriptions for the specified manipulator

Parameters
[in]manipulatorIndexThe index of the manipulator in query.
Returns
The number of available control descriptions for the specified manipulator or 0 if manipulatorIndex is out of range.
virtual const EcIndividualVelocityControlDescription& EcVelocityControlSystem::individualVelocityControlDescription ( const EcU32  manipulatorIndex) const
virtual

gets an individual velocity control description

virtual EcBoolean EcVelocityControlSystem::mergeWith ( const EcVelocityControlSystem other)
virtual

merge control description vectors with another control system by adding the control description vectors of the other control system to the end of this one.

Parameters
[in]otherThe other velocity control system.
virtual void EcVelocityControlSystem::resetActiveStates ( )
virtual

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

virtual EcBoolean EcVelocityControlSystem::setActiveControlDescription ( const EcU32 manipulatorIndex,
const EcU32 activeControlDescriptionIndex 
)
virtual

sets the active control description of a manipulator by index

Parameters
[in]manipulatorIndexThe index of the manipulator to which the control descriptions will be set.
[in]activeControlDescriptionIndexThe index of the active control description to be set.
Returns
True if successful or false if either manipulatorIndex or activeControlDescriptionIndex is out of range.
virtual EcBoolean EcVelocityControlSystem::setActiveControlDescription ( const EcU32 manipulatorIndex,
const EcString activeControlDescriptionLabel 
)
virtual

sets the active control description of a manipulator by label

Parameters
[in]manipulatorIndexThe index of the manipulator to which the control descriptions will be set.
[in]activeControlDescriptionLabelThe label of the active control description to be set.
Returns
True if successful or false if either manipulatorIndex is out of range or activeControlDescriptionLabel doesn't exist.
virtual void EcVelocityControlSystem::setControlDescriptions ( const EcVelocityControlDescriptionVector controlDescriptions)
virtual

sets the vector of control descriptions

virtual EcBoolean EcVelocityControlSystem::setControlDescriptions ( const EcVelocityControlDescriptionVector velocityControlDescriptions,
const EcU32 manipulatorIndex 
)
virtual

sets the control descriptions of a manipulator

Parameters
[in]velocityControlDescriptionsThe control descriptions to be set.
[in]manipulatorIndexThe index of the manipulator to which the control descriptions will be set.
Returns
True if successful or false if manipulatorIndex is out of range.
virtual void EcVelocityControlSystem::setIndividualVelocityControlDescription ( const EcIndividualVelocityControlDescription individualVelocityControlDescription,
const EcU32  manipulatorIndex 
)
virtual

Replace the active velocity control description of the specified manipulator with another.

Parameters
[in]individualVelocityControlDescriptionThe control description to be set as the new active.
[in]manipulatorIndexThe index of the manipulator to which the control description will be added.
virtual const EcToken& EcVelocityControlSystem::token ( ) const
virtual

gets the xml token used for writing out.

Implements EcXmlObject.


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