The InterpolationSegmentFactory class Utility Class used to easily create InterpolationSegments, so that every Interpolation can be threated the same An Interpolation produced by this factory always has exactly two Waypoints and is defined between 0 and 1 With 0 being the starting pose and 1 being the end pose.
More...
#include <RobotComponents/gui-plugins/RobotTrajectoryDesignerGuiPlugin/Interpolation/InterpolationSegmentFactory.h>
|
static VirtualRobot::IKSolver::CartesianSelection | getSmallestDominating (std::vector< VirtualRobot::IKSolver::CartesianSelection > selections) |
| getSmallestDominating returns the cartesian selection that dominates all other cartesian selections in selections Examples: (X,Y,Y,Y,Z) -> Pos ; (X,Y, Ori) -> All; (Ori,Ori) -> Ori ; (X,Z,Pos) -> Pos More...
|
|
static bool | isDominantOver (VirtualRobot::IKSolver::CartesianSelection current, VirtualRobot::IKSolver::CartesianSelection other) |
| isDominantOver returns true when current selection dominates other selection Definition: A CartesianSelection dominates another CartesianSelection when additional Information is needed to solve curren after solving other Examples: - X dominates Y ; Y dominates X ; Pos dominates X,Y ans Z but X,Y and Z dont dominate Pos; Pos dominates Ori ; Ori dominates Pos More...
|
|
static bool | needsOptimizing (std::vector< VirtualRobot::IKSolver::CartesianSelection > &selections) |
| needsOptimizing returns true if there is a CartesianSelection at i that dominates a CartesianSelection at i - 1 More...
|
|
static void | optimizeControlPoints (std::vector< PoseBasePtr > &controlPoints, std::vector< VirtualRobot::IKSolver::CartesianSelection > &selections) |
| optimizeControlPoints changes the cartian selections and control points so that the IKSolving produces a smooth Trajectory More...
|
|
static PoseBasePtr | optimizePose (armarx::PoseBasePtr original, armarx::PoseBasePtr corrected, VirtualRobot::IKSolver::CartesianSelection selectionOriginal, VirtualRobot::IKSolver::CartesianSelection selectionCorrected) |
| optimizePose changes the original pose so that the interpolation is smove when it changes from selectionOriginal to selectionCorrected More...
|
|
static std::vector< AbstractInterpolationPtr > | produceInterpolationSegments (std::vector< PoseBasePtr > controlPoints, std::vector< InterpolationType > interpolations) |
| produceInterpolationSegments constructs a vector of AbstractInterpolation the concrete Interpolationtype of which is defined by interpolations More...
|
|
static std::vector< AbstractInterpolationPtr > | produceLinearInterpolationSegments (std::vector< PoseBasePtr > controlPoints) |
| produceInterpolationSegments constructs a vector of LinearInterpolations More...
|
|
static AbstractInterpolationPtr | produceSplineInterpolationSegment (std::vector< PoseBasePtr > controlPoints, PoseBasePtr segmentStart) |
| produceSplineInterpolationSegment constructs the splineInterpolationSegment of a splineInterpolation between given controlPoints More...
|
|
static std::vector< AbstractInterpolationPtr > | produceSplineInterpolationSegments (std::vector< PoseBasePtr > controlPoints) |
| produceInterpolationSegments constructs a vector of SplineInterpolations More...
|
|
The InterpolationSegmentFactory class Utility Class used to easily create InterpolationSegments, so that every Interpolation can be threated the same An Interpolation produced by this factory always has exactly two Waypoints and is defined between 0 and 1 With 0 being the starting pose and 1 being the end pose.
Definition at line 37 of file InterpolationSegmentFactory.h.
◆ getSmallestDominating()
IKSolver::CartesianSelection getSmallestDominating |
( |
std::vector< VirtualRobot::IKSolver::CartesianSelection > |
selections | ) |
|
|
static |
getSmallestDominating returns the cartesian selection that dominates all other cartesian selections in selections Examples: (X,Y,Y,Y,Z) -> Pos ; (X,Y, Ori) -> All; (Ori,Ori) -> Ori ; (X,Z,Pos) -> Pos
- Parameters
-
selections | the selections to get the smallest dominating selection from |
- Returns
- the smmallestDominating Selection
Definition at line 304 of file InterpolationSegmentFactory.cpp.
◆ isDominantOver()
bool isDominantOver |
( |
VirtualRobot::IKSolver::CartesianSelection |
current, |
|
|
VirtualRobot::IKSolver::CartesianSelection |
other |
|
) |
| |
|
static |
isDominantOver returns true when current selection dominates other selection Definition: A CartesianSelection dominates another CartesianSelection when additional Information is needed to solve curren after solving other Examples: - X dominates Y ; Y dominates X ; Pos dominates X,Y ans Z but X,Y and Z dont dominate Pos; Pos dominates Ori ; Ori dominates Pos
- Parameters
-
current | the later cartesian selection |
other | the prior cartesian selection |
- Returns
- true if current dominates other
Definition at line 291 of file InterpolationSegmentFactory.cpp.
◆ needsOptimizing()
bool needsOptimizing |
( |
std::vector< VirtualRobot::IKSolver::CartesianSelection > & |
selections | ) |
|
|
static |
needsOptimizing returns true if there is a CartesianSelection at i that dominates a CartesianSelection at i - 1
- Parameters
-
selections | the cartesian selection that should be reached |
- Returns
- true if the cartesian Selection need optimizing for a smooth trajectory
Definition at line 278 of file InterpolationSegmentFactory.cpp.
◆ optimizeControlPoints()
void optimizeControlPoints |
( |
std::vector< PoseBasePtr > & |
controlPoints, |
|
|
std::vector< VirtualRobot::IKSolver::CartesianSelection > & |
selections |
|
) |
| |
|
static |
◆ optimizePose()
PoseBasePtr optimizePose |
( |
armarx::PoseBasePtr |
original, |
|
|
armarx::PoseBasePtr |
corrected, |
|
|
VirtualRobot::IKSolver::CartesianSelection |
selectionOriginal, |
|
|
VirtualRobot::IKSolver::CartesianSelection |
selectionCorrected |
|
) |
| |
|
static |
optimizePose changes the original pose so that the interpolation is smove when it changes from selectionOriginal to selectionCorrected
- Parameters
-
original | the original Pose |
corrected | the absolute corrected Pose |
selectionOriginal | the cartesian selection associated with the original Pose |
selectionCorrected | the cartesian selection associated with the corrected Pose |
- Returns
Definition at line 347 of file InterpolationSegmentFactory.cpp.
◆ produceInterpolationSegments()
produceInterpolationSegments constructs a vector of AbstractInterpolation the concrete Interpolationtype of which is defined by interpolations
- Parameters
-
controlPoints | the Poses the interpolation curves go through; segment i starts at controlPoint i and ends at control point i + 1 |
interpolations | the InterpolationTypes of the Interpolation segments (warning: at least 2 segments in a row have to have spline intepolation) |
- Returns
- a vector of |controlPoints| - 1 AbstractInterpolations between the control points
Definition at line 36 of file InterpolationSegmentFactory.cpp.
◆ produceLinearInterpolationSegments()
produceInterpolationSegments constructs a vector of LinearInterpolations
- Parameters
-
controlPoints | the Poses the interpolation curves go through; segment i starts at controlPoint i and ends at control point i + 1 |
- Returns
- a vector of |controlPoints| - 1 LinearInterpolations between the control points
Definition at line 151 of file InterpolationSegmentFactory.cpp.
◆ produceSplineInterpolationSegment()
AbstractInterpolationPtr produceSplineInterpolationSegment |
( |
std::vector< PoseBasePtr > |
controlPoints, |
|
|
PoseBasePtr |
segmentStart |
|
) |
| |
|
static |
produceSplineInterpolationSegment constructs the splineInterpolationSegment of a splineInterpolation between given controlPoints
- Parameters
-
controlPoints | the controlPoints of the parent SplineInterpolatiom |
segmentStart | the first Point in the Interval |
- Returns
- a SplineInterpolationSegment between segmentStart and the following control point
Definition at line 178 of file InterpolationSegmentFactory.cpp.
◆ produceSplineInterpolationSegments()
produceInterpolationSegments constructs a vector of SplineInterpolations
- Parameters
-
controlPoints | the Poses the interpolation curves go through; segment i starts at controlPoint i and ends at control point i + 1 |
- Returns
- a vector of |controlPoints| - 1 SplineInterpolations between the control points
Definition at line 165 of file InterpolationSegmentFactory.cpp.
The documentation for this class was generated from the following files: