com.kuka.nav.path
Class VirtualPathMotionProperty

java.lang.Object
  extended by com.kuka.nav.fleet.graph.properties.AbstractProperty
      extended by com.kuka.nav.path.VirtualPathMotionProperty
All Implemented Interfaces:
com.kuka.nav.fleet.graph.properties.EdgeGoalBasedMotion, com.kuka.nav.fleet.graph.properties.EdgeMotion, com.kuka.nav.fleet.graph.properties.EdgeMotionWithOrientation, com.kuka.nav.fleet.graph.properties.EdgeTrackingBasedMotion, com.kuka.nav.fleet.graph.properties.Property, Serializable

public class VirtualPathMotionProperty
extends com.kuka.nav.fleet.graph.properties.AbstractProperty
implements com.kuka.nav.fleet.graph.properties.EdgeGoalBasedMotion, com.kuka.nav.fleet.graph.properties.EdgeMotionWithOrientation, com.kuka.nav.fleet.graph.properties.EdgeTrackingBasedMotion

Property defining parameters for a virtual path motion associated to a topology graph edge.

See Also:
Serialized Form

Constructor Summary
VirtualPathMotionProperty()
           
 
Method Summary
 boolean blocksCompleteEdge()
           
 com.kuka.nav.geometry.BlendingDiscretizationInfo computeBlendingPoses(com.kuka.nav.Pose start1, com.kuka.nav.Pose goal1, double blendingCart, com.kuka.nav.fleet.graph.properties.EdgeMotion motion2, com.kuka.nav.Pose start2, com.kuka.nav.Pose goal2, com.kuka.nav.robot.DriveType type)
           
 com.kuka.nav.geometry.BlendingContext getBlendingContext(com.kuka.nav.Pose start, com.kuka.nav.Pose goal)
           
 com.kuka.nav.Position getClosestPointOnMotion(com.kuka.nav.Position start, com.kuka.nav.Position end, com.kuka.nav.Position position)
           
 com.kuka.nav.fleet.graph.properties.EdgeMotion getCopyWithOrientation(double ori)
           
 Double getGoalAccuracyRot()
           Note that a goal accuracy is currently not supported by the virtual path motion, therefore the returned value of this method will always be null.
 Double getGoalAccuracyTrans()
           Note that a goal accuracy is currently not supported by the virtual path motion, therefore the returned value of this method will always be null.
 List<Double> getGoalOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
           Note that this method can be called only after setting the path data and map id using setPathData(VirtualPathData) and setMapId(int).
 List<com.kuka.nav.TupleSE2> getMotions(com.kuka.nav.TupleSE2 srcPose, com.kuka.nav.Pose entryPose, com.kuka.nav.TupleSE2 tgtPose, com.kuka.nav.Pose exitPose, double oriDelta)
           
 String getPathName()
          Returns the name of the corresponding virtual path.
 Collection<Double> getPathOrientations()
          Returns the allowed set of orientations relative to the path.
 String getPathOris()
          Gets the allowed orientations of the robot towards the virtual path.
 List<Double> getRelativeGoalOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
           The returned list will be empty.
 List<Double> getRelativeStartOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
           
 List<Double> getStartOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
           
 String getTrackAccuracy()
          Gets the tracking accuracy.
 Double getTrackingAccuracyRot()
          Gets the rotational tracking accuracy in [rad].
 Double getTrackingAccuracyTrans()
          Gets the translational tracking accuracy in meters.
 String getValueToDisplay()
           
 boolean isBlendingSupported()
           
 boolean isReachableOrientation(double startOri, double goalOri, double edgeAngle, double allowedOriDelta, com.kuka.nav.robot.DriveType drive)
           
 boolean isRecoverable()
           
 boolean isRotationAllowed()
           
 void resetPath()
          Resets this virtual path motion property's path instance to null.
 void setMapId(int mapId)
          Sets the map id the corresponding virtual path is located on.
 void setPathData(VirtualPathData paths)
          Sets the path data used to determine the goal orientations and to sample the motion.
 void setPathName(String pathName)
          Sets the name of the corresponding virtual path.
 void setPathOris(String pathOris)
          Sets the allowed orientation of robot to virtual path.
 void setTrackAccuracy(String trackAccuracy)
          Sets the tracking accuracy.
 String toString()
           
 
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.Property
getAllowedTypes, getId, setId
 

Constructor Detail

VirtualPathMotionProperty

public VirtualPathMotionProperty()
Method Detail

setPathData

public void setPathData(VirtualPathData paths)
Sets the path data used to determine the goal orientations and to sample the motion.

Parameters:
paths - the virtual path data source
See Also:
setMapId(int)

setMapId

public void setMapId(int mapId)
Sets the map id the corresponding virtual path is located on. It is used to load the path from the data source to determine the goal orientations and to sample the motion.

Parameters:
mapId - the id of the map
See Also:
setPathData(VirtualPathData)

getPathName

public String getPathName()
Returns the name of the corresponding virtual path.

Returns:
the name of the virtual path

setPathName

public void setPathName(String pathName)
Sets the name of the corresponding virtual path.

Parameters:
pathName - the name of the corresponding virtual path

getPathOris

public String getPathOris()
Gets the allowed orientations of the robot towards the virtual path.

Returns:
the list of allowed path orientations

setPathOris

public void setPathOris(String pathOris)
Sets the allowed orientation of robot to virtual path.

Parameters:
pathOris - allowed orientation of robot to virtual path

getPathOrientations

public Collection<Double> getPathOrientations()
Returns the allowed set of orientations relative to the path.

Specified by:
getPathOrientations in interface com.kuka.nav.fleet.graph.properties.EdgeMotion
Returns:
the allowed set of orientations relative to the path

resetPath

public void resetPath()
Resets this virtual path motion property's path instance to null. Should be called whenever anything changes in the database image of the path such that it gets reloaded from the database.


getStartOrientations

public List<Double> getStartOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
Specified by:
getStartOrientations in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getRelativeStartOrientations

public List<Double> getRelativeStartOrientations(com.kuka.nav.fleet.graph.TopologyNode node)
Specified by:
getRelativeStartOrientations in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getGoalOrientations

public List<Double> getGoalOrientations(com.kuka.nav.fleet.graph.TopologyNode node)

Note that this method can be called only after setting the path data and map id using setPathData(VirtualPathData) and setMapId(int). If this property is part of a persisted topology graph these methods will be called by the virtual path component after loading the graph from the data source, i.e. they do not have to be called manually.

Specified by:
getGoalOrientations in interface com.kuka.nav.fleet.graph.properties.EdgeMotion
See Also:
setPathData(VirtualPathData), setMapId(int)

getRelativeGoalOrientations

public List<Double> getRelativeGoalOrientations(com.kuka.nav.fleet.graph.TopologyNode node)

The returned list will be empty. All orientations are provided in map coordinates by getGoalOrientations(TopologyNode).

Specified by:
getRelativeGoalOrientations in interface com.kuka.nav.fleet.graph.properties.EdgeMotion
See Also:
getGoalOrientations(TopologyNode)

getTrackAccuracy

public String getTrackAccuracy()
Gets the tracking accuracy.

Returns:
the tracking accuracy

setTrackAccuracy

public void setTrackAccuracy(String trackAccuracy)
Sets the tracking accuracy.

Parameters:
trackAccuracy - the new tracking accuracy

getTrackingAccuracyRot

public Double getTrackingAccuracyRot()
Gets the rotational tracking accuracy in [rad].

Specified by:
getTrackingAccuracyRot in interface com.kuka.nav.fleet.graph.properties.EdgeTrackingBasedMotion
Returns:
the tracking accuracy (or null if it is not set).

getTrackingAccuracyTrans

public Double getTrackingAccuracyTrans()
Gets the translational tracking accuracy in meters.

Specified by:
getTrackingAccuracyTrans in interface com.kuka.nav.fleet.graph.properties.EdgeTrackingBasedMotion
Returns:
the tracking accuracy (or null if it is not set).

isRotationAllowed

public boolean isRotationAllowed()
Specified by:
isRotationAllowed in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

isRecoverable

public boolean isRecoverable()
Specified by:
isRecoverable in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

isReachableOrientation

public boolean isReachableOrientation(double startOri,
                                      double goalOri,
                                      double edgeAngle,
                                      double allowedOriDelta,
                                      com.kuka.nav.robot.DriveType drive)
Specified by:
isReachableOrientation in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

isBlendingSupported

public boolean isBlendingSupported()
Specified by:
isBlendingSupported in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

blocksCompleteEdge

public boolean blocksCompleteEdge()
Specified by:
blocksCompleteEdge in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getGoalAccuracyTrans

public Double getGoalAccuracyTrans()

Note that a goal accuracy is currently not supported by the virtual path motion, therefore the returned value of this method will always be null.

Specified by:
getGoalAccuracyTrans in interface com.kuka.nav.fleet.graph.properties.EdgeGoalBasedMotion

getGoalAccuracyRot

public Double getGoalAccuracyRot()

Note that a goal accuracy is currently not supported by the virtual path motion, therefore the returned value of this method will always be null.

Specified by:
getGoalAccuracyRot in interface com.kuka.nav.fleet.graph.properties.EdgeGoalBasedMotion

toString

public String toString()
Overrides:
toString in class Object

getValueToDisplay

public String getValueToDisplay()
Specified by:
getValueToDisplay in interface com.kuka.nav.fleet.graph.properties.Property

getMotions

public List<com.kuka.nav.TupleSE2> getMotions(com.kuka.nav.TupleSE2 srcPose,
                                              com.kuka.nav.Pose entryPose,
                                              com.kuka.nav.TupleSE2 tgtPose,
                                              com.kuka.nav.Pose exitPose,
                                              double oriDelta)
Specified by:
getMotions in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

computeBlendingPoses

public com.kuka.nav.geometry.BlendingDiscretizationInfo computeBlendingPoses(com.kuka.nav.Pose start1,
                                                                             com.kuka.nav.Pose goal1,
                                                                             double blendingCart,
                                                                             com.kuka.nav.fleet.graph.properties.EdgeMotion motion2,
                                                                             com.kuka.nav.Pose start2,
                                                                             com.kuka.nav.Pose goal2,
                                                                             com.kuka.nav.robot.DriveType type)
Specified by:
computeBlendingPoses in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getBlendingContext

public com.kuka.nav.geometry.BlendingContext getBlendingContext(com.kuka.nav.Pose start,
                                                                com.kuka.nav.Pose goal)
Specified by:
getBlendingContext in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getClosestPointOnMotion

public com.kuka.nav.Position getClosestPointOnMotion(com.kuka.nav.Position start,
                                                     com.kuka.nav.Position end,
                                                     com.kuka.nav.Position position)
Specified by:
getClosestPointOnMotion in interface com.kuka.nav.fleet.graph.properties.EdgeMotion

getCopyWithOrientation

public com.kuka.nav.fleet.graph.properties.EdgeMotion getCopyWithOrientation(double ori)
Specified by:
getCopyWithOrientation in interface com.kuka.nav.fleet.graph.properties.EdgeMotion


Copyright © 2019. All rights reserved.