com.kuka.nav.fleet.graph.properties
Class EdgeAction

java.lang.Object
  extended by com.kuka.nav.fleet.graph.properties.AbstractProperty
      extended by com.kuka.nav.fleet.graph.properties.AbstractEdgeMotionProperty
          extended by com.kuka.nav.fleet.graph.properties.EdgeAction
All Implemented Interfaces:
EdgeMotion, Property, Serializable

public class EdgeAction
extends AbstractEdgeMotionProperty
implements EdgeMotion

Represents action performed for traversing an edge.

See Also:
Serialized Form

Constructor Summary
EdgeAction()
          Creates a new edge action property.
EdgeAction(String id)
          Creates a new edge action property with given action ID.
 
Method Summary
 boolean blocksCompleteEdge()
          Returns true if executing the corresponding motion requires the complete edge to be considered as blocked.
 com.kuka.nav.geometry.BlendingDiscretizationInfo computeBlendingPoses(com.kuka.nav.Pose start1, com.kuka.nav.Pose goal1, double blendingCart, EdgeMotion motion2, com.kuka.nav.Pose start2, com.kuka.nav.Pose goal2, com.kuka.nav.robot.DriveType type)
          Computes the blending poses on the blending segment and the actual blending radius.
 String getActionID()
           
 com.kuka.nav.geometry.BlendingContext getBlendingContext(com.kuka.nav.Pose start, com.kuka.nav.Pose goal)
          Gets the blending context for the specific motion (its more for internal usage, method computeBlendingPOses calls this method).
 EdgeMotion getCopyWithOrientation(double ori)
          Creates a copy of this edge motion which has no edge-orientations and the single goal orientation is the one given as input parameter.
 Double getCost()
           
 String getValueToDisplay()
          Returns the value(s) in a way to show it in a UI.
 boolean isBlendingSupported()
          Checks whether this edge motion supports blending.
 boolean isReachableOrientation(double startOri, double goalOri, double edgeAngle, double allowedOriDelta, com.kuka.nav.robot.DriveType drive)
          Checks whether the given goal orientation is reachable from the given start orientation based on this edge motion.
 boolean isRecoverable()
          Checks whether recovery actions (start- or path-recovery) are applicable to this motion property.
 boolean isRotationAllowed()
          Checks whether this edge motion allows the robot to rotate while moving along the corresponding edge.
 void setActionID(String id)
          Sets the ID of the edge traversal action.
 void setCost(Double cost)
          Sets the additional cost that the edge action defines.
 String toString()
           
 
Methods inherited from class com.kuka.nav.fleet.graph.properties.AbstractEdgeMotionProperty
getClosestPointOnMotion, getGoalOrientations, getGoalOris, getLineOris, getMotions, getPathOrientations, getRelativeGoalOrientations, getRelativeStartOrientations, getStartOrientations, setGoalOris, setLineOris
 
Methods inherited from class com.kuka.nav.fleet.graph.properties.AbstractProperty
equals, fireChanged, getAllowedTypes, getId, hashCode, setId, tryGetParamFromString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.kuka.nav.fleet.graph.properties.EdgeMotion
getClosestPointOnMotion, getGoalOrientations, getMotions, getPathOrientations, getRelativeGoalOrientations, getRelativeStartOrientations, getStartOrientations
 
Methods inherited from interface com.kuka.nav.fleet.graph.properties.Property
getAllowedTypes, getId, setId
 

Constructor Detail

EdgeAction

public EdgeAction()
Creates a new edge action property.


EdgeAction

public EdgeAction(String id)
Creates a new edge action property with given action ID.

Parameters:
id - the action id
Method Detail

getActionID

public String getActionID()
Returns:
The ID of the edge traversal action.

setActionID

public void setActionID(String id)
Sets the ID of the edge traversal action.

Parameters:
id - action ID

isRotationAllowed

public boolean isRotationAllowed()
Description copied from interface: EdgeMotion
Checks whether this edge motion allows the robot to rotate while moving along the corresponding edge.

Specified by:
isRotationAllowed in interface EdgeMotion
Returns:
true if this edge motion allows rotation, false otherwise

isRecoverable

public boolean isRecoverable()
Description copied from interface: EdgeMotion
Checks whether recovery actions (start- or path-recovery) are applicable to this motion property.

Specified by:
isRecoverable in interface EdgeMotion
Returns:
true if and only if this motion property is recoverable.

isReachableOrientation

public boolean isReachableOrientation(double startOri,
                                      double goalOri,
                                      double edgeAngle,
                                      double allowedOriDelta,
                                      com.kuka.nav.robot.DriveType drive)
Description copied from interface: EdgeMotion
Checks whether the given goal orientation is reachable from the given start orientation based on this edge motion.

Specified by:
isReachableOrientation in interface EdgeMotion
Parameters:
startOri - the start orientation (in [rad] with respect to the global coordinate system)
goalOri - the goal orientation (in [rad] with respect to the global coordinate system)
edgeAngle - the angle of the edge where this motion is parameterized in [rad] with respect to the global coordinate system)
allowedOriDelta - the maximum difference until which orientation are considered equal
drive - the drive type of the vehicle
Returns:
true if this edge motion allows rotation from the given start to the given goal orientation, false otherwise

isBlendingSupported

public boolean isBlendingSupported()
Description copied from interface: EdgeMotion
Checks whether this edge motion supports blending.

Specified by:
isBlendingSupported in interface EdgeMotion
Returns:
true if this this edge motion supports blending.

blocksCompleteEdge

public boolean blocksCompleteEdge()
Description copied from interface: EdgeMotion
Returns true if executing the corresponding motion requires the complete edge to be considered as blocked. Otherwise only start and goal pose are considered as blocked.

Specified by:
blocksCompleteEdge in interface EdgeMotion
Returns:
true if executing the corresponding motion requires the complete edge to be considered as blocked

toString

public String toString()
Overrides:
toString in class AbstractEdgeMotionProperty

getCost

public Double getCost()
Returns:
the additional cost that the edge action defines.

setCost

public void setCost(Double cost)
Sets the additional cost that the edge action defines.

Parameters:
cost - the cost to be set

getValueToDisplay

public String getValueToDisplay()
Description copied from interface: Property
Returns the value(s) in a way to show it in a UI.

Specified by:
getValueToDisplay in interface Property
Overrides:
getValueToDisplay in class AbstractEdgeMotionProperty
Returns:
the values

computeBlendingPoses

public com.kuka.nav.geometry.BlendingDiscretizationInfo computeBlendingPoses(com.kuka.nav.Pose start1,
                                                                             com.kuka.nav.Pose goal1,
                                                                             double blendingCart,
                                                                             EdgeMotion motion2,
                                                                             com.kuka.nav.Pose start2,
                                                                             com.kuka.nav.Pose goal2,
                                                                             com.kuka.nav.robot.DriveType type)
Description copied from interface: EdgeMotion
Computes the blending poses on the blending segment and the actual blending radius. If blending is possible it includes at least start and end pose on blending (by default 2 additional poses on 33% and 66% of the path distance are returned, i.e. the returned list contains 4 poses). If blending is not possible the returned list is empty. This can only happen if the drive type is DriveType.DIFFERENTIAL and the relative orientations to the path at start and goal position differ.

Specified by:
computeBlendingPoses in interface EdgeMotion
Parameters:
start1 - start pose on edge 1
goal1 - goal pose on edge 1
blendingCart - blending parameter
motion2 - motion for second edge
start2 - start pose on edge 2
goal2 - goal pose on edge 2
type - drive type holonomic or differential
Returns:
the discretization information for the blending segment

getBlendingContext

public com.kuka.nav.geometry.BlendingContext getBlendingContext(com.kuka.nav.Pose start,
                                                                com.kuka.nav.Pose goal)
Description copied from interface: EdgeMotion
Gets the blending context for the specific motion (its more for internal usage, method computeBlendingPOses calls this method).

Specified by:
getBlendingContext in interface EdgeMotion
Parameters:
start - start pose
goal - goal pose
Returns:
blending context

getCopyWithOrientation

public EdgeMotion getCopyWithOrientation(double ori)
Description copied from interface: EdgeMotion
Creates a copy of this edge motion which has no edge-orientations and the single goal orientation is the one given as input parameter. Otherwise, the copied motion has the same properties.

Specified by:
getCopyWithOrientation in interface EdgeMotion
Returns:
the copy.


Copyright © 2019. All rights reserved.