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/guiplugins/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: