![]() |
Reflexxes Motion Libraries
Manual and Documentation (Type II, Version 1.2.6)
|
Classes | |
class | TypeIIRMLPolynomial |
This class realizes polynomials of degree three as required for the Type II On-Line Trajectory Generation algorithm. More... | |
struct | MotionPolynomials |
Three arrays of TypeIIRMLMath::TypeIIRMLPolynomial. More... | |
Enumerations | |
enum | Step1_Profile { Step1_Undefined = 0, Step1_Profile_PosLinHldNegLin = 1, Step1_Profile_PosLinNegLin = 2, Step1_Profile_PosTriNegLin = 3, Step1_Profile_PosTrapNegLin = 4, Step1_Profile_NegLinHldPosLin = 5, Step1_Profile_NegLinPosLin = 6, Step1_Profile_NegTriPosLin = 7, Step1_Profile_NegTrapPosLin = 8 } |
Enumeration of all possible profiles of Step 1 (A, B, and C). More... | |
enum | Step2_Profile { Step2_Undefined = 0, Step2_Profile_PosLinHldNegLin = 1, Step2_Profile_PosLinHldPosLin = 2, Step2_Profile_NegLinHldPosLin = 3, Step2_Profile_NegLinHldNegLin = 4, Step2_Profile_PosTrapNegLin = 5, Step2_Profile_NegLinHldNegLinNegLin = 6 } |
Enumeration of all possible profiles of Step 2. More... | |
Functions | |
bool | Decision_1A__001 (const double &CurrentVelocity) |
Is (vi >= 0)? | |
bool | Decision_1A__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? | |
bool | Decision_1A__003 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? | |
bool | Decision_1A__004 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->vtrgt, is p<=ptrgt? | |
bool | Decision_1A__005 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
If v->vmax->vtrgt, is p<=ptrgt? | |
bool | Decision_1A__006 (const double &TargetVelocity) |
Is (vtrgt >= 0)? | |
bool | Decision_1A__007 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->vtrgt, is p>=ptrgt? | |
bool | Decision_1A__008 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->0->vtrgt, is p>=ptrgt? | |
bool | Decision_1A__009 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
If v->vmax->0->vtrgt, is p>=ptrgt? | |
bool | Decision_1B__001 (const double &CurrentVelocity) |
Is (vi >= 0)? | |
bool | Decision_1B__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? | |
bool | Decision_1B__003 (const double &TargetVelocity) |
Is (vtrgt >= 0)? | |
bool | Decision_1B__004 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? | |
bool | Decision_1B__005 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->vtrgt, is p<=ptrgt? | |
bool | Decision_1B__006 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->0->vtrgt, is p<=ptrgt? | |
bool | Decision_1B__007 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->vtrgt, is p>=ptrgt? | |
bool | Decision_1C__001 (const double &CurrentVelocity) |
Is (vi >= 0)? | |
bool | Decision_1C__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? | |
bool | Decision_1C__003 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
If v->vmax->0->vtrgt, is p>=ptrgt? | |
bool | Decision_2___001 (const double &CurrentVelocity) |
Is (vi >= 0)? | |
bool | Decision_2___002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? | |
bool | Decision_2___003 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? | |
bool | Decision_2___004 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt? | |
bool | Decision_2___005 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->hold->vtrgt, so that t=tsync, is p<=ptrgt? | |
bool | Decision_2___006 (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If (v->0->vtrgt, is p<=ptrgt || t > tsync)? | |
bool | Decision_2___007 (const double &TargetVelocity) |
Is (vtrgt >= 0)? | |
bool | Decision_2___008 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->hold->vtrgt, so that t=tsync, is p<=ptrgt? | |
bool | Decision_2___009 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt? | |
bool | Decision_2___010 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
If v->0->vtrgt, is p>=ptrgt? | |
bool | Decision_2___011 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt? | |
bool | Decision_2___012 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, const double &CurrentTime, const double &SynchronizationTime) |
If v->hold->0->vtrgt, so that t=tsync, is p<=ptrgt? | |
bool | Decision_V___001 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? | |
void | TypeIIRMLDecisionTree1A (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration, Step1_Profile *AppliedProfile, double *MinimalExecutionTime) |
This function contains the decision tree 1A of the Step 1 of the Type II On-Line Trajectory Generation algorithm. | |
void | TypeIIRMLDecisionTree1B (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration, double *MaximalExecutionTime) |
This function contains the decision tree 1B of the Step 1 of the Type II On-Line Trajectory Generation algorithm. | |
void | TypeIIRMLDecisionTree1C (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration, double *AlternativeExecutionTime) |
This function contains the decision tree 1C of the Step 1 of the Type II On-Line Trajectory Generation algorithm. | |
void | TypeIIRMLDecisionTree2 (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration, const double &SynchronizationTime, MotionPolynomials *PolynomialsInternal) |
This function contains the decision tree of the Step 2 of the Type II On-Line Trajectory Generation algorithm. | |
double | 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 | IsEpsilonEquality (const double &Value1, const double &Value2, const double &Epsilon) |
Checks epsilon equality for two values. | |
void | Quicksort (const int &LeftBound, const int &RightBound, double *ArrayOfValues) |
Standard implementation of the Quicksort algorithm for double values. | |
void | NegateStep1 (double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity) |
Negate input values during Step 1. | |
void | VToVMaxStep1 (double *TotalTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
One intermediate Step 1 trajectory segment: v -> +vmax (NegLin) | |
void | VToZeroStep1 (double *TotalTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxAcceleration) |
One intermediate Step 1 trajectory segment: v -> 0 (NegLin) | |
double | ProfileStep1PosLinHldNegLin (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Calculates the execution time of the PosLinHldNegLin velocity profile. | |
double | ProfileStep1PosLinNegLin (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
Calculates the execution time of the PosLinNegLin velocity profile. | |
double | ProfileStep1PosTriNegLin (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
Calculates the execution time of the PosTriNegLin velocity profile. | |
double | ProfileStep1PosTrapNegLin (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Calculates the execution time of the PosTrapNegLin velocity profile. | |
double | ProfileStep1NegLinPosLin (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration) |
Calculates the execution time of the NegLinPosLin velocity profile. | |
bool | IsSolutionForProfile_PosLinHldNegLin_Possible (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Checks whether a valid solution for the PosLinHldNegLin velocity profile would be possible. | |
bool | IsSolutionForProfile_PosLinNegLin_Possible (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Checks whether a valid solution for the PosLinNegLin velocity profile would be possible. | |
bool | IsSolutionForProfile_PosTriNegLin_Possible (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Checks whether a valid solution for the PosTriNegLin velocity profile would be possible. | |
bool | IsSolutionForProfile_PosTrapNegLin_Possible (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
Checks whether a valid solution for the PosTrapNegLin velocity profile would be possible. | |
void | NegateStep2 (double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity, bool *Inverted) |
Negate input values. | |
void | VToVMaxStep2 (double *ThisCurrentTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
One intermediate Step 2 trajectory segment: v -> vmax (NegLin) | |
void | VToZeroStep2 (double *ThisCurrentTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
One intermediate Step 2 trajectory segment: v -> 0 (NegLin) | |
void | ProfileStep2PosLinHldNegLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile PosLinHldNegLin (leaf of the Step 2 decision tree) | |
void | ProfileStep2PosLinHldPosLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile PosLinHldNegLin (leaf of the Step 2 decision tree) | |
void | ProfileStep2NegLinHldPosLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile NegLinHldPosLin (leaf of the Step 2 decision tree) | |
void | ProfileStep2NegLinHldNegLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile NegLinHldNegLin (leaf of the Step 2 decision tree) | |
void | ProfileStep2PosTrapNegLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile PosTrapNegLin (leaf of the Step 2 decision tree) | |
void | ProfileStep2NegLinHldNegLinNegLin (const double &CurrentTime, const double &SynchronizationTime, const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxAcceleration, MotionPolynomials *PolynomialsLocal, const bool &Inverted) |
Parameterization of the Step 2 velocity profile NegLinHldNegLinNegLin (leaf of the Step 2 decision tree) | |
void | Step2WithoutSynchronization (const double &CurrentPosition, const double &CurrentVelocity, const double &TargetPosition, const double &TargetVelocity, const double &MaxVelocity, const double &MaxAcceleration, const TypeIIRMLMath::Step1_Profile &UsedProfile, const double &MinimumExecutionTime, MotionPolynomials *PolynomialsInternal) |
This function contains sets of trajectory parameters (i.e., all polynomial coefficients) in the case of non-synchronized trajectories. |
Enumeration of all possible profiles of Step 1 (A, B, and C).
Enumeration of all possible profiles of Step 2.
bool TypeIIRMLMath::Decision_1A__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
bool TypeIIRMLMath::Decision_1A__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
bool TypeIIRMLMath::Decision_1A__003 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
bool TypeIIRMLMath::Decision_1A__004 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vtrgt, is p<=ptrgt?
bool TypeIIRMLMath::Decision_1A__005 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vmax->vtrgt, is p<=ptrgt?
bool TypeIIRMLMath::Decision_1A__006 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
bool TypeIIRMLMath::Decision_1A__007 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_1A__008 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->0->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_1A__009 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vmax->0->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_1B__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
bool TypeIIRMLMath::Decision_1B__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
bool TypeIIRMLMath::Decision_1B__003 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
bool TypeIIRMLMath::Decision_1B__004 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
bool TypeIIRMLMath::Decision_1B__005 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vtrgt, is p<=ptrgt?
bool TypeIIRMLMath::Decision_1B__006 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->0->vtrgt, is p<=ptrgt?
bool TypeIIRMLMath::Decision_1B__007 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_1C__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
bool TypeIIRMLMath::Decision_1C__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
bool TypeIIRMLMath::Decision_1C__003 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->vmax->0->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_2___001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
bool TypeIIRMLMath::Decision_2___002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
bool TypeIIRMLMath::Decision_2___003 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
bool TypeIIRMLMath::Decision_2___004 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_2___005 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->hold->vtrgt, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_2___006 | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If (v->0->vtrgt, is p<=ptrgt || t > tsync)?
bool TypeIIRMLMath::Decision_2___007 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
bool TypeIIRMLMath::Decision_2___008 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->hold->vtrgt, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_2___009 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_2___010 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
If v->0->vtrgt, is p>=ptrgt?
bool TypeIIRMLMath::Decision_2___011 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->vtrgt->hold, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_2___012 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | CurrentTime, | ||
const double & | SynchronizationTime | ||
) |
If v->hold->0->vtrgt, so that t=tsync, is p<=ptrgt?
bool TypeIIRMLMath::Decision_V___001 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
bool TypeIIRMLMath::IsEpsilonEquality | ( | const double & | Value1, |
const double & | Value2, | ||
const double & | Epsilon | ||
) | [inline] |
Checks epsilon equality for two values.
Returns , that if epsilon quality holds,
true
will be returned, otherwise false
.
Value1 | First value to be compared |
Value2 | Second value to be compared |
Epsilon | Value for Epsilon |
true
if both values are epsilon equal, otherwise false
bool TypeIIRMLMath::IsSolutionForProfile_PosLinHldNegLin_Possible | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Checks whether a valid solution for the PosLinHldNegLin velocity profile would be possible.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
true
if a valid solution would be possiblefalse
otherwisebool TypeIIRMLMath::IsSolutionForProfile_PosLinNegLin_Possible | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Checks whether a valid solution for the PosLinNegLin velocity profile would be possible.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
true
if a valid solution would be possiblefalse
otherwisebool TypeIIRMLMath::IsSolutionForProfile_PosTrapNegLin_Possible | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Checks whether a valid solution for the PosTrapNegLin velocity profile would be possible.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
true
if a valid solution would be possiblefalse
otherwisebool TypeIIRMLMath::IsSolutionForProfile_PosTriNegLin_Possible | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Checks whether a valid solution for the PosTriNegLin velocity profile would be possible.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
true
if a valid solution would be possiblefalse
otherwisevoid TypeIIRMLMath::NegateStep1 | ( | double * | ThisCurrentPosition, |
double * | ThisCurrentVelocity, | ||
double * | ThisTargetPosition, | ||
double * | ThisTargetVelocity | ||
) |
Negate input values during Step 1.
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() |
ThisTargetPosition | Pointer to a double value: Target position value for DOF ![]() ![]() ![]() |
ThisTargetVelocity | Pointer to a double value: Target velocity value for DOF ![]() ![]() ![]() |
void TypeIIRMLMath::NegateStep2 | ( | double * | ThisCurrentPosition, |
double * | ThisCurrentVelocity, | ||
double * | ThisTargetPosition, | ||
double * | ThisTargetVelocity, | ||
bool * | Inverted | ||
) |
Negate input values.
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() |
ThisTargetPosition | Pointer to a double value: Target position value for DOF ![]() ![]() ![]() |
ThisTargetVelocity | Pointer to a double value: Target velocity value for DOF ![]() ![]() ![]() |
Inverted | Pointer to bool value: This bit will be flipped; it indicates, whether the input values have been flipped even or odd times, such that succeeding functions can set-up the trajectory parameters correspondingly. |
double TypeIIRMLMath::ProfileStep1NegLinPosLin | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
Calculates the execution time of the NegLinPosLin velocity profile.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
double TypeIIRMLMath::ProfileStep1PosLinHldNegLin | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Calculates the execution time of the PosLinHldNegLin velocity profile.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
double TypeIIRMLMath::ProfileStep1PosLinNegLin | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
Calculates the execution time of the PosLinNegLin velocity profile.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
double TypeIIRMLMath::ProfileStep1PosTrapNegLin | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
Calculates the execution time of the PosTrapNegLin velocity profile.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
double TypeIIRMLMath::ProfileStep1PosTriNegLin | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration | ||
) |
Calculates the execution time of the PosTriNegLin velocity profile.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
void TypeIIRMLMath::ProfileStep2NegLinHldNegLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile NegLinHldNegLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::ProfileStep2NegLinHldNegLinNegLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile NegLinHldNegLinNegLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::ProfileStep2NegLinHldPosLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile NegLinHldPosLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::ProfileStep2PosLinHldNegLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile PosLinHldNegLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::ProfileStep2PosLinHldPosLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile PosLinHldNegLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::ProfileStep2PosTrapNegLin | ( | const double & | CurrentTime, |
const double & | SynchronizationTime, | ||
const double & | CurrentPosition, | ||
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
Parameterization of the Step 2 velocity profile PosTrapNegLin (leaf of the Step 2 decision tree)
CurrentTime | Time in seconds required for preceding intermediate trajectory segments, ![]() ![]() |
SynchronizationTime | Synchronization time in seconds, ![]() |
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegateStep2()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::Quicksort | ( | const int & | LeftBound, |
const int & | RightBound, | ||
double * | ArrayOfValues | ||
) |
Standard implementation of the Quicksort algorithm for double
values.
This function is used to sort of time values that are calculated during Step 1
where is the number of degrees of freedom.
LeftBound | Index value for the left border |
RightBound | Index value for the right border |
ArrayOfValues | A pointer to an array of double values to be sorted |
double TypeIIRMLMath::RMLSqrt | ( | const double & | Value | ) | [inline] |
Calculates the real square root of a given value. If the value is negative a value of almost zero will be returned.
Value | Square root radicand |
void TypeIIRMLMath::Step2WithoutSynchronization | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
const TypeIIRMLMath::Step1_Profile & | UsedProfile, | ||
const double & | MinimumExecutionTime, | ||
MotionPolynomials * | PolynomialsInternal | ||
) |
This function contains sets of trajectory parameters (i.e., all polynomial coefficients) in the case of non-synchronized trajectories.
Based on all input values for one selected degree of freedom and on the velocity profile that was applied in Step 1A, all trajectory parameters, that is, all polynomial coefficients, are set-up. This method is only applied in the case of non-synchronized trajectories (cf. RMLFlags::NO_SYNCHRONIZATION).
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
UsedProfile | The ID of the used acceleration profile in Step 1A (cf. RMLMath::Step1_Profile). |
MinimumExecutionTime | Minimum execution time ![]() ![]() |
PolynomialsInternal | A pointer to a MotionPolynomials object (cf. TypeIIRMLMath::MotionPolynomials). All trajectory parameters of the synchronized Type II trajectory will be written into this object. |
void TypeIIRMLMath::TypeIIRMLDecisionTree1A | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
Step1_Profile * | AppliedProfile, | ||
double * | MinimalExecutionTime | ||
) |
This function contains the decision tree 1A of the Step 1 of the Type II On-Line Trajectory Generation algorithm.
This function calculates the minimum possible trajectory execution time for DOF
at instant
.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
AppliedProfile | A pointer to an int value. The index of the motion profile, which is used to achieve the minimum execution time (cf. TypeIIRMLMath::Step1_Profile) will be copied to this variable. |
MinimalExecutionTime | Pointer to a double value: The actual result of the of this function, that is, minimum possible execution time ![]() |
void TypeIIRMLMath::TypeIIRMLDecisionTree1B | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
double * | MaximalExecutionTime | ||
) |
This function contains the decision tree 1B of the Step 1 of the Type II On-Line Trajectory Generation algorithm.
This function calculates the beginning of possible inoperative time interval, that is, the time for DOF
at instant
.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
MaximalExecutionTime | Pointer to a double value: The actual result of the of this function, that is, the value of the beginning of possible inoperative time interval, that is, the time ![]() ![]() ![]() RML_INFINITY will be written to this variable. |
true
, otherwise false
.void TypeIIRMLMath::TypeIIRMLDecisionTree1C | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
double * | AlternativeExecutionTime | ||
) |
This function contains the decision tree 1C of the Step 1 of the Type II On-Line Trajectory Generation algorithm.
This function calculates the end of an inoperative time interval, that is, the time for DOF
at instant
.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
AlternativeExecutionTime | Pointer to a double value: The actual result of the of this function, that is, the value of the end of the inoperative time interval, that is, the time ![]() ![]() ![]() |
void TypeIIRMLMath::TypeIIRMLDecisionTree2 | ( | const double & | CurrentPosition, |
const double & | CurrentVelocity, | ||
const double & | TargetPosition, | ||
const double & | TargetVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
const double & | SynchronizationTime, | ||
MotionPolynomials * | PolynomialsInternal | ||
) |
This function contains the decision tree of the Step 2 of the Type II On-Line Trajectory Generation algorithm.
This function synchronizes the trajectory for one single degree of freedom to the synchronization time and calculates all trajectory parameters.
CurrentPosition | Current position value for DOF ![]() ![]() ![]() |
CurrentVelocity | Current velocity value for DOF ![]() ![]() ![]() |
TargetPosition | Target position value for DOF ![]() ![]() ![]() |
TargetVelocity | Target velocity value for DOF ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
SynchronizationTime | The synchronization time ![]() |
PolynomialsInternal | A pointer to a MotionPolynomials object (cf. TypeIIRMLMath::MotionPolynomials). All trajectory parameters of the synchronized Type II trajectory will be written into this object. |
void TypeIIRMLMath::VToVMaxStep1 | ( | double * | TotalTime, |
double * | ThisCurrentPosition, | ||
double * | ThisCurrentVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration | ||
) |
One intermediate Step 1 trajectory segment: v -> +vmax (NegLin)
TotalTime | Pointer to a double value: Time in seconds required for preceding trajectory segments. This value will be increased by the amount of time required time for this trajectory segment. |
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
void TypeIIRMLMath::VToVMaxStep2 | ( | double * | ThisCurrentTime, |
double * | ThisCurrentPosition, | ||
double * | ThisCurrentVelocity, | ||
const double & | MaxVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
One intermediate Step 2 trajectory segment: v -> vmax (NegLin)
ThisCurrentTime | Pointer to a double value: Time in seconds required for preceding trajectory segments. This value will be increased by the amount of time required time for this trajectory segment. |
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() ![]() |
MaxVelocity | Maximum allowed velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegatePink()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |
void TypeIIRMLMath::VToZeroStep1 | ( | double * | TotalTime, |
double * | ThisCurrentPosition, | ||
double * | ThisCurrentVelocity, | ||
const double & | MaxAcceleration | ||
) |
One intermediate Step 1 trajectory segment: v -> 0 (NegLin)
TotalTime | Pointer to a double value: Time in seconds required for preceding trajectory segments. This value will be increased by the amount of time required time for this trajectory segment. |
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
void TypeIIRMLMath::VToZeroStep2 | ( | double * | ThisCurrentTime, |
double * | ThisCurrentPosition, | ||
double * | ThisCurrentVelocity, | ||
const double & | MaxAcceleration, | ||
MotionPolynomials * | PolynomialsLocal, | ||
const bool & | Inverted | ||
) |
One intermediate Step 2 trajectory segment: v -> 0 (NegLin)
ThisCurrentTime | Pointer to a double value: Time in seconds required for preceding trajectory segments. This value will be increased by the amount of time required time for this trajectory segment. |
ThisCurrentPosition | Pointer to a double value: Current position value for DOF ![]() ![]() ![]() |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF ![]() ![]() ![]() |
MaxAcceleration | Maximum allowed acceleration value for DOF ![]() ![]() ![]() |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF ![]() ![]() ![]() |
Inverted | A bool value that indicates whether the input values have been flipped even or odd times prior to the execution of this function (cf. TypeIIRMLMath::NegatePink()). The trajectory parameters in PolynomialsLocal will be set-up correspondingly. |