com.kuka.roboticsAPI.motionModel.controlModeModel
Class JointImpedanceControlMode

java.lang.Object
  extended by com.kuka.roboticsAPI.motionModel.controlModeModel.AbstractMotionControlMode
      extended by com.kuka.roboticsAPI.motionModel.controlModeModel.AbstractImpedanceControlMode
          extended by com.kuka.roboticsAPI.motionModel.controlModeModel.JointImpedanceControlMode
All Implemented Interfaces:
IImpedanceMotionControlMode, IMotionControlMode

public class JointImpedanceControlMode
extends AbstractImpedanceControlMode

This control mode indicates joint impedance.

During impedance control, the robotÂ’s behavior is compliant. It is sensitive and can react to external influences such as obstacles or process forces. The application of external forces and torques can cause the robot to leave the planned path.
The underlying model is based on virtual springs and dampers for every joint, which are stretched out due to the difference between the currently measured and the commanded joint positions. The characteristics of the springs are described by stiffness values, and those of the dampers are described by damping values. These parameters can be set individually for every joint.

The default stiffness for each joint is set to 1000 Nm/rad. When setting low stiffness values, the robot becomes soft and can be easily pushed or pulled away from the commanded position. When setting high stiffness values, the robot's behavior will resemble that of position control mode. Stiffness values must be positive (0 is allowed).
The default damping for each joint is set to 0.7. It is recommended to keep these values for most use cases. Beware that setting low damping values might lead to unexpected behavior. Damping values can range from 0 to 1.

The joint impedance control mode is not affected by singularities, unless used in combination with Cartesian motions. For most tasks that require a compliant robot, it is recommended to use the Cartesian impedance mode. Use the joint impedance mode whenever the Cartesian impedance mode cannot provide you with an adequate solution to your task.

The control mode uses commanded values for the start position of the next motion only if the last control mode used by the robot was also joint impedance with identical values for stiffness and damping. Otherwise, measured values will be used for the start position.

See Also:
CartesianImpedanceControlMode
This element is not in its final state and might change in future versions.

Constructor Summary
JointImpedanceControlMode(double... stiffnessValues)
          Creates a new joint impedance control mode and sets the stiffness values for each joint.
JointImpedanceControlMode(int jointCount)
          Creates a new joint impedance control mode and sets the expected joint count for the commanded robot.
JointImpedanceControlMode(JointImpedanceControlMode other)
          Copy constructor.
 
Method Summary
 boolean equals(Object other)
          Returns true, if all the impedance parameters are equal.
 double[] getDamping()
          Gets the damping for each joint.
protected  int getMNJ()
          Get the managed number of joints.
 double[] getStiffness()
          Gets the stiffness for each joint in [Nm/rad].
 int hashCode()
          
 boolean isRecoverable()
          States whether the control mode can be used to recover a device or not.
 JointImpedanceControlMode setDamping(double... dampingValues)
          Sets the damping for each joint of the commanded robot.
 JointImpedanceControlMode setDampingForAllJoints(double damping)
          Sets the damping for all joints of the commanded robot.
protected  void setMaxJointDeltas(double... maxJointDeltas)
          Sets the maximum joint deltas for this mode.
 JointImpedanceControlMode setStiffness(double... stiffnessValues)
          Sets the stiffness for each joint of the commanded robot.
 JointImpedanceControlMode setStiffnessForAllJoints(double stiffness)
          Sets the stiffness for all joints of the commanded robot.
 String toString()
           
 
Methods inherited from class com.kuka.roboticsAPI.motionModel.controlModeModel.AbstractImpedanceControlMode
getMaxJointDeltas, isDeviceSupported, needsMeasuredValues, noCommandedMeasuredDevianceIntended, useCommandedValuesForNextMotion, useMeasuredValuesForNextMotion
 
Methods inherited from class com.kuka.roboticsAPI.motionModel.controlModeModel.AbstractMotionControlMode
getMaxJointSpeed, setMaxJointSpeed
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.kuka.roboticsAPI.motionModel.controlModeModel.IMotionControlMode
getMaxJointSpeed
 

Constructor Detail

JointImpedanceControlMode

public JointImpedanceControlMode(double... stiffnessValues)
Creates a new joint impedance control mode and sets the stiffness values for each joint.
Note: The default damping values will be used. To change the default values of the damping, use setDamping(double...).

Parameters:
stiffnessValues - the stiffness values in [Nm/rad]. A separate value must be provided for each joint (sorted by joint order). Stiffness values must be >= 0. The resulting number of joints cannot be changed afterwards and must correspond to the number of joints in the commanded robot.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

JointImpedanceControlMode

public JointImpedanceControlMode(int jointCount)
Creates a new joint impedance control mode and sets the expected joint count for the commanded robot. Stiffness and damping are set to the default values for all joints. To change the default values, use setStiffness(double...) and setDamping(double...).

Parameters:
jointCount - the joint count must correspond to the number of joints in the commanded robot. It cannot be changed afterwards.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

JointImpedanceControlMode

public JointImpedanceControlMode(JointImpedanceControlMode other)
Copy constructor. Uses the same impedance settings as the given mode.

Parameters:
other - the JointImpedanceControlMode object to be copied. null is not allowed.
This element is not in its final state and might change in future versions.
Method Detail

setMaxJointDeltas

protected final void setMaxJointDeltas(double... maxJointDeltas)
Sets the maximum joint deltas for this mode. The motion will stop if the measured and commanded values differ more than the given values.

The given values must fit to the joint count of the robot for which the mode is used.

Overrides:
setMaxJointDeltas in class AbstractImpedanceControlMode
Parameters:
maxJointDeltas - the maximum joint deltas (values in [rad]).
This element is an undocumented internal feature. It is not intended to be used by applications as it might change or be removed in future versions.

isRecoverable

public boolean isRecoverable()
Description copied from interface: IMotionControlMode
States whether the control mode can be used to recover a device or not.

Returns:
True if the control mode can be used to recover a device, otherwise false.

setStiffness

public JointImpedanceControlMode setStiffness(double... stiffnessValues)
Sets the stiffness for each joint of the commanded robot.

Parameters:
stiffnessValues - the new stiffness values in [Nm/rad]. A separate value must be provided for each joint (sorted by joint order). Stiffness values must be >= 0.
Returns:
the modified JointImpedanceMode object
Throws:
IllegalArgumentException - if the number of provided stiffness values does not match the number of joints or a stiffness value is < 0.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

setDamping

public JointImpedanceControlMode setDamping(double... dampingValues)
Sets the damping for each joint of the commanded robot.

Parameters:
dampingValues - the new damping values. A separate value must be provided for each joint (sorted by joint order). Damping values must be between 0 and 1.
Returns:
the modified JointImpedanceMode object
Throws:
IllegalArgumentException - if the number of provided damping values does not match the number of joints or a damping value is < 0 or a damping value is > 1.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

setStiffnessForAllJoints

public JointImpedanceControlMode setStiffnessForAllJoints(double stiffness)
Sets the stiffness for all joints of the commanded robot.

Parameters:
stiffness - the new stiffness value for all joints in [Nm/rad]. The stiffness must be >= 0.
Returns:
the modified JointImpedanceMode object
Throws:
IllegalArgumentException - if the value of stiffness is < 0.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

setDampingForAllJoints

public JointImpedanceControlMode setDampingForAllJoints(double damping)
Sets the damping for all joints of the commanded robot.

Parameters:
damping - the new damping value for all joints. The damping must be between 0 and 1.
Returns:
the modified JointImpedanceMode object
Throws:
IllegalArgumentException - if the value of damping is < 0 or if the value of damping is > 1.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

getStiffness

public double[] getStiffness()
Gets the stiffness for each joint in [Nm/rad].

Returns:
an array with the stiffness for each joint in [Nm/rad]. The array is ordered by joint indices.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

getDamping

public double[] getDamping()
Gets the damping for each joint.

Returns:
an array with the damping for each joint. The array is ordered by joint indices.
See Also:
JointImpedanceControlMode
This element is not in its final state and might change in future versions.

toString

public String toString()
Overrides:
toString in class Object

hashCode

public int hashCode()
Description copied from class: AbstractImpedanceControlMode

Specified by:
hashCode in class AbstractImpedanceControlMode

equals

public boolean equals(Object other)
Description copied from class: AbstractImpedanceControlMode
Returns true, if all the impedance parameters are equal.

Specified by:
equals in class AbstractImpedanceControlMode
Parameters:
other - other control mode to compare
Returns:
true, if all impedance parameters are equal.

getMNJ

protected final int getMNJ()
Get the managed number of joints.

Returns:
the number of joints


Copyright © 2019. All rights reserved.