Actin®  Version 5.3.0
Software for Robotics Simulation and Control
ecControlSystemExecutiveModifier.h
Go to the documentation of this file.
1 #ifndef ecControlSystemExecutiveModifier_H_
2 #define ecControlSystemExecutiveModifier_H_
3 //------------------------------------------------------------------------------
4 // Copyright (c) 2016-2018 Energid Technologies. All rights reserved.
5 //
9 //
10 //------------------------------------------------------------------------------
11 #include <actinCore/actinCore_config.h> // Required to be first header.
13 
14 // forward declaration
16 
18 class EC_ACTINCORE_MOTIONPLANNING_DECL EcControlSystemExecutiveModifier : public EcBaseControlSystemModifier
19 {
20 public:
24  (
26  const EcNonNegReal timeStep
27  );
28 
31  (
33  );
34 
36  virtual void setIsPositionControlSystemOn
37  (
38  const EcBoolean isOn
39  ) EC_OVERRIDE;
40 
43  (
44  const EcU32 manipIndex,
45  const EcBoolean isOn
46  ) EC_OVERRIDE;
47 
49  virtual EcReal timeStep
50  (
51  ) const EC_OVERRIDE;
52 
54  virtual void setTimeStep
55  (
56  const EcReal value
57  ) EC_OVERRIDE;
58 
61  (
62  ) const EC_OVERRIDE;
63 
66  (
67  const EcString& label,
68  EcU32& manipIndex
69  ) const EC_OVERRIDE;
70 
72  virtual EcBoolean getLinkIndex
73  (
74  const EcU32 manipIndex,
75  const EcString& linkLabel,
76  EcU32& linkIndex
77  ) const EC_OVERRIDE;
78 
81  (
82  const EcU32 manipIndex,
83  EcU32& numJoints
84  ) const EC_OVERRIDE;
85 
88  (
89  const EcU32 manipIndex,
90  const EcU32 linkIndex,
91  EcJointActuator& jointActuator
92  ) const EC_OVERRIDE;
93 
96  (
97  const EcU32 manipIndex,
98  const EcU32 linkIndex,
99  const EcJointActuator& jointActuator
100  ) EC_OVERRIDE;
101 
104  (
105  const EcU32 manipIndex,
106  const EcReal baseSpeedFactor
107  ) EC_OVERRIDE;
108 
111  (
112  const EcU32 manipIndex,
113  EcReal& baseSpeedFactor
114  ) const EC_OVERRIDE;
115 
118  (
119  const EcU32 manipIndex,
120  const EcReal baseAccelerationFactor
121  ) EC_OVERRIDE;
122 
125  (
126  const EcU32 manipIndex,
127  EcReal& baseAccelerationFactor
128  ) const EC_OVERRIDE;
129 
131  virtual EcBoolean setControlMode
132  (
133  const EcU32 manipIndex,
134  const EcU32 eeSetIndex,
135  const EcU32 eeIndex,
136  const EcU32 mode
137  ) EC_OVERRIDE;
138 
141  (
142  const EcU32 manipIndex
143  ) const EC_OVERRIDE;
144 
147  (
148  const EcU32 manipIndex,
149  const EcU32 eeSetIndex
150  ) EC_OVERRIDE;
151 
154  (
155  const EcU32 manipIndex,
156  const EcU32 controlDescriptionIndex
157  ) EC_OVERRIDE;
158 
161  (
162  const EcU32 manipIndex,
163  const EcU32 controlMethodIndex
164  ) EC_OVERRIDE;
165 
168  (
169  const EcU32 manipIndex,
170  const EcRealVector& maxVel,
171  const EcRealVector& maxAcc,
172  const EcRealVector& maxDec,
173  const EcRealVector& maxJerk,
174  const EcU32 eeSetIndex
175  ) EC_OVERRIDE;
176 
179  (
180  const EcU32 manipIndex,
181  const EcU32 eeSetIndex,
182  const EcU32 eeIndex,
183  const EcReal maxVel,
184  const EcReal maxAcc,
185  const EcReal maxDec,
186  const EcReal maxJerk
187  ) EC_OVERRIDE;
188 
191  (
192  const EcU32 manipIndex,
193  const EcBoolean stopsAtLimits
194  ) EC_OVERRIDE;
195 
198  (
199  const EcU32 manipIndex,
200  const EcU32 eeSetIndex,
201  const EcU32 eeIndex,
202  const EcReal maxVel,
203  const EcReal maxAcc,
204  const EcReal maxDec,
205  const EcReal maxJerk
206  ) EC_OVERRIDE;
207 
210  (
211  const EcU32 manipIndex,
212  const EcU32 eeSetIndex,
213  const EcU32 eeIndex,
214  const EcU32 value
215  ) EC_OVERRIDE;
216 
219  (
220  const EcU32 manipIndex,
221  const EcU32 eeSetIndex,
222  const EcU32 eeIndex,
223  const EcBoolean value
224  ) EC_OVERRIDE;
225 
228  (
229  const EcU32 manipIndex,
230  EcRealVector& jointRates,
231  EcBoolean& useControlParam
232  ) const EC_OVERRIDE;
233 
236  (
237  const EcU32 manipIndex,
238  const EcRealVector& jointRates,
239  const EcBoolean useControlParam
240  ) EC_OVERRIDE;
241 
243  virtual EcBoolean setSpeedFactor
244  (
245  const EcU32 manipIndex,
246  const EcU32 eeSetIndex,
247  const EcU32 eeIndex,
248  const EcReal value
249  ) EC_OVERRIDE;
250 
253  (
254  const EcU32 manipIndex,
255  const EcU32 eeSetIndex,
256  const EcU32 eeIndex,
257  const EcReal value
258  ) EC_OVERRIDE;
259 
262  (
263  ) const EC_OVERRIDE;
264 
266  virtual void setDesiredPlacementVector
267  (
269  ) EC_OVERRIDE;
270 
273  (
274  const EcU32 manipIndex,
275  const EcU32 eeSetIndex,
276  const EcManipulatorEndEffectorPlacement& desiredPlacement
277  ) EC_OVERRIDE;
278 
281  (
282  const EcU32 manipIndex,
283  const EcU32 eeSetIndex,
284  const EcU32 eeIndex,
285  const EcEndEffectorPlacement& desiredPlacement
286  ) EC_OVERRIDE;
287 
290  (
291  const EcU32 manipIndex,
292  const EcU32 eeSetIndex,
294  ) EC_OVERRIDE;
295 
298  (
299  const EcU32 manipIndex,
300  const EcU32 eeSetIndex,
301  const EcU32 eeIndex,
302  const EcXmlRealVector& velocity
303  ) EC_OVERRIDE;
304 
307  (
308  ) const EC_OVERRIDE;
309 
312  (
313  const EcU32 manipIndex,
314  const EcU32 eeSetIndex,
315  const EcU32 eeIndex,
316  const EcPositionState* pPositionState,
317  EcEndEffectorPlacement& placement
318  ) const EC_OVERRIDE;
319 
322  (
323  const EcU32 manipIndex,
324  const EcU32 eeSetIndex,
325  const EcPositionState* pPositionState,
327  ) const;
328 
330  virtual const EcEndEffectorSet* endEffectorSet
331  (
332  const EcU32 manipIndex,
333  const EcU32 eeSetIndex
334  ) const EC_OVERRIDE;
335 
337  virtual void setGravityVector
338  (
339  const EcVector& gravity
340  ) EC_OVERRIDE;
341 
344  (
345  ) const EC_OVERRIDE;
346 
348  virtual void setCurrentState
349  (
350  const EcManipulatorSystemState& state
351  ) EC_OVERRIDE;
352 
354  virtual EcBoolean setSensedState
355  (
356  const EcU32 manipIndex,
358  const EcRealVector* pJoints,
359  const EcReal timestep = 0.0
360  ) EC_OVERRIDE;
361 
364  (
365  const EcU32 manipIndex,
366  const EcU32 eeSetIndex,
367  const EcU32 eeIndex,
368  const EcPositionState* pPositionState,
369  const EcVelocityState* pVelocityState,
370  EcXmlRealVector& velocity
371  ) const EC_OVERRIDE;
372 
375  (
376  const EcU32 manipIndex,
377  const EcU32 eeSetIndex,
378  const EcU32 eeIndex,
379  const EcPositionState* pPositionState,
380  const EcVelocityState* pVelocityState,
381  EcXmlRealVector& velocity
382  ) const EC_OVERRIDE;
383 
386  (
387  const EcU32 manipIndex,
388  const EcU32 eeSetIndex,
389  const EcU32 eeIndex,
390  const EcPositionState* pPositionState,
391  const EcVelocityState* pVelocityState,
392  const EcAccelerationState* pAccelerationState,
393  EcXmlRealVector& acceleration
394  ) const EC_OVERRIDE;
395 
398  (
399  const EcU32 manipIndex,
400  const EcU32 eeSetIndex,
401  const EcPositionState* pPositionState,
402  const EcVelocityState* pVelocityState,
404  ) const;
405 
408  (
409  ) const EC_OVERRIDE;
410 
412  virtual EcBoolean setToolOffset
413  (
414  const EcU32 manipIndex,
415  const EcU32 toolIndex,
417  ) EC_OVERRIDE;
418 
420  virtual EcBoolean setToolOffset
421  (
422  const EcU32 manipIndex,
423  const EcU32 eeSetIndex,
424  const EcU32 eeIndex,
426  ) EC_OVERRIDE;
427 
429  virtual EcBoolean getToolOffset
430  (
431  const EcU32 manipIndex,
432  const EcU32 eeSetIndex,
433  const EcU32 eeIndex,
435  ) const EC_OVERRIDE;
436 
439  (
440  const EcU32 manipIndex,
441  const EcU32 pcsIndex,
443  ) EC_OVERRIDE;
444 
447  (
448  const EcU32 manipIndex,
449  const EcU32 eeSetIndex,
450  const EcU32 eeIndex,
452  ) EC_OVERRIDE;
453 
456  (
457  const EcU32 manipIndex,
458  const EcU32 eeSetIndex,
459  const EcU32 eeIndex,
461  ) const EC_OVERRIDE;
462 
465  (
466  const EcU32 manipIndex,
467  const EcU32 linkIndex,
468  const EcPositionState* pPositionState,
469  EcCoordinateSystemTransformation& primaryFrameInSys
470  ) const EC_OVERRIDE;
471 
474  (
475  const EcU32 manipIndex,
476  const EcU32 linkIndex,
477  const EcPositionState* pPositionState,
478  const EcVelocityState* pVelocityState,
479  const EcAccelerationState* pAccelerationState,
480  EcGeneralAcceleration& pfAccelerationInSystem
481  ) const EC_OVERRIDE;
482 
484  virtual EcBoolean getNamedFrame
485  (
486  const EcString& key,
488  ) const EC_OVERRIDE;
489 
491  virtual EcBoolean getNamedFrame
492  (
493  const EcU32 manipIndex,
494  const EcU32 linkIndex,
495  const EcString& key,
497  ) const EC_OVERRIDE;
498 
500  virtual EcBoolean setNamedFrame
501  (
502  const EcString& key,
504  ) EC_OVERRIDE;
505 
507  virtual EcBoolean setNamedFrame
508  (
509  const EcU32 manipIndex,
510  const EcU32 linkIndex,
511  const EcString& key,
513  ) EC_OVERRIDE;
514 
517  (
518  const EcU32 manipIndex,
519  EcReal& value
520  ) const EC_OVERRIDE;
521 
524  (
525  const EcU32 manipIndex,
526  const EcReal& value
527  ) EC_OVERRIDE;
528 
531  (
532  const EcU32 depManipIndex,
533  const EcU32 baseManipIndex,
534  const EcU32 baseLinkIndex,
536  ) EC_OVERRIDE;
537 
540  (
541  const EcU32 depManipIndex
542  ) EC_OVERRIDE;
543 
546  (
547  const EcU32 manipIndex,
548  const EcU32* pLinkIndex,
549  const EcU32 otherManipIndex,
550  const EcU32Vector* pOtherLinkIndices,
551  const EcBoolean isExcluding
552  ) EC_OVERRIDE;
553 
556  (
557  const EcU32 manipIndex,
558  const EcU32 linkIndex,
559  const EcShape& shape,
560  const EcU32 bvhLevel,
561  const EcBoolean alwaysReplace = EcFalse
562  ) EC_OVERRIDE;
563 
565  virtual void resetForShapeChange
566  (
567  ) EC_OVERRIDE;
568 
571  (
572  const EcU32 manipulatorIndex,
573  const EcPositionState* positionState,
574  const EcVelocityState* velocityState,
575  const EcAccelerationState* accelerationState,
576  const EcManipulatorExternalForce* pExternalForces,
577  EcRealVector& torques
578  ) const EC_OVERRIDE;
579 
582  (
583  const EcU32 manipulatorIndex,
584  const EcRealVectorVector& powerConverterInputs,
585  EcRealVector& outputs
586  ) const EC_OVERRIDE;
587 
589  virtual EcBoolean getDeterminant
590  (
591  const EcU32 manipIndex,
592  EcReal& value
593  ) const EC_OVERRIDE;
594 
597  (
598  const EcU32 manipIndex,
599  const EcU32 linkIndex,
600  const EcString* pNamedFrameName,
601  const EcVector& point,
602  const EcPositionState* pPositionState,
603  EcManipulatorJacobian& jacobian
604  ) const EC_OVERRIDE;
605 
608  (
609  const EcU32 manipIndex,
610  EcReal& scalingFactor
611  ) const EC_OVERRIDE;
612 
614  virtual void setDigitalInputVector
615  (
616  const EcU32Vector& value
617  ) EC_OVERRIDE;
618 
620  virtual void setDigitalInput
621  (
622  const EcU32 index,
623  const EcU32& value
624  ) EC_OVERRIDE;
625 
627  virtual EcBoolean getDigitalInput
628  (
629  const EcU32 index,
630  EcU32& value
631  ) const EC_OVERRIDE;
632 
634  virtual void setDigitalOutputVector
635  (
636  const EcU32Vector& value
637  ) EC_OVERRIDE;
638 
640  virtual void setDigitalOutput
641  (
642  const EcU32 boardId,
643  const EcU32 value
644  ) EC_OVERRIDE;
645 
648  (
649  const EcU32 boardId,
650  const EcU32 channelId,
651  const EcBoolean value
652  ) EC_OVERRIDE;
653 
656  (
657  const EcU32 index,
658  EcU32& value
659  ) const EC_OVERRIDE;
660 
662  virtual const EcDataMap& dataMap
663  (
664  ) const EC_OVERRIDE;
665 
667  virtual void setDataMap
668  (
669  const EcString& key,
670  const EcU32 value
671  ) EC_OVERRIDE;
672 
674  virtual void setDataMap
675  (
676  const EcString& key,
677  const EcXmlU32Vector& value
678  ) EC_OVERRIDE;
679 
681  virtual void setDataMap
682  (
683  const EcString& key,
684  const EcReal value
685  ) EC_OVERRIDE;
686 
688  virtual void setDataMap
689  (
690  const EcString& key,
691  const EcXmlRealVector& value
692  ) EC_OVERRIDE;
693 
695  virtual void setDataMap
696  (
697  const EcString& key,
698  const EcString& value
699  ) EC_OVERRIDE;
700 
703  (
704  ) const EC_OVERRIDE;
705 
708  (
709  const EcU32 manipIndex
710  ) const EC_OVERRIDE;
711 
714  (
715  ) const EC_OVERRIDE;
716 
719  (
720  ) EC_OVERRIDE;
721 
722 public:
723  // EcControlSystemExecutiveModifier class specific methods
724 
726  const EcPositionControlSystem& positionControlSystem
727  (
728  ) const;
729 
731  EcPositionControlSystem& positionControlSystem
732  (
733  );
734 
736  const EcStatedSystem& statedSystem
737  (
738  ) const;
739 
741  EcBoolean calculateState
742  (
743  const EcReal time,
745  );
746 
748  EcBoolean calculateStateTimeSteps
749  (
751  const EcU32 numTimeSteps = 1,
752  const EcReal extrapolationTime = 0.0
753  );
754 
756  void setTime
757  (
758  const EcReal time
759  );
760 
768  EcBoolean setPositionState
769  (
770  const EcU32 manipIndex,
771  const EcCoordinateSystemTransformation* pBasePose,
772  const EcRealVector* pJointPositions
773  );
774 
780  EcBoolean setVelocityState
781  (
782  const EcU32 manipIndex,
783  const EcGeneralVelocity* pBaseVelocity,
784  const EcRealVector* pJointVelocities
785  );
786 
795  EcBoolean attachManipulators
796  (
797  const EcU32 baseManipIndex,
798  const EcString& baseLink,
799  const EcU32 depManipIndex,
801  );
802 
808  EcBoolean detachManipulators
809  (
810  const EcU32 depManipIndex
811  );
812 
819  (
820  const EcU32 manipIndex,
821  EcReal& weight
822  ) const;
823 
827  (
828  const EcU32 manipIndex,
829  const EcReal weight
830  );
831 
832 protected:
835  (
836  EcSystemControlExecutive& systemControlExecutive,
838  ) const EC_OVERRIDE;
839 
840 protected:
845 };
846 
848 typedef boost::shared_ptr<EcControlSystemExecutiveModifier> EcControlSystemExecutiveModifierSharedPtr;
849 
850 #endif // ecControlSystemExecutiveModifier_H_
virtual EcBoolean calculateTotalTorques(const EcU32 manipulatorIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, const EcManipulatorExternalForce *pExternalForces, EcRealVector &torques) const =0
calculate and return joint torques based on the selected calculation type.
virtual EcBoolean setAngularMotionLimits(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk)=0
Set move pose angular motion limits.
virtual EcBoolean getSystemControlExecutiveImpl(EcSystemControlExecutive &systemControlExecutive, EcFoundCommon::DeepCopyFlag copyFlag) const =0
get the system control executive
Holds a class to describe real arrays. Includes operations such as addition, subtraction, and multiplication.
Definition: ecReArray.h:15
A rotation and a translation to describe a new frame.
virtual EcU32 activeEndEffectorSetIndex(const EcU32 manipIndex) const =0
Get active end-effector set index.
virtual EcBoolean setIsPositionControllerOn(const EcU32 manipIndex, const EcBoolean isOn)=0
sets a flag indicating whether or not the position controller is on
virtual void setDigitalOutput(const EcU32 boardId, const EcU32 value)=0
set digital output given board id
virtual EcBoolean setSoftConstraintWeight(EcPositionControlSystem &posContSystem, const EcU32 manipIndex, const EcReal weight)
Set soft constraint weight.
virtual EcBoolean getBaseSpeedFactor(const EcU32 manipIndex, EcReal &baseSpeedFactor) const =0
Gets the base speed factor.
virtual EcBoolean getToolOffset(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, EcCoordinateSystemTransformation &value) const =0
Get the tool offset (in EE frame).
virtual const EcManipulatorSystemState & manipulatorSystemState() const =0
gets the state
virtual EcBoolean excludeCollisionCheck(const EcU32 manipIndex, const EcU32 *pLinkIndex, const EcU32 otherManipIndex, const EcU32Vector *pOtherLinkIndices, const EcBoolean isExcluding)=0
Exclude/include collision check in the dynamic collision exclusion map.
#define EC_OVERRIDE
Add wrapper around c++11 override keyword.
Definition: ecMacros.h:36
virtual EcBoolean setActiveControlDescriptionIndex(const EcU32 manipIndex, const EcU32 controlDescriptionIndex)=0
sets the active control description of a manipulator by index
virtual EcBoolean getJointRateFilterScalingFactor(const EcU32 manipIndex, EcReal &scalingFactor) const =0
get the joint rate filter scaling factor
Holds a description of the external forces and moments applied to a manipulator.
boost::uint32_t EcU32
32-bit unsigned integer
Definition: ecTypes.h:53
virtual void setCurrentState(const EcManipulatorSystemState &state)=0
sets the current state of the system without re-initializing
virtual EcBoolean setFeedbackAssimilationRate(const EcU32 manipIndex, const EcReal &value)=0
set default feedback assimilation rate for a given manipulator
virtual void setGravityVector(const EcVector &gravity)=0
Set the gravity vector (m/s^2) in system coordinates.
Holds a description of the position state of a manipulator. This includes the joint velocities and th...
EcU32Vector m_DigitalInputs
Digital Inputs vector.
virtual EcBoolean setLinearMotionLimits(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal maxVel, const EcReal maxAcc, const EcReal maxDec, const EcReal maxJerk)=0
Set move pose linear motion limits.
Holds a description of the manipulator system and its state.
virtual const EcManipulatorEndEffectorPlacementVector & desiredPlacementVector() const =0
Get desired placement (in relative) for the active end-effector set for all manipulators.
DeepCopyFlag
flag indicating the level of deep copying when copying the manipulator system
virtual EcBoolean getManipulatorJointDof(const EcU32 manipIndex, EcU32 &numJoints) const =0
Get the number of joints a manipulator has.
virtual EcBoolean calculatePrimaryFrameAccelerationInSystem(const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcGeneralAcceleration &pfAccelerationInSystem) const =0
Calculate the primary frame in system.
EcSystemControlExecutive & m_ControlExecutive
the system control executive
virtual EcBoolean calculateActualEeAcceleration(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, const EcAccelerationState *pAccelerationState, EcXmlRealVector &accleration) const =0
Calculate actual end-effector acceleration for any end-effector set.
boost::shared_ptr< EcControlSystemExecutiveModifier > EcControlSystemExecutiveModifierSharedPtr
typedef of EcControlSystemExecutiveModifierSharedPtr
virtual EcBoolean calculateActualEeVelocity(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const =0
Calculate actual end-effector velocity in system.
virtual EcBoolean calculateActualEeVelocityInRelative(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, const EcVelocityState *pVelocityState, EcXmlRealVector &velocity) const =0
Calculate actual end-effector velocity in relative.
virtual EcBoolean setStopsAtLimits(const EcU32 manipIndex, const EcBoolean stopsAtLimits)=0
setStopsAtLimits
virtual EcBoolean setToolOffset(const EcU32 manipIndex, const EcU32 toolIndex, const EcCoordinateSystemTransformation &value)=0
virtual EcBoolean replaceLinkShape(const EcU32 manipIndex, const EcU32 linkIndex, const EcShape &shape, const EcU32 bvhLevel, const EcBoolean alwaysReplace=EcFalse)=0
virtual EcBoolean getFeedbackAssimilationRate(const EcU32 manipIndex, EcReal &value) const =0
get default feedback assimilation rate for a given manipulator
virtual EcBoolean getBaseAccelerationFactor(const EcU32 manipIndex, EcReal &baseAccelerationFactor) const =0
Gets the base acceleration factor.
virtual EcBoolean getManipulatorIndex(const EcString &label, EcU32 &manipIndex) const =0
Get the index of a manipulator given its label.
Holds a stated system and its position control system.
virtual EcBoolean calculateActualEePlacement(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcPositionState *pPositionState, EcEndEffectorPlacement &placementInRelative) const =0
Calculate actual end-effector placement (in relative) for any end-effector set.
virtual EcBoolean setActiveEndEffectorSetIndex(const EcU32 manipIndex, const EcU32 eeSetIndex)=0
set the active control method
virtual EcBoolean setActivePositionControlMethodIndex(const EcU32 manipIndex, const EcU32 controlMethodIndex)=0
set the active control method
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 setBaseSpeedFactor(const EcU32 manipIndex, const EcReal baseSpeedFactor)=0
virtual EcBoolean setJointMotionLimits(const EcU32 manipIndex, const EcRealVector &maxVel, const EcRealVector &maxAcc, const EcRealVector &maxDec, const EcRealVector &maxJerk, const EcU32 eeSetIndex)=0
Set joint motion limits.
Holds a description of the velocities of all end effectors on a manipulator.
virtual EcReal timeStep() const =0
gets the time step
Holds the data that is slowly or intermittently changing, i.e the data is neither permanent (like in ...
virtual EcBoolean setJointRateFilterRates(const EcU32 manipIndex, const EcRealVector &jointRates, const EcBoolean useControlParam)=0
Set the control parameters or joint rate filter rates of a given manipulator.
Holds a description of a position controller for one manipulator.
virtual EcBoolean calculateJacobian(const EcU32 manipIndex, const EcU32 linkIndex, const EcString *pNamedFrameName, const EcVector &point, const EcPositionState *pPositionState, EcManipulatorJacobian &jacobian) const =0
Calculate Jacobian given a point on the link.
virtual const EcManipulatorEndEffectorPlacementVector & actualPlacementVector() const =0
virtual const EcPositionController * positionController(const EcU32 manipIndex) const =0
Get pointer to the position controller given manipulator index.
Holds a description of the placement of all end effectors on a manipulator.
virtual EcBoolean getJointRateFilterRates(const EcU32 manipIndex, EcRealVector &jointRates, EcBoolean &useControlParam) const =0
Get the control parameters or joint rate filter rates of a given manipulator.
virtual void setDataMap(const EcString &key, const EcU32 value)=0
set U32 data map
virtual EcBoolean setBaseAccelerationFactor(const EcU32 manipIndex, const EcReal baseAccelerationFactor)=0
Configuration header for the foundation hierarchy.
virtual void setIsPositionControlSystemOn(const EcBoolean isOn)=0
sets a flag indicating whether or not the position control system is on
Holds a description of the position state of a manipulator.
virtual EcBoolean setSpeedFactor(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value)=0
virtual EcBoolean setIsHardConstraint(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcBoolean value)=0
Set is hard constraint flag.
Virtual base class for all shapes.
Definition: ecShape.h:43
virtual EcBoolean setNamedFrame(const EcString &key, const EcCoordinateSystemTransformation &value)=0
get named frame of manipulator system
bool EcBoolean
Boolean (0 or 1)
Definition: ecTypes.h:21
virtual void setDigitalInputVector(const EcU32Vector &value)=0
set digital input vector
Holds a description of all end effectors on a manipulator.
virtual EcBoolean setJointActuator(const EcU32 manipIndex, const EcU32 linkIndex, const EcJointActuator &jointActuator)=0
Set the joint actuator object for a specified manipulator-link.
Holds a description of the state of an entire manipulator system.
virtual EcBoolean getLinkIndex(const EcU32 manipIndex, const EcString &linkLabel, EcU32 &linkIndex) const =0
Get the index of a link given manipulator index and link label.
virtual void setDigitalInput(const EcU32 index, const EcU32 &value)=0
set digital input given board id
virtual EcBoolean setPartCoordinateSystem(const EcU32 manipIndex, const EcU32 pcsIndex, const EcCoordinateSystemTransformation &value)=0
Set the part coordinate system.
const EcBoolean EcFalse
gives a representation of false
Definition: ecConstants.h:26
A nonnegative floating-point number.
Definition: ecNonnegReal.h:18
Base control system modifier.
std::vector< EcReal > EcRealVector
a general floating-point vector
Definition: ecTypes.h:168
virtual EcBoolean getDigitalOutput(const EcU32 index, EcU32 &value) const =0
get digital output given board id
EcF64 EcReal
Alias for 64-bit float.
Definition: ecTypes.h:30
virtual void setTimeStep(const EcReal value)=0
sets the time step
virtual const EcDataMap & dataMap() const =0
get the data map
virtual EcBoolean setDesiredPlacement(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcManipulatorEndEffectorPlacement &desiredPlacement)=0
sets an individual desired end-effector placement
std::vector< EcRealVector > EcRealVectorVector
a general floating-point array
Definition: ecTypes.h:207
std::basic_string< char > EcString
a character string
Definition: ecTypes.h:116
virtual EcBoolean setAccelerationFactor(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcReal value)=0
virtual EcBoolean getPartCoordinateSystem(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, EcCoordinateSystemTransformation &pcs) const =0
Get the part coordinate system.
virtual EcU32 numberOfManipulators() const =0
return the number of manipulators
EcDataMap m_DataMap
for customer data exchange
Holds a description of a position control system.
virtual const EcManipulatorSystemConfiguration & getConfiguration() const =0
gets the configuration, which changes intermittently – const version
virtual EcBoolean getNamedFrame(const EcString &key, EcCoordinateSystemTransformation &value) const =0
get named frame from manipulator system
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 const EcEndEffectorSet * endEffectorSet(const EcU32 manipIndex, const EcU32 eeSetIndex) const =0
Get the end-effector set given manipulator index and end-effector set index.
virtual EcBoolean calculatePowerConverterOutputs(const EcU32 manipulatorIndex, const EcRealVectorVector &powerConverterInputs, EcRealVector &outputs) const =0
calculate and return joint power converter ouput (force or torque) based on the given inputs...
A description of an end-effector placement.
virtual const EcSystemControlExecutive & systemControlExecutive() const =0
get control system executive - const
virtual void setDigitalOutputVector(const EcU32Vector &value)=0
set digital output vector
virtual const EcPropagationResultDataVector & propagationResultDataVector() const =0
get the result of collision for display
virtual EcBoolean setFilteringMode(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 value)=0
Set filtering mode (velocity profile).
EcU32Vector m_DigitalOutputs
Digital Outputs vector.
virtual EcBoolean calculatePrimaryFrameInSystem(const EcU32 manipIndex, const EcU32 linkIndex, const EcPositionState *pPositionState, EcCoordinateSystemTransformation &primaryFrameInSys) const =0
Calculate the primary frame in system.
virtual EcBoolean getDigitalInput(const EcU32 index, EcU32 &value) const =0
get digital input given board id
Holds a description of the acceleration state of a manipulator. This includes the joint accelerations...
virtual EcBoolean getJointActuator(const EcU32 manipIndex, const EcU32 linkIndex, EcJointActuator &jointActuator) const =0
Get the joint actuator object for a specified manipulator-link.
Holds data organized by string maps.
Definition: ecDataMap.h:29
virtual EcBoolean detachManipulator(const EcU32 depManipIndex)=0
detach manipulator
virtual EcBoolean getDeterminant(const EcU32 manipIndex, EcReal &value) const =0
get determinant of the Jacobian of the current end effector set
virtual EcBoolean getSoftConstraintWeight(const EcPositionControlSystem &posContSystem, const EcU32 manipIndex, EcReal &weight) const
Get soft constraint weight.
virtual void resetForShapeChange()=0
resets necessary components for a change in system shapes.
std::vector< EcU32 > EcU32Vector
a general 32-bit unsigned integer vector
Definition: ecTypes.h:171
virtual EcBoolean setSensedState(const EcU32 manipIndex, const EcCoordinateSystemTransformation *pBase, const EcRealVector *pJoints, const EcReal timestep=0.0)=0
Feed back the externally sensed position state to the position controller.
virtual EcBoolean setDesiredVelocity(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcManipulatorEndEffectorVelocity &value)=0
sets an individual desired end-effector velocity
virtual EcBoolean attachManipulator(const EcU32 depManipIndex, const EcU32 baseManipIndex, const EcU32 baseLinkIndex, const EcCoordinateSystemTransformation &offset)=0
Attach the base link of one manipulator onto a link of another manipulator.
virtual EcBoolean setControlMode(const EcU32 manipIndex, const EcU32 eeSetIndex, const EcU32 eeIndex, const EcU32 mode)=0
Sets the control mode of an end-effector by index.
virtual void setDesiredPlacementVector(const EcManipulatorEndEffectorPlacementVector &value)=0
set desired placement (in relative) for the active end-effector set for all manipulators.
A three-element vector.
Definition: ecVector.h:20
Created by Energid Technologies www.energid.com
Copyright © 2016 Energid. All trademarks mentioned in this document are property of their respective owners.