![]() |
Reflexxes Motion Libraries
Manual and Documentation (Type II, Version 1.2.6)
|
The input values of the position-based On-Line Trajectory Generation (OTG) algorithm are set-up through the classes RMLPositionInputParameters and RMLPositionFlags, and the input values of the velocity-based On-Line Trajectory Generation algorithm are set-up through the classes RMLVelocityInputParameters and RMLVelocityFlags. For a detailed description of these classes, please refer to the class documentation, and for a description of the output values, please refer to the Description of Output Values.
This page contains three sections:
The position-based Type II On-Line Trajectory Generation algorithm is executed by a call of ReflexxesAPI::RMLPosition(). The input values for the algorithm at a time instant
are contained in RMLPositionInputParameters:
consisting of
RMLPositionInputParameters::CurrentPositionVector and
RMLPositionInputParameters::CurrentVelocityVector,
consisting of
RMLPositionInputParameters::MaxVelocityVector and
RMLPositionInputParameters::MaxAccelerationVector,
consisting of
RMLPositionInputParameters::TargetPositionVector and
RMLPositionInputParameters::TargetVelocityVector,
RMLPositionInputParameters::SelectionVector, and
RMLPositionInputParameters::MinimumSynchronizationTime.Each vector contains the values for all degrees of freedom
, for instance,
such that the current position value of the degree of freedom with the index
is represented by
.
The selection vector
can be used to mask degrees of freedom individually. If the value of
is false, the degree of freedom with the index
will not be considered by the algorithm.
Besides the input values RMLPositionInputParameters, the class RMLPositionFlags can be used to determine and obtain a certain behavior. The following flags may be used:
A first and simple example that shows, how the position-based input values are commonly set-up, please refer to the Example 1 — Introduction to the Position-based algorithm. A description of the output values of this example can be found at the page Description of Output Values. Please also refer to the Section Input Requirements for Numerical Stability, which describes the input domains of the algorithm.
and
The velocity-based Type II On-Line Trajectory Generation algorithm is executed by a call of ReflexxesAPI::RMLVelocity(), and its input values are the very same as for the position-based algorithm (see above), but the values for the target position
and the maximum velocity vector
are not considered, and the flag RMLPositionFlags::KeepCurrentVelocityInCaseOfFallbackStrategy is not available.
The input values for the velocity-based algorithm at a time instant
are contained in RMLVelocityInputParameters:
consisting of
RMLVelocityInputParameters::CurrentPositionVector and
RMLVelocityInputParameters::CurrentVelocityVector,
consisting of
RMLVelocityInputParameters::MaxAccelerationVector,
consisting of
RMLPositionInputParameters::TargetVelocityVector,
RMLVelocityInputParameters::SelectionVector, and
RMLVelocityInputParameters::MinimumSynchronizationTime.Besides the input values RMLVelocityInputParameters, the class RMLVelocityFlags can be used to determine and obtain a certain behavior. The following flags may be used:
A first and simple example that shows, how the velocity-based input values are commonly set-up, please refer to the Example 4 — Introduction to the Velocity-based algorithm. A description of the output values of this example can be found at the page Description of Output Values. Please also refer to the Section Input Requirements for Numerical Stability, which describes the input domains of the algorithm.
and
In order to assure feasibility and numerical stability, two basic conditions have to be fulfilled for each selected degree of freedom
in order to obtain correct output values:
and the maximum acceleration
must be greater than zero:

has to be greater or equal to the elements of the target velocity
.
Example for a set of valid input values for one degree of freedom
at time instant
used for the position-based algorithm:
Reason:
.
Example for a set of invalid input values for one degree of freedom
at time instant
used for the position-based algorithm:
Reason:
.
The check, whether the input values are valid, can be done with the methods RMLPositionInputParameters::CheckForValidity() and RMLVelocityInputParameters::CheckForValidity().