Class LBRState

Class Documentation

class LBRState

Wrapper class for the FRI monitoring message for a KUKA LBR (lightweight) robot.

Public Types

enum [anonymous]

Values:

enumerator NUMBER_OF_JOINTS

number of axes of the KUKA LBR robot

Public Functions

LBRState()
double getSampleTime() const

Get the sample time in seconds.

This is the period in which the KUKA Sunrise controller is sending FRI packets.

Returns:

sample time in seconds

ESessionState getSessionState() const

Get the current FRI session state.

Returns:

current FRI session state

EConnectionQuality getConnectionQuality() const

Get the current FRI connection quality.

Returns:

current FRI connection quality

ESafetyState getSafetyState() const

Get the current safety state of the KUKA Sunrise controller.

Returns:

current safety state

EOperationMode getOperationMode() const

Get the current operation mode of the KUKA Sunrise controller.

Returns:

current operation mode

EDriveState getDriveState() const

Get the accumulated drive state over all drives of the KUKA LBR controller.

If the drive states differ between drives, the following rule applies: 1) The drive state is OFF if all drives are OFF. 2) The drive state is ACTIVE if all drives are ACTIVE. 3) otherwise the drive state is TRANSITIONING.

Returns:

accumulated drive state

EClientCommandMode getClientCommandMode() const

Get the client command mode specified by the client.

Returns:

the client command mode specified by the client.

EOverlayType getOverlayType() const

Get the overlay type specified by the client.

Returns:

the overlay type specified by the client.

EControlMode getControlMode() const

Get the control mode of the KUKA LBR robot.

Returns:

current control mode of the KUKA LBR robot.

unsigned int getTimestampSec() const

Get the timestamp of the current robot state in Unix time.

This method returns the seconds since 0:00, January 1st, 1970 (UTC). Use getTimestampNanoSec() to increase your timestamp resolution when seconds are insufficient.

Returns:

timestamp encoded as Unix time (seconds)

unsigned int getTimestampNanoSec() const

Get the nanoseconds elapsed since the last second (in Unix time).

This method complements getTimestampSec() to get a high resolution timestamp.

Returns:

timestamp encoded as Unix time (nanoseconds part)

const double *getMeasuredJointPosition() const

Get the currently measured joint positions of the robot.

Returns:

array of the measured joint positions in radians

const double *getCommandedJointPosition() const

Get the last commanded joint positions of the robot.

Returns:

array of the commanded joint positions in radians

const double *getMeasuredTorque() const

Get the currently measured joint torques of the robot.

Returns:

array of the measured torques in Nm

const double *getCommandedTorque() const

Get the last commanded joint torques of the robot.

Returns:

array of the commanded torques in Nm

const double *getExternalTorque() const

Get the currently measured external joint torques of the robot.

The external torques corresponds to the measured torques when removing the torques induced by the robot itself.

Returns:

array of the external torques in Nm

const double *getIpoJointPosition() const

Get the joint positions commanded by the interpolator.

When commanding a motion overlay in your robot application, this method will give access to the joint positions currently commanded by the motion interpolator.

Throws:

FRIException – This method will throw an FRIException during monitoring mode.

Returns:

array of the ipo joint positions in radians

double getTrackingPerformance() const

Get an indicator for the current tracking performance of the commanded robot.

The tracking performance is an indicator on how well the commanded robot is able to follow the commands of the FRI client. The best possible value 1.0 is reached when the robot executes the given commands instantaneously. The tracking performance drops towards 0 when latencies are induced, e.g. when the commanded velocity, acceleration or jerk exceeds the capabilities of the robot. The tracking performance will always be 0 when the session state does not equal COMMANDING_ACTIVE.

Returns:

current tracking performance

bool getBooleanIOValue(const char *name) const

Get boolean IO value.

Throws:

FRIException – May throw an FRIException if the IO is of wrong type or unknown.

Parameters:

name – Full name of the IO (Syntax “IOGroupName.IOName”).

Returns:

Returns IO’s boolean value.

unsigned long long getDigitalIOValue(const char *name) const

Get digital IO value.

Throws:

FRIException – May throw an FRIException if the IO is of wrong type or unknown.

Parameters:

name – Full name of the IO (Syntax “IOGroupName.IOName”).

Returns:

Returns IO’s digital value.

double getAnalogIOValue(const char *name) const

Get analog IO value.

Throws:

FRIException – May throw an FRIException if the IO is of wrong type or unknown.

Parameters:

name – Full name of the IO (Syntax “IOGroupName.IOName”).

Returns:

Returns IO’s analog value.

Protected Attributes

FRIMonitoringMessage *_message

FRI monitoring message (protobuf struct)

Protected Static Attributes

static const int LBRMONITORMESSAGEID = 0x245142

type identifier for the FRI monitoring message corresponding to a KUKA LBR robot