57 ,
const double &CurrentVelocity
58 ,
const double &TargetPosition
59 ,
const double &TargetVelocity
60 ,
const double &MaxVelocity
61 ,
const double &MaxAcceleration
62 ,
const double &SynchronizationTime
65 bool Inverted = false ;
67 double CurrentTime = 0.0
68 , ThisCurrentPosition = CurrentPosition
69 , ThisCurrentVelocity = CurrentVelocity
70 , ThisTargetPosition = TargetPosition
71 , ThisTargetVelocity = TargetVelocity ;
76 goto MDecision_2___002;
81 , &ThisCurrentVelocity
86 goto MDecision_2___002;
93 goto MDecision_2___003;
98 , &ThisCurrentPosition
99 , &ThisCurrentVelocity
102 , &(*PolynomialsInternal)
105 goto MDecision_2___003;
110 , ThisTargetVelocity ))
112 goto MDecision_2___004;
116 goto MDecision_2___007;
121 , ThisCurrentVelocity
126 , SynchronizationTime ))
129 , SynchronizationTime
130 , ThisCurrentPosition
131 , ThisCurrentVelocity
135 , &(*PolynomialsInternal)
137 goto END_OF_THIS_FUNCTION;
141 goto MDecision_2___005;
146 , ThisCurrentVelocity
151 , SynchronizationTime ))
154 , SynchronizationTime
155 , ThisCurrentPosition
156 , ThisCurrentVelocity
160 , &(*PolynomialsInternal)
162 goto END_OF_THIS_FUNCTION;
166 goto MDecision_2___006;
171 , SynchronizationTime
172 , ThisCurrentPosition
173 , ThisCurrentVelocity
179 , SynchronizationTime
180 , ThisCurrentPosition
181 , ThisCurrentVelocity
185 , &(*PolynomialsInternal)
187 goto END_OF_THIS_FUNCTION;
192 , &ThisCurrentPosition
193 , &ThisCurrentVelocity
195 , &(*PolynomialsInternal)
199 , &ThisCurrentVelocity
200 , &ThisTargetPosition
201 , &ThisTargetVelocity
205 , SynchronizationTime
206 , ThisCurrentPosition
207 , ThisCurrentVelocity
211 , &(*PolynomialsInternal)
213 goto END_OF_THIS_FUNCTION;
220 goto MDecision_2___008;
224 goto MDecision_2___010;
229 , ThisCurrentVelocity
234 , SynchronizationTime ))
237 , SynchronizationTime
238 , ThisCurrentPosition
239 , ThisCurrentVelocity
243 , &(*PolynomialsInternal)
245 goto END_OF_THIS_FUNCTION;
249 goto MDecision_2___009;
254 , ThisCurrentVelocity
259 , SynchronizationTime ))
262 , SynchronizationTime
263 , ThisCurrentPosition
264 , ThisCurrentVelocity
268 , &(*PolynomialsInternal)
270 goto END_OF_THIS_FUNCTION;
274 goto MDecision_2___006;
279 , ThisCurrentVelocity
285 , &ThisCurrentPosition
286 , &ThisCurrentVelocity
288 , &(*PolynomialsInternal)
292 , &ThisCurrentVelocity
293 , &ThisTargetPosition
294 , &ThisTargetVelocity
297 goto MDecision_2___011;
301 goto MDecision_2___012;
306 , ThisCurrentVelocity
311 , SynchronizationTime ))
314 , SynchronizationTime
315 , ThisCurrentPosition
316 , ThisCurrentVelocity
320 , &(*PolynomialsInternal)
322 goto END_OF_THIS_FUNCTION;
327 , SynchronizationTime
328 , ThisCurrentPosition
329 , ThisCurrentVelocity
333 , &(*PolynomialsInternal)
335 goto END_OF_THIS_FUNCTION;
340 , ThisCurrentVelocity
345 , SynchronizationTime ))
348 , SynchronizationTime
349 , ThisCurrentPosition
350 , ThisCurrentVelocity
354 , &(*PolynomialsInternal)
356 goto END_OF_THIS_FUNCTION;
361 , SynchronizationTime
362 , ThisCurrentPosition
363 , ThisCurrentVelocity
367 , &(*PolynomialsInternal)
369 goto END_OF_THIS_FUNCTION;
372 END_OF_THIS_FUNCTION:
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 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 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 NegateStep2(double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity, bool *Inverted)
Negate input values.
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?
Header file for the Step 2 motion profiles.
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 a...
bool Decision_2___002(const double &CurrentVelocity, const double &MaxVelocity)
Is (vi <= +vmax)?
Header file for decisions of the two decision trees of the Type II On-Line Trajectory Generation algo...
Three arrays of TypeIIRMLMath::TypeIIRMLPolynomial.
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 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) ...
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?
Header file for functions and definitions of constant values and macros.
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)?
Header file for the Step 2 decision tree of the Type II On-Line Trajectory Generation algorithm (time...
bool Decision_2___001(const double &CurrentVelocity)
Is (vi >= 0)?
bool Decision_2___007(const double &TargetVelocity)
Is (vtrgt >= 0)?
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)
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?
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 tr...
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___003(const double &CurrentVelocity, const double &TargetVelocity)
Is (vi <= vtrgt)?
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___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___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?
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) ...