56 ,
const double &CurrentVelocity
57 ,
const double &TargetPosition
58 ,
const double &TargetVelocity
59 ,
const double &MaxVelocity
60 ,
const double &MaxAcceleration
61 ,
double *MaximalExecutionTime)
63 double ThisCurrentPosition = CurrentPosition
64 , ThisCurrentVelocity = CurrentVelocity
65 , ThisTargetPosition = TargetPosition
66 , ThisTargetVelocity = TargetVelocity ;
68 *MaximalExecutionTime = 0.0;
73 goto MDecision_1B__002;
78 , &ThisCurrentVelocity
80 , &ThisTargetVelocity );
82 goto MDecision_1B__002;
89 goto MDecision_1B__003;
94 , &ThisCurrentPosition
95 , &ThisCurrentVelocity
99 goto MDecision_1B__003;
105 goto MDecision_1B__004;
110 goto END_OF_THIS_FUNCTION;
115 , ThisTargetVelocity ))
117 goto MDecision_1B__005;
121 goto MDecision_1B__007;
126 , ThisCurrentVelocity
131 goto MDecision_1B__006;
136 goto END_OF_THIS_FUNCTION;
141 , ThisCurrentVelocity
147 goto END_OF_THIS_FUNCTION;
152 , ThisCurrentVelocity
156 goto END_OF_THIS_FUNCTION;
161 , ThisCurrentVelocity
167 goto END_OF_THIS_FUNCTION;
171 goto MDecision_1B__006;
174 END_OF_THIS_FUNCTION:
void VToVMaxStep1(double *TotalTime, double *ThisCurrentPosition, double *ThisCurrentVelocity, const double &MaxVelocity, const double &MaxAcceleration)
One intermediate Step 1 trajectory segment: v -> +vmax (NegLin)
Header file for decisions of the two decision trees of the Type II On-Line Trajectory Generation algo...
bool Decision_1B__004(const double &CurrentVelocity, const double &TargetVelocity)
Is (vi <= vtrgt)?
void NegateStep1(double *ThisCurrentPosition, double *ThisCurrentVelocity, double *ThisTargetPosition, double *ThisTargetVelocity)
Negate input values during Step 1.
bool Decision_1B__001(const double &CurrentVelocity)
Is (vi >= 0)?
Header file for functions and definitions of constant values and macros.
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 Generatio...
#define RML_INFINITY
A value for infinity .
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 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__002(const double &CurrentVelocity, const double &MaxVelocity)
Is (vi <= +vmax)?
Header file for the Step 1 decision tree 1B of the Type II On-Line Trajectory Generation algorithm...
bool Decision_1B__003(const double &TargetVelocity)
Is (vtrgt >= 0)?
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?
Header file for the Step 1 motion profiles.
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?