com.kuka.roboticsAPI.motionModel
Class RobotMotion<T extends KROSMotion<T>>

java.lang.Object
  extended by com.kuka.roboticsAPI.commandModel.Action<T>
      extended by com.kuka.roboticsAPI.motionModel.Motion<T>
          extended by com.kuka.roboticsAPI.motionModel.KROSMotion<T>
              extended by com.kuka.roboticsAPI.motionModel.RobotMotion<T>
Type Parameters:
T - Type of the overriding class
All Implemented Interfaces:
IAction, IKROSMotion, IMotion, IParameterizable
Direct Known Subclasses:
MotionBatch, SplineMotion

public abstract class RobotMotion<T extends KROSMotion<T>>
extends KROSMotion<T>

Base class for robot motions with dynamic parameters.


Constructor Summary
protected RobotMotion()
          Creates a new motion instance with default parameters.
 
Method Summary
protected  String formatParameterInfo()
          Used to print information about robot motion parameters.
 double getBlendingCart()
          Gets the absolute blending value set for this motion in mm.
 double getBlendingOri()
          Gets the absolute blending value set for this motion in rad.
 double getBlendingRel()
          Gets the relative blending value set for this motion in %.
 double getJointAccelerationRel()
          Gets the relative acceleration value set for this motion in %.
 double getJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
          Gets the relative acceleration value set for this motion for the specified axis in %.
 double getJointVelocityRel()
          Gets the relative velocity value set for this motion in %.
 double getJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
          Gets the relative velocity value set for this motion for the specified axis in %.
 boolean hasBlendingCart()
          Returns true if absolute cart blending value is set for this motion.
 boolean hasBlendingOri()
          Returns true if absolute orientation blending value is set for this motion.
 boolean hasBlendingRel()
          Returns true if the blending value is set for this motion.
 boolean hasJointAccelerationRel()
          Returns true if the relative acceleration value is set for this motion in %.
 boolean hasJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
          Returns true if the relative acceleration value is set for the specified axis in %.
 boolean hasJointVelocityRel()
          Returns true if the relative velocity value is set for this motion in %.
 boolean hasJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
          Returns true if the relative velocity value is set for the specified axis in %.
 T setBlendingCart(double value)
          Sets the absolute value for this motion in mm.
 T setBlendingOri(double value)
          Sets the orientation blending value for this motion in rad.
 T setBlendingRel(double value)
          Sets the blending distance from the destination of the motion.
 T setJointAccelerationRel(double acceleration)
          Sets the normalized acceleration of the motion in %.
 T setJointAccelerationRel(double[] acceleration)
          Sets the normalized acceleration of the motion in %.
 T setJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis, double acceleration)
          Sets the normalized acceleration of the specified axis in %.
 T setJointVelocityRel(double value)
          Sets the normalized velocity of the motion in %.
 T setJointVelocityRel(double[] values)
          Sets the normalized velocity of the motion in %.
 T setJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis, double value)
          Sets the normalized velocity of the specified axis in %.
 
Methods inherited from class com.kuka.roboticsAPI.motionModel.KROSMotion
acquireResources, addMotionOverlay, breakWhen, getConditions, getMode, getMotionOverlaySupport, getSCSupport, getTriggerSupport, hasConditions, hasMotionOverlay, hasTrigger, isApplicableFor, setMode, triggerWhen
 
Methods inherited from class com.kuka.roboticsAPI.commandModel.Action
addParameter, addParams, getParams, releaseResources, removeParameter, self
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.kuka.roboticsAPI.commandModel.IAction
releaseResources
 
Methods inherited from interface com.kuka.roboticsAPI.motionModel.IParameterizable
getParams
 

Constructor Detail

RobotMotion

protected RobotMotion()
Creates a new motion instance with default parameters.

Method Detail

setJointAccelerationRel

public final T setJointAccelerationRel(double acceleration)
Sets the normalized acceleration of the motion in %. Must be between 0 and 1.

Parameters:
acceleration - The acceleration of the motion. Must be between 0 and 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if acceleration is not between 0 and 1.

setJointAccelerationRel

public final T setJointAccelerationRel(double[] acceleration)
Sets the normalized acceleration of the motion in %. Must be between 0 and 1.

Parameters:
acceleration - The acceleration of the motion. Must be between 0 and 1 for each axis with a maximum of 12 axes starting with axis 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if acceleration is not between 0 and 1.

setJointAccelerationRel

public final T setJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis,
                                       double acceleration)
Sets the normalized acceleration of the specified axis in %. Must be between 0 and 1.

Parameters:
axis - the axis
acceleration - The acceleration of the the specified axis in %. Must be between 0 and 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if acceleration is not between 0 and 1.

setJointVelocityRel

public final T setJointVelocityRel(double value)
Sets the normalized velocity of the motion in %. Must be between 0 and 1.

The maximum speed depends on the current operation mode of the used device.

Parameters:
value - The velocity of the motion. Must be between 0 and 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if velocity is not between 0 and 1.

setJointVelocityRel

public final T setJointVelocityRel(double[] values)
Sets the normalized velocity of the motion in %. Must be between 0 and 1.

The maximum speed depends on the current operation mode of the used device.

Parameters:
values - The velocity of the motion. Must be between 0 and 1 for each axis with a maximum of 12 axes starting with axis 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if velocity is not between 0 and 1.

setJointVelocityRel

public final T setJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis,
                                   double value)
Sets the normalized velocity of the specified axis in %. Must be between 0 and 1.

The maximum speed depends on the current operation mode of the used device.

Parameters:
axis - the axis
value - The velocity of the specified axis in %. Must be between 0 and 1.
Returns:
This motion (builder pattern).
Throws:
IllegalArgumentException - if velocity is not between 0 and 1.

setBlendingRel

public final T setBlendingRel(double value)
Sets the blending distance from the destination of the motion.

For joint-specific motions (like PTP) blendingRel applies to all axes.

CAUTION! For Cartesian motions (like LIN, SPL, CIRC...) the blendingRel refers only to external axes and the A1-redundancy. Especially if blendingRel is greater than 0 and the external axes or the redundancy don't change, the minimal possible blending will be turned on. In this case changing the value of blendingRel won't result in a different path.

It may occur that the next motion command doesn't arrive in time to be included in the path planning. In this case the motion will stop at the point, where the blending condition applied (also known as the blending point).
As soon as the next motion command arrives, the motion will be planned with blending. The path is the same as if the next command had arrived in time.
HINT: that means, if there is no next command, the motion stops at the blending point, not at the destination. Keep this in mind when setting any blending on the last motion command !

It is possible for the specified value to be too small for the robot to be able to complete the programmed path. Therefore, a restriction is in place that sets values below 0.05 to 0. The robot will perform an exact stop at the destination.

Parameters:
value - The distance. Must be between 0 and 1.
0 - no blending, the motion will stop at the destination, all values below 0.05 will be handled like 0
1 - maximal possible blending, i.e. the blending distance covers half of the range of the motion.
Returns:
This motion (builder pattern).

hasJointVelocityRel

public boolean hasJointVelocityRel()
Returns true if the relative velocity value is set for this motion in %.

Returns:
true if the relative velocity value is set for this motion in %.

hasJointVelocityRel

public boolean hasJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
Returns true if the relative velocity value is set for the specified axis in %.

Parameters:
axis - the axis
Returns:
true if the relative velocity value is set for the specified axis in %.

getJointVelocityRel

public final double getJointVelocityRel()
Gets the relative velocity value set for this motion in %.

Returns:
the relative velocity value set for this motion in %. Value range is between 0 and 1.

getJointVelocityRel

public final double getJointVelocityRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
Gets the relative velocity value set for this motion for the specified axis in %.

Parameters:
axis - the axis
Returns:
the relative velocity value set for this motion for the specified axis in %. Value range is between 0 and 1.

hasJointAccelerationRel

public boolean hasJointAccelerationRel()
Returns true if the relative acceleration value is set for this motion in %.

Returns:
true if the relative acceleration value is set for this motion in %.

hasJointAccelerationRel

public boolean hasJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
Returns true if the relative acceleration value is set for the specified axis in %.

Parameters:
axis - the axis
Returns:
true if the relative acceleration value is set for the specified axis in %.

getJointAccelerationRel

public final double getJointAccelerationRel()
Gets the relative acceleration value set for this motion in %.

Returns:
the relative acceleration value set for this motion in %. Value range is between 0 and 1.

getJointAccelerationRel

public final double getJointAccelerationRel(com.kuka.roboticsAPI.deviceModel.JointEnum axis)
Gets the relative acceleration value set for this motion for the specified axis in %.

Parameters:
axis - the axis
Returns:
the relative acceleration value set for this motion for the specified axis in %. Value range is between 0 and 1.

hasBlendingRel

public boolean hasBlendingRel()
Returns true if the blending value is set for this motion.

Returns:
true if the blending value is set for this motion.

getBlendingRel

public final double getBlendingRel()
Gets the relative blending value set for this motion in %.

Returns:
the relative blending value set for this motion in %. Value range is between 0 and 1.

formatParameterInfo

protected String formatParameterInfo()
Used to print information about robot motion parameters.

Returns:
info string

getBlendingCart

public double getBlendingCart()
Gets the absolute blending value set for this motion in mm.

Returns:
The absolute blending value set for this motion in mm.

setBlendingCart

public T setBlendingCart(double value)
Sets the absolute value for this motion in mm.

The specified value is a maximal value for the motion, however it is possible that it will not be reached during the execution of the motion because of other motion planning restrictions.
When blending is used with a move(), or a moveAsync() command and the next motion command does not come in time to be included in the path planning, the motion will stop at that point, where the blending condition applies. As soon as the next command arrives the motion will be planned with blending. The path of a interrupted motion is equivalent to a fluent motion where the next command arrives in time for planning.

It is possible for the specified value to be too small for the robot to be able to complete the programmed path. Therefore, a restriction is in place that sets values below 4mm to 0. The robot will perform an exact stop at the destination.

Parameters:
value - the absolute blending value for this motion in mm. This value must be positive or zero. 0 = no blending, the motion will stop at the destination
Values below 4 will be ignored. No blending will be done.
Returns:
This motion (builder pattern)
Throws:
IllegalArgumentException - if absolute blending value is less than 0.

hasBlendingCart

public boolean hasBlendingCart()
Returns true if absolute cart blending value is set for this motion.

Returns:
true if absolute cart blending value is set for this motion.

getBlendingOri

public double getBlendingOri()
Gets the absolute blending value set for this motion in rad.

Returns:
The absolute blending value set for this motion in rad.

setBlendingOri

public T setBlendingOri(double value)
Sets the orientation blending value for this motion in rad.

The specified value is a maximal value for the motion, however it is possible that it will not be reached during the execution of the motion because of other motion planning restrictions.
When blending is used with a move(), or a moveAsync() command and the next motion command does not come in time to be included in the path planning, the motion will stop at that point, where the blending condition applies. As soon as the next command arrives the motion will be planned with blending. The path of a interrupted motion is equivalent to a fluent motion where the next command arrives in time for planning. CAUTION: Joint-Spline Motions like PTP can not use orientation blending for planning. But the planner always try to plan with every blending parameter if any blending is activated. As a result, setting blending orientation on those motions, causes all other blending parameters go on active with their default values. This may cause unexpected motions while blending between Cartesian or joint traversing range or within joint traversing only.

Parameters:
value - the absolute orientation blending value for this motion in rad. This value must be positive or zero. 0 = no blending, the motion will stop at the destination
Returns:
This motion (builder pattern)
Throws:
IllegalArgumentException - if orientation blending value is less than 0.

hasBlendingOri

public boolean hasBlendingOri()
Returns true if absolute orientation blending value is set for this motion.

Returns:
true if absolute orientation blending is set for this motion.


Copyright © 2019. All rights reserved.