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

Base control system modifier. More...

#include <ecControlSystemExecutiveModifier.h>

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

Public Member Functions

 EcControlSystemExecutiveModifier (EcSystemControlExecutive &sce, const EcNonNegReal timeStep)
 constructor using system control executive More...
 
 EcControlSystemExecutiveModifier (EcSystemControlExecutive &sce)
 constructor using system control executive
 
virtual void setIsPositionControlSystemOn (const EcBoolean isOn) EC_OVERRIDE
 sets a flag indicating whether or not the position control system is on More...
 
virtual EcBoolean setIsPositionControllerOn (const EcU32 manipIndex, const EcBoolean isOn) EC_OVERRIDE
 sets a flag indicating whether or not the position controller is on More...
 
virtual EcReal timeStep () const EC_OVERRIDE
 
virtual void setTimeStep (const EcReal value) EC_OVERRIDE
 
virtual EcU32 numberOfManipulators () const EC_OVERRIDE
 return the number of manipulators More...
 
virtual EcBoolean getManipulatorIndex (const EcString &label, EcU32 &manipIndex) const EC_OVERRIDE
 Get the index of a manipulator given its label. More...
 
virtual EcBoolean getLinkIndex (const EcU32 manipIndex, const EcString &linkLabel, EcU32 &linkIndex) const EC_OVERRIDE
 Get the index of a link given manipulator index and link label.
 
virtual EcBoolean getManipulatorJointDof (const EcU32 manipIndex, EcU32 &numJoints) const EC_OVERRIDE
 Get the number of joints a manipulator has. More...
 
virtual EcBoolean getJointActuator (const EcU32 manipIndex, const EcU32 linkIndex, EcJointActuator &jointActuator) const EC_OVERRIDE
 Get the joint actuator object for a specified manipulator-link. More...
 
virtual EcBoolean setJointActuator (const EcU32 manipIndex, const EcU32 linkIndex, const EcJointActuator &jointActuator) EC_OVERRIDE
 Set the joint actuator object for a specified manipulator-link. More...
 
virtual EcBoolean setBaseSpeedFactor (const EcU32 manipIndex, const EcReal baseSpeedFactor) EC_OVERRIDE
 
virtual EcBoolean getBaseSpeedFactor (const EcU32 manipIndex, EcReal &baseSpeedFactor) const EC_OVERRIDE
 Gets the base speed factor. More...
 
virtual EcBoolean setBaseAccelerationFactor (const EcU32 manipIndex, const EcReal baseAccelerationFactor) EC_OVERRIDE
 
virtual EcBoolean getBaseAccelerationFactor (const EcU32 manipIndex, EcReal &baseAccelerationFactor) const EC_OVERRIDE
 Gets the base acceleration factor. More...
 
virtual EcBoolean setControlMode (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 mode) EC_OVERRIDE
 Sets the control mode of an end-effector by index. More...
 
virtual EcU32 activeEndEffectorSetIndex (const EcU32 manipIndex) const EC_OVERRIDE
 Get active end-effector set index. More...
 
virtual EcBoolean setActiveEndEffectorSetIndex (const EcU32 manipIndex, const EcU32 eeSetIndex) EC_OVERRIDE
 set the active control method More...
 
virtual EcBoolean setActiveControlDescriptionIndex (const EcU32 manipIndex, const EcU32 controlDescriptionIndex) EC_OVERRIDE
 set the active control method More...
 
virtual EcBoolean setActivePositionControlMethodIndex (const EcU32 manipIndex, const EcU32 controlMethodIndex) EC_OVERRIDE
 set the active control method More...
 
virtual EcBoolean setJointMotionLimits (const EcU32 manipIndex, const EcRealVector &maxVel, const EcRealVector &maxAcc, const EcRealVector &maxDec, const EcRealVector &maxJerk, const EcU32 eeSetIndex) EC_OVERRIDE
 Set joint motion limits. More...
 
virtual EcBoolean setLinearMotionLimits (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk) EC_OVERRIDE
 Set move pose linear motion limits. More...
 
virtual EcBoolean setStopsAtLimits (const EcU32 manipIndex, const EcBoolean stopsAtLimits) EC_OVERRIDE
 Set if stops at joint limits. More...
 
virtual EcBoolean setStopsAtCollisions (const EcU32 manipIndex, const EcBoolean stopsCollisions, const EcBoolean checkAllCollisions=EcFalse) EC_OVERRIDE
 Set if stops at collisions. More...
 
virtual EcBoolean setAngularMotionLimits (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk) EC_OVERRIDE
 Set move pose angular motion limits. More...
 
virtual EcBoolean setFilteringMode (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 value) EC_OVERRIDE
 Set filtering mode (velocity profile). More...
 
virtual EcBoolean setIsHardConstraint (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcBoolean value) EC_OVERRIDE
 Set is hard constraint flag. More...
 
virtual EcBoolean getJointRateFilterRates (const EcU32 manipIndex, EcRealVector &jointRates, EcBoolean &useControlParam) const EC_OVERRIDE
 Get the control parameters or joint rate filter rates of a given manipulator. More...
 
virtual EcBoolean setJointRateFilterRates (const EcU32 manipIndex, const EcRealVector &jointRates, const EcBoolean useControlParam) EC_OVERRIDE
 Set the control parameters or joint rate filter rates of a given manipulator. More...
 
virtual EcBoolean setSpeedFactor (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value) EC_OVERRIDE
 
virtual EcBoolean setAccelerationFactor (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value) EC_OVERRIDE
 
virtual const EcManipulatorEndEffectorPlacementVectordesiredPlacementVector () const EC_OVERRIDE
 Get desired placement (in relative) for the active end-effector set for all manipulators. More...
 
virtual void setDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &value) EC_OVERRIDE
 set desired placement (in relative) for the active end-effector set for all manipulators. More...
 
virtual EcBoolean setDesiredPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcManipulatorEndEffectorPlacement &desiredPlacement) EC_OVERRIDE
 sets an individual desired end-effector placement More...
 
virtual EcBoolean setDesiredPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcEndEffectorPlacement &desiredPlacement) EC_OVERRIDE
 sets an individual desired end-effector placement More...
 
virtual EcBoolean setDesiredVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcManipulatorEndEffectorVelocity &value) EC_OVERRIDE
 sets an individual desired end-effector velocity More...
 
virtual EcBoolean setDesiredVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcXmlRealVector &velocity) EC_OVERRIDE
 sets an individual desired end-effector velocity More...
 
virtual const EcManipulatorEndEffectorPlacementVectoractualPlacementVector () const EC_OVERRIDE
 
virtual EcBoolean calculateActualEePlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, EcEndEffectorPlacement &placement) const EC_OVERRIDE
 Calculate actual end-effector placement (in relative) for any end-effector set. More...
 
virtual EcBoolean calculateActualEeSetPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcPositionState *pPositionState, EcManipulatorEndEffectorPlacement &placement) const
 Calculate actual end-effector placement (in relative) for any end-effector set. More...
 
virtual const EcEndEffectorSetendEffectorSet (const EcU32 manipIndex, const EcU32 eeSetIndex) const EC_OVERRIDE
 Get the end-effector set given manipulator index and end-effector set index. More...
 
virtual void setGravityVector (const EcVector &gravity) EC_OVERRIDE
 Set the gravity vector (m/s^2) in system coordinates. More...
 
virtual const EcManipulatorSystemStatemanipulatorSystemState () const EC_OVERRIDE
 gets the state More...
 
virtual void setCurrentState (const EcManipulatorSystemState &state) EC_OVERRIDE
 sets the current state of the system without re-initializing More...
 
virtual EcBoolean setPositionState (const EcU32 manipIndex, const EcCoordinateSystemTransformation *pBasePose, const EcRealVector *pJointPositions) EC_OVERRIDE
 Set the position state for a manipulator. More...
 
virtual EcBoolean setSensedState (const EcU32 manipIndex, const EcCoordinateSystemTransformation *pBase, const EcRealVector *pJoints, const EcReal timestep=0.0) EC_OVERRIDE
 Feed back the externally sensed position state to the position controller. More...
 
virtual EcBoolean calculateActualEeVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const EC_OVERRIDE
 Calculate actual end-effector velocity in system. More...
 
virtual EcBoolean calculateActualEeVelocityInRelative (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const EC_OVERRIDE
 Calculate actual end-effector velocity in relative. More...
 
virtual EcBoolean calculateActualEeAcceleration (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcXmlRealVector &acceleration) const EC_OVERRIDE
 Calculate actual end-effector acceleration for any end-effector set. More...
 
virtual EcBoolean calculateActualEeSetVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcManipulatorEndEffectorVelocity &velocity) const
 Calculate actual end-effector velocity in system. More...
 
virtual const EcPropagationResultDataVectorpropagationResultDataVector () const EC_OVERRIDE
 get the result of collision for display More...
 
virtual EcBoolean setToolOffset (const EcU32 manipIndex, const EcU32 toolIndex, const EcCoordinateSystemTransformation &value) EC_OVERRIDE
 
virtual EcBoolean setToolOffset (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcCoordinateSystemTransformation &value) EC_OVERRIDE
 
virtual EcBoolean getToolOffset (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, EcCoordinateSystemTransformation &value) const EC_OVERRIDE
 Get the tool offset (in EE frame). More...
 
virtual EcBoolean calculatePrimaryFrameInSystem (const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, EcCoordinateSystemTransformation &primaryFrameInSys) const EC_OVERRIDE
 Calculate the primary frame in system. More...
 
virtual EcBoolean calculatePrimaryFrameAccelerationInSystem (const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcGeneralAcceleration &pfAccelerationInSystem) const EC_OVERRIDE
 Calculate the primary frame in system. More...
 
virtual EcBoolean getNamedFrame (const EcString &key, EcCoordinateSystemTransformation &value) const EC_OVERRIDE
 get named frame from manipulator system More...
 
virtual EcBoolean getNamedFrame (const EcU32 manipIndex, const EcU32 linkIndex, const EcString &key, EcCoordinateSystemTransformation &value) const EC_OVERRIDE
 get named frame from manipulator system More...
 
virtual EcBoolean setNamedFrame (const EcString &key, const EcCoordinateSystemTransformation &value) EC_OVERRIDE
 get named frame of manipulator system More...
 
virtual EcBoolean setNamedFrame (const EcU32 manipIndex, const EcU32 linkIndex, const EcString &key, const EcCoordinateSystemTransformation &value) EC_OVERRIDE
 get named frame of manipulator system More...
 
virtual EcBoolean getFeedbackAssimilationRate (const EcU32 manipIndex, EcReal &value) const EC_OVERRIDE
 get default feedback assimilation rate for a given manipulator More...
 
virtual EcBoolean setFeedbackAssimilationRate (const EcU32 manipIndex, const EcReal &value) EC_OVERRIDE
 set default feedback assimilation rate for a given manipulator More...
 
virtual EcBoolean attachManipulator (const EcU32 depManipIndex, const EcU32 baseManipIndex, const EcU32 baseLinkIndex, const EcCoordinateSystemTransformation &offset) EC_OVERRIDE
 Attach the base link of one manipulator onto a link of another manipulator. More...
 
virtual EcBoolean detachManipulator (const EcU32 depManipIndex) EC_OVERRIDE
 detach manipulator More...
 
virtual EcBoolean excludeCollisionCheck (const EcU32 manipIndex, const EcU32 *pLinkIndex, const EcU32 otherManipIndex, const EcU32Vector *pOtherLinkIndices, const EcBoolean isExcluding) EC_OVERRIDE
 Exclude/include collision check in the dynamic collision exclusion map. More...
 
virtual EcBoolean replaceLinkShape (const EcU32 manipIndex, const EcU32 linkIndex, const EcShape &shape, const EcU32 bvhLevel, const EcBoolean alwaysReplace=EcFalse) EC_OVERRIDE
 
virtual void resetForShapeChange () EC_OVERRIDE
 resets necessary components for a change in system shapes. More...
 
virtual EcBoolean calculateTotalTorques (const EcU32 manipulatorIndex, const EcPositionState *positionState, const EcVelocityState *velocityState, const EcAccelerationState *accelerationState, const EcManipulatorExternalForce *pExternalForces, EcRealVector &torques) const EC_OVERRIDE
 calculate and return joint torques based on the selected calculation type. More...
 
virtual EcBoolean calculatePowerConverterOutputs (const EcU32 manipulatorIndex, const EcRealVectorVector &powerConverterInputs, EcRealVector &outputs) const EC_OVERRIDE
 calculate and return joint power converter ouput (force or torque) based on the given inputs. See EcBasePowerConverter::outputTorque More...
 
virtual EcBoolean getDeterminant (const EcU32 manipIndex, EcReal &value) const EC_OVERRIDE
 get determinant of the Jacobian of the current end effector set More...
 
virtual EcBoolean calculateJacobian (const EcU32 manipIndex, const EcU32 linkIndex, const EcString *pNamedFrameName, const EcVector &point, const EcPositionState *pPositionState, EcManipulatorJacobian &jacobian) const EC_OVERRIDE
 Calculate Jacobian given a point on the link. More...
 
virtual EcBoolean getJointRateFilterScalingFactor (const EcU32 manipIndex, EcReal &scalingFactor) const EC_OVERRIDE
 get the joint rate filter scaling factor
 
virtual void setDigitalInputVector (const EcU32Vector &value) EC_OVERRIDE
 set digital input vector More...
 
virtual void setDigitalInput (const EcU32 index, const EcU32 &value) EC_OVERRIDE
 set digital input given board id More...
 
virtual EcBoolean getDigitalInput (const EcU32 index, EcU32 &value) const EC_OVERRIDE
 get digital input given board id More...
 
virtual void setDigitalOutputVector (const EcU32Vector &value) EC_OVERRIDE
 set digital output vector More...
 
virtual void setDigitalOutput (const EcU32 boardId, const EcU32 value) EC_OVERRIDE
 set digital output given board id More...
 
virtual EcBoolean setDigitalOutput (const EcU32 boardId, const EcU32 channelId, const EcBoolean value) EC_OVERRIDE
 set digital output given board id More...
 
virtual EcBoolean getDigitalOutput (const EcU32 index, EcU32 &value) const EC_OVERRIDE
 get digital output given board id More...
 
virtual const EcDataMapdataMap () const EC_OVERRIDE
 get the data map More...
 
virtual EcDataMapdataMap ()
 get the data map (non-const)
 
virtual void setDataMap (const EcString &key, const EcU32 value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcU32Vector &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcReal value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcRealVector &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcString &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const char *value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcBoolean &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcVector &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcOrientation &value) EC_OVERRIDE
 set U32 data map More...
 
virtual void setDataMap (const EcString &key, const EcCoordinateSystemTransformation &value) EC_OVERRIDE
 set U32 data map More...
 
virtual const EcManipulatorSystemConfigurationgetConfiguration () const EC_OVERRIDE
 gets the configuration, which changes intermittently – const version More...
 
virtual const EcPositionControllerpositionController (const EcU32 manipIndex) const EC_OVERRIDE
 Get pointer to the position controller given manipulator index. More...
 
virtual const EcSystemControlExecutivesystemControlExecutive () const EC_OVERRIDE
 get control system executive - const More...
 
virtual EcSystemControlExecutivesystemControlExecutive () EC_OVERRIDE
 get control system executive - const More...
 
const EcPositionControlSystempositionControlSystem () const
 get position control system - const
 
EcPositionControlSystempositionControlSystem ()
 get position control system - non-const
 
const EcStatedSystemstatedSystem () const
 get stated system
 
EcBoolean calculateState (const EcReal time, EcManipulatorSystemState &state)
 
EcBoolean calculateStateTimeSteps (EcManipulatorSystemState &state, const EcU32 numTimeSteps=1, const EcReal extrapolationTime=0.0)
 
void setTime (const EcReal time)
 set time
 
EcBoolean setVelocityState (const EcU32 manipIndex, const EcGeneralVelocity *pBaseVelocity, const EcRealVector *pJointVelocities)
 Set the velocity state for a manipulator. More...
 
EcBoolean attachManipulators (const EcU32 baseManipIndex, const EcString &baseLink, const EcU32 depManipIndex, const EcCoordinateSystemTransformation &offset)
 Attach manipulators. More...
 
EcBoolean detachManipulators (const EcU32 depManipIndex)
 Detach manipulators. More...
 
EcBoolean getSoftConstraintWeight (const EcU32 manipIndex, EcReal &weight) const
 Get soft constraint weight from the active control description. More...
 
EcBoolean setSoftConstraintWeight (const EcU32 manipIndex, const EcReal weight)
 Set soft constraint weight to the active control description. More...
 
- Public Member Functions inherited from EcBaseControlSystemModifier
virtual ~EcBaseControlSystemModifier ()
 destructor
 
virtual EcBoolean getSystemControlExecutive (EcSystemControlExecutive &systemControlExecutive, EcFoundCommon::DeepCopyFlag copyFlag=EcFoundCommon::CopyNone) const
 get the system control executive
 
virtual EcBoolean getToolOffset (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, EcBoolean &useToolOffset, EcCoordinateSystemTransformation &value) const
 Get the tool offset (in EE frame). More...
 
void setThreadWorker (const EcThreadWorkerSharedPtr pWorker)
 set the thread worker More...
 
const EcThreadWorkerSharedPtrthreadWorker () const
 get the thread worker More...
 

Protected Member Functions

virtual EcBoolean getSystemControlExecutiveImpl (EcSystemControlExecutive &systemControlExecutive, EcFoundCommon::DeepCopyFlag copyFlag) const EC_OVERRIDE
 get the system control executive More...
 
- Protected Member Functions inherited from EcBaseControlSystemModifier
virtual EcBoolean resizeTotalTorqueTools (const EcU32 manipIndex) const
 Resize the total torque tool vector given the manipulator index. More...
 
virtual EcBoolean calculateTotalTorques (const EcU32 manipIndex, const EcStatedSystem &statedSystem, const EcPositionState *positionState, const EcVelocityState *velocityState, const EcAccelerationState *accelerationState, const EcManipulatorExternalForce *pExternalForces, EcRealVector &torques) const
 calculate and return joint torques based on the selected calculation type. This can include: More...
 
virtual EcBoolean calculatePowerConverterOutputs (const EcU32 manipulatorIndex, const EcStatedSystem &statedSystem, const EcRealVectorVector &powerConverterInputs, EcRealVector &outputs) const
 calculate and return joint power converter ouput (force or torque) based on the given inputs. See EcBasePowerConverter::outputTorque More...
 
virtual EcBoolean setJointMotionLimits (EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcRealVector &maxVel, const EcRealVector &maxAcc, const EcRealVector &maxDec, const EcRealVector &maxJerk, const EcU32 eeSetIndex)
 set joint motion limits
 
virtual EcBoolean setLinearMotionLimits (EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk)
 set linear motion limits
 
virtual EcBoolean setAngularMotionLimits (EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk)
 set angular motion limits
 
virtual EcBoolean setStopsAtLimits (EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcBoolean stopsAtLimits)
 set stops at joint limits
 
virtual EcBoolean setStopsAtCollisions (EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcBoolean stopsCollisions, const EcBoolean checkAllCollisions)
 set stops at collisions
 
virtual EcBoolean setFilteringMode (EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 value)
 set filtering mode
 
virtual EcBoolean getJointRateFilterRates (const EcPositionControlSystem &posContSystem, const EcU32 manipIndex, EcRealVector &jointRates, EcBoolean &useControlParam) const
 get control parameters or joint rate filter rates of a given manipulator
 
virtual EcBoolean setJointRateFilterRates (EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcRealVector &jointRates, const EcBoolean useControlParam)
 set control parameters or joint rate filter rates of a given manipulator
 
virtual EcBoolean getJointRateFilterScalingFactor (const EcPositionControlSystem &posContSystem, const EcU32 manipIndex, EcReal &scalingFactor) const
 get the joint rate filter scaling factor
 
virtual EcBoolean calculateJacobian (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 linkIndex, const EcString *pNamedFrameName, const EcVector &point, const EcPositionState *pPositionState, EcManipulatorJacobian &jacobian) const
 calculate Jacobian
 
virtual EcBoolean calculatePrimaryFrameInSystem (const EcStatedSystem &statedSystem, const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, EcCoordinateSystemTransformation &primaryFrameInSys) const
 calculate the primary frame in system
 
virtual EcBoolean calculatePrimaryFrameAccelerationInSystem (const EcStatedSystem &statedSystem, const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcGeneralAcceleration &pfAccelerationInSystem) const
 calculate primary frame acceleration in system
 
virtual EcBoolean calculateActualEePlacement (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, EcEndEffectorPlacement &placementInRelative) const
 calculate actual end-effector placement (in relative) given actual position state
 
virtual EcBoolean calculateActualEeSetPlacement (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcPositionState *pPositionState, EcManipulatorEndEffectorPlacement &placement) const
 calculate actual end-effector set placement (in relative) given actual position state
 
virtual EcBoolean calculateActualEeVelocity (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const
 calculate actual end-effector velocity in system given actual position and velocity states
 
virtual EcBoolean calculateActualEeVelocityInRelative (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const
 calculate actual end-effector velocity in relative given actual position and velocity states
 
virtual EcBoolean calculateActualEeAcceleration (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcXmlRealVector &acceleration) const
 calculate actual end-effector acceleration
 
virtual EcBoolean calculateActualEeSetVelocity (const EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcU32 eeSetIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcManipulatorEndEffectorVelocity &velocity) const
 calculate actual end-effector set velocity given actual position and velocity states
 
virtual EcBoolean setPositionState (EcSystemControlExecutive &sce, const EcU32 manipIndex, const EcCoordinateSystemTransformation *pBasePose, const EcRealVector *pJointPositions)
 
virtual EcBoolean getFeedbackAssimilationRate (const EcPositionControlSystem &posContSystem, const EcU32 manipIndex, EcReal &value) const
 get default feedback assimilation rate for a given manipulator
 
virtual EcBoolean setFeedbackAssimilationRate (EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcReal &value)
 set default feedback assimilation rate for a given manipulator
 
virtual EcBoolean excludeCollisionCheck (EcSystemCollisionExclusionMap &dynamicMap, const EcStatedSystem &statedSystem, const EcU32 manipIndex, const EcU32 *pLinkIndex, const EcU32 otherManipIndex, const EcU32Vector *pOtherLinkIndices, const EcBoolean isExcluding) const
 Exclude/include collision check in the dynamic collision exclusion map. More...
 
virtual EcBoolean getSoftConstraintWeight (const EcPositionControlSystem &posContSystem, const EcU32 manipIndex, EcReal &weight) const
 Get soft constraint weight.
 
virtual EcBoolean setSoftConstraintWeight (EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcReal weight)
 Set soft constraint weight.
 

Protected Attributes

EcSystemControlExecutivem_ControlExecutive
 the system control executive
 
EcU32Vector m_DigitalInputs
 Digital Inputs vector.
 
EcU32Vector m_DigitalOutputs
 Digital Outputs vector.
 
EcDataMap m_DataMap
 for customer data exchange
 
EcPositionState m_PositionState
 
- Protected Attributes inherited from EcBaseControlSystemModifier
EcThreadWorkerSharedPtr m_pThreadWorker
 
EcManipulatorSystemState m_ManipSystemState
 
EcU32Vector m_vDepManipIndices
 
EcTotalTorqueToolPtrVector m_vTotalTorqueTools
 a vector of torque tools (one per manipulator)
 
EcManipulatorExternalForce m_TheNullExternalForce
 the null external force
 

Additional Inherited Members

- Protected Types inherited from EcBaseControlSystemModifier
typedef ecboost::shared_ptr< EcTotalTorqueToolEcTotalTorqueToolPtr
 
typedef std::vector< EcTotalTorqueToolPtr > EcTotalTorqueToolPtrVector
 

Detailed Description

Base control system modifier.

Control system executive modifier.

Examples:
controlExecutiveModifierExampleMain.cpp.

Definition at line 18 of file ecControlSystemExecutiveModifier.h.

Constructor & Destructor Documentation

EcControlSystemExecutiveModifier::EcControlSystemExecutiveModifier ( EcSystemControlExecutive sce,
const EcNonNegReal  timeStep 
)

constructor using system control executive

Member Function Documentation

virtual EcU32 EcControlSystemExecutiveModifier::activeEndEffectorSetIndex ( const EcU32  manipIndex) const
virtual

Get active end-effector set index.

Parameters
[in]manipIndexthe manipulator index
Returns
Active end-effector set index. EcFoundCommon::VOIDINDEX if manipIndex is invalid.

Implements EcBaseControlSystemModifier.

virtual const EcManipulatorEndEffectorPlacementVector& EcControlSystemExecutiveModifier::actualPlacementVector ( ) const
virtual

gets the actual end-effector placements

Returns
current placement vector

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::attachManipulator ( const EcU32  depManipIndex,
const EcU32  baseManipIndex,
const EcU32  baseLinkIndex,
const EcCoordinateSystemTransformation offset 
)
virtual

Attach the base link of one manipulator onto a link of another manipulator.

Parameters
[in]depManipIndexThe index of the dependent manipulator.
[in]baseManipIndexThe index of the base manipulator.
[in]baseLinkIndexThe index of the base link.
Returns
True if successful or false otherwise.
See also
EcManipulatorAttachmentMap::attachManipulator

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::attachManipulators ( const EcU32  baseManipIndex,
const EcString baseLink,
const EcU32  depManipIndex,
const EcCoordinateSystemTransformation offset 
)

Attach manipulators.

Parameters
[in]baseManipIndexthe index of the base manipulator
[in]baseLinkthe name of the base link
[in]depManipIndexthe index of the dependent manipulator
[in]offsetthe offset
Returns
True if succeeded. False if the parameters are invalid or the two manipulators cannot be attached together.
virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEeAcceleration ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcPositionState pPositionState,
const EcVelocityState pVelocityState,
const EcAccelerationState pAccelerationState,
EcXmlRealVector acceleration 
) const
virtual

Calculate actual end-effector acceleration for any end-effector set.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[in]pVelocityStatethe velocity state. If NULL, will use internal velocity state.
[in]pAccelerationStatethe accleration state. If NULL, will use internal accleration state.
[out]acclerationactual EE accleration
Returns
if calculation is succeeded

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEePlacement ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcPositionState pPositionState,
EcEndEffectorPlacement placement 
) const
virtual

Calculate actual end-effector placement (in relative) for any end-effector set.

See also
EcEndEffector::calculatePlacement
Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[out]placementactual EE placement
Returns
if calculation is succeeded

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEeSetPlacement ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcPositionState pPositionState,
EcManipulatorEndEffectorPlacement placement 
) const
virtual

Calculate actual end-effector placement (in relative) for any end-effector set.

See also
EcEndEffector::calculatePlacement
Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[out]placementactual EE placement
Returns
if calculation is succeeded
virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEeSetVelocity ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcPositionState pPositionState,
const EcVelocityState pVelocityState,
EcManipulatorEndEffectorVelocity velocity 
) const
virtual

Calculate actual end-effector velocity in system.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[in]pVelocityStatethe velocity state. If NULL, will use internal velocity state.
[out]velocityactual EE velocity
Returns
if calculation is succeeded
virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEeVelocity ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcPositionState pPositionState,
const EcVelocityState pVelocityState,
EcXmlRealVector velocity 
) const
virtual

Calculate actual end-effector velocity in system.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[in]pVelocityStatethe velocity state. If NULL, will use internal velocity state.
[out]velocityactual EE velocity
Returns
if calculation is succeeded

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculateActualEeVelocityInRelative ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcPositionState pPositionState,
const EcVelocityState pVelocityState,
EcXmlRealVector velocity 
) const
virtual

Calculate actual end-effector velocity in relative.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[in]pVelocityStatethe velocity state. If NULL, will use internal velocity state.
[out]velocityactual EE velocity
Returns
if calculation is succeeded

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculateJacobian ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcString pNamedFrameName,
const EcVector point,
const EcPositionState pPositionState,
EcManipulatorJacobian jacobian 
) const
virtual

Calculate Jacobian given a point on the link.

This method calculates the 6*n Jacobian such that Vp = Jq_dot.

Parameters
[in]manipIndexthe manipulator index
[in]linkIndexthe link index
[in]pNamedFrameNameThe named frame name. If NULL, will use the primary frame.
[in]pointthe point relative to the primary frame or the named frame
[out]jacobianthe jacobian
Returns
Return true if manipIndex and linkLabel are valid.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculatePowerConverterOutputs ( const EcU32  manipulatorIndex,
const EcRealVectorVector powerConverterInputs,
EcRealVector outputs 
) const
virtual

calculate and return joint power converter ouput (force or torque) based on the given inputs. See EcBasePowerConverter::outputTorque

Parameters
[in]manipIndexmanipulator index
[in]powerConverterInputsThe power converter inputs
[out]ouputsthe calculated output side forces or torques on all joints in N or N*m
Returns
True if successful. False if the manipulatorIndex is not valid.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculatePrimaryFrameAccelerationInSystem ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcPositionState pPositionState,
const EcVelocityState pVelocityState,
const EcAccelerationState pAccelerationState,
EcGeneralAcceleration pfAccelerationInSystem 
) const
virtual

Calculate the primary frame in system.

Parameters
[in]manipIndexthe manipulator index
[in]linkIndexthe link index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[out]primaryFrameInSysthe primary frame in system
Returns
if calculation succeeded

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::calculatePrimaryFrameInSystem ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcPositionState pPositionState,
EcCoordinateSystemTransformation primaryFrameInSys 
) const
virtual

Calculate the primary frame in system.

Parameters
[in]manipIndexthe manipulator index
[in]linkIndexthe link index
[in]pPositionStatethe position state. If NULL, will use internal position state.
[out]primaryFrameInSysthe primary frame in system
Returns
if calculation succeeded

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::calculateState ( const EcReal  time,
EcManipulatorSystemState state 
)

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
EcBoolean EcControlSystemExecutiveModifier::calculateStateTimeSteps ( EcManipulatorSystemState state,
const EcU32  numTimeSteps = 1,
const EcReal  extrapolationTime = 0.0 
)

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.
Examples:
controlExecutiveModifierExampleMain.cpp.
virtual EcBoolean EcControlSystemExecutiveModifier::calculateTotalTorques ( const EcU32  manipulatorIndex,
const EcPositionState positionState,
const EcVelocityState velocityState,
const EcAccelerationState accelerationState,
const EcManipulatorExternalForce pExternalForces,
EcRealVector torques 
) const
virtual

calculate and return joint torques based on the selected calculation type.

Parameters
[in]manipIndexthe manipulator index
[in]positionStatethe position state of the manipulator
[in]velocityStatethe velocity state of the manipulator
[in]accelerationStatethe acceleration state of the manipulator
[in]pExternalForcesThe external forces on the manipulator links in link DH (local) frame. If NULL, will be treated as 0.
[out]torquesthe calculated torques on all joints in N*m
Returns
True if successful. False if the control executive is not valid

Implements EcBaseControlSystemModifier.

virtual const EcDataMap& EcControlSystemExecutiveModifier::dataMap ( ) const
virtual

get the data map

Implements EcBaseControlSystemModifier.

virtual const EcManipulatorEndEffectorPlacementVector& EcControlSystemExecutiveModifier::desiredPlacementVector ( ) const
virtual

Get desired placement (in relative) for the active end-effector set for all manipulators.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::detachManipulator ( const EcU32  depManipIndex)
virtual

detach manipulator

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::detachManipulators ( const EcU32  depManipIndex)

Detach manipulators.

Parameters
[in]depManipIndexthe index of the dependent manipulator
Returns
True if succeeded. False if the parameter is invalid or the two manipulators are not attached together.
virtual const EcEndEffectorSet* EcControlSystemExecutiveModifier::endEffectorSet ( const EcU32  manipIndex,
const EcU32  eeSetIndex 
) const
virtual

Get the end-effector set given manipulator index and end-effector set index.

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end effector set index
Returns
A point the to end-effector set. Null if the indices are invalid.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::excludeCollisionCheck ( const EcU32  manipIndex,
const EcU32 pLinkIndex,
const EcU32  otherManipIndex,
const EcU32Vector pOtherLinkIndices,
const EcBoolean  isExcluding 
)
virtual

Exclude/include collision check in the dynamic collision exclusion map.

This method does not support self collision.

Parameters
[in]manipIndexthe index of this manipulator
[in]pLinkIndexThe index of the link. If NULL, will exclude the full manipulator
[in]otherManipIndexthe index of the other manipulator. If otherManipIndex is EcFoundCommon::VOIDINDEX, then this manipulator (provided by manipIndex) will be excluded with everything in the scene.
[in]pOtherLinkIndicesThe indices of the other links. If NULL, will exclude the full manipulator
[in]isExcludingis excluding or including
Returns
True if successful (the indices are valid) or false otherwise.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getBaseAccelerationFactor ( const EcU32  manipIndex,
EcReal baseAccelerationFactor 
) const
virtual

Gets the base acceleration factor.

See also
setBaseAccelerationFactor

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getBaseSpeedFactor ( const EcU32  manipIndex,
EcReal baseSpeedFactor 
) const
virtual

Gets the base speed factor.

See also
setBaseSpeedFactor

Implements EcBaseControlSystemModifier.

virtual const EcManipulatorSystemConfiguration& EcControlSystemExecutiveModifier::getConfiguration ( ) const
virtual

gets the configuration, which changes intermittently – const version

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getDeterminant ( const EcU32  manipIndex,
EcReal value 
) const
virtual

get determinant of the Jacobian of the current end effector set

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getDigitalInput ( const EcU32  index,
EcU32 value 
) const
virtual

get digital input given board id

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getDigitalOutput ( const EcU32  index,
EcU32 value 
) const
virtual

get digital output given board id

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getFeedbackAssimilationRate ( const EcU32  manipIndex,
EcReal value 
) const
virtual

get default feedback assimilation rate for a given manipulator

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getJointActuator ( const EcU32  manipIndex,
const EcU32  linkIndex,
EcJointActuator jointActuator 
) const
virtual

Get the joint actuator object for a specified manipulator-link.

Parameters
[in]manipIndex,themanipulator index
[in]linkIndex,thelink index
[out]jointActuator,thejoint actuator
Returns
true if the manipulator-link is valid

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getJointRateFilterRates ( const EcU32  manipIndex,
EcRealVector jointRates,
EcBoolean useControlParam 
) const
virtual

Get the control parameters or joint rate filter rates of a given manipulator.

Parameters
[in]manipIndexthe manipulator index
[in]jointRatesthe control parameters or the joint rate filter rates
[in]useControlParamEcTrue(get control parameter) or EcFalse(get joint rate filter rates)
Returns
true if the get succeeds

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getManipulatorIndex ( const EcString label,
EcU32 manipIndex 
) const
virtual

Get the index of a manipulator given its label.

Parameters
[in]labelthe manipulator label
[out]manipIndexthe manipulator index
Returns
true if the label is found.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getManipulatorJointDof ( const EcU32  manipIndex,
EcU32 numJoints 
) const
virtual

Get the number of joints a manipulator has.

Parameters
manipIndex,themanipulator index
numJoints,thenumber of joints the manipulator has
Returns
true if the manipulator index is valid

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getNamedFrame ( const EcString key,
EcCoordinateSystemTransformation value 
) const
virtual

get named frame from manipulator system

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::getNamedFrame ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcString key,
EcCoordinateSystemTransformation value 
) const
virtual

get named frame from manipulator system

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::getSoftConstraintWeight ( const EcU32  manipIndex,
EcReal weight 
) const

Get soft constraint weight from the active control description.

The method assumes the soft constraint handler is EcWlsSoftConstraintHandler.

Parameters
[in]manipIndexThe manipulator index.
[out]weightThe soft constraint weight.
Returns
False if the manipulator index is invalid or the soft constraint handler is of wrong type.
virtual EcBoolean EcControlSystemExecutiveModifier::getSystemControlExecutiveImpl ( EcSystemControlExecutive systemControlExecutive,
EcFoundCommon::DeepCopyFlag  copyFlag 
) const
protectedvirtual

get the system control executive

Implements EcBaseControlSystemModifier.

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

Get the tool offset (in EE frame).

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.

Implements EcBaseControlSystemModifier.

virtual const EcManipulatorSystemState& EcControlSystemExecutiveModifier::manipulatorSystemState ( ) const
virtual

gets the state

Implements EcBaseControlSystemModifier.

virtual EcU32 EcControlSystemExecutiveModifier::numberOfManipulators ( ) const
virtual

return the number of manipulators

Implements EcBaseControlSystemModifier.

virtual const EcPositionController* EcControlSystemExecutiveModifier::positionController ( const EcU32  manipIndex) const
virtual

Get pointer to the position controller given manipulator index.

Implements EcBaseControlSystemModifier.

virtual const EcPropagationResultDataVector& EcControlSystemExecutiveModifier::propagationResultDataVector ( ) const
virtual

get the result of collision for display

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::replaceLinkShape ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcShape shape,
const EcU32  bvhLevel,
const EcBoolean  alwaysReplace = EcFalse 
)
virtual

replace the shape of the link identified by linkLabel in the manipulator given by the manipulator index. Note that if the system is referenced (i.e. there are more than one copies of the same stated system), this method will have to unreference it and make a new copy of the system.

See also
EcManipulatorSystem::replaceLinkShape

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::resetForShapeChange ( )
virtual

resets necessary components for a change in system shapes.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setAccelerationFactor ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const 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

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setActiveControlDescriptionIndex ( const EcU32  manipIndex,
const EcU32  controlDescriptionIndex 
)
virtual

set the active control method

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setActiveEndEffectorSetIndex ( const EcU32  manipIndex,
const EcU32  eeSetIndex 
)
virtual

set the active control method

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setActivePositionControlMethodIndex ( const EcU32  manipIndex,
const EcU32  controlMethodIndex 
)
virtual

set the active control method

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setAngularMotionLimits ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcReal  maxVel,
const EcReal  maxAcc,
const EcReal  maxDec,
const EcReal  maxJerk 
)
virtual

Set move pose angular motion limits.

Parameters
[in]manipIndexthe manipulator index
[in]maxVelthe max speed
[in]maxAccthe max acceleration
[in]maxDecthe max deceleration
[in]maxJerkthe max jerk
[in]eeSetIndexthe end effector set index
[in]eeIndexthe end effector index
Returns
if the motion limit is set

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setBaseAccelerationFactor ( const EcU32  manipIndex,
const EcReal  baseAccelerationFactor 
)
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

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setBaseSpeedFactor ( const EcU32  manipIndex,
const EcReal  baseSpeedFactor 
)
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

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::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

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setCurrentState ( const EcManipulatorSystemState state)
virtual

sets the current state of the system without re-initializing

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcU32  value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcU32Vector value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcReal  value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcRealVector value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcString value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const char *  value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcBoolean value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcVector value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcOrientation value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDataMap ( const EcString key,
const EcCoordinateSystemTransformation value 
)
virtual

set U32 data map

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setDesiredPlacement ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcManipulatorEndEffectorPlacement desiredPlacement 
)
virtual

sets an individual desired end-effector placement

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setDesiredPlacement ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcEndEffectorPlacement desiredPlacement 
)
virtual

sets an individual desired end-effector placement

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDesiredPlacementVector ( const EcManipulatorEndEffectorPlacementVector value)
virtual

set desired placement (in relative) for the active end-effector set for all manipulators.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setDesiredVelocity ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcManipulatorEndEffectorVelocity value 
)
virtual

sets an individual desired end-effector velocity

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setDesiredVelocity ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcXmlRealVector velocity 
)
virtual

sets an individual desired end-effector velocity

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDigitalInput ( const EcU32  index,
const EcU32 value 
)
virtual

set digital input given board id

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDigitalInputVector ( const EcU32Vector value)
virtual

set digital input vector

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDigitalOutput ( const EcU32  boardId,
const EcU32  value 
)
virtual

set digital output given board id

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setDigitalOutput ( const EcU32  boardId,
const EcU32  channelId,
const EcBoolean  value 
)
virtual

set digital output given board id

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setDigitalOutputVector ( const EcU32Vector value)
virtual

set digital output vector

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setFeedbackAssimilationRate ( const EcU32  manipIndex,
const EcReal value 
)
virtual

set default feedback assimilation rate for a given manipulator

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setFilteringMode ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcU32  value 
)
virtual

Set filtering mode (velocity profile).

Parameters
[in]manipIndexthe manipulator index
[in]eeSetIndexthe end-effector set index
[in]eeIndexthe end-effector index
[in]valuethe filtering mode. See EcBaseMotionFilter::FilteringMode
Returns
True if the indices are valid.

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setGravityVector ( const EcVector gravity)
virtual

Set the gravity vector (m/s^2) in system coordinates.

If the world z axis points up, on Earth, this vector should be [0, 0, -9.8]

Parameters
[in]gravitythe gravity vector

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::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.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setIsPositionControllerOn ( const EcU32  manipIndex,
const EcBoolean  isOn 
)
virtual

sets a flag indicating whether or not the position controller is on

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setIsPositionControlSystemOn ( const EcBoolean  isOn)
virtual

sets a flag indicating whether or not the position control system is on

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setJointActuator ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcJointActuator jointActuator 
)
virtual

Set the joint actuator object for a specified manipulator-link.

Parameters
[in]manipIndex,themanipulator index
[in]linkIndex,thelink index
[in]jointActuator,thejoint actuator
Returns
true if the manipulator-link is valid

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setJointMotionLimits ( const EcU32  manipIndex,
const EcRealVector maxVel,
const EcRealVector maxAcc,
const EcRealVector maxDec,
const EcRealVector maxJerk,
const EcU32  eeSetIndex 
)
virtual

Set joint motion limits.

Parameters
[in]manipIndexthe manipulator index
[in]maxVelthe max speed
[in]maxAccthe max acceleration
[in]maxDecthe max deceleration
[in]maxJerkthe max jerk
[in]eeSetIndexthe end effector set index. The first end-effector in the set must be joint control, or the method will fail.
Returns
if the motion limit is set

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setJointRateFilterRates ( const EcU32  manipIndex,
const EcRealVector jointRates,
const EcBoolean  useControlParam 
)
virtual

Set the control parameters or joint rate filter rates of a given manipulator.

Parameters
[in]manipIndexthe manipulator index
[in]jointRatesthe control parameters or the joint rate filter rates
[in]useControlParamEcTrue(set control parameter) or EcFalse(set joint rate filter rates)
Returns
true if the set succeeds

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setLinearMotionLimits ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcReal  maxVel,
const EcReal  maxAcc,
const EcReal  maxDec,
const EcReal  maxJerk 
)
virtual

Set move pose linear motion limits.

Parameters
[in]manipIndexthe manipulator index
[in]maxVelthe max speed
[in]maxAccthe max acceleration
[in]maxDecthe max deceleration
[in]maxJerkthe max jerk
[in]eeSetIndexthe end effector set index
[in]eeIndexthe end effector index
Returns
if the motion limit is set

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setNamedFrame ( const EcString key,
const EcCoordinateSystemTransformation value 
)
virtual

get named frame of manipulator system

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setNamedFrame ( const EcU32  manipIndex,
const EcU32  linkIndex,
const EcString key,
const EcCoordinateSystemTransformation value 
)
virtual

get named frame of manipulator system

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setPositionState ( const EcU32  manipIndex,
const EcCoordinateSystemTransformation pBasePose,
const EcRealVector pJointPositions 
)
virtual

Set the position state for a manipulator.

This method will also update the dependent manipulator state and reset desired placements of the manipulator and its dependence. This method does not change velocity state.

Parameters
[in]manipIndexmanipulator index
[in]pBasePosethe base pose, if NULL, will not be set.
[in]pJointPositionsthe joint positions, if NULL, will not be set.
Returns
False if the manipulator index is invalid or the dof does not match.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setSensedState ( const EcU32  manipIndex,
const EcCoordinateSystemTransformation pBase,
const EcRealVector pJoints,
const EcReal  timestep = 0.0 
)
virtual

Feed back the externally sensed position state to the position controller.

The method does not change desired end-effector placement.

Parameters
[in]manipIndexThe manipulator index.
[in]pBaseThe base pose. Will not be set if NULL.
[in]pJointsThe joint positions. Will not be set if NULL.
[in]timestepThe timestep. It is only used when the position controller is ON.

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::setSoftConstraintWeight ( const EcU32  manipIndex,
const EcReal  weight 
)

Set soft constraint weight to the active control description.

The method assumes the soft constraint handler is EcWlsSoftConstraintHandler.

virtual EcBoolean EcControlSystemExecutiveModifier::setSpeedFactor ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcReal  value 
)
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

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setStopsAtCollisions ( const EcU32  manipIndex,
const EcBoolean  stopsCollisions,
const EcBoolean  checkAllCollisions = EcFalse 
)
virtual

Set if stops at collisions.

Parameters
[in]manipIndexthe manipulator index
[in]stopsCollisionsTrue if stop at collisions
[in]checkAllCollisionsFalse if only check the first colliding link. The controller will stop all joints and base (if moving-base) if any collision happens. True if check all colliding links. The controller will stop only affected joints or base (if moving-base).

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setStopsAtLimits ( const EcU32  manipIndex,
const EcBoolean  stopsAtLimits 
)
virtual

Set if stops at joint limits.

Parameters
[in]manipIndexmanip to set stops at limits
[in]stopsAtLimitsif stopping or not
Returns
if stopping at limits is set

Implements EcBaseControlSystemModifier.

virtual void EcControlSystemExecutiveModifier::setTimeStep ( const EcReal  value)
virtual
virtual EcBoolean EcControlSystemExecutiveModifier::setToolOffset ( const EcU32  manipIndex,
const 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.

Implements EcBaseControlSystemModifier.

virtual EcBoolean EcControlSystemExecutiveModifier::setToolOffset ( const EcU32  manipIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
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.

Implements EcBaseControlSystemModifier.

EcBoolean EcControlSystemExecutiveModifier::setVelocityState ( const EcU32  manipIndex,
const EcGeneralVelocity pBaseVelocity,
const EcRealVector pJointVelocities 
)

Set the velocity state for a manipulator.

Parameters
[in]manipIndexmanipulator index
[in]pBaseVelocitythe base velocity, if NULL, will not be set.
[in]pJointVelocitiesthe joint velocities, if NULL, will not be set.
Returns
False if the manipulator index is invalid or the dof does not match.
virtual const EcSystemControlExecutive& EcControlSystemExecutiveModifier::systemControlExecutive ( ) const
virtual

get control system executive - const

Implements EcBaseControlSystemModifier.

virtual EcSystemControlExecutive& EcControlSystemExecutiveModifier::systemControlExecutive ( )
virtual

get control system executive - const

Implements EcBaseControlSystemModifier.

virtual EcReal EcControlSystemExecutiveModifier::timeStep ( ) const
virtual

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