Actin®  Version 5.3.0
Software for Robotics Simulation and Control
defaultBuffer/ecIOBuffer.h
1 #ifndef _default_ecIOBuffer_H_
2 #define _default_ecIOBuffer_H_
3 //------------------------------------------------------------------------------
4 // Copyright (c) 2009-2015 Energid Technologies. All rights reserved.
5 //
9 //
10 //------------------------------------------------------------------------------
11 #include <actin/actin_config.h> // Required to be first header.
12 #include <plugins/ecVirtualIOBuffer.h>
13 #include <plugins/ecIOParams.h>
15 
22 
23 #include <boost/scoped_ptr.hpp>
24 
25 namespace Ec
26 {
27 
32 typedef boost::shared_ptr<EcSystemSimulation> ScopedSysSim;
34 typedef boost::shared_ptr<const EcSystemSimulation> CScopedSysSim;
35 
37 {
38 public:
40  typedef boost::shared_ptr<EcStatedSystem> StatedSystemPtr;
41 
43  IOBuffer
44  (
45  );
46 
48  void setSystemSimulation
49  (
50  const EcSystemSimulation& sysSim
51  );
52 
55  ScopedSysSim systemSimulation
56  (
57  );
58 
61  CScopedSysSim& constSystemSimulation
62  (
63  ) const;
64 
66  void setSimulationThreadUpdateRate
67  (
68  const EcReal rate
69  );
70 
72  EcReal simulationThreadUpdateRate
73  (
74  )const;
75 
77  void getSystemActiveState
78  (
79  EcSystemActiveState& value
80  ) const;
81 
84  EcBoolean setActiveStateVector
85  (
86  const EcManipulatorActiveStateVector& activeVector
87  );
88 
91  EcManipulatorActiveStateVector activeStateVector
92  (
93  ) const;
94 
97  EcBoolean setActiveState
98  (
99  const EcU32 manipulatorIndex,
100  const EcManipulatorActiveState& actState
101  );
102 
104  EcManipulatorActiveState activeState
105  (
106  const EcU32 manipulatorIndex
107  ) const;
108 
110  void setDesiredPlacementVector
111  (
112  const EcManipulatorEndEffectorPlacementVector& placementVector
113  );
114 
116  EcBoolean setDesiredPlacement
117  (
118  const EcU32 manipulatorIndex,
119  const EcManipulatorEndEffectorPlacement& placement
120  );
121 
124  EcManipulatorEndEffectorPlacementVector desiredPlacementVector() const;
125 
128  EcManipulatorEndEffectorPlacementVector actualEndEffectorVector() const;
129 
132  void resetPlacementVector();
133 
135  EcBoolean setDesiredEndEffectorPose
136  (
137  const EcU32 manipulatorIndex,
138  const EcU32 endEffectorIndex,
139  const EcEndEffectorPlacement& pose
140  );
141 
143  EcBoolean setDesiredEndEffectorPlacement
144  (
145  const EcU32 manipIndex,
146  const EcU32 eeSetIndex,
147  const EcU32 eeIndex,
148  const EcEndEffectorPlacement& placementInRelative
149  );
150 
152  EcBoolean getDesiredEndEffectorPose
153  (
154  const EcU32 manipulatorIndex,
155  const EcU32 endEffectorIndex,
157  ) const;
158 
160  EcBoolean getCurrentEndEffectorPose
161  (
162  const EcU32 manipIndex,
163  const EcU32 endEffectorIndex,
165  ) const;
166 
171  EcBoolean getCurrentEndEffectorPlacement
172  (
173  const EcU32 manipIndex,
174  const EcU32 endEffectorSetIndex,
176  ) const;
177 
179  EcBoolean getCurrentEndEffectorVelocity
180  (
181  const EcU32 manipIndex,
182  const EcU32 endEffectorIndex,
183  EcXmlRealVector& velocity
184  ) const;
185 
187  EcBoolean getCurrentManipulatorVelocity
188  (
189  const EcU32 manipIndex,
191  ) const;
192 
194  EcBoolean setDesiredJointControlEndEffectorPlacement
195  (
196  const EcU32 manipulatorIndex,
197  const EcEndEffectorPlacement& placement
198  );
199 
201  void setDesiredForceVector
202  (
203  const EcManipulatorSensorForceVector& forceVector
204  );
205 
207  EcManipulatorSensorForceVector desiredForceVector
208  (
209  ) const;
210 
212  EcBoolean setDesiredForce
213  (
214  const EcU32 manipulatorIndex,
215  const EcManipulatorSensorForce& force
216  );
217 
219  const EcManipulatorEndEffectorVelocityVector& desiredVelocityVector
220  (
221  ) const;
222 
224  void setDesiredVelocityVector
225  (
226  const EcManipulatorEndEffectorVelocityVector& velocityVector
227  );
228 
230  EcBoolean setDesiredVelocity
231  (
232  const EcU32 manipulatorIndex,
233  const EcManipulatorEndEffectorVelocity& velocity
234  );
235 
237  EcBoolean setDesiredVelocity
238  (
239  const EcU32 manipulatorIndex,
240  const EcU32 endEffectorIndex,
241  const EcXmlRealVector& velocity
242  );
243 
245  EcBoolean setDesiredVelocity
246  (
247  const EcU32 manipIndex,
248  const EcU32 eeSetIndex,
249  const EcU32 eeIndex,
250  const EcXmlRealVector& velocity
251  );
252 
254  EcEndEffectorSetVector endEffectorSetVector
255  (
256  ) const;
257 
259  void setEndEffectorSetVector
260  (
261  const EcEndEffectorSetVector& eeSetVec
262  );
263 
265  EcBoolean setEndEffectorSet
266  (
267  const EcEndEffectorSet& eeSet,
268  const EcU32 manIndex
269  );
270 
272  EcBoolean setActivePositionControlMethod
273  (
274  const EcU32 manIndex,
275  const EcU32 value
276  );
277 
279  EcU32 addManipulator
280  (
281  const EcIndividualManipulator& manip,
282  const EcPositionState& posState = EcPositionState()
283  );
284 
286  EcBoolean deleteManipulator
287  (
288  const EcU32 manIndex
289  );
290 
292  EcBoolean manipulatorExchangeBegin
293  (
294  );
295 
297  EcBoolean manipulatorExchangeEnd
298  (
299  const EcInt32 manIndex
300  );
301 
303  EcBoolean simulationCloseBegin
304  (
305  );
306 
308  EcBoolean simulationCloseEnd
309  (
310  );
311 
313  EcBoolean manipulatorMergeBegin
314  (
315  );
316 
318  EcBoolean manipulatorMergeEnd
319  (
320  );
321 
323  EcBoolean cloneManipulator
324  (
325  EcU32 manIndex
326  );
327 
329  EcBoolean copyManipulator
330  (
331  EcU32 manIndex
332  );
333 
335  EcBoolean changeManipulatorLabel
336  (
337  const EcU32 manIndex,
338  const EcString& newLabel
339  );
340 
342  EcBoolean setState
343  (
344  const EcManipulatorSystemState& state
345  );
346 
349  (
350  ) const;
351 
353  EcBoolean setState
354  (
355  const EcU32 manIndex,
356  const EcPositionState& posState,
357  const EcBoolean baseOnly = EcFalse
358  );
359 
361  EcBoolean setJointPositions
362  (
363  const EcU32 manIndex,
364  const EcRealVector& jointPos
365  );
366 
368  EcBoolean setState
369  (
370  const EcU32 manIndex,
371  const EcVelocityState& velState,
372  const EcBoolean baseOnly = EcFalse
373  );
374 
376  EcBoolean setInitialJointStates
377  (
378  const EcU32 manIndex,
379  const EcRealVector& jointStates
380  );
381 
383  EcBoolean getInitialJointStates
384  (
385  const EcU32 manIndex,
386  EcRealVector& jointStates
387  );
388 
390  EcBoolean setPositionControlContainer
391  (
392  const EcPositionControlContainer& posCont
393  );
394 
396  EcBoolean getPositionControlContainer
397  (
399  ) const;
400 
402  EcBoolean setPositionControlSystem
403  (
404  const EcPositionControlSystem& posSys
405  );
406 
408  EcBoolean getPositionControlSystem
409  (
411  ) const;
412 
414  EcBoolean setForceControlSystem
415  (
416  const EcForceControlSystem& forceSys
417  );
418 
420  EcBoolean getForceControlSystem
421  (
422  EcForceControlSystem& value
423  ) const;
424 
427  EcBoolean setPositionControllerIsOn
428  (
429  const EcU32 manIndex,
430  const EcBoolean isOn
431  );
432 
434  const EcU32Vector& activeEndEffectorSets
435  (
436  ) const;
437 
439  EcBoolean setActiveEndEffectorSet
440  (
441  const EcU32 manIndex,
442  const EcU32 eeSetIndex
443  );
444 
446  EcBoolean getActiveEndEffectorIndex
447  (
448  const EcU32 manIndex,
449  EcU32& eeIndex
450  ) const;
451 
453  EcBoolean setActiveEndEffectorIndex
454  (
455  const EcU32 manIndex,
456  const EcU32 eeIndex
457  );
458 
460  EcBoolean setActiveControlDescriptor
461  (
462  const EcU32 manIndex,
463  const EcU32 descriptorIndex
464  );
465 
467  const EcU32Vector activeForceControlDescriptors
468  (
469  ) const;
470 
472  EcBoolean setActiveForceControlDescriptor
473  (
474  const EcU32 manIndex,
475  const EcU32 descriptorIndex
476  );
477 
479  EcBoolean setMeasuredForce
480  (
481  const EcU32 manIndex,
482  const EcU32 subIndex,
483  const EcRealVector& sensorReadings
484  );
485 
487  EcBoolean setMeasuredForce
488  (
489  const EcU32 manIndex,
490  const EcManipulatorSensorForce& sensorReadings
491  );
492 
494  EcManipulatorSensorForceVector measuredForceVector
495  (
496  ) const;
497 
500  EcBoolean setNamedFrames
501  (
502  const EcU32 manIndex,
503  const EcU32 subIndex,
504  const EcNamedFrames& namedFrames
505  );
506 
509  EcBoolean setNamedFrame
510  (
511  const EcU32 manipulatorIndex,
512  const EcU32 linkIndex,
513  const EcString& key,
515  );
516 
518  void setIsForceControlOn
519  (
520  const EcBoolean value
521  );
522 
524  EcBoolean isForceControlOn
525  (
526  ) const;
527 
529  void updateFromInput
530  (
531  );
532 
534  void setOutputData
535  (
536  const EcReal time
537  );
538 
540  void setExternalControl
541  (
542  const EcBoolean isOn
543  );
544 
546  EcBoolean externalControl
547  (
548  ) const;
549 
551  void setSimulationState
552  (
553  const SimulationRunState state,
554  const EcBoolean emitSignal = EcTrue
555  );
556 
559  SimulationRunState simulationState
560  (
561  ) const;
562 
565  EcU32 createStatedSystemCopy
566  (
567  );
568 
571  StatedSystemPtr statedSystemPtr
572  (
573  EcU32 index
574  );
575 
577  const EcU32 changedFlags
578  (
579  ) const;
580 
582  void setDataMap
583  (
584  const EcDataMap& dataMap
585  );
586 
588  void setDataMap
589  (
590  const EcString& key,
591  const EcReal& value
592  );
593 
595  EcBoolean getDataMap
596  (
597  const EcString& key,
598  EcReal& value
599  ) const;
600 
602  void setDataMap
603  (
604  const EcString& key,
605  const EcXmlRealVector& value
606  );
607 
609  EcBoolean getDataMap
610  (
611  const EcString& key,
612  EcXmlRealVector& value
613  ) const;
614 
616  void setDataMap
617  (
618  const EcString& key,
619  const EcU32& value
620  );
621 
623  EcBoolean getDataMap
624  (
625  const EcString& key,
626  EcU32& value
627  ) const;
628 
630  void setDataMap
631  (
632  const EcString& key,
633  const EcXmlU32Vector& value
634  );
635 
637  EcBoolean getDataMap
638  (
639  const EcString& key,
640  EcXmlU32Vector& value
641  ) const;
642 
644  void setDataMap
645  (
646  const EcString& key,
647  const EcString& value
648  );
649 
651  EcBoolean getDataMap
652  (
653  const EcString& key,
654  EcString& value
655  ) const;
656 
658  EcDataMap dataMap
659  (
660  ) const;
661 
663  EcBoolean getAttachmentMap
664  (
666  ) const;
667 
669  EcBoolean setAttachmentMap
670  (
671  const EcManipulatorAttachmentMap& attachmentMap
672  );
673 
675  EcBoolean setAttachmentChange
676  (
677  const EcManipulatorAttachmentChange& attachmentChange
678  );
679 
681  EcBoolean setCollisionExclusionMap
682  (
683  const EcSystemCollisionExclusionMap& value
684  );
685 
687  EcBoolean getCollisionExclusionMap
688  (
690  ) const;
691 
693  EcBoolean setStaticCollisionExclusionMap
694  (
695  const EcSystemCollisionExclusionMap& value
696  );
697 
699  EcBoolean getStaticCollisionExclusionMap
700  (
702  ) const;
703 
705  EcBoolean setSelfCollisionMap
706  (
707  EcU32 manipIndex,
709  );
710 
712  EcBoolean getSelfCollisionMap
713  (
714  EcU32 manipIndex,
716  ) const;
717 
719  inline EcSharedMutex& simulationMutex
720  (
721  ) const { return m_SimMutex; }
722 
724  void setCalculationTime
725  (
726  const EcReal time
727  );
728 
730  EcReal calculationTime
731  (
732  ) const;
733 
735  void setMeasuredUpdatePeriod
736  (
737  const EcReal time
738  );
739 
741  EcReal measuredUpdatePeriod
742  (
743  ) const;
744 
746  void disconnectSignals
747  (
748  );
749 
751  EcBoolean setBaseSpeedFactor
752  (
753  const EcU32 manIndex,
754  const EcReal value
755  );
756 
758  EcBoolean setSpeedFactor
759  (
760  const EcU32 manIndex,
761  const EcReal value
762  );
763 
765  EcBoolean setSpeedFactor
766  (
767  const EcU32 manipIndex,
768  const EcU32 eeSetIndex,
769  const EcU32 eeIndex,
770  const EcReal value
771  );
772 
774  EcBoolean setBaseAccelerationFactor
775  (
776  const EcU32 manIndex,
777  const EcReal value
778  );
779 
781  EcBoolean setAccelerationFactor
782  (
783  const EcU32 manIndex,
784  const EcReal value
785  );
786 
788  EcBoolean setAccelerationFactor
789  (
790  const EcU32 manipIndex,
791  const EcU32 eeSetIndex,
792  const EcU32 eeIndex,
793  const EcReal value
794  );
795 
797  EcBoolean setProfiledEndEffectors
798  (
799  const EcU32 manIndex,
800  const EcU32Vector& indices
801  );
802 
804  EcBoolean setToolOffsets
805  (
806  const EcU32 manIndex,
808  );
809 
811  EcBoolean setToolOffset
812  (
813  const EcU32 manIndex,
814  const EcU32 offsetIndex,
816  );
817 
819  EcBoolean setToolOffset
820  (
821  EcU32 manipIndex,
822  EcU32 eeSetIndex,
823  EcU32 eeIndex,
825  );
826 
828  EcBoolean setToolOffsetIndex
829  (
830  EcU32 manipIndex,
831  EcU32 eeSetIndex,
832  EcU32 eeIndex,
833  EcU32 toolOffsetIndex
834  );
835 
841  EcBoolean setToolOffsetFixEE
842  (
843  const EcU32 manIndex,
844  const EcU32 offsetIndex,
846  );
847 
850  void resetSimulation
851  (
852  EcBoolean resetDesiredPlacement = EcTrue
853  );
854 
857  EcBoolean setExternalBlendingFlag
858  (
859  const EcU32 manIndex,
860  EcBoolean flag
861  );
862 
865  EcBoolean getExternalBlendingFlag
866  (
867  const EcU32 manIndex,
868  EcBoolean& flag
869  );
870 
875  EcBoolean stopMotion
876  (
877  const EcU32 manIndex,
878  EcU32 stopMode,
879  EcU32 stopEeSetIndex
880  );
881 
883  EcBoolean setControlMode
884  (
885  const EcU32 manIndex,
886  const EcU32 value
887  );
888 
890  EcBoolean setControlMode
891  (
892  const EcU32 manIndex,
893  const EcU32 eeIndex,
894  const EcU32 value
895  );
896 
900  EcBoolean setControlMode
901  (
902  const EcU32 manIndex,
903  const EcU32 eeSetIndex,
904  const EcU32 eeIndex,
905  const EcU32 value
906  );
907 
909  EcBoolean getControlModes
910  (
911  const EcU32 manIndex,
912  EcU32Vector& value
913  ) const;
914 
916  EcBoolean getControlMode
917  (
918  const EcU32 manIndex,
919  const EcU32 eeIndex,
920  EcU32& value
921  ) const;
922 
924  EcBoolean getControlMode
925  (
926  const EcU32 manIndex,
927  const EcU32 eeSetIndex,
928  const EcU32 eeIndex,
929  EcU32& value
930  ) const;
931 
933  void initializeVirtualIOBuffer
934  (
935  );
936 
938  VirtualIOBuffer* virtualIOBufferPtr
939  (
940  );
941 
943  EcBoolean setUseSoftEndEffectorSet
944  (
945  const EcU32 manIndex,
946  const EcBoolean value
947  );
948 
949 
951  void setHomePosition
952  (
953  const EcBoolean &setDesiredPlacement
954  );
955 
957  void getHomePosition
958  (
959  EcSystemSimulation &systemSimulation
960  );
961 
963  EcU32 activeManipulator
964  (
965  ) const;
966 
968  EcBoolean setActiveManipulator
969  (
970  EcU32 value
971  );
972 
974  EcBoolean setCollisionStop
975  (
976  const EcU32 manIndex,
977  EcBoolean value
978  );
979 
980  EcBoolean setCollisionResult
981  (
982  const EcU32 manipIndex,
983  const EcPropagationResultData& value
984  );
985 
986  EcBoolean setDigitalInputVector
987  (
988  const EcU32Vector& digitalInputVector
989  );
990 
991  EcU32Vector digitalInputVector
992  (
993  )const;
994 
995  EcBoolean getDigitalInput
996  (
997  const EcU32 index,
998  EcU32& value
999  ) const;
1000 
1001  EcBoolean setDigitalInput
1002  (
1003  const EcU32 index,
1004  const EcU32& digitalInput
1005  );
1006 
1007  EcBoolean setDigitalOutputVector
1008  (
1009  const EcU32Vector& digitalOutputVector
1010  );
1011 
1012  EcU32Vector digitalOutputVector
1013  (
1014  )const;
1015 
1016  EcBoolean getDigitalOutput
1017  (
1018  const EcU32 index,
1019  EcU32& value
1020  ) const;
1021 
1022  EcBoolean setDigitalOutput
1023  (
1024  const EcU32 boardId,
1025  const EcU32 value
1026  );
1027 
1028  EcBoolean setDigitalOutput
1029  (
1030  const EcU32 boardId,
1031  const EcU32 channelId,
1032  const EcBoolean value
1033  );
1034 
1036  EcBoolean replaceShape
1037  (
1038  EcU32 manipIndex,
1039  EcU32 linkIndex,
1040  const EcShape& shape
1041  );
1042 
1044  void resetDesiredPlacementVector
1045  (
1046  const EcManipulatorEndEffectorPlacementVector& actualPlacementVector,
1047  const EcEndEffectorSetVector& endEffectorSetVector,
1048  EcManipulatorEndEffectorPlacementVector& desiredPlacementVector
1049  );
1050 
1052  EcBoolean setPartCoordinateSystem
1053  (
1054  const EcU32 manipulatorIndex,
1055  const EcU32 pcsIndex,
1057  );
1058 
1060  EcBoolean setPartCoordinateSystem
1061  (
1062  const EcU32 manipulatorIndex,
1063  const EcU32 eeSetIndex,
1064  const EcU32 eeIndex,
1066  );
1067 
1069  EcBoolean getPartCoordinateSystem
1070  (
1071  const EcU32 manipulatorIndex,
1072  const EcU32 pcsIndex,
1074  ) const;
1075 
1077  void updateHomeState
1078  (
1079  EcBoolean bExchangeManip=EcFalse,
1080  EcU32 manipIndex=0
1081  );
1082 
1083 private:
1084 
1086  void updateFromInputNoLock
1087  (
1088  );
1089 
1091  void updateFromSystemSimulation
1092  (
1093  );
1094 
1096  void updateStateFromAttachment
1097  (
1098  const EcManipulatorAttachmentMap& attachmentMap
1099  );
1100 
1101  // NOTE: If multiple locks are required, they should always be acquired in the same order
1102  // i.e. Acquire locks in the order presented here: inputLock, simLock, outputLock, slaveLock
1103 
1104  // Input variables protected by the input data mutex
1105  mutable EcMutex m_InputDataMutex;
1106  EcU32 m_StateBits;
1107  EcU32Vector m_EndEffectorSets;
1108  EcU32Vector m_ForceControlDescriptor;
1109  EcManipulatorEndEffectorPlacementVector m_DesiredPlacementVector;
1110  EcManipulatorEndEffectorVelocityVector m_DesiredVelocityVector;
1111  EcManipulatorSensorForceVector m_DesiredForceVector;
1112  EcManipulatorSensorForceVector m_MeasuredForceVector;
1113  EcEndEffectorSetVector m_EndEffectorSetVector;
1114  EcBoolean m_IsForceControlOn;
1115  EcBoolean m_IsExternalControl;
1116  boost::atomic<SimulationRunState> m_SimulationState;
1117  EcReal m_SimulationUpdateRate;
1118  EcReal m_SimulationTimeStep;
1119  EcBooleanVector m_NotSetStateFlags;
1120  std::set<EcInt32> m_BaseOnlyStateFlags;
1121  EcDataMap m_DataMap;
1122  EcU32VectorVector m_ControlModes;
1123  EcBooleanVector m_EEControlModeFlags;
1124  EcU32Vector m_DigitalInputs;
1125  EcU32Vector m_DigitalOutputs;
1126  EcBooleanVector m_EeSetIndexFlags;
1127  EcBooleanVector m_DesiredPlacementFlags;
1128  EcBooleanVector m_DesiredJointPlacementFlags;
1129  EcBooleanVector m_DesiredVelocityFlags;
1130  EcBooleanVector m_StopMotionFlags;
1131  EcBooleanVector m_StopMotionResets;
1132  boost::atomic<EcU32> m_NumStopped;
1133  EcBooleanVector m_ExternalBlendingFlags;
1134 
1135  // Simulation variables protected by the simulation mutex
1136  mutable EcSharedMutex m_SimMutex;
1137  EcSystemSimulation m_SystemSimulation;
1138 
1139  // Output variables protected by the output data mutex
1140  mutable EcSharedMutex m_OutputDataMutex;
1141  BitFlags m_ChangedBits;
1142  BitFlags m_PreviousStateBits;
1143  EcManipulatorEndEffectorPlacementVector m_ActualEndEffector;
1144  mutable EcSystemActiveState m_ActiveState;
1145  EcReal m_CalculationTime;
1146  EcReal m_MeasuredUpdatePeriod;
1147 
1148  // Input and output variables protected by the input and output data mutex
1149  EcManipulatorSystemState m_State;
1150 
1151  // the state used in double buffer to prevent locking
1152  EcManipulatorSystemState m_OutputState;
1153 
1154  // Slave stated system variables protected by the slave system mutex
1155  mutable EcMutex m_SlaveStatedSystemMutex;
1156  std::vector< StatedSystemPtr > m_SlaveStatedSystemPtrs;
1157  static CScopedSysSim s_CScopedSysSim;
1158 
1159  EcBooleanVector m_vControlStopStates;
1160  EcPropagationResultDataVector m_vPrevPropagationResults;
1161 
1162  EcManipulatorSystemConfiguration m_InitConfiguration;
1163 
1164  EcManipulatorAttachmentMap m_AttachmentMap;
1165 
1166  boost::scoped_ptr<VirtualIOBuffer> m_VirtualIOBufferPtr;
1167 
1168  //Adding variables to store initial Manipulator State and the new Home State if changed during the session
1169  EcManipulatorSystemState m_HomeState;
1170  EcManipulatorSystemConfiguration m_HomeStateConfiguration;
1171  EcBoolean m_HomeStateInitialized;
1172  EcStringVector m_HomeStateManipLabels;
1173 
1174  EcManipulatorEndEffectorPlacementVector m_TempPlacementVector;
1175  EcManipulatorEndEffectorVelocityVector m_TempVelocityVector;
1176 
1177  // List of signals that this class currently emits
1178  EcSIGNAL_PTR(SignalAttachmentChangeTraits) m_AttachmentChangeSignalPtr;
1179  EcSIGNAL_PTR(SignalAttachmentMapChangeTraits) m_AttachmentMapChangeSignalPtr;
1180  EcSIGNAL_PTR(SignalCollisionMapChangeTraits) m_CollisionMapChangeSignalPtr;
1181  EcSIGNAL_PTR(SignalControlDescriptionChangeTraits) m_ControlDescriptionChangeSignalPtr;
1182  EcSIGNAL_PTR(SignalControlMethodChangeTraits) m_ControlMethodChangeSignalPtr;
1183  EcSIGNAL_PTR(SignalControlModeChangeTraits) m_ControlModeChangeSignalPtr;
1184  EcSIGNAL_PTR(SignalControlStopStateChangeTraits) m_ControlStopStateChangeSignalPtr;
1185  EcSIGNAL_PTR(SignalControlSystemChangeTraits) m_ControlSystemChangeSignalPtr;
1186  EcSIGNAL_PTR(SignalCoordinatedMoveTraits) m_CoordinatedMoveSignalPtr;
1187  EcSIGNAL_PTR(SignalEndEffectorSetTraits) m_EndEffectorSetSignalPtr;
1188  EcSIGNAL_PTR(SignalManipulatorAddTraits) m_ManipulatorAddSignalPtr;
1189  EcSIGNAL_PTR(SignalManipulatorDeleteTraits) m_ManipulatorDeleteSignalPtr;
1190  EcSIGNAL_PTR(SignalManipulatorExchangeBeginTraits) m_ManipulatorExchangeBeginSignalPtr;
1191  EcSIGNAL_PTR(SignalManipulatorExchangeEndTraits) m_ManipulatorExchangeEndSignalPtr;
1192  EcSIGNAL_PTR(SignalSimulationCloseBeginTraits) m_SimulationCloseBeginSignalPtr;
1193  EcSIGNAL_PTR(SignalSimulationCloseEndTraits) m_SimulationCloseEndSignalPtr;
1194  EcSIGNAL_PTR(SignalManipulatorMergeBeginTraits) m_ManipulatorMergeBeginSignalPtr;
1195  EcSIGNAL_PTR(SignalManipulatorMergeEndTraits) m_ManipulatorMergeEndSignalPtr;
1196  EcSIGNAL_PTR(SignalManipulatorUpdateTraits) m_ManipulatorUpdateSignalPtr;
1197  EcSIGNAL_PTR(SignalSimulationThreadUpdateRateChangeTraits) m_SimulationThreadUpdateRateChangeSignalPtr;
1198  EcSIGNAL_PTR(SignalSimulationChangeTraits) m_SimulationChangeSignalPtr;
1199  EcSIGNAL_PTR(SignalSimulationEnableTraits) m_SimulationEnableSignalPtr;
1200  EcSIGNAL_PTR(SignalSimulationPauseTraits) m_SimulationPauseSignalPtr;
1201  EcSIGNAL_PTR(SignalSimulationStartTraits) m_SimulationStartSignalPtr;
1202  EcSIGNAL_PTR(SignalSimulationStateTraits) m_SimulationStateSignalPtr;
1203  EcSIGNAL_PTR(SignalSimulationStopTraits) m_SimulationStopSignalPtr;
1204  EcSIGNAL_PTR(SignalSimulationResetTraits) m_SimulationResetSignalPtr;
1205  EcSIGNAL_PTR(SignalSimulationTimeStepTraits) m_SimulationTimeStepSignalPtr;
1206  EcSIGNAL_PTR(SignalToolOffsetChangedTraits) m_ToolOffsetChangedSignalPtr;
1207  EcSIGNAL_PTR(SignalToolOffsetIndexChangedTraits) m_ToolOffsetIndexChangedSignalPtr;
1208  EcSIGNAL_PTR(SignalVirtualSystemInit) m_VirtualSystemInitSignalPtr;
1209  EcSIGNAL_PTR(SignalStopMotionTraits) m_StopMotionSignalPtr;
1210 };
1211 
1212 } // namespace Ec
1213 
1214 #endif // ec_IOBuffer_H_
A rotation and a translation to describe a new frame.
SimulationRunState
Enumeration on state of the current simulation.
Definition: ecIOParams.h:288
Signal when a stop motion command has changed.
boost::uint32_t EcU32
32-bit unsigned integer
Definition: ecTypes.h:53
Signal indicating that the simulation is reset.
Holds a description of the position state of a manipulator. This includes the joint velocities and th...
Signal for merge manipulator begin.
Signal when the virtual system is initialized.
std::vector< EcBoolean > EcBooleanVector
a general boolean vector
Definition: ecTypes.h:201
Enumeration of types available via plugin API.
boost::shared_mutex EcSharedMutex
define EcSharedMutex to be the Boost scoped lock
Definition: ecMutex.h:29
const EcBoolean EcTrue
gives a representation of true
Definition: ecConstants.h:23
Signal indicating that the simulation is running.
Holds a container for a position control system.
boost::mutex EcMutex
define EcMutex as the Boost mutex
Definition: ecMutex.h:23
Signal indicating that the simulation is paused.
Signal for collision exclusion map.
#define EcSIGNAL_PTR(Traits)
shared pointer to a signal for a specified signal Traits type
boost::shared_ptr< EcSystemSimulation > ScopedSysSim
std::vector< EcString > EcStringVector
string organization using vectors
Definition: ecTypes.h:138
boost::shared_ptr< const EcSystemSimulation > CScopedSysSim
Const version of scoped handle. These are currently setup to not lock.
Signal for control system change.
Signal for exchange manipulator begin.
This class is a container for domain-specific active states.
Holds a description of the forces of all end effectors on a manipulator.
Signal for Simulation close begin.
Signal indicating that a simulation timestep has been completed.
Holds a class to describe the results of a manipulator propagation.
Holds a description of the velocities of all end effectors on a manipulator.
std::vector< EcU32Vector > EcU32VectorVector
a 2D vector of EcU32
Definition: ecTypes.h:174
EcU32 BitFlags
Size of bit flags.
Definition: ecIOParams.h:317
Holds the data that is slowly or intermittently changing, i.e the data is neither permanent (like in ...
This class is a container for all active states in a system. These are used for dynamic programming i...
Holds a description of the placement of all end effectors on a manipulator.
Holds a map describing attachment among manipulators.
Signal for control stop state.
Energid common namespace.
Holds a description of the position state of a manipulator.
Virtual base class for all shapes.
Definition: ecShape.h:43
bool EcBoolean
Boolean (0 or 1)
Definition: ecTypes.h:21
Signal indicating that the simulation is stopped.
An individual manipulator is described through this class. It includes a string label, a physical extent of the base, a list of top-most links, and a dynamic reference frame.
Holds a description of all end effectors on a manipulator.
Buffers data between plugins and simulation.
Holds a description of the state of an entire manipulator system.
Signal for merge manipulator end.
const EcBoolean EcFalse
gives a representation of false
Definition: ecConstants.h:26
boost::int32_t EcInt32
32-bit signed integer
Definition: ecTypes.h:56
std::vector< EcReal > EcRealVector
a general floating-point vector
Definition: ecTypes.h:168
Holds a description of a force control system, which use a position control system.
Signal for Simulation close end.
EcF64 EcReal
Alias for 64-bit float.
Definition: ecTypes.h:30
Holds a map describing which collision pairs should be excluded.
std::basic_string< char > EcString
a character string
Definition: ecTypes.h:116
Holds a description of a position control system.
Provides traits classes for signals used by Ec::IODataBroker.
#define EC_ACTIN_TEMPLATEINSTPLUGINS_DEFAULT_DECL
templateInstPlugins_default directory
Definition: actin_config.h:292
A description of an end-effector placement.
boost::shared_ptr< EcStatedSystem > StatedSystemPtr
Provide a convenient way for plugins to get a copy of the stated system.
Signal for attachment map.
Holds data organized by string maps.
Definition: ecDataMap.h:29
Configuration header for the actin hierarchy.
std::vector< EcU32 > EcU32Vector
a general 32-bit unsigned integer vector
Definition: ecTypes.h:171
Holds a simulation environment for a stated system and its position control system.
Buffers data between plugins and virtual system.
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.