|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.kuka.roboticsAPI.motionModel.controlModeModel.AbstractMotionControlMode
com.kuka.roboticsAPI.motionModel.controlModeModel.AbstractImpedanceControlMode
com.kuka.roboticsAPI.motionModel.controlModeModel.JointImpedanceControlMode
public class JointImpedanceControlMode
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.
CartesianImpedanceControlMode| 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 |
|---|
public JointImpedanceControlMode(double... stiffnessValues)
setDamping(double...).
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.JointImpedanceControlModepublic JointImpedanceControlMode(int jointCount)
setStiffness(double...) and
setDamping(double...).
jointCount - the joint count must correspond to the number of joints in the
commanded robot. It cannot be changed afterwards.JointImpedanceControlModepublic JointImpedanceControlMode(JointImpedanceControlMode other)
other - the JointImpedanceControlMode object to be copied. null is not allowed.| Method Detail |
|---|
protected final void setMaxJointDeltas(double... maxJointDeltas)
The given values must fit to the joint count of the robot for which the mode is used.
setMaxJointDeltas in class AbstractImpedanceControlModemaxJointDeltas - the maximum joint deltas (values in [rad]).public boolean isRecoverable()
IMotionControlMode
True if the control mode can be used to recover a device,
otherwise false.public JointImpedanceControlMode setStiffness(double... stiffnessValues)
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.
IllegalArgumentException - if the number of provided stiffness values does not match the
number of joints or a stiffness value is < 0.JointImpedanceControlModepublic JointImpedanceControlMode setDamping(double... dampingValues)
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.
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.JointImpedanceControlModepublic JointImpedanceControlMode setStiffnessForAllJoints(double stiffness)
stiffness - the new stiffness value for all joints in [Nm/rad]. The
stiffness must be >= 0.
IllegalArgumentException - if the value of stiffness is < 0.JointImpedanceControlModepublic JointImpedanceControlMode setDampingForAllJoints(double damping)
damping - the new damping value for all joints. The damping must be
between 0 and 1.
IllegalArgumentException - if the value of damping is < 0 or if the value of damping is
> 1.JointImpedanceControlModepublic double[] getStiffness()
JointImpedanceControlModepublic double[] getDamping()
JointImpedanceControlModepublic String toString()
toString in class Objectpublic int hashCode()
AbstractImpedanceControlMode
hashCode in class AbstractImpedanceControlModepublic boolean equals(Object other)
AbstractImpedanceControlMode
equals in class AbstractImpedanceControlModeother - other control mode to compare
protected final int getMNJ()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||