com.kuka.nav.geometry
Interface SplineCalculation


public interface SplineCalculation

Helper methods to calculate some poses on a virtual line (spline).


Method Summary
 BlendingDiscretizationInfo getBlendingDiscretization(BlendingContext context1, BlendingContext context2, double blendingCart, int virtualLinesPerSegment, boolean holonom)
          Calculates blending discretization information between 2 motions which define a blending context (Virtual Line Motion or Virtual Path motion).
 List<com.kuka.util.Pair<Pose,Double>> getBlendingSegmentPointsOnPaths(BlendingContext context1, BlendingContext context2, double blendingCart, int virtualLinesPerSegment, boolean holonom)
          Calculates points on the blending segment between 2 motions which define a blending context (Virtual Line Motion or Virtual Path motion).
 List<Pose> getSplineFromPath(List<SplineSegment> pathSegments, int approximationAmount)
          Calculates a given amount of poses for each motion segment for collision.
 List<Pose> getSplinePartsFromPath(List<SplineSegment> pathSegments, Pose entryPose, Pose exitPose, int virtualLinesPerSegment, boolean forward)
          Samples poses on spline (parts).
 

Method Detail

getSplineFromPath

List<Pose> getSplineFromPath(List<SplineSegment> pathSegments,
                             int approximationAmount)
Calculates a given amount of poses for each motion segment for collision.

Parameters:
pathSegments - all path segments of one virtual path
approximationAmount - how many virtual lines should approximate each segment, if the value is very high than lots of collision checks must be calculated, if the value is too small a collision could happens. Which the correct amount is depends on the form of virtual path.
Returns:
list of poses for collision calculation, each pose is to be understood in global coordinates

getBlendingSegmentPointsOnPaths

List<com.kuka.util.Pair<Pose,Double>> getBlendingSegmentPointsOnPaths(BlendingContext context1,
                                                                      BlendingContext context2,
                                                                      double blendingCart,
                                                                      int virtualLinesPerSegment,
                                                                      boolean holonom)
Calculates points on the blending segment between 2 motions which define a blending context (Virtual Line Motion or Virtual Path motion). If blending is not possible the returned list is empty. This can only happen if holonom is set to false and the relative orientations to the path at start and goal position differ.

Parameters:
context1 - blending context information to define segments and the orientations
context2 - blending context information to define segments and the orientations
blendingCart - blending point which is set in motion properties (on first motion)
virtualLinesPerSegment - number how many points should be returned
holonom - if true the robot robot type is holonomic, false if it is a differential drive
Returns:
a list of pose on blending segment first is the outgoing blending point on first motion, last pose is the incoming blending point on second motion

getBlendingDiscretization

BlendingDiscretizationInfo getBlendingDiscretization(BlendingContext context1,
                                                     BlendingContext context2,
                                                     double blendingCart,
                                                     int virtualLinesPerSegment,
                                                     boolean holonom)
Calculates blending discretization information between 2 motions which define a blending context (Virtual Line Motion or Virtual Path motion). This information consists of the actual blending radius (which may be smaller than the configured blending radius, depending on the length of the motion which is blended to) and of a list points which discretize the blending segment. If blending is not possible the radius is null and the list is empty. This can only happen if holonom is set to false and the relative orientations to the path at start and goal position differ.

Parameters:
context1 - blending context information to define segments and the orientations
context2 - blending context information to define segments and the orientations
blendingCart - blending point which is set in motion properties (on first motion)
virtualLinesPerSegment - number how many points should be returned
holonom - if true the robot robot type is holonomic, false if it is a differential drive
Returns:
a list of pose on blending segment first is the outgoing blending point on first motion, last pose is the incoming blending point on second motion

getSplinePartsFromPath

List<Pose> getSplinePartsFromPath(List<SplineSegment> pathSegments,
                                  Pose entryPose,
                                  Pose exitPose,
                                  int virtualLinesPerSegment,
                                  boolean forward)
Samples poses on spline (parts).

Parameters:
pathSegments - path segments
entryPose - pose (map coordinates) where path resulting from splines is entered (not necessarily the start pose of the first spline if the path is blended to)
exitPose - pose (map coordinates) where path resulting from splines is exited (not necessarily the end pose of the last spline if the path is blended from)
virtualLinesPerSegment - amount of virtual lines
forward - all vehicles drive with 0 or 180 degrees on the path. forward is true if vehicle drives with 0 degrees.
Returns:
list of poses (map coordinates) on spline between both given poses (first pose is given entry pose and last pose is given exit pose).


Copyright © 2019. All rights reserved.