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

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

public abstract class AbstractEdgeMotionProperty
extends AbstractProperty
implements EdgeMotion

Abstract super class for edge motions. Class provides functionality to handle goal orientations of the motion relative to the map coordinate system and relative to the edge.

See Also:
Serialized Form

Constructor Summary
AbstractEdgeMotionProperty()
           
 
Method Summary
 com.kuka.nav.Position getClosestPointOnMotion(com.kuka.nav.Position start, com.kuka.nav.Position end, com.kuka.nav.Position position)
          Computes the point on this edge motion which is closest to the given position.
 List<Double> getGoalOrientations(TopologyNode node)
          Returns a list containing all allowed goal orientations of this edge motion.
 String getGoalOris()
          Gets the serialised representation of goal orientations as comma-separated list, that the edge motion motion may reach at the target node.
 String getLineOris()
          Gets the serialised representation of goal orientations as comma-separated list, that the edge motion motion may reach at the target node.
 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)
          Returns a list of the relative motions (each motion is relative to the (global) end pose of the previous motion, the first one being relative the the global start pose of the vehicle) to be performed in order to travel this edge motion.
 Collection<Double> getPathOrientations()
          Returns a list containing all allowed path orientations of this edge motion.
 List<Double> getRelativeGoalOrientations(TopologyNode node)
          Returns a list containing all allowed goal orientations of this edge motion in radians and relative to the edge orientation, also known as line orientation.
 List<Double> getRelativeStartOrientations(TopologyNode node)
          Returns a list containing all allowed start orientations of this edge motion in radians and relative to the edge orientation, also known as line orientation.
 List<Double> getStartOrientations(TopologyNode node)
          Returns a list containing all allowed start orientations of this edge motion.
 String getValueToDisplay()
          Returns the value(s) in a way to show it in a UI.
 void setGoalOris(String goalOris)
          Sets the serialised representation of goal orientations as comma-separated list, the edge motion may reach at the target node.
 void setLineOris(String lineOris)
          Sets the serialised representation of goal orientations as comma-separated list (in degrees and relative to the orientation of the edge), the edge motion may reach at the target node.
 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.EdgeMotion
blocksCompleteEdge, computeBlendingPoses, getBlendingContext, getCopyWithOrientation, isBlendingSupported, isReachableOrientation, isRecoverable, isRotationAllowed
 
Methods inherited from interface com.kuka.nav.fleet.graph.properties.Property
getAllowedTypes, getId, setId
 

Constructor Detail

AbstractEdgeMotionProperty

public AbstractEdgeMotionProperty()
Method Detail

getGoalOris

public String getGoalOris()
Gets the serialised representation of goal orientations as comma-separated list, that the edge motion motion may reach at the target node. These orientations are to be understood in degrees and relative to the map coordinate system.

Returns:
the serialised goal orientations (in degrees and relative to the map coordinate system).

setGoalOris

public void setGoalOris(String goalOris)
Sets the serialised representation of goal orientations as comma-separated list, the edge motion may reach at the target node.

Parameters:
goalOris - the new serialised goal orientations in degrees and relative to the map coordinate system.

getStartOrientations

public List<Double> getStartOrientations(TopologyNode node)
Description copied from interface: EdgeMotion
Returns a list containing all allowed start orientations of this edge motion. Each orientation is in radians and to be understood relative to the map coordinate system. An empty list means all orientations are allowed.

Specified by:
getStartOrientations in interface EdgeMotion
Parameters:
node - the topology node at the start position of this motion
Returns:
a list containing all allowed start orientations of this edge motion in [rad]

getRelativeStartOrientations

public List<Double> getRelativeStartOrientations(TopologyNode node)
Description copied from interface: EdgeMotion
Returns a list containing all allowed start orientations of this edge motion in radians and relative to the edge orientation, also known as line orientation. An empty list means all orientations are allowed.

Specified by:
getRelativeStartOrientations in interface EdgeMotion
Parameters:
node - the topology node at the start position of this motion
Returns:
a list containing all allowed start orientations of this edge motion in [rad]

getGoalOrientations

public List<Double> getGoalOrientations(TopologyNode node)
Description copied from interface: EdgeMotion
Returns a list containing all allowed goal orientations of this edge motion. Each orientation is in radians and to be understood relative to the map coordinate system.

Specified by:
getGoalOrientations in interface EdgeMotion
Parameters:
node - the topology node at the goal position of this motion
Returns:
a list containing all allowed goal orientations of this edge motion in [rad]

getRelativeGoalOrientations

public List<Double> getRelativeGoalOrientations(TopologyNode node)
Description copied from interface: EdgeMotion
Returns a list containing all allowed goal orientations of this edge motion in radians and relative to the edge orientation, also known as line orientation.

Specified by:
getRelativeGoalOrientations in interface EdgeMotion
Parameters:
node - the topology node at the goal position of this motion
Returns:
a list containing all allowed goal orientations of this edge motion in [rad]

getLineOris

public String getLineOris()
Gets the serialised representation of goal orientations as comma-separated list, that the edge motion motion may reach at the target node. These orientations are to be understood in degrees and relative to the orientation of the edge.

Returns:
the serialised goal orientations (in degrees and relative to the orientation of the edge).

getPathOrientations

public Collection<Double> getPathOrientations()
Description copied from interface: EdgeMotion
Returns a list containing all allowed path orientations of this edge motion. Path orientations are sometimes called edge orientations or line orientations. Each orientation is in radians and to be understood relative to the map coordinate system.

Specified by:
getPathOrientations in interface EdgeMotion
Returns:
a list containing all allowed path orientations of the edge motion in [rad]

setLineOris

public void setLineOris(String lineOris)
Sets the serialised representation of goal orientations as comma-separated list (in degrees and relative to the orientation of the edge), the edge motion may reach at the target node.

If the edge has length 0 then goal orientations relative to the orientation of the edge are not well-defined. Thus, it should be ensured that the edge does not connect two nodes that are at the same geographical location if orientations relative to the orientation of the edge are to be set.

Parameters:
lineOris - the new serialised goal orientations (in degrees and relative to the orientation of the edge)

toString

public String toString()
Overrides:
toString in class Object

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
Returns:
the values

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)
Description copied from interface: EdgeMotion
Returns a list of the relative motions (each motion is relative to the (global) end pose of the previous motion, the first one being relative the the global start pose of the vehicle) to be performed in order to travel this edge motion. Depending on the type of the underlying motion, one or more subMotions are required.

Specified by:
getMotions in interface EdgeMotion
Parameters:
srcPose - the global pose in map coordinates where the motion would start if it was not blended to (usually the position of the source node of the edge enriched by the orientation at the node) --- note that this pose does not necessarily have to be reached by the robot if the motion is blended to
entryPose - the global pose in map coordinates where the robot completes the blending arc and reaches the actual motion, may not coincide with the start pose
tgtPose - the global pose in map coordinates where the motion would be completed if it was not blended from (usually the position of the target node of the edge enriched by the orientation at the node), note that this does not have to be reached by the robot if the motion is blended from
exitPose - the global pose in map coordinates where the robot leaves the actual motion and starts blending to the next motion, may not coincide with the goal pose
oriDelta - the maximum difference until which orientation are considered equal
Returns:
a list of intermediate motions.

getClosestPointOnMotion

public com.kuka.nav.Position getClosestPointOnMotion(com.kuka.nav.Position start,
                                                     com.kuka.nav.Position end,
                                                     com.kuka.nav.Position position)
Description copied from interface: EdgeMotion
Computes the point on this edge motion which is closest to the given position.

Specified by:
getClosestPointOnMotion in interface EdgeMotion
Parameters:
start - the start pose of the motion
end - the end pose of the motion
position - the position for which the closest point has to be computed
Returns:
the position on the motion which is closest to the given position.


Copyright © 2019. All rights reserved.