Actin®  Version 5.2.0
Software for Robotics Simulation and Control
Ec::IOBuffer Class Reference

Buffers data between plugins and simulation. More...

#include <ecIOBuffer.h>

Classes

struct  ControlModeData
 
struct  PendingData
 
struct  StopMotionData
 

Public Types

typedef boost::shared_ptr< EcStatedSystemStatedSystemPtr
 Provide a convenient way for plugins to get a copy of the stated system.
 
typedef boost::shared_ptr< EcDataElementAccessor< EcString, EcSystemSimulation > > SimulationAccessorPtr
 
typedef boost::shared_ptr< const EcDataElementAccessor< EcString, EcSystemSimulation > > SimulationConstAccessorPtr
 

Public Member Functions

 IOBuffer ()
 Default constructor.
 
void setSystemSimulation (const EcSystemSimulation &sysSim)
 Set global simulation variable. More...
 
ScopedSysSim systemSimulation ()
 
CScopedSysSimconstSystemSimulation () const
 
void setSimulationThreadUpdateRate (const EcReal rate)
 Set the simulation thread update rate in Hz. More...
 
EcReal simulationThreadUpdateRate () const
 Get the simulation thread update rate in Hz (this is the rate at which the IOBuffer is updated)
 
void getSystemActiveState (EcSystemActiveState &value) const
 Retrieve the system active state.
 
EcBoolean setActiveStateVector (const EcManipulatorActiveStateVector &activeVector)
 
EcManipulatorActiveStateVector activeStateVector () const
 
EcBoolean setActiveState (const EcU32 manipulatorIndex, const EcManipulatorActiveState &actState)
 
EcManipulatorActiveState activeState (const EcU32 manipulatorIndex) const
 Retrieve the active state for a single manipulator. More...
 
void setDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &placementVector)
 Set the vector of desired end-effector placements, per manipulator. More...
 
EcBoolean setDesiredPlacement (const EcU32 manipulatorIndex, const EcManipulatorEndEffectorPlacement &placement)
 Set the desired end-effector placements for a single manipulator. More...
 
EcManipulatorEndEffectorPlacementVector desiredPlacementVector () const
 
EcManipulatorEndEffectorPlacementVector actualEndEffectorVector () const
 
void resetPlacementVector ()
 
EcBoolean setDesiredEndEffectorPose (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcEndEffectorPlacement &pose)
 set desired end effector pose
 
EcBoolean setDesiredEndEffectorPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcEndEffectorPlacement &placementInRelative)
 set desired end effector pose (in relative)
 
EcBoolean getDesiredEndEffectorPose (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, EcEndEffectorPlacement &pose) const
 get desired end effector pose
 
EcBoolean getCurrentEndEffectorPose (const EcU32 manipIndex, const EcU32 endEffectorIndex, EcEndEffectorPlacement &pose) const
 get current end effector pose
 
EcBoolean getCurrentEndEffectorPlacement (const EcU32 manipIndex, const EcU32 endEffectorSetIndex, EcManipulatorEndEffectorPlacement &placement) const
 
EcBoolean getCurrentEndEffectorVelocity (const EcU32 manipIndex, const EcU32 endEffectorIndex, EcXmlRealVector &velocity) const
 get current end effector velocity
 
EcBoolean getCurrentManipulatorVelocity (const EcU32 manipIndex, EcManipulatorEndEffectorVelocity &velocity) const
 get current manipulator velocity
 
EcBoolean setDesiredJointControlEndEffectorPlacement (const EcU32 manipulatorIndex, const EcEndEffectorPlacement &placement)
 set desired end effector placement for joint control
 
void setDesiredForceVector (const EcManipulatorSensorForceVector &forceVector)
 set desired force vector
 
EcManipulatorSensorForceVector desiredForceVector () const
 return desired force vector
 
EcBoolean setDesiredForce (const EcU32 manipulatorIndex, const EcManipulatorSensorForce &force)
 set desired force for a manipulator
 
const EcManipulatorEndEffectorVelocityVectordesiredVelocityVector () const
 return desired velocity vector
 
void setDesiredVelocityVector (const EcManipulatorEndEffectorVelocityVector &velocityVector)
 set desired velocity vector
 
EcBoolean setDesiredVelocity (const EcU32 manipulatorIndex, const EcManipulatorEndEffectorVelocity &velocity)
 set desired velocity for one manipulator
 
EcBoolean setDesiredVelocity (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcXmlRealVector &velocity)
 set desired velocity for one end effector
 
EcBoolean setDesiredVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcXmlRealVector &velocity)
 set desired velocity for one end effector
 
EcEndEffectorSetVector endEffectorSetVector () const
 return end effector set vector
 
void setEndEffectorSetVector (const EcEndEffectorSetVector &eeSetVec)
 set end effector set vector
 
EcBoolean setEndEffectorSet (const EcEndEffectorSet &eeSet, const EcU32 manIndex)
 set end effector set
 
EcBoolean setActivePositionControlMethod (const EcU32 manIndex, const EcU32 value)
 set active position control method
 
EcU32 addManipulator (const EcIndividualManipulator &manip, const EcPositionState &posState=EcPositionState())
 add manipulator
 
EcBoolean deleteManipulator (const EcU32 manIndex)
 delete manipulator
 
EcBoolean manipulatorExchangeBegin ()
 manipulator Exchange process initiated
 
EcBoolean manipulatorExchangeEnd (const EcInt32 manIndex)
 manipulator Exchange process completed
 
EcBoolean simulationCloseBegin ()
 Simulation close process initiated.
 
EcBoolean simulationCloseEnd ()
 simulation close process completed
 
EcBoolean manipulatorMergeBegin ()
 manipulator merge process initiated
 
EcBoolean manipulatorMergeEnd ()
 manipulator merge process completed
 
EcBoolean cloneManipulator (EcU32 manIndex)
 clone manipulator
 
EcBoolean copyManipulator (EcU32 manIndex)
 copy manipulator
 
EcBoolean changeManipulatorLabel (const EcU32 manIndex, const EcString &newLabel)
 change manipulator label
 
EcBoolean setState (const EcManipulatorSystemState &state)
 set state
 
EcManipulatorSystemState state () const
 return state
 
EcBoolean setState (const EcU32 manIndex, const EcPositionState &posState, const EcBoolean baseOnly=EcFalse)
 set position state for on manipulator
 
EcBoolean setJointPositions (const EcU32 manIndex, const EcRealVector &jointPos)
 set joint positions
 
EcBoolean setState (const EcU32 manIndex, const EcVelocityState &velState, const EcBoolean baseOnly=EcFalse)
 set velocity state for one manipulator
 
EcBoolean setInitialJointStates (const EcU32 manIndex, const EcRealVector &jointStates)
 set initial joint states
 
EcBoolean getInitialJointStates (const EcU32 manIndex, EcRealVector &jointStates)
 get initial joint states
 
EcBoolean setPositionControlContainer (const EcPositionControlContainer &posCont)
 set position control container
 
EcBoolean getPositionControlContainer (EcPositionControlContainer &value) const
 get position control container
 
EcBoolean setPositionControlSystem (const EcPositionControlSystem &posSys)
 set position control system
 
EcBoolean getPositionControlSystem (EcPositionControlSystem &value) const
 get position control system
 
EcBoolean setForceControlSystem (const EcForceControlSystem &forceSys)
 set force control system
 
EcBoolean getForceControlSystem (EcForceControlSystem &value) const
 get forced control system
 
EcBoolean setPositionControllerIsOn (const EcU32 manIndex, const EcBoolean isOn)
 
const EcU32VectoractiveEndEffectorSets () const
 return active end effector sets
 
EcBoolean setActiveEndEffectorSet (const EcU32 manIndex, const EcU32 eeSetIndex)
 set active end effector set
 
EcBoolean getActiveEndEffectorIndex (const EcU32 manIndex, EcU32 &eeIndex) const
 get active end effector index
 
EcBoolean setActiveEndEffectorIndex (const EcU32 manIndex, const EcU32 eeIndex)
 set active end effector index
 
EcBoolean setActiveControlDescriptor (const EcU32 manIndex, const EcU32 descriptorIndex)
 set active control descriptor
 
const EcU32Vector activeForceControlDescriptors () const
 return active force control descriptors
 
EcBoolean setActiveForceControlDescriptor (const EcU32 manIndex, const EcU32 descriptorIndex)
 set active force control descriptor
 
EcBoolean setMeasuredForce (const EcU32 manIndex, const EcU32 subIndex, const EcRealVector &sensorReadings)
 set measured force (sensor reading) for a particular sensor
 
EcBoolean setMeasuredForce (const EcU32 manIndex, const EcManipulatorSensorForce &sensorReadings)
 set measured force (sensor readings) for all the sensors in the manipulator
 
EcManipulatorSensorForceVector measuredForceVector () const
 get measured force vector
 
EcBoolean setNamedFrames (const EcU32 manIndex, const EcU32 subIndex, const EcNamedFrames &namedFrames)
 
EcBoolean setNamedFrame (const EcU32 manipulatorIndex, const EcU32 linkIndex, const EcString &key, const EcCoordinateSystemTransformation &frame)
 
void setIsForceControlOn (const EcBoolean value)
 set flag for is force control on
 
EcBoolean isForceControlOn () const
 return flag for is force control on
 
void updateFromInput ()
 get update
 
void setOutputData (const EcReal time)
 set output data
 
void setExternalControl (const EcBoolean isOn)
 set external control
 
EcBoolean externalControl () const
 get external control
 
void setSimulationState (const SimulationRunState state, const EcBoolean emitSignal=EcTrue)
 Set simulation run state (start, stop, pause). More...
 
SimulationRunState simulationState () const
 
EcU32 createStatedSystemCopy ()
 
StatedSystemPtr statedSystemPtr (EcU32 index)
 
const EcU32 changedFlags () const
 Returns the state bits that have changed in the last timestep.
 
void setDataMap (const EcDataMap &dataMap)
 set the custom data in form of data map
 
void setDataMap (const EcString &key, const EcReal &value)
 set the custom data in form of data map
 
EcBoolean getDataMap (const EcString &key, EcReal &value) const
 Get the custom data in form of data map.
 
void setDataMap (const EcString &key, const EcXmlRealVector &value)
 set the custom data in form of data map
 
EcBoolean getDataMap (const EcString &key, EcXmlRealVector &value) const
 Get the custom data in form of data map.
 
void setDataMap (const EcString &key, const EcU32 &value)
 set the custom data in form of data map
 
EcBoolean getDataMap (const EcString &key, EcU32 &value) const
 Get the custom data in form of data map.
 
void setDataMap (const EcString &key, const EcXmlU32Vector &value)
 set the custom data in form of data map
 
EcBoolean getDataMap (const EcString &key, EcXmlU32Vector &value) const
 Get the custom data in form of data map.
 
void setDataMap (const EcString &key, const EcString &value)
 set the custom data in form of data map
 
EcBoolean getDataMap (const EcString &key, EcString &value) const
 Get the custom data in form of data map.
 
EcDataMap dataMap () const
 Get the custom data in form of data map.
 
EcBoolean getAttachmentMap (EcManipulatorAttachmentMap &value) const
 get the attachment map
 
EcBoolean setAttachmentMap (const EcManipulatorAttachmentMap &attachmentMap)
 set the attachment map
 
EcBoolean setAttachmentChange (const EcManipulatorAttachmentChange &attachmentChange)
 set an attachment change which is used to attach/detach manipulator onto/from another
 
EcBoolean setCollisionExclusionMap (const EcSystemCollisionExclusionMap &value)
 get the dynamic collision exclusion map
 
EcBoolean getCollisionExclusionMap (EcSystemCollisionExclusionMap &value) const
 get the dynamic collision exclusion map
 
EcBoolean setStaticCollisionExclusionMap (const EcSystemCollisionExclusionMap &value)
 set the static collision exclusion map
 
EcBoolean getStaticCollisionExclusionMap (EcSystemCollisionExclusionMap &value) const
 get the static collision exclusion map
 
EcBoolean setSelfCollisionMap (EcU32 manipIndex, const EcManipulatorSelfCollisionLinkMap &value)
 set the self collision map for a given manipulator
 
EcBoolean getSelfCollisionMap (EcU32 manipIndex, EcManipulatorSelfCollisionLinkMap &value) const
 get the self collision map for a given manipulator
 
EcSharedMutexsimulationMutex () const
 return simulation mutex
 
void setCalculationTime (const EcReal time)
 set calculation time
 
EcReal calculationTime () const
 return calculation time
 
void setMeasuredUpdatePeriod (const EcReal time)
 set measured update period (e.g. measured time between calls to EcIODataBroker::runSimulationCycle())
 
EcReal measuredUpdatePeriod () const
 return measured update period
 
void disconnectSignals ()
 disconnect signals
 
EcBoolean setBaseSpeedFactor (const EcU32 manIndex, const EcReal value)
 set max speed factor
 
EcBoolean setSpeedFactor (const EcU32 manIndex, const EcReal value)
 set speed factor
 
EcBoolean setSpeedFactor (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value)
 set speed factor
 
EcBoolean setBaseAccelerationFactor (const EcU32 manIndex, const EcReal value)
 set base acceleration factor
 
EcBoolean setAccelerationFactor (const EcU32 manIndex, const EcReal value)
 set acceleration factor
 
EcBoolean setAccelerationFactor (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value)
 set acceleration factor
 
EcBoolean setProfiledEndEffectors (const EcU32 manIndex, const EcU32Vector &indices)
 set profiled end effectors
 
EcBoolean setToolOffsets (const EcU32 manIndex, const EcCoordinateSystemTransformationVector &value)
 set the tool offsets
 
EcBoolean setToolOffset (const EcU32 manIndex, const EcU32 offsetIndex, const EcCoordinateSystemTransformation &value)
 set tool offset
 
EcBoolean setToolOffset (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, const EcCoordinateSystemTransformation &value)
 set tool offset
 
EcBoolean setToolOffsetIndex (EcU32 manipIndex, EcU32 eeSetIndex, EcU32 eeIndex, EcU32 toolOffsetIndex)
 set the tool offset index for an end effector
 
EcBoolean setToolOffsetFixEE (const EcU32 manIndex, const EcU32 offsetIndex, const EcCoordinateSystemTransformation &value)
 
void resetSimulation (EcBoolean resetDesiredPlacement=EcTrue)
 
EcBoolean setExternalBlendingFlag (const EcU32 manIndex, EcBoolean flag)
 
EcBoolean getExternalBlendingFlag (const EcU32 manIndex, EcBoolean &flag)
 
EcBoolean stopMotion (const EcU32 manIndex, EcU32 stopMode, EcU32 stopEeSetIndex)
 
EcBoolean setControlMode (const EcU32 manIndex, const EcU32 value)
 set the control mode of a given manipulator
 
EcBoolean setControlMode (const EcU32 manIndex, const EcU32 eeIndex, const EcU32 value)
 set the control mode of a specific end effector in the active end effector set
 
EcBoolean setControlMode (const EcU32 manIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 value)
 
EcBoolean getControlModes (const EcU32 manIndex, EcU32Vector &value) const
 get the control modes of all end effectors in the active end effector set
 
EcBoolean getControlMode (const EcU32 manIndex, const EcU32 eeIndex, EcU32 &value) const
 get the control mode of a specific end effector in the active end effector set
 
EcBoolean getControlMode (const EcU32 manIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, EcU32 &value) const
 get the control mode of a specific end effector in a given end effector set.
 
void initializeVirtualIOBuffer ()
 initialize the virtual IO buffer
 
VirtualIOBuffervirtualIOBufferPtr ()
 get the virtual IO buffer
 
EcBoolean setUseSoftEndEffectorSet (const EcU32 manIndex, const EcBoolean value)
 set whether to use soft end effector set
 
void setHomePosition (const EcBoolean &setDesiredPlacement)
 set home position for the simulation
 
void getHomePosition (EcSystemSimulation &systemSimulation)
 get the home position for the simulation
 
EcU32 activeManipulator () const
 get the active manipulator index
 
EcBoolean setActiveManipulator (EcU32 value)
 set the active manipulator index
 
EcBoolean setCollisionStop (const EcU32 manIndex, EcBoolean value)
 turn on/off stop at collision in the control system for a given manipulator
 
EcBoolean setCollisionResult (const EcU32 manipIndex, const EcPropagationResultData &value)
 
EcBoolean setDigitalInputVector (const EcU32Vector &digitalInputVector)
 
EcU32Vector digitalInputVector () const
 
EcBoolean getDigitalInput (const EcU32 index, EcU32 &value) const
 
EcBoolean setDigitalInput (const EcU32 index, const EcU32 &digitalInput)
 
EcBoolean setDigitalOutputVector (const EcU32Vector &digitalOutputVector)
 
EcU32Vector digitalOutputVector () const
 
EcBoolean getDigitalOutput (const EcU32 index, EcU32 &value) const
 
EcBoolean setDigitalOutput (const EcU32 boardId, const EcU32 value)
 
EcBoolean setDigitalOutput (const EcU32 boardId, const EcU32 channelId, const EcBoolean value)
 
EcBoolean replaceShape (EcU32 manipIndex, EcU32 linkIndex, const EcShape &shape)
 replace the shape of a link
 
void resetDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &actualPlacementVector, const EcEndEffectorSetVector &endEffectorSetVector, EcManipulatorEndEffectorPlacementVector &desiredPlacementVector)
 reset desired placement vector based on setting in EE and stored desired EE placement
 
void setLocalSimulationOnly (const EcBoolean val)
 
EcBoolean isLocalSimulationOnly () const
 
EcBoolean setJointPositions (const EcU32 manipIndex, const EcRealVector &jointAngles)
 
EcBoolean applyExternalJointPositions (const EcU32 manipIndex, const EcRealVector &jointAngles)
 
EcBoolean applyExternalCollisionMap (const EcSystemCollisionExclusionMap &map)
 
EcBoolean setCollisionExclusionMap (const EcSystemCollisionExclusionMap &map)
 
EcBoolean getCollisionExclusionMap (EcSystemCollisionExclusionMap &map) const
 
EcBoolean applyExternalAttachmentMap (const EcManipulatorAttachmentMap &map)
 
EcBoolean applyExternalAttachmentChange (const EcManipulatorAttachmentChange &change)
 
EcBoolean setAttachmentMap (const EcManipulatorAttachmentMap &attachmentMap)
 
EcBoolean getAttachmentMap (EcManipulatorAttachmentMap &value) const
 
EcBoolean stopMotion (const EcU32 manipIndex, EcU32 stopMode, EcU32 stopEeSetIndex)
 
EcBoolean applyExternalDesiredPlacement (const EcU32 manipIndex, const EcManipulatorEndEffectorPlacement &placement)
 
EcBoolean setDesiredPlacement (const EcU32 manipIndex, const EcManipulatorEndEffectorPlacement &placement)
 
EcBoolean applyExternalDesiredEndEffectorPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcEndEffectorPlacement &placementInRelative)
 
EcBoolean setDesiredEndEffectorPlacement (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcEndEffectorPlacement &placementInRelative)
 
EcBoolean applyExternalDesiredEndEffectorPose (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcEndEffectorPlacement &pose)
 
EcBoolean setDesiredEndEffectorPose (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcEndEffectorPlacement &pose)
 
void applyExternalDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &placements)
 
void setDesiredPlacementVector (const EcManipulatorEndEffectorPlacementVector &placements)
 
EcManipulatorEndEffectorPlacementVector desiredPlacementVector () const
 
void applyExternalDesiredVelocityVector (const EcManipulatorEndEffectorVelocityVector &velocityVector)
 
void setDesiredVelocityVector (const EcManipulatorEndEffectorVelocityVector &velocityVector)
 set desired velocity vector
 
EcBoolean applyExternalDesiredVelocity (const EcU32 manipulatorIndex, const EcManipulatorEndEffectorVelocity &velocity)
 
EcBoolean setDesiredVelocity (const EcU32 manipulatorIndex, const EcManipulatorEndEffectorVelocity &velocity)
 set desired velocity for one manipulator
 
EcBoolean applyExternalDesiredVelocity (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcXmlRealVector &velocity)
 
EcBoolean setDesiredVelocity (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, const EcXmlRealVector &velocity)
 set desired velocity for one end effector
 
EcBoolean applyExternalDesiredVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcXmlRealVector &velocity)
 
EcBoolean setDesiredVelocity (const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcXmlRealVector &velocity)
 set desired velocity for one end effector
 
EcManipulatorEndEffectorVelocityVector desiredVelocityVector () const
 
EcManipulatorEndEffectorPlacementVector actualEndEffectorVector () const
 
EcBoolean getActiveEndEffectorIndex (const EcU32 manipIndex, EcU32 &eeIndex) const
 
EcBoolean setActiveEndEffectorIndex (const EcU32 manipIndex, const EcU32 eeIndex)
 
EcBoolean applyExternalActiveEndEffectorIndex (const EcU32 manipIndex, const EcU32 eeIndex)
 
EcBoolean getActiveEndEffectorSet (EcU32 manipIndex, EcU32 &eeIndex)
 
EcBoolean setActiveEndEffectorSet (const EcU32 manipIndex, const EcU32 eeSetIndex)
 
EcBoolean applyExternalActiveEndEffectorSet (const EcU32 manipIndex, const EcU32 eeSetIndex)
 
EcEndEffectorSetVector endEffectorSetVector () const
 
EcBoolean getDesiredEndEffectorPose (const EcU32 manipulatorIndex, const EcU32 endEffectorIndex, EcEndEffectorPlacement &pose) const
 
EcBoolean getCurrentEndEffectorPose (const EcU32 manipIndex, const EcU32 endEffectorIndex, EcEndEffectorPlacement &pose) const
 
EcBoolean getPositionControlSystem (EcPositionControlSystem &value) const
 
EcBoolean setToolOffset (const EcU32 manipIndex, const EcU32 offsetIndex, const EcCoordinateSystemTransformation &value)
 
EcBoolean applyExternalToolOffset (const EcU32 manipIndex, const EcU32 offsetIndex, const EcCoordinateSystemTransformation &value)
 
EcBoolean setToolOffsets (const EcU32 manipIndex, const EcCoordinateSystemTransformationVector &value)
 
EcBoolean applyExternalToolOffsets (const EcU32 manipIndex, const EcCoordinateSystemTransformationVector &value)
 
void setSystemSimulation (const EcSystemSimulation &sim)
 
SimulationAccessorPtr createSimulationAccessor ()
 
SimulationAccessorPtr simulationAccessor ()
 
SimulationConstAccessorPtr createSimulationConstAccessor () const
 
SimulationConstAccessorPtr constSimulationAccessor () const
 
void getSystemActiveState (EcSystemActiveState &value) const
 Retrieve the system active state.
 
EcManipulatorActiveStateVector activeStateVector () const
 
EcManipulatorActiveState activeState (const EcU32 manipulatorIndex) const
 Retrieve the active state for a single manipulator.
 
EcBoolean applyExternalControlMethod (const EcU32 manipIndex, const EcU32 value)
 apply the control method of a given manipulator directly to simulation
 
EcBoolean setControlMethod (const EcU32 manipIndex, const EcU32 value)
 set the control method of a given manipulator
 
EcBoolean applyExternalControlMode (const EcU32 manipIndex, const EcU32 value)
 apply the control mode of a given manipulator directly to simulation
 
EcBoolean applyExternalControlMode (const EcU32 manipIndex, const EcU32 eeIndex, const EcU32 value)
 apply the control mode of a specific end effector in the active end effector set directly to simulation
 
EcBoolean setControlMode (const EcU32 manipIndex, const EcU32 value)
 set the control mode of a given manipulator
 
EcBoolean setControlMode (const EcU32 manipIndex, const EcU32 eeIndex, const EcU32 value)
 set the control mode of a specific end effector in the active end effector set
 
EcBoolean getControlModes (const EcU32 manipIndex, EcU32Vector &value) const
 get the control modes of all end effectors in the active end effector set
 
EcBoolean getControlMode (const EcU32 manipIndex, const EcU32 eeIndex, EcU32 &value) const
 get the control mode of a specific end effector in the active end effector set
 
SimulationRunState simulationState () const
 
void setSimulationState (const SimulationRunState state, const EcBoolean emitSignal=EcTrue)
 
void applyExternalSimulationState (const SimulationRunState state, const EcBoolean emitSignal=EcTrue)
 
PendingData pendingData (const EcBoolean reset=EcFalse)
 
void clearPendingData ()
 
void setExternalControl (const EcBoolean isExternal)
 
EcBoolean externalControl () const
 
EcReal simulationThreadUpdateRate () const
 
void setSimulationThreadUpdateRate (EcReal rate)
 
void applyExternalSimulationThreadUpdateRate (EcReal rate)
 
EcReal calculationTime () const
 
void setCalculationTime (const EcReal time)
 
void applyExternalCalculationTime (const EcReal time)
 
EcReal measuredUpdatePeriod () const
 
void setMeasuredUpdatePeriod (const EcReal time)
 
void applyExternalMeasuredUpdatePeriod (const EcReal time)
 
void disconnectSignals ()
 
ScopedSysSim systemSimulation ()
 
CScopedSysSim constSystemSimulation () const
 
EcU32 changedFlags () const
 
void resetChangedFlags ()
 
EcManipulatorSystemState state () const
 
EcBoolean setState (const EcManipulatorSystemState &state)
 
EcBoolean setState (const EcU32 manipIndex, const EcPositionState &posState, const EcBoolean baseOnly=EcFalse)
 
EcBoolean applyExternalState (const EcManipulatorSystemState &state)
 
EcBoolean applyExternalPositionState (const EcU32 manipIndex, const EcPositionState &state, const EcBoolean baseOnly=EcFalse)
 
EcBoolean applyExternalDeleteManipulator (const EcU32 manipIndex)
 
void resetSimulation (const EcBoolean resetDesiredPlacement=EcTrue)
 
void setHomePosition ()
 set home position for the simulation
 
void initializeVirtualIOBuffer ()
 initialize the virtual IO buffer
 
VirtualIOBuffervirtualIOBufferPtr ()
 get the virtual IO buffer
 
void resetPlacementVector ()
 
void updateFromInput ()
 
void setOutputData (const EcReal time)
 
void signalExternalTimestep (const EcReal time)
 
EcSharedMutexsimulationMutex () const
 
EcBoolean manipulatorMergeBegin ()
 
EcBoolean manipulatorMergeEnd ()
 
EcBoolean simulationCloseBegin ()
 
EcBoolean simulationCloseEnd ()
 
EcBoolean manipulatorExchangeBegin ()
 
EcBoolean manipulatorExchangeEnd (const EcInt32 manipIndex)
 
EcBoolean applyExternalBaseSpeedFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean getBaseSpeedFactor (const EcU32 manipIndex, EcReal &value) const
 
EcBoolean setBaseSpeedFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean applyExternalSpeedFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean getSpeedFactor (const EcU32 manipIndex, EcReal &value) const
 
EcBoolean setSpeedFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean applyExternalBaseAccelerationFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean getBaseAccelerationFactor (const EcU32 manipIndex, EcReal &value) const
 
EcBoolean setBaseAccelerationFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean applyExternalAccelerationFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean getAccelerationFactor (const EcU32 manipIndex, EcReal &value) const
 
EcBoolean setAccelerationFactor (const EcU32 manipIndex, EcReal value)
 
EcBoolean applyExternalPropagationResults (const EcPropagationResultDataVector &value)
 
EcBoolean applyExternalControlDescription (const EcU32 manipIndex, EcU32 value)
 
EcBoolean setControlDescription (const EcU32 manipIndex, EcU32 value)
 
EcBoolean setCollisionResult (const EcU32 manipIndex, const EcPropagationResultData &value)
 
EcBoolean setCollisionStop (const EcU32 manipIndex, EcBoolean value)
 

Detailed Description

Buffers data between plugins and simulation.

This IO buffer is an alternative to the default buffer. Is has an actin_ipc data store backend and was designed for use with an actin_ipc controller running as another process and exchanging data with this process via a tranfser layer (in the ipcControllerInterfacePlugin). The major difference between this buffer and the default buffer is the addition of the pending data structure and applyExternalXYZ(...) methods. Calls to setXYZ(...) will add to the pending data structure and a separate plugin is responsible for getting that structure and sending the relevant information to the controller. When information is received from the controller applyExternalXYZ(...) calls should be used to reflect that informationt to the local simulation copy.

If an external controller is not being used the buffer can be set to local simulation only mode. In this mode setXYZ(...) calls will immediately forward to the respective applyExternalXYZ(...) call instead of adding to the pending data structure.

NOTE: the default operationn mode is local simulation only.

Definition at line 36 of file defaultBuffer/ecIOBuffer.h.

Member Function Documentation

EcManipulatorActiveState Ec::IOBuffer::activeState ( const EcU32  manipulatorIndex) const

Retrieve the active state for a single manipulator.

Parameters
[in]manipulatorIndexIndex into manipulator list
EcManipulatorActiveStateVector Ec::IOBuffer::activeStateVector ( ) const

Retrieve vector of active states, one for each manipulator.

Returns
EcManipulatorActiveStateVector Vector of active states
EcManipulatorActiveStateVector Ec::IOBuffer::activeStateVector ( ) const

Retrieve vector of active states, one for each manipulator.

Returns
EcManipulatorActiveStateVector Vector of active states
EcManipulatorEndEffectorPlacementVector Ec::IOBuffer::actualEndEffectorVector ( ) const

Retrieve the vector of actual end-effector placements.

Returns
EcManipulatorEndEffectorPlacementVector Placement vector
CScopedSysSim& Ec::IOBuffer::constSystemSimulation ( ) const

Safe access to read-only EcSystemSimulation.

Returns
CScopedSysSim Auto-release of handle when out of scope
EcU32 Ec::IOBuffer::createStatedSystemCopy ( )

create a copy of stated system.

Returns
The index of the created copy
EcManipulatorEndEffectorPlacementVector Ec::IOBuffer::desiredPlacementVector ( ) const

Retrieve the vector of desired end-effector placements.

Returns
EcManipulatorEndEffectorPlacementVector Placement vector
EcBoolean Ec::IOBuffer::getCurrentEndEffectorPlacement ( const EcU32  manipIndex,
const EcU32  endEffectorSetIndex,
EcManipulatorEndEffectorPlacement placement 
) const

get current end effector placement for a given end effector set regardless of the active end effector set For example, the robot can be in joint mode but can get the current end effector placement of a frame end effector.

EcBoolean Ec::IOBuffer::getExternalBlendingFlag ( const EcU32  manIndex,
EcBoolean flag 
)

get external blending flag

EcBoolean Ec::IOBuffer::isLocalSimulationOnly ( ) const

if true, the buffer will immediately apply changes to the local simulation copy (nothing will be applied pending data)

void Ec::IOBuffer::resetPlacementVector ( )

Set all desired placements to their actual positions and set desired velocities to zero.

void Ec::IOBuffer::resetSimulation ( const EcBoolean  resetDesiredPlacement = EcTrue)

reset the simulation to initial state and configuration

Parameters
resetDesiredPlacementTrue if you want to reset desired EE placement as well.
void Ec::IOBuffer::resetSimulation ( EcBoolean  resetDesiredPlacement = EcTrue)

reset the simulation to initial state and configuration

Parameters
resetDesiredPlacementTrue if you want to reset desired EE placement as well.
EcBoolean Ec::IOBuffer::setActiveState ( const EcU32  manipulatorIndex,
const EcManipulatorActiveState actState 
)

Set an individual active state for a single manipulator.

Returns
EcBoolean Success or failure of command.
Parameters
[in]manipulatorIndexIndex into manipulator list
[in]actStateState to set
EcBoolean Ec::IOBuffer::setActiveStateVector ( const EcManipulatorActiveStateVector activeVector)

Set active states for each manipulator.

Returns
EcBoolean Success or failure of command
Parameters
[in]activeVectorStates to set
EcBoolean Ec::IOBuffer::setControlMode ( const EcU32  manIndex,
const EcU32  eeSetIndex,
const EcU32  eeIndex,
const EcU32  value 
)

set the control mode of a specific end effector in a given end effector set. Note that if the active EE set is the same as eeSetIndex, then the control mode will be applied in update. However, if it is not, it'll be applied immediately (i.e. simulation will be locked).

EcBoolean Ec::IOBuffer::setDesiredPlacement ( const EcU32  manipulatorIndex,
const EcManipulatorEndEffectorPlacement placement 
)

Set the desired end-effector placements for a single manipulator.

Parameters
[in]manipulatorIndexIndex into manipulator list
[in]placementPlacement to set
void Ec::IOBuffer::setDesiredPlacementVector ( const EcManipulatorEndEffectorPlacementVector placementVector)

Set the vector of desired end-effector placements, per manipulator.

Parameters
[in]placementVector
EcBoolean Ec::IOBuffer::setExternalBlendingFlag ( const EcU32  manIndex,
EcBoolean  flag 
)

set external blending flag

void Ec::IOBuffer::setLocalSimulationOnly ( const EcBoolean  val)

set the buffer to immediately apply changes to the local simulation copy (don't apply anything to pending data)

EcBoolean Ec::IOBuffer::setNamedFrame ( const EcU32  manipulatorIndex,
const EcU32  linkIndex,
const EcString key,
const EcCoordinateSystemTransformation frame 
)

set a named frame a for a link or the system if manIndex == EcFoundCommon::VOIDINDEX then set the named frame at the system level

EcBoolean Ec::IOBuffer::setNamedFrames ( const EcU32  manIndex,
const EcU32  subIndex,
const EcNamedFrames namedFrames 
)

set named frames for a link or the system if manIndex == EcFoundCommon::VOIDINDEX then set the named frames at the system level

EcBoolean Ec::IOBuffer::setPositionControllerIsOn ( const EcU32  manIndex,
const EcBoolean  isOn 
)

set whether the position controller for the given manipulator is on

Returns
EcBoolean Success or failure of command
void Ec::IOBuffer::setSimulationState ( const SimulationRunState  state,
const EcBoolean  emitSignal = EcTrue 
)

Set simulation run state (start, stop, pause).

Parameters
[in]stateState to change to
[in]emitSignalWhether to emit signal to listeners
void Ec::IOBuffer::setSimulationThreadUpdateRate ( const EcReal  rate)

Set the simulation thread update rate in Hz.

Parameters
[in]rateUpdate rate for simulation thread in Hz
void Ec::IOBuffer::setSystemSimulation ( const EcSystemSimulation sysSim)

Set global simulation variable.

Parameters
[in]sysSimSimulation to set
EcBoolean Ec::IOBuffer::setToolOffsetFixEE ( const EcU32  manIndex,
const EcU32  offsetIndex,
const EcCoordinateSystemTransformation value 
)

set tool offset (does not move the EE)

Parameters
[in]manIndexThe index of the manipulator
[in]offsetIndexThe offset index (different from link index)
[in]valueThe tool offset
Returns
True if successful or false if index is out of range.
SimulationRunState Ec::IOBuffer::simulationState ( ) const

Retrieve simulation run state (start, stop, pause).

Returns
SimulationRunState Current run state
StatedSystemPtr Ec::IOBuffer::statedSystemPtr ( EcU32  index)

return the shared pointer to a copy of the stated system specified by index. If index is invalid, the returned pointer is null.

EcBoolean Ec::IOBuffer::stopMotion ( const EcU32  manipIndex,
EcU32  stopMode,
EcU32  stopEeSetIndex 
)

stop or resume the motion of a given manipulator depending on the stop mode

Parameters
[in]manIndexThe index of the manipulator to stop/resume
[in]stopModeThe stop mode
[in]stopEeSetIndexThe EE set index to be used to stop when stopMode is CustomStop
EcBoolean Ec::IOBuffer::stopMotion ( const EcU32  manIndex,
EcU32  stopMode,
EcU32  stopEeSetIndex 
)

stop or resume the motion of a given manipulator depending on the stop mode

Parameters
[in]manIndexThe index of the manipulator to stop/resume
[in]stopModeThe stop mode
[in]stopEeSetIndexThe EE set index to be used to stop when stopMode is CustomStop
ScopedSysSim Ec::IOBuffer::systemSimulation ( )

Safe access to EcSystemSimulation.

Returns
ScopedSysSim Auto-release of handle when out of scope

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.