49 #ifndef __RMLOutputParameters__ 50 #define __RMLOutputParameters__ 155 for (i = 0; i < DegreesOfFreedom; i++)
252 void Echo(FILE* FileHandler = stdout)
const 256 if (FileHandler == NULL)
261 fprintf(FileHandler,
"New position vector : ");
266 fprintf(FileHandler,
"\nNew velocity vector : ");
271 fprintf(FileHandler,
"\nNew acceleration vector : ");
276 fprintf(FileHandler,
"\n");
333 this->NumberOfDOFs = 0 ;
428 ,
const unsigned int &SizeInBytes)
const 430 memcpy( (
void*)OutputVector
458 ,
const unsigned int &Index)
const 547 ,
const unsigned int &SizeInBytes)
const 549 memcpy( (
void*)OutputVector
577 ,
const unsigned int &Index)
const 666 ,
const unsigned int &SizeInBytes)
const 668 memcpy( (
void*)OutputVector
696 ,
const unsigned int &Index)
const 793 ,
double *MaximumPositionVector
794 ,
const unsigned int &SizeInBytes)
const 796 memcpy( (
void*)MinimumPositionVector
800 memcpy( (
void*)MaximumPositionVector
876 ,
const unsigned int &SizeInBytes)
const 878 memcpy( (
void*)ExtremaTimes
908 ,
const unsigned int &SizeInBytes)
const 910 memcpy( (
void*)ExtremaTimes
1024 ,
double *PositionVector
1025 ,
double *VelocityVector
1026 ,
double *AccelerationVector
1027 ,
const unsigned int &SizeInBytes)
const 1034 memcpy( (
void*)PositionVector
1038 memcpy( (
void*)VelocityVector
1042 memcpy( (
void*)AccelerationVector
1158 ,
double *PositionVector
1159 ,
double *VelocityVector
1160 ,
double *AccelerationVector
1161 ,
const unsigned int &SizeInBytes)
const 1168 memcpy( (
void*)PositionVector
1172 memcpy( (
void*)VelocityVector
1176 memcpy( (
void*)AccelerationVector
1326 ,
const unsigned int &SizeInBytes)
const 1328 memcpy( (
void*)OutputVector
1358 ,
const unsigned int &Index)
const Header file for the dynamic vector class used for the Reflexxes Motion Libraries. ...
RMLVector< double > RMLDoubleVector
Type definition for vectors of double elements.
double SynchronizationTime
The synchronization time in seconds.
void Echo(FILE *FileHandler=stdout) const
Prints the new state of motion of the output parameters to *FileHandler.
void GetTimesAtMinPosition(double *ExtremaTimes, const unsigned int &SizeInBytes) const
Copies the array of double values that contain the time values (in seconds) at which the minimum posi...
RMLDoubleVector * NewAccelerationVector
A pointer to the new acceleration vector .
void GetNewAccelerationVector(RMLDoubleVector *OutputVector) const
Copies the contents of the RMLDoubleVector object containing the new acceleration vector to the RMLD...
int GetMotionStateAtMaxPosForOneDOF(const unsigned int &DOF, double *PositionVector, double *VelocityVector, double *AccelerationVector, const unsigned int &SizeInBytes) const
Copies the motion state, at which the position of the degree of freedom with the index DOF has reache...
double GetSynchronizationTime(void) const
Returns the synchronization time.
void GetNewPositionVectorElement(double *OutputValue, const unsigned int &Index) const
Copies one element of the new selection vector to the memory pointed to by OutputValue.
RMLDoubleVector ** MaxPosExtremaAccelerationVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...
void GetTimesAtMinPosition(RMLDoubleVector *ExtremaTimes) const
Copies the contents of a RMLDoubleVector object that contains the times (in seconds) at which the min...
ReturnValue
Return values for the methods of the class RMLOutputParameters.
RMLDoubleVector * ExecutionTimes
A pointer to an RMLDoubleVector object that contains the execution times of all selected degrees of f...
T * VecData
Pointer to the actual vector data, that is, an array of type T objects.
void GetTimesAtMaxPosition(double *ExtremaTimes, const unsigned int &SizeInBytes) const
Copies the array of double values that contain the time values (in seconds) at which the maximum posi...
double GetExecutionTimesElement(const unsigned int &Index) const
Returns one single element of the execution times for each degree of freedom, at which the desired ta...
unsigned int NumberOfDOFs
The number of degrees of freedom .
RMLDoubleVector * NewPositionVector
A pointer to the new position vector .
RMLDoubleVector ** MaxPosExtremaVelocityVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...
RMLDoubleVector ** MinPosExtremaVelocityVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...
int GetMotionStateAtMaxPosForOneDOF(const unsigned int &DOF, RMLDoubleVector *PositionVector, RMLDoubleVector *VelocityVector, RMLDoubleVector *AccelerationVector) const
Copies the motion state, at which the position of the degree of freedom with the index DOF has reache...
int GetMotionStateAtMinPosForOneDOF(const unsigned int &DOF, double *PositionVector, double *VelocityVector, double *AccelerationVector, const unsigned int &SizeInBytes) const
Copies the motion state, at which the position of the degree of freedom with the index DOF has reache...
void GetExecutionTimesElement(double *OutputValue, const unsigned int &Index) const
Copies one element of the execution times for each degree of freedom, at which the desired target vel...
bool WasACompleteComputationPerformedDuringTheLastCycle(void) const
Indicates, whether a new computation was performed in the last cycle.
void GetTimesAtMaxPosition(RMLDoubleVector *ExtremaTimes) const
Copies the contents of a RMLDoubleVector object that contains the times (in seconds) at which the max...
RMLDoubleVector * MaxExtremaTimesVector
A pointer to an RMLDoubleVector object that contains the times at which each degree of freedom reache...
void GetNewVelocityVector(double *OutputVector, const unsigned int &SizeInBytes) const
Copies the array of double values representing the new velocity vector to the memory pointed to by O...
RMLDoubleVector * MinExtremaTimesVector
A pointer to an RMLDoubleVector object that contains the times at which each degree of freedom reache...
RMLOutputParameters(const RMLOutputParameters &OP)
Copy constructor of class RMLPositionOutputParameters.
unsigned int DOFWithTheGreatestExecutionTime
Index of the degree of freedom that requires the greatest execution time to reach its desired target ...
bool IsTrajectoryPhaseSynchronized(void) const
Indicates whether the currently calculated trajectory is phase- synchronized or only time-synchronize...
void GetNewPositionVector(double *OutputVector, const unsigned int &SizeInBytes) const
Copies the array of double values representing the new position vector to the memory pointed to by O...
bool ANewCalculationWasPerformed
Indicates, whether a new computation was performed in the last cycle.
RMLOutputParameters(const unsigned int DegreesOfFreedom)
Constructor of class RMLOutputParameters.
void GetNewAccelerationVectorElement(double *OutputValue, const unsigned int &Index) const
Copies one element of the new selection vector to the memory pointed to by OutputValue.
double GetNewAccelerationVectorElement(const unsigned int &Index) const
Returns one single element of the new selection vector .
double GetNewPositionVectorElement(const unsigned int &Index) const
Returns one single element of the new selection vector .
void GetNewAccelerationVector(double *OutputVector, const unsigned int &SizeInBytes) const
Copies the array of double values representing the new acceleration vector to the memory pointed to ...
double GetNewVelocityVectorElement(const unsigned int &Index) const
Returns one single element of the new selection vector .
unsigned int GetNumberOfDOFs(void) const
Returns the number of degrees of freedom.
void GetNewVelocityVectorElement(double *OutputValue, const unsigned int &Index) const
Copies one element of the new selection vector to the memory pointed to by OutputValue.
void GetExecutionTimes(RMLDoubleVector *OutputVector) const
Copies the contents of the RMLDoubleVector object containing the execution times for each degree of f...
~RMLOutputParameters(void)
Destructor of class RMLOutputParameters.
int GetMotionStateAtMinPosForOneDOF(const unsigned int &DOF, RMLDoubleVector *PositionVector, RMLDoubleVector *VelocityVector, RMLDoubleVector *AccelerationVector) const
Copies the motion state, at which the position of the degree of freedom with the index DOF has reache...
void GetNewVelocityVector(RMLDoubleVector *OutputVector) const
Copies the contents of the RMLDoubleVector object containing the new velocity vector to the RMLDoubl...
void GetPositionalExtrema(double *MinimumPositionVector, double *MaximumPositionVector, const unsigned int &SizeInBytes) const
Copies two RMLDoubleVector objects that contain the minimum and maximum positions, which are reached until the target state of motion is reached.
RMLDoubleVector * NewVelocityVector
A pointer to the new velocity vector .
bool TrajectoryIsPhaseSynchronized
Boolean flag that indicates whether the current trajectory is phase-synchronized. ...
RMLDoubleVector * MinPosExtremaPositionVectorOnly
A pointer to an RMLDoubleVector object that contains the maximum positions for all degrees of freedom...
RMLDoubleVector * MaxPosExtremaPositionVectorOnly
A pointer to an RMLDoubleVector object that contains the maximum positions for all degrees of freedom...
unsigned int GetDOFWithTheGreatestExecutionTime(void) const
Returns the index of the degree of freedom with the greatest trajectory execution time...
RMLDoubleVector ** MinPosExtremaAccelerationVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...
void GetExecutionTimes(double *OutputVector, const unsigned int &SizeInBytes) const
Copies the array of double values representing the execution times for each degree of freedom...
RMLOutputParameters & operator=(const RMLOutputParameters &OP)
Copy operator.
Class for the output parameters of the On-Line Trajectory Generation algorithm.
This is a minimalistic dynamic vector class implementation used for the Reflexxes Motion Libraries...
RMLDoubleVector ** MinPosExtremaPositionVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...
void GetPositionalExtrema(RMLDoubleVector *MinimumPositionVector, RMLDoubleVector *MaximumPositionVector) const
Copies two RMLDoubleVector objects that contain the minimum and maximum positions, which are reached until the target state of motion is reached.
unsigned int GetVecDim(void) const
Returns the dimension of the vector.
void GetNewPositionVector(RMLDoubleVector *OutputVector) const
Copies the contents of the RMLDoubleVector object containing the new position vector to the RMLDoubl...
double GetGreatestExecutionTime(void) const
Returns the time value in seconds which is required by the degree with the greatest execution to reac...
RMLDoubleVector ** MaxPosExtremaPositionVectorArray
A pointer to an array of pointers to RMLDoubleVector objects. The number of array elements equals the...