Classes | |
struct | MotionPolynomials |
Three arrays of TypeIIRMLMath::TypeIIRMLPolynomial. More... | |
class | TypeIIRMLPolynomial |
This class realizes polynomials of degree three as required for the Type II On-Line Trajectory Generation algorithm. 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)? More... | |
bool | Decision_1A__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? More... | |
bool | Decision_1A__003 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? More... | |
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? More... | |
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? More... | |
bool | Decision_1A__006 (const double &TargetVelocity) |
Is (vtrgt >= 0)? More... | |
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? More... | |
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? More... | |
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? More... | |
bool | Decision_1B__001 (const double &CurrentVelocity) |
Is (vi >= 0)? More... | |
bool | Decision_1B__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? More... | |
bool | Decision_1B__003 (const double &TargetVelocity) |
Is (vtrgt >= 0)? More... | |
bool | Decision_1B__004 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? More... | |
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? More... | |
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? More... | |
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? More... | |
bool | Decision_1C__001 (const double &CurrentVelocity) |
Is (vi >= 0)? More... | |
bool | Decision_1C__002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? More... | |
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? More... | |
bool | Decision_2___001 (const double &CurrentVelocity) |
Is (vi >= 0)? More... | |
bool | Decision_2___002 (const double &CurrentVelocity, const double &MaxVelocity) |
Is (vi <= +vmax)? More... | |
bool | Decision_2___003 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? More... | |
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? More... | |
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? More... | |
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)? More... | |
bool | Decision_2___007 (const double &TargetVelocity) |
Is (vtrgt >= 0)? More... | |
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? More... | |
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? More... | |
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? More... | |
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? More... | |
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? More... | |
bool | Decision_V___001 (const double &CurrentVelocity, const double &TargetVelocity) |
Is (vi <= vtrgt)? More... | |
bool | IsEpsilonEquality (const double &Value1, const double &Value2, const double &Epsilon) |
Checks epsilon equality for two values. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | NegateStep1 (double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity) |
Negate input values during Step 1. More... | |
void | NegateStep2 (double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity, bool *Inverted) |
Negate input values. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
void | Quicksort (const int &LeftBound, const int &RightBound, double *ArrayOfValues) |
Standard implementation of the Quicksort algorithm for double values. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | VToVMaxStep1 (double *TotalTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxVelocity, const double &MaxAcceleration) |
One intermediate Step 1 trajectory segment: v -> +vmax (NegLin) More... | |
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) More... | |
void | VToZeroStep1 (double *TotalTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxAcceleration) |
One intermediate Step 1 trajectory segment: v -> 0 (NegLin) More... | |
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) More... | |
Enumeration of all possible profiles of Step 1 (A, B, and C).
Definition at line 71 of file TypeIIRMLStep1Profiles.h.
Enumeration of all possible profiles of Step 2.
Definition at line 69 of file TypeIIRMLStep2Profiles.h.
bool TypeIIRMLMath::Decision_1A__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
Definition at line 52 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1A__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
Definition at line 61 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1A__003 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
Definition at line 71 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 81 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 96 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1A__006 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
Definition at line 114 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 123 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 138 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 154 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1B__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
Definition at line 171 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1B__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
Definition at line 180 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1B__003 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
Definition at line 191 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1B__004 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
Definition at line 200 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 211 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 228 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 243 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1C__001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
Definition at line 260 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_1C__002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
Definition at line 269 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 280 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_2___001 | ( | const double & | CurrentVelocity | ) |
Is (vi >= 0)?
Definition at line 299 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_2___002 | ( | const double & | CurrentVelocity, |
const double & | MaxVelocity | ||
) |
Is (vi <= +vmax)?
Definition at line 308 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_2___003 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
Definition at line 319 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 330 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 348 of file TypeIIRMLDecisions.cpp.
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)?
Definition at line 366 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_2___007 | ( | const double & | TargetVelocity | ) |
Is (vtrgt >= 0)?
Definition at line 385 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 394 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 412 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 430 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 447 of file TypeIIRMLDecisions.cpp.
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?
Definition at line 468 of file TypeIIRMLDecisions.cpp.
bool TypeIIRMLMath::Decision_V___001 | ( | const double & | CurrentVelocity, |
const double & | TargetVelocity | ||
) |
Is (vi <= vtrgt)?
Definition at line 485 of file TypeIIRMLDecisions.cpp.
|
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
Definition at line 330 of file TypeIIRMLMath.h.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
true
if a valid solution would be possiblefalse
otherwiseDefinition at line 144 of file TypeIIRMLStep1Profiles.cpp.
bool 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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
true
if a valid solution would be possiblefalse
otherwiseDefinition at line 180 of file TypeIIRMLStep1Profiles.cpp.
bool 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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
true
if a valid solution would be possiblefalse
otherwiseDefinition at line 327 of file TypeIIRMLStep1Profiles.cpp.
bool 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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
true
if a valid solution would be possiblefalse
otherwiseDefinition at line 254 of file TypeIIRMLStep1Profiles.cpp.
void 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 at instant , . The sign of this value will be flipped. |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , The sign of this value will be flipped. |
ThisTargetPosition | Pointer to a double value: Target position value for DOF at instant , The sign of this value will be flipped. |
ThisTargetVelocity | Pointer to a double value: Target velocity value for DOF at instant , The sign of this value will be flipped. |
Definition at line 55 of file TypeIIRMLStep1IntermediateProfiles.cpp.
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 at instant , . The sign of this value will be flipped. |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , The sign of this value will be flipped. |
ThisTargetPosition | Pointer to a double value: Target position value for DOF at instant , The sign of this value will be flipped. |
ThisTargetVelocity | Pointer to a double value: Target velocity value for DOF at instant , The sign of this value will be flipped. |
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. |
Definition at line 55 of file TypeIIRMLStep2IntermediateProfiles.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
Definition at line 126 of file TypeIIRMLStep1Profiles.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
Definition at line 54 of file TypeIIRMLStep1Profiles.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
Definition at line 73 of file TypeIIRMLStep1Profiles.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
Definition at line 109 of file TypeIIRMLStep1Profiles.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
Definition at line 91 of file TypeIIRMLStep1Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 504 of file TypeIIRMLStep2Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 812 of file TypeIIRMLStep2Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 353 of file TypeIIRMLStep2Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 54 of file TypeIIRMLStep2Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 205 of file TypeIIRMLStep2Profiles.cpp.
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, , where is the number of preceding trajectory segments. |
SynchronizationTime | Synchronization time in seconds, |
CurrentPosition | Current position value for DOF at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will set-up all remaining trajectory parameters. |
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. |
Definition at line 652 of file TypeIIRMLStep2Profiles.cpp.
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 |
Definition at line 52 of file TypeIIRMLQuicksort.cpp.
|
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 |
Definition at line 291 of file TypeIIRMLMath.h.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
UsedProfile | The ID of the used acceleration profile in Step 1A (cf. RMLMath::Step1_Profile). |
MinimumExecutionTime | Minimum execution time for the current degree of freedom (i.e., the result of profiles of the Step 1A 1A decision tree. |
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. |
Definition at line 57 of file TypeIIRMLStep2WithoutSynchronization.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
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 will be copied to this variable. |
Definition at line 56 of file TypeIIRMLDecisionTree1A.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
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 for DOF at instant . If no inoperative time interval is existent, a value of RML_INFINITY will be written to this variable. |
true
, otherwise false
.Definition at line 55 of file TypeIIRMLDecisionTree1B.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
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 for DOF at instant . |
Definition at line 56 of file TypeIIRMLDecisionTree1C.cpp.
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 at instant , |
CurrentVelocity | Current velocity value for DOF at instant , |
TargetPosition | Target position value for DOF at instant , |
TargetVelocity | Target velocity value for DOF at instant , |
MaxVelocity | Maximum allowed velocity value for DOF at instant , |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , |
SynchronizationTime | The synchronization time that was calculated in Step 1 of the On-Line Trajectory Generation algorithm (in seconds). |
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. |
Definition at line 56 of file TypeIIRMLDecisionTree2.cpp.
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 at instant , . This value will be changed by the function in order to intermediately reach an acceleration value of zero. |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , This value will be increased in order to intermediately reach an acceleration value of . |
MaxVelocity | Maximum allowed velocity value for DOF at instant , . |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , . |
Definition at line 72 of file TypeIIRMLStep1IntermediateProfiles.cpp.
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 at instant , . This value will be changed by the function in order to intermediately reach the maximum velocity value, . |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , This value will be increased in order to intermediately reach the maximum velocity value, . |
MaxVelocity | Maximum allowed velocity value for DOF at instant , . |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , . |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will add one further trajectory segment to this object. |
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. |
Definition at line 74 of file TypeIIRMLStep2IntermediateProfiles.cpp.
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 at instant , . This value will be changed by the function in order to intermediately reach an acceleration value of zero. |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , This value will be increased in order to intermediately reach an acceleration value of . |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , . |
Definition at line 93 of file TypeIIRMLStep1IntermediateProfiles.cpp.
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 at instant , . This value will be changed by the function in order to intermediately reach a velocity value of zero. |
ThisCurrentVelocity | Pointer to a double value: Current velocity value for DOF at instant , This value will be increased in order to intermediately reach a velocity value of zero. |
MaxAcceleration | Maximum allowed acceleration value for DOF at instant , . |
PolynomialsLocal | Pointer to a MotionPolynomials object, which contains the complete trajectory for one single DOF at instant , . This function will add one further trajectory segment to this object. |
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. |
Definition at line 114 of file TypeIIRMLStep2IntermediateProfiles.cpp.