com.kuka.roboticsAPI.deviceModel
Class LBR

java.lang.Object
  extended by com.kuka.common.TaggableObject
      extended by com.kuka.roboticsAPI.geometricModel.SceneGraphObject
          extended by com.kuka.roboticsAPI.geometricModel.SpatialObject
              extended by com.kuka.roboticsAPI.geometricModel.PhysicalObject
                  extended by com.kuka.roboticsAPI.deviceModel.Device
                      extended by com.kuka.roboticsAPI.deviceModel.MovableDevice
                          extended by com.kuka.roboticsAPI.deviceModel.Robot
                              extended by com.kuka.roboticsAPI.deviceModel.LBR
All Implemented Interfaces:
com.kuka.common.ITaggable, IForceSensitiveRobot, IOperationModeProvider, ITorqueSensitiveRobot
Direct Known Subclasses:
SunriseLBR

public abstract class LBR
extends Robot
implements ITorqueSensitiveRobot, IForceSensitiveRobot

A LBR represents the KUKA lightweight robot (LWR).

LBR has torque sensors in each joint and has the possibility to determine the external force on its defaultMotionFrame. This force is available via the LBR´s force sensor. It is also possible to use impedance control modes with this robot.


Field Summary
protected  double[] _gmsSensorLimits
          torque sensor limits.
 
Fields inherited from class com.kuka.roboticsAPI.deviceModel.Device
_hardwareVersion
 
Constructor Summary
LBR(Controller controller, String name)
          Creates a new LBR instance with the given controller.
 
Method Summary
 boolean checkTorqueSensor(com.kuka.roboticsAPI.deviceModel.JointEnum joint)
          Checks if the torque sensor of the given axis works properly.
 double getAlphaAngle(JointPosition joints)
          Calculates the alpha redundancy parameter for a given joint configuration.
 JointPosition getAlphaInverseKinematicFromReference(AbstractFrame frame, JointPosition correspondingJoints, double alphaAngle)
          Gets the joint position that correspond to alphaAngle and frame using the nearest solution to a given joint position.
 ForceSensorData getExternalForceTorque(AbstractFrame measureFrame)
          Gets the external force measured by the robot at the position and in the orientation of the specified measure frame.
 ForceSensorData getExternalForceTorque(AbstractFrame measureFrame, AbstractFrame orientationFrame)
          Gets the external force measured by the robot at the position and in the orientation of the specified frames.
 TorqueSensorData getExternalTorque()
          Gets the current external torque sensor data for this robot.
protected  JointPosition getInitialHomePosition()
          Gets the default home position of the concrete robot.
 JointPosition getInverseKinematicFromFrameAndRedundancy(AbstractFrame frame)
          Gets the inverse kinematics value of the given frame for this robot.
 TorqueSensorData getMeasuredTorque()
          Gets the currently measured ("raw") torque sensor data for this robot.
 ISafetyState getSafetyState()
          Gets the state of safety signals.
 SensorForExternalForce getSensorForExternalForce()
          Gets the force sensor of this LBR which measures the external force at the robot defaultMotionFrame.
 SensorForExternalTorque getSensorForExternalTorque()
          Gets the external torque sensor of this robot.
 SensorForMeasuredTorque getSensorForMeasuredTorque()
          Gets the measured ("raw") torque sensor of this robot.
 SensorForLbrTemperatures getSensorForTemperatures()
          Gets the temperature sensor object for the temperature sensors installed on the control logic boards of this robot.
 LbrTemperatureSensorData getTemperatures()
          Gets the current temperature sensor data for this LBR.
 double[] getTorqueSensorLimits()
          Gets the torque sensor Limits.
protected abstract  void initGmsSensorLimits()
          Initializes the Sensor Nominal Limits for GMS-Sensor.
protected  int initializeJointCount()
          Initializes the joint count of this device.
protected  void onInitialize()
          Called when the device get's initialized.
abstract  void setESMState(String name)
          Sets an ESM (Event-driven Safety Monitoring) state configured in the safety configuration.
abstract  void setSafetyWorkpiece(PhysicalObject wp)
          Sets the workpiece load data used by safety monitoring functions.
 
Methods inherited from class com.kuka.roboticsAPI.deviceModel.Robot
calculateLoadOnFlange, checkFrameContainsRedundancy, createBaseFlangeTransformationProvider, createDefaultsParameterSet, deactivateDeviceCartesianVelocityLimit, detachAll, getCartesianVelocityLimitInfo, getCommandedCartesianPosition, getCommandedCartesianPosition, getCommandedJointPosition, getCurrentCartesianPosition, getCurrentCartesianPosition, getCurrentJointPosition, getDefaultMotionFrame, getDefaults, getFlange, getForwardKinematic, getHomePosition, getInverseKinematic, getJointCount, getJointLimits, getPositionInformation, getPositionInformation, hasActiveMotionCommand, isInHome, isMastered, move, move, moveAsync, moveAsync, onDispose, setDefaultMotionFrame, setDeviceCartesianVelocityLimit, setHomePosition, setHomePosition
 
Methods inherited from class com.kuka.roboticsAPI.deviceModel.MovableDevice
calculateReadyToMove, getOperationMode, isMotionEnabled, isReadyToMove
 
Methods inherited from class com.kuka.roboticsAPI.deviceModel.Device
acquireCommandPermit, dispose, getContext, getController, getHardwareVersion, getUniqueName, initialize, isInitialized, refreshHardwareVersion, releaseCommandPermit, setName
 
Methods inherited from class com.kuka.roboticsAPI.geometricModel.PhysicalObject
addDefaultMotionFrame, getLoadData
 
Methods inherited from class com.kuka.roboticsAPI.geometricModel.SpatialObject
attachTo, attachTo, changeParent, detach, switchParent, switchParent
 
Methods inherited from class com.kuka.roboticsAPI.geometricModel.SceneGraphObject
addChildFrame, addChildFrame, addChildFrame, addChildFrame, addChildFrame, addChildFrame, allObjects, changeFrameParent, changeFramePosition, findMembersOfGroup, findRobot, getAllFrames, getAllUserParameters, getChild, getChildFrameLock, getChildren, getFrame, getName, getParent, getRootFrame, getRootOfGroup, getUserParameter, groupToParent, isDescendantOf, isGroupedToParent, isMemberOfGroup, isRootOfGroup, removeFrame, renameFrame, setRootFrame, setUserParameter, toString, ungroupFromParent
 
Methods inherited from class com.kuka.common.TaggableObject
getTag, setTag
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.kuka.roboticsAPI.deviceModel.IOperationModeProvider
getOperationMode
 

Field Detail

_gmsSensorLimits

protected double[] _gmsSensorLimits
torque sensor limits.

Constructor Detail

LBR

public LBR(Controller controller,
           String name)
Creates a new LBR instance with the given controller.

Parameters:
controller - The controller to which this device belongs.
name - The name of the device.
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.
Method Detail

initializeJointCount

protected int initializeJointCount()
Description copied from class: Robot
Initializes the joint count of this device.

Overrides:
initializeJointCount in class Robot
Returns:
The joint count of this device

getInitialHomePosition

protected JointPosition getInitialHomePosition()
Gets the default home position of the concrete robot. The default home position is used initially.

Specified by:
getInitialHomePosition in class Robot
Returns:
The initial home position.
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.

onInitialize

protected void onInitialize()
Description copied from class: Device
Called when the device get's initialized. The RoboticsAPI ensures that this method is called before the device get's returned to a user program.

May be overridden by subclasses. Will only be called once. If this method fails with an exception, the device will not be initialized and may behave strange under some circumstances.

Overrides:
onInitialize in class Robot

getSensorForMeasuredTorque

public final SensorForMeasuredTorque getSensorForMeasuredTorque()
Gets the measured ("raw") torque sensor of this robot.

Specified by:
getSensorForMeasuredTorque in interface ITorqueSensitiveRobot
Returns:
A reference to the sensor for measured torque of this robot.

getMeasuredTorque

public final TorqueSensorData getMeasuredTorque()
Gets the currently measured ("raw") torque sensor data for this robot.

Specified by:
getMeasuredTorque in interface ITorqueSensitiveRobot
Returns:
The currently measured ("raw") torque sensor data for this robot.

getSensorForExternalTorque

public final SensorForExternalTorque getSensorForExternalTorque()
Gets the external torque sensor of this robot.

Specified by:
getSensorForExternalTorque in interface ITorqueSensitiveRobot
Returns:
A reference to the sensor for external torque of this robot.

getExternalTorque

public final TorqueSensorData getExternalTorque()
Gets the current external torque sensor data for this robot.

Specified by:
getExternalTorque in interface ITorqueSensitiveRobot
Returns:
The current external torque sensor data for this robot.

getSensorForExternalForce

public SensorForExternalForce getSensorForExternalForce()
Gets the force sensor of this LBR which measures the external force at the robot defaultMotionFrame.

Note that you may have to execute a motion command with the correct load data before capturing measurements using the robot's force sensor.

Specified by:
getSensorForExternalForce in interface IForceSensitiveRobot
Returns:
A reference to the force sensor of this LBR which measures the force at the robot defaultMotionFrame.
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.

getExternalForceTorque

public ForceSensorData getExternalForceTorque(AbstractFrame measureFrame)
Gets the external force measured by the robot at the position and in the orientation of the specified measure frame.

Please note:

Specified by:
getExternalForceTorque in interface IForceSensitiveRobot
Parameters:
measureFrame - The frame where the measurement will take place. This frame must be statically attached to a device that can measure forces (such as an LBR). If an orientationFrame is given, the orientation of the frame is not important.
Returns:
The external force measured by the robot at the specified measure frame.

getExternalForceTorque

public ForceSensorData getExternalForceTorque(AbstractFrame measureFrame,
                                              AbstractFrame orientationFrame)
Gets the external force measured by the robot at the position and in the orientation of the specified frames.

Please note:

Specified by:
getExternalForceTorque in interface IForceSensitiveRobot
Parameters:
measureFrame - The frame where the measurement will take place. This frame must be statically attached to a device that can measure forces (such as an LBR).
orientationFrame - Optional frame (may be null) that overrides the orientation of the measureFrame. The translation of the orientationFrame has no influence on the measurement. Use this frame if you want to specify the orientation of the measured force and torque relative to the world coordinate system, for example if you want the coordinate axes orientation for the measurement to have the same orientation like the coordinate system of a work piece.
Returns:
The external force measured by the robot regarding the specified measurement frame and orientation.

getSensorForTemperatures

public final SensorForLbrTemperatures getSensorForTemperatures()
Gets the temperature sensor object for the temperature sensors installed on the control logic boards of this robot.

Returns:
A reference to the sensor for the temperature sensors installed on the control logic boards of this robot.

getTemperatures

public final LbrTemperatureSensorData getTemperatures()
Gets the current temperature sensor data for this LBR. The update of the temperature sensor data is a time-consuming operation (its duration is approx. 160 ms), i.e. this method should not be used too frequently and unnecessary calls should be avoided! The temperature readings are done sequentially, so the returned values are not from the same point it time, but some time apart (again approx. 160ms).

Returns:
The current temperature sensor data for this LBR.

getSafetyState

public ISafetyState getSafetyState()
Gets the state of safety signals.

Overrides:
getSafetyState in class MovableDevice
Returns:
the safety state

getTorqueSensorLimits

public double[] getTorqueSensorLimits()
Gets the torque sensor Limits.

Specified by:
getTorqueSensorLimits in interface ITorqueSensitiveRobot
Returns:
Array of Values with the nominal Limit of robot axis. May be null if not supported.

checkTorqueSensor

public boolean checkTorqueSensor(com.kuka.roboticsAPI.deviceModel.JointEnum joint)
Checks if the torque sensor of the given axis works properly.

Specified by:
checkTorqueSensor in interface ITorqueSensitiveRobot
Parameters:
joint - The index of the axis.
Returns:
True if the torque sensor works properly, false otherwise.

initGmsSensorLimits

protected abstract void initGmsSensorLimits()
Initializes the Sensor Nominal Limits for GMS-Sensor.


setESMState

public abstract void setESMState(String name)
Sets an ESM (Event-driven Safety Monitoring) state configured in the safety configuration.

If the given parameter is a valid ESM name but the corresponding ESM state is not known in the safety configuration a stop category 1 is performed.

Parameters:
name - The name of the ESM state. Must be a numeric string between '1' and '10'.
Throws:
IllegalArgumentException - If the given parameter is not a numeric string between '1' and '10'.

setSafetyWorkpiece

public abstract void setSafetyWorkpiece(PhysicalObject wp)
Sets the workpiece load data used by safety monitoring functions.

Accepted value ranges after rounding:

The value of the mass should be also lower than, or equal to the highest workpiece mass, that is configured under Project/Properties/Sunrise/Safety.

Please note that this mechanism will be changed in future releases.

Parameters:
wp - The physical object containing the load data.
Throws:
IllegalArgumentException - If the load data values are out of the above specified limits.
IllegalStateException - In case the SSR fails.
This element is not in its final state and might change in future versions.

getAlphaAngle

public final double getAlphaAngle(JointPosition joints)
Calculates the alpha redundancy parameter for a given joint configuration.

Parameters:
joints - the joint position
Returns:
the alpha redundancy parameter in radians
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.
This element is not in its final state and might change in future versions.

getAlphaInverseKinematicFromReference

public JointPosition getAlphaInverseKinematicFromReference(AbstractFrame frame,
                                                           JointPosition correspondingJoints,
                                                           double alphaAngle)
Gets the joint position that correspond to alphaAngle and frame using the nearest solution to a given joint position.
Note: The E1 redundancy parameter of the frame is ignored. Instead, the alpha angle redundancy parameter is used.

Parameters:
frame - The frame containing the robot pose for the alpha inverse kinematics
correspondingJoints - The joint position reference to calculate the inverse kinematics. The result of the IK is the nearest solution to this joint position.
alphaAngle - The alpha angle redundancy parameter for the alpha inverse kinematics
Returns:
The joint position
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.
This element is not in its final state and might change in future versions.

getInverseKinematicFromFrameAndRedundancy

public JointPosition getInverseKinematicFromFrameAndRedundancy(AbstractFrame frame)
Gets the inverse kinematics value of the given frame for this robot. If the frame contains redundancy information, these are used for computation. If the frame does not contain redundancy information, an IllegalArgumentException is thrown.

Specified by:
getInverseKinematicFromFrameAndRedundancy in class Robot
Parameters:
frame - The frame for which the inverse kinematics is requested.
Returns:
The result of the calculation from the controller.
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.


Copyright © 2019. All rights reserved.