Reflexxes Motion Libraries  Manual and Documentation (Type II, Version 1.2.6)
Namespaces | Defines | Functions
include/TypeIIRMLMath.h File Reference

Header file for functions and definitions of constant values and macros. More...

#include <math.h>

Go to the source code of this file.

Namespaces

namespace  TypeIIRMLMath

Defines

#define OTG_INFINITY   ((double)1.0e100)
 A value for infinity $ \infty = 10^{100} $.
#define RML_INPUT_VALUE_EPSILON   ((double)1.0e-10)
 Positive threshold value to compare current and former input values.
#define RML_VALID_SOLUTION_EPSILON   ((double)1.0e-10)
 Positive threshold value used during the check, whether a valid solution for a given profile is possible.
#define MAXIMAL_NO_OF_POLYNOMIALS   7
 The maximum number of polynomials.
#define RML_MAX_EXECUTION_TIME   ((double)1e10)
 Maximum value for the for the minimum trajectory execution time $t_i^{\,min}$.
#define RML_ADDITIONAL_RELATIVE_POSITION_ERROR_IN_CASE_OF_EQUALITY   ((double)1e-7)
 If the initial state of motion exactly equals the target state of motion, a negligible position error is created.
#define RML_ADDITIONAL_ABSOLUTE_POSITION_ERROR_IN_CASE_OF_EQUALITY   ((double)1e-7)
 If the initial state of motion exactly equals the target state of motion, a negligible position error is created.
#define POSITIVE_ZERO   ((double)1.0e-50)
 To prevent from numerical errors, a value for a "positive" value of zero is required for deterministic behavior.
#define ABSOLUTE_PHASE_SYNC_EPSILON   ((double)1.0e-6)
 Absolute epsilon to check whether all required vectors are collinear.
#define RELATIVE_PHASE_SYNC_EPSILON   ((double)1.0e-3)
 Relative epsilon to check whether all required vectors are collinear.
#define RML_INFINITY   ((double)1.0e100)
 A value for infinity $ \infty = 10^{100} $.
#define RML_POSITION_EXTREMS_TIME_EPSILON   ((double)1.0e-4)
 Time value in seconds to increase the time intervals, in which a trajectory segment is valid in order to robustly calculate positional extremes.
#define PHASE_SYNC_COLLINEARITY_REL_EPSILON   ((double)1.0e-2)
 Relative value to check for collinearity during the check for phase synchronization.
#define Sign(A)   ( ((double)(A) < 0.0)?(-1):(1) )
 Sign macro (integer)
#define FSign(A)   ( ((double)(A) < 0.0)?(-1.0):(1.0) )
 Sign macro (floating point)
#define pow2(A)   ((A)*(A))
 A to the power of 2.
#define IsInputEpsilonEqual(A, B)   ((bool)((fabs((double)A - (double)B) <= RML_INPUT_VALUE_EPSILON)?(true):(false)))
 A macro that checks, whether the difference between the values 'A' and 'B' is less than RML_INPUT_VALUE_EPSILON.

Functions

double TypeIIRMLMath::RMLSqrt (const double &Value)
 Calculates the real square root of a given value. If the value is negative a value of almost zero will be returned.
bool TypeIIRMLMath::IsEpsilonEquality (const double &Value1, const double &Value2, const double &Epsilon)
 Checks epsilon equality for two values.

Detailed Description

Header file for functions and definitions of constant values and macros.

Header file for definitions of constant values and macros to be used for within in the library of the Type II On-Line Trajectory Algorithm.

Date:
March 2014
Version:
1.2.6
Author:
Torsten Kroeger, <info@reflexxes.com>

Define Documentation

#define ABSOLUTE_PHASE_SYNC_EPSILON   ((double)1.0e-6)
#define FSign (   A)    ( ((double)(A) < 0.0)?(-1.0):(1.0) )

Sign macro (floating point)

Parameters:
AValue, whose sign is returned.
Returns:
Floating point value: -1.0 or 1.0
#define IsInputEpsilonEqual (   A,
 
)    ((bool)((fabs((double)A - (double)B) <= RML_INPUT_VALUE_EPSILON)?(true):(false)))

A macro that checks, whether the difference between the values 'A' and 'B' is less than RML_INPUT_VALUE_EPSILON.

#define MAXIMAL_NO_OF_POLYNOMIALS   7

The maximum number of polynomials.

The maximum number of polynomials to be used for the Type II On-Line Trajectory Generation algorithm. This number is set up w.r.t. the 6 trajectory segments of the Step 2 Decision Tree plus one further segment for the time after the desired state of motion has been reached.

See also:
TypeIIRMLPolynomial.h
#define OTG_INFINITY   ((double)1.0e100)

A value for infinity $ \infty = 10^{100} $.

#define PHASE_SYNC_COLLINEARITY_REL_EPSILON   ((double)1.0e-2)

Relative value to check for collinearity during the check for phase synchronization.

See also:
TypeIIRMLPosition::IsPhaseSynchronizationPossible()
#define POSITIVE_ZERO   ((double)1.0e-50)

To prevent from numerical errors, a value for a "positive" value of zero is required for deterministic behavior.

#define pow2 (   A)    ((A)*(A))

A to the power of 2.

Parameters:
ABasis
Returns:
Result value
#define RELATIVE_PHASE_SYNC_EPSILON   ((double)1.0e-3)

Relative epsilon to check whether all required vectors are collinear.

See also:
TypeIIRMLPosition::Step1()
TypeIIRMLVelocity::GetNextStateOfMotion()

If the initial state of motion exactly equals the target state of motion, a negligible position error is created.

See also:
TypeIIRMLPosition::CompareAndEventuallyAdaptInitialAndTargetStateofMotion()

If the initial state of motion exactly equals the target state of motion, a negligible position error is created.

See also:
TypeIIRMLPosition::CompareAndEventuallyAdaptInitialAndTargetStateofMotion()
#define RML_INFINITY   ((double)1.0e100)

A value for infinity $ \infty = 10^{100} $.

#define RML_INPUT_VALUE_EPSILON   ((double)1.0e-10)

Positive threshold value to compare current and former input values.

Positive threshold value to determine, whether the input values of the OTG algorithm remained constant. This value is used in the macro IsInputEpsilonEqual().

See also:
IsInputEpsilonEqual(A,B)
#define RML_MAX_EXECUTION_TIME   ((double)1e10)

Maximum value for the for the minimum trajectory execution time $t_i^{\,min}$.

This value is required to ensure numerical stability.

See also:
ReflexxesAPI::RML_ERROR_EXECUTION_TIME_TOO_BIG
#define RML_POSITION_EXTREMS_TIME_EPSILON   ((double)1.0e-4)

Time value in seconds to increase the time intervals, in which a trajectory segment is valid in order to robustly calculate positional extremes.

See also:
TypeIIRMLPosition::CalculatePositionalExtrems()
TypeIIRMLVelocity::CalculatePositionalExtrems()
#define RML_VALID_SOLUTION_EPSILON   ((double)1.0e-10)

Positive threshold value used during the check, whether a valid solution for a given profile is possible.

See also:
TypeIIRMLMath::IsSolutionForProfile_PosTriNegLin_Possible()
#define Sign (   A)    ( ((double)(A) < 0.0)?(-1):(1) )

Sign macro (integer)

Parameters:
AValue, whose sign is returned.
Returns:
Integer value: -1 or 1
User documentation of the Reflexxes Motion Libraries by Reflexxes GmbH (Company Information, Impressum). This document was generated with Doxygen on Mon Jul 7 2014 13:21:09. Copyright 2010–2014.