TypeIIRMLPosition.h
Go to the documentation of this file.
1 // ---------------------- Doxygen info ----------------------
40 // ----------------------------------------------------------
41 // For a convenient reading of this file's source code,
42 // please use a tab width of four characters.
43 // ----------------------------------------------------------
44 
45 
46 #ifndef __TypeIIRMLPosition__
47 #define __TypeIIRMLPosition__
48 
49 
54 #include "RMLPositionFlags.h"
55 #include "RMLVelocityFlags.h"
56 #include "RMLVector.h"
57 #include "TypeIIRMLPolynomial.h"
58 #include "TypeIIRMLStep1Profiles.h"
59 #include "TypeIIRMLVelocity.h"
60 
61 
62 using namespace TypeIIRMLMath;
63 
64 
65 // ---------------------- Doxygen info ----------------------
144 // ----------------------------------------------------------
146 {
147 public:
148 
149 
150 // ---------------------- Doxygen info ----------------------
173 // ----------------------------------------------------------
174  TypeIIRMLPosition( const unsigned int &DegreesOfFreedom
175  , const double &CycleTimeInSeconds);
176 
177 
178 // ---------------------- Doxygen info ----------------------
189 // ----------------------------------------------------------
190  ~TypeIIRMLPosition(void);
191 
192 
193 // ---------------------- Doxygen info ----------------------
269 // ----------------------------------------------------------
270  int GetNextStateOfMotion( const RMLPositionInputParameters &InputValues
271  , RMLPositionOutputParameters *OutputValues
272  , const RMLPositionFlags &Flags);
273 
274 
275 // ---------------------- Doxygen info ----------------------
331 // ----------------------------------------------------------
332  int GetNextStateOfMotionAtTime( const double &TimeValueInSeconds
333  , RMLPositionOutputParameters *OutputValues ) const;
334 
335 protected:
336 
337 // ---------------------- Doxygen info ----------------------
342 // ----------------------------------------------------------
344  {
346  FUNC_SUCCESS = false,
348  FUNC_ERROR_OCCURRED = true
349  };
350 
351 
352 // ---------------------- Doxygen info ----------------------
371 // ----------------------------------------------------------
373  {
375  UNDEFINED = 0,
380  POSITION = 1,
384  CURRENT_VELOCITY = 3,
388  TARGET_VELOCITY = 4
389  };
390 
391 
392 // ---------------------- Doxygen info ----------------------
418 // ----------------------------------------------------------
419  void CompareInitialAndTargetStateofMotion(void);
420 
421 
422 // ---------------------- Doxygen info ----------------------
461 // ----------------------------------------------------------
462  void Step1(void);
463 
464 
465 // ---------------------- Doxygen info ----------------------
508 // ----------------------------------------------------------
509  void Step2(void);
510 
511 
512 // ---------------------- Doxygen info ----------------------
548 // ----------------------------------------------------------
549  int Step3( const double &TimeValueInSeconds
550  , RMLPositionOutputParameters *OP ) const;
551 
552 
553 // ---------------------- Doxygen info ----------------------
623 // ----------------------------------------------------------
624  void FallBackStrategy( const RMLPositionInputParameters &InputValues
625  , RMLPositionOutputParameters *OutputValues
626  , const RMLPositionFlags &InputsFlags);
627 
628 
629 // ---------------------- Doxygen info ----------------------
665 // ----------------------------------------------------------
666  bool IsWithinAnInoperativeTimeInterval( const double &SynchronizationTimeCandidate
667  , const RMLDoubleVector &MaximalExecutionTime
668  , const RMLDoubleVector &AlternativeExecutionTime) const;
669 
670 
671 // ---------------------- Doxygen info ----------------------
734 // ----------------------------------------------------------
735  bool IsPhaseSynchronizationPossible(RMLDoubleVector *ReferenceVector);
736 
737 
738 // ---------------------- Doxygen info ----------------------
763 // ----------------------------------------------------------
764  void Step2PhaseSynchronization(void);
765 
766 
767 // ---------------------- Doxygen info ----------------------
815 // ----------------------------------------------------------
816  void CalculatePositionalExtrems( const double &TimeValueInSeconds
817  , RMLPositionOutputParameters *OP ) const;
818 
819 
820 // ---------------------- Doxygen info ----------------------
858 // ----------------------------------------------------------
859  void SetPositionalExtremsToZero(RMLPositionOutputParameters *OP) const;
860 
861 
862 // ---------------------- Doxygen info ----------------------
899 // ----------------------------------------------------------
900  void SetupModifiedSelectionVector(void);
901 
902 
903 // ---------------------- Doxygen info ----------------------
917 // ----------------------------------------------------------
918  unsigned int GetNumberOfSelectedDOFs(const RMLBoolVector &BoolVector) const;
919 
920 
921 // ---------------------- Doxygen info ----------------------
931 // ----------------------------------------------------------
933 
934 
935 // ---------------------- Doxygen info ----------------------
944 // ----------------------------------------------------------
946 
947 
948 // ---------------------- Doxygen info ----------------------
955 // ----------------------------------------------------------
957 
958 
959 // ---------------------- Doxygen info ----------------------
967 // ----------------------------------------------------------
969 
970 
971 // ---------------------- Doxygen info ----------------------
978 // ----------------------------------------------------------
979  unsigned int NumberOfDOFs;
980 
981 
982 // ---------------------- Doxygen info ----------------------
991 // ----------------------------------------------------------
993 
994 
995 // ---------------------- Doxygen info ----------------------
1003 // ----------------------------------------------------------
1005 
1006 
1007 // ---------------------- Doxygen info ----------------------
1014 // ----------------------------------------------------------
1015  double CycleTime;
1016 
1017 
1018 // ---------------------- Doxygen info ----------------------
1028 // ----------------------------------------------------------
1030 
1031 
1032 // ---------------------- Doxygen info ----------------------
1041 // ----------------------------------------------------------
1043 
1044 
1045 // ---------------------- Doxygen info ----------------------
1059 // ----------------------------------------------------------
1061 
1062 
1063 // ---------------------- Doxygen info ----------------------
1074 // ----------------------------------------------------------
1076 
1077 
1078 // ---------------------- Doxygen info ----------------------
1087 // ----------------------------------------------------------
1089 
1090 
1091 // ---------------------- Doxygen info ----------------------
1107 // ----------------------------------------------------------
1109 
1110 
1111 // ---------------------- Doxygen info ----------------------
1119 // ----------------------------------------------------------
1121 
1122 
1123 // ---------------------- Doxygen info ----------------------
1132 // ----------------------------------------------------------
1134 
1135 
1136 // ---------------------- Doxygen info ----------------------
1145 // ----------------------------------------------------------
1147 
1148 
1149 // ---------------------- Doxygen info ----------------------
1158 // ----------------------------------------------------------
1160 
1161 
1162 // ---------------------- Doxygen info ----------------------
1171 // ----------------------------------------------------------
1173 
1174 
1175 // ---------------------- Doxygen info ----------------------
1184 // ----------------------------------------------------------
1186 
1187 
1188 // ---------------------- Doxygen info ----------------------
1198 // ----------------------------------------------------------
1200 
1201 
1202 // ---------------------- Doxygen info ----------------------
1211 // ----------------------------------------------------------
1213 
1214 
1215 // ---------------------- Doxygen info ----------------------
1224 // ----------------------------------------------------------
1226 
1227 
1228 // ---------------------- Doxygen info ----------------------
1238 // ----------------------------------------------------------
1240 
1241 
1242 // ---------------------- Doxygen info ----------------------
1252 // ----------------------------------------------------------
1254 
1255 
1256 // ---------------------- Doxygen info ----------------------
1265 // ----------------------------------------------------------
1267 
1268 
1269 // ---------------------- Doxygen info ----------------------
1278 // ----------------------------------------------------------
1280 
1281 
1282 // ---------------------- Doxygen info ----------------------
1292 // ----------------------------------------------------------
1294 
1295 
1296 // ---------------------- Doxygen info ----------------------
1301 // ----------------------------------------------------------
1303 
1304 
1305 // ---------------------- Doxygen info ----------------------
1320 // ----------------------------------------------------------
1322 
1323 
1324 // ---------------------- Doxygen info ----------------------
1333 // ----------------------------------------------------------
1335 
1336 
1337 // ---------------------- Doxygen info ----------------------
1350 // ----------------------------------------------------------
1352 
1353 
1354 // ---------------------- Doxygen info ----------------------
1368 // ----------------------------------------------------------
1370 
1371 
1372 // ---------------------- Doxygen info ----------------------
1388 // ----------------------------------------------------------
1390 
1391 
1392 // ---------------------- Doxygen info ----------------------
1408 // ----------------------------------------------------------
1410 
1411 
1412 // ---------------------- Doxygen info ----------------------
1428 // ----------------------------------------------------------
1430 
1431 
1432 // ---------------------- Doxygen info ----------------------
1444 // ----------------------------------------------------------
1446 
1447 
1448 // ---------------------- Doxygen info ----------------------
1460 // ----------------------------------------------------------
1462 
1463 
1464 }; // class TypeIIRMLPosition
1465 
1466 
1467 #endif
1468 
1469 
Header file for the class RMLPositionOutputParameters.
Header file for the dynamic vector class used for the Reflexxes Motion Libraries. ...
Header file for the class RMLPositionFlags.
RMLDoubleVector * PhaseSynchronizationCurrentPositionVector
Current position vector used for the calculation of phase-synchronized motion trajectories.
RMLDoubleVector * StoredTargetPosition
Stores the original target position vector .
Data structure containing flags to parameterize the execution of the position-based On-Line Trajector...
double InternalClockInSeconds
In order to prevent from recalculating the trajectory within every control cycle and to safe CPU time...
Data structure containing flags to parameterize the execution of the velocity-based On-Line Trajector...
RMLDoubleVector * PhaseSynchronizationTargetPositionVector
Target position vector used for the calculation of phase-synchronized motion trajectories.
Header file for the class TypeIIRMLVelocity.
unsigned int MotionProfileForPhaseSynchronization
Contains the ID of the profile that is used for phase-synchronization.
RMLDoubleVector * ArrayOfSortedTimes
An array of possible synchronization times in seconds. It contains all values of , , and . The array contains elements.
RMLVelocityOutputParameters * VelocityOutputParameters
Pointer to an RMLVelocityOutputParameters object. It is used for the output parameters of the velocit...
RMLDoubleVector * PhaseSynchronizationPositionDifferenceVector
Position difference vector used for the calculation of phase-synchronized motion trajectories...
Three arrays of TypeIIRMLMath::TypeIIRMLPolynomial.
DominatValueForPhaseSync
Set of input vector identifiers that can determine the normalized vector for phase-synchronization.
int ReturnValue
Contains the return value of the method TypeIIRMLPosition::GetNextStateOfMotion() ...
double SynchronizationTime
If the trajectory is time- or phase-synchronized, this attribute will contain the synchronization tim...
TypeIIRMLVelocity * RMLVelocityObject
Pointer to an TypeIIRMLVelocity object. The velocity-based On-Line Trajectory Generation algorithm is...
RMLDoubleVector * PhaseSynchronizationCheckVector
Candidate for a reference vector used for phase-synchronized motion trajectories.
MotionPolynomials * Polynomials
Pointer to an MotionPolynomials object, which contains the actual trajectory . It is a two-dimensiona...
Header file for the class RMLPositionInputParameters.
RMLPositionInputParameters * CurrentInputParameters
Pointer to an RMLPositionInputParameters object. This object contains a complete set of input values ...
RMLDoubleVector * BeginningsOfInoperativeTimeIntervals
Vector that contains the beginnings of inoperative time intervals in seconds, .
Header file for the class RMLVelocityInputParameters.
RMLPositionOutputParameters * OutputParameters
Pointer to an RMLPositionOutputParameters object. This object contains the output parameters of the m...
Header file for the class RMLVelocityFlags.
double CycleTime
Contains the cycle time in seconds.
Header file for the class TypeIIRMLMath::TypeIIRMLPolynomial and the struct TypeIIRMLMath::MotionPoly...
RMLDoubleVector * ZeroVector
A vector with double elements, all of which are zero.
RMLDoubleVector * MinimumExecutionTimes
Vector that contains the minimum execution times in seconds, .
Header file for the class RMLVelocityOutputParameters.
Class for the output parameters of the velocity-based On-Line Trajectory Generation algorithm...
RMLVelocityInputParameters * VelocityInputParameters
Pointer to an RMLVelocityInputParameters object. It is used for the input parameters of the velocity-...
RMLDoubleVector * PhaseSynchronizationTimeVector
A vector of execution time values in seconds for all selected degrees of freedom used for phase-synch...
RMLDoubleVector * PhaseSynchronizationCurrentVelocityVector
Current velocity vector used for the calculation of phase-synchronized motion trajectories.
RMLPositionInputParameters * OldInputParameters
Pointer to an RMLPositionInputParameters object. In order to check, whether a new calculation has to ...
FunctionResults
For class-internal use only: return values of boolean methods.
bool CurrentTrajectoryIsPhaseSynchronized
Indicates, whether the current trajectory is phase-synchronized.
RMLVelocityFlags VelocityFlags
Pointer to an RMLVelocityFlags object. It is used for the velocity-based On-Line Trajectory Generatio...
RMLBoolVector * ModifiedSelectionVector
Boolean vector, which contains the modified selection vector that is based on the original selection ...
RMLVector< Step1_Profile > * UsedStep1AProfiles
Vector that contains the profiles that are used by Step 1A to calculate .
RMLDoubleVector * PhaseSynchronizationMaxVelocityVector
Contains the adapted maximum velocity vector for phase-synchronized trajectories.
RMLDoubleVector * PhaseSynchronizationReferenceVector
Reference vector for phase-synchronized trajectories, with .
bool CalculatePositionalExtremsFlag
Indicates, whether the positional extremes are to be calculated.
Header file for the Step 1 motion profiles.
RMLDoubleVector * PhaseSynchronizationTargetVelocityVector
Target velocity vector used for the calculation of phase-synchronized motion trajectories.
unsigned int GreatestDOFForPhaseSynchronization
Contains the index of the degree of freedom that was used to compute the reference vector for phase-s...
Class for the output parameters of the position-based On-Line Trajectory Generation algorithm...
Class for the input parameters of the position-based On-Line Trajectory Generation algorithm...
This class constitutes the low-level user interface of the Reflexxes Type II Motion Library...
Class for the input parameters of the velocity-based On-Line Trajectory Generation algorithm...
unsigned int NumberOfDOFs
The number of degrees of freedom .
RMLDoubleVector * PhaseSynchronizationMaxAccelerationVector
Contains the adapted maximum acceleration vector for phase-synchronized trajectories.
bool CurrentTrajectoryIsNotSynchronized
Indicates that no synchronization is required for the current set of input values, that is, the input flag RMLFlags::NO_SYNCHRONIZATION is set.
DominatValueForPhaseSync PhaseSynchronizationMagnitude
Value indicating, which of input vectors was used to compute the reference vector for phase-synchroni...
RMLDoubleVector * EndingsOfInoperativeTimeIntervals
Vector that contains the endings of inoperative time intervals in seconds, .
RMLPositionFlags OldFlags
In order to check, whether a new calculation has to be started, the input values have to be compared ...
This is a minimalistic dynamic vector class implementation used for the Reflexxes Motion Libraries...
Definition: RMLVector.h:77
This class constitutes the user interface of velocity-based the Type II On-Line Trajectory Generation...


libreflexxestype2
Author(s):
autogenerated on Sat Nov 21 2020 03:17:34