Motion and control configuration


Control mode

The KUKA LBR iiwa can be operated with a number of different controllers

Control mode

Enum (ControlMode)

Position controller: Execute the specified path with the maximum possible positional accuracy and without path deviation

CONTROL_MODE_POSITION

Cartesian impedance controller: Virtual spring damper system with configurable values for stiffness and damping. This allows the robot to react in a compliant manner to external influences

CONTROL_MODE_CARTESIAN_IMPEDANCE

Cartesian impedance controller with overlaid force oscillation: Special form of the Cartesian impedance controller. In addition to the compliant behavior, constant force setpoints and sinusoidal force oscillations can be overlaid

CONTROL_MODE_CARTESIAN_SINE_IMPEDANCE

Axis-specific impedance controller: Virtual spring damper system with configurable values for stiffness and damping for each axis (joint)

CONTROL_MODE_JOINT_IMPEDANCE

class libiiwa.ControlMode(value)

Bases: Enum

Configurable control modes

CONTROL_MODE_CARTESIAN_IMPEDANCE = 43
CONTROL_MODE_CARTESIAN_SINE_IMPEDANCE = 44
CONTROL_MODE_JOINT_IMPEDANCE = 42
CONTROL_MODE_POSITION = 41

set_control_mode

LibIiwa.set_control_mode(control_mode: ControlMode) bool

Set the control mode

Parameters:

control_mode (ControlMode) – Control mode

Raises:

AssertionError – If the control mode is not valid

Returns:

True if successful, False otherwise

Return type:

bool

Example:

>>> iiwa.set_control_mode(libiiwa.ControlMode.CONTROL_MODE_POSITION)
True

Motion type

The KUKA LBR iiwa can programmed to perform different types of motion

Motion type

Enum (MotionType)

Point-to-point motion (PTP): Executes a point-to-point motion to the end point

MOTION_TYPE_PTP

Linear motion (LIN): Executes a linear motion to the end point

MOTION_TYPE_LIN

Linear relative motion (LIN_REL): Executes a linear motion relative to the end position of the previous

MOTION_TYPE_LIN_REL

Circular motion (CIRC): Executes a circular motion

MOTION_TYPE_CIRC

class libiiwa.MotionType(value)

Bases: Enum

Configurable motion types

MOTION_TYPE_CIRC = 24
MOTION_TYPE_LIN = 22
MOTION_TYPE_LIN_REL = 23
MOTION_TYPE_PTP = 21

set_motion_type

LibIiwa.set_motion_type(motion_type: MotionType) bool

Set the motion type

Parameters:

motion_type (MotionType) – Motion type

Raises:

AssertionError – If the motion type is not valid

Returns:

True if successful, False otherwise

Return type:

bool

Example:

>>> iiwa.set_motion_type(libiiwa.MotionType.MOTION_TYPE_LIN)
True

Control interface

The KUKA LBR iiwa can be operated with a number of different motion classes

Control interface

Enum (ControlInterface)

Standard: TODO

CONTROL_INTERFACE_STANDARD

Servo motions (Servoing): Non-deterministic, soft real-time motions

CONTROL_INTERFACE_SERVO

Fast Research Interface: TODO

CONTROL_INTERFACE_FRI

class libiiwa.ControlInterface(value)

Bases: Enum

Configurable control interfaces

CONTROL_INTERFACE_FRI = 33
CONTROL_INTERFACE_SERVO = 32
CONTROL_INTERFACE_STANDARD = 31

set_control_interface

LibIiwa.set_control_interface(control_interface: ControlInterface) bool

Set the control interface

Parameters:

control_interface (ControlInterface) – Control interface

Raises:

AssertionError – If the control interface is not valid

Returns:

True if successful, False otherwise

Return type:

bool

Example:

>>> iiwa.set_control_interface(libiiwa.ControlInterface.CONTROL_INTERFACE_SERVO)
True

Execution type

Motion commands can be executed synchronously or asynchronously

Execution type

Enum (ExecutionType)

Synchronous: Motion commands are sent in steps to the real-time controller and executed (blocking)

EXECUTION_TYPE_SYNCHRONOUS

Asynchronous: Next program line is executed directly after the motion command is sent (non-blocking)

EXECUTION_TYPE_ASYNCHRONOUS

class libiiwa.ExecutionType(value)

Bases: Enum

Configurable execution types

EXECUTION_TYPE_ASYNCHRONOUS = 51
EXECUTION_TYPE_SYNCHRONOUS = 52

set_execution_type

LibIiwa.set_execution_type(execution_type: ExecutionType) bool

Set the execution type

Parameters:

execution_type (ExecutionType) – Execution type

Raises:

AssertionError – If the execution type is not valid

Returns:

True if successful, False otherwise

Return type:

bool

Example:

>>> iiwa.set_control_mode(libiiwa.ExecutionType.EXECUTION_TYPE_ASYNCHRONOUS)
True