5. Commands

5.1. Motion

5.1.1. Move To Point-to-Point

Interface of the Move To PTP command

Fig. 97 Interface of the Move To PTP command

Description

Use this command to move the robot to the given target pose in the quickest way possible via a joint space movement. You can define the target coordinate system, choose between an absolute and a relative movement, set the movement speed and include a blending option.

This command moves the robot on a joint space path to the given target pose by synchronizing the motion of all axes to the slowest one. The resulting path is not always trivial and should therefore be tested with reduced speed to avoid collisions. If required, further way points can be added using additional Move To Point-to-Point commands with blending.

Parameterization

  • Movement type: Selection of the movement type (linear or point-to-point).

  • Description: Assign a name to the command which will be shown in the program overview.

  • Target: Coordinates of the commanded target pose in the selected coordinate system. If the target pose is given in a Cartesian reference frame, the solution of the inverse kinematics is not unique (i.e. there exists more than one possible valid axis configuration). In this case the robot will automatically determine a reasonable target configuration in joint space. If possible the one with the minimal moving distance for each joint.

    • Coordinate system: Define the reference frame in which the target pose is given. Options are: Joint CS, Robot CS and Tool CS.

    • Absolute/Relative: Specify whether the target is given as an absolute or a relative pose (added to the current pose).

    • Pose: Choose a pose from the existing program variables.

  • Speed: Change the velocity scaling in percent with respect to the maximum axis velocities. Whether the maximum velocity can be reached depends on the distance, the system’s dynamics limitations and the maximum Cartesian velocity.

  • Blending: Change the blending setting. Blending is parameterized retroactively. This means, the blending parameters of a segment define the transition of the parameterized segment with the previous segment. The value is given in percent and 100 percent blending corresponds to half of the angular movement of each motor. If the second motion segment is commanded with a delay (e.g. due to a condition), the blending might not be executed properly. PTP movements can be blended to avoid standstill and optimize traveling time.

Note

Blending between joint space and Cartesian movements is currently not supported.

Additional Information

  • Clicking the delete icon delete deletes the command.

  • The Cancel button closes the command editor without saving current changes.

  • The Apply button saves all current changes and closes the command editor.

  • Clicking the extended settings page icon chevron_right on the right extends the page to show the digital twin or the camera image.

  • The Control button opens the control panel in which you can manually move the robot.

  • The Move to Pose button moves the robot to the pose entered in the input fields above.

  • The Get Pose button updates the entered coordinates with the robot’s current pose.

Applications

  • Reach a target pose the quickest way possible (e.g. to position the robot before executing a precision movement).

  • Avoiding obstacles within the robot’s workspace.

  • Traverse through singularities / change the robot’s axis configuration.

5.1.2. Move To Linear

Interface of the Move To Linear command

Fig. 98 Interface of the Move To Linear command

Description

Use this command to move the robot on a linear path to the given target pose. You can define the target coordinate system, choose between an absolute and a relative movement, set the movement speed and include a blending option.

Parameterization

  • Movement type: Selection of the movement type (linear or point-to-point).

  • Description: Assign a name to the command which will be shown in the program overview.

  • Target: Coordinates of the commanded target pose in the selected coordinate system. If the target pose is given in joint coordinates, the motion planner will determine the corresponding pose of the end effector based on the provided axis angles and use this Cartesian pose as target for the motion path. The robot will reach this Cartesian target pose but may not necessarily reach the parameterized joint configuration.

    • Coordinate system: Define the reference frame in which the target pose is given. Options are: Joint CS, Robot CS and Tool CS.

    • Absolute/Relative: Specify whether the target is given as an absolute or a relative pose (added to the current pose).

    • Pose: Choose a pose from the existing program variables.

  • Speed: Set the path acceleration and velocity or choose from presets. Whether the specified velocity can be reached during the particular motion command depends on the path geometry and the system’s dynamics limitations.

  • Blending: Change the blending setting. Blending is parameterized retroactively. This means, the blending parameters of a segment define the transition of the parameterized segment with the previous segment. The value is given in percent and 100 percent blending corresponds to half of the absolute length of the shorter one of both segments. If the second motion segment is commanded with a delay (e.g. due to a condition), the blending might not be executed properly. Linear movements can be blended to avoid standstill and optimize traveling time.

Note

Blending between joint space and Cartesian movements is currently not supported.

Additional Information

  • Clicking the delete icon delete deletes the command.

  • The Cancel button closes the command editor without saving current changes.

  • The Apply button saves all current changes and closes the command editor.

  • Clicking the extended page icon chevron_right on the right extends the page to show the digital twin or the camera image.

  • The Control button opens the control panel in which you can manually move the robot.

  • The Move to Pose button moves the robot to the pose entered in the input fields above.

  • The Get Pose button updates the entered coordinates with the robot’s current pose.

Applications

  • Define a straight movement path between two points.

  • Approach a target point from an exactly defined direction.

5.2. Logic

5.2.1. Conditional

Interface of the Conditional command

Fig. 99 Interface of the Conditional command

Programming interface of the Conditional command

Fig. 100 Programming interface of the Conditional command

Description

Use this command to create a program branch that is only executed if a specified condition is satisfied (Fig. 100). If the condition is not satisfied the ELSE branch is executed.

Parameterization

Possible Conditions:

Tool State

Compare the state of the equipped tool.

Digital Input

High/Low.

Digital Output

High/Low.

Custom Variables

Compare the value of a program variable.

Additional Information

Available operators are:

equal to

==

not equal to

!=

less than

<

less than or equal to

<=

greater than

>

greater than or equal to

>=

  • Clicking the delete icon delete deletes the command.

Applications

  • Integrate additional hardware (e.g. sensors) and trigger different actions depending on their state.

  • Check the tool state to ensure that an object has been grasped.

5.2.2. Repeat

Interface of the Repeat command

Fig. 101 Interface of the Repeat command

Description

Use this command to execute a group of commands in a loop. Choose between different conditions to end the loop.

Parameterization

Possible options:

  • Number of Times: Specify the number of repetitions by entering any positive integer.

  • Forever: Repeat the commands inside the group in an infinite loop.

  • Condition: Specify a condition. The internal commands will be repeated as long as the given condition holds true.

  • Use Counter [optional]: Create a counter variable which will be incremented with each repetition.

Counter Variable Example

In this example the counter variable is used to increase a different variable each 6th loop.

if (counter_variable % 6) == 0:
   tray_counter += 1

Additional Information

  • Clicking the delete icon delete deletes the command.

  • Digital inputs can be used as condition variable to react to states of external logical devices.

Applications

  • Automate repeating task without programming every iteration manually.

  • Execute a program in an infinite loop.

5.2.3. Set Digital Outputs

Interface of the Set Digital Outputs command

Fig. 102 Interface of the Set Digital Outputs command

Description

Use this command to set multiple digital outputs.

Parameterization

  • Name: Assign a name which will be shown next to the command.

  • Add Digital Outputs: Configure an output by selecting one from the dropdown menu and choosing LOW or HIGH. Click the add icon (Fig. 102/)

  • After adding an output to the configured outputs, you can change its state or delete it from the list by clicking on the corresponding delete icon (Fig. 102/).

Additional Information

  • Clicking the delete icon delete deletes the command.

Applications

  • Control third party devices such as conveyor belts or status lights.

5.2.4. Set User CS

Interface of the Set User CS command

Fig. 103 Interface of the Set User CS command

Description

Use this command to create a new coordinate system which can be used for motion commands as a reference system. New coordinate systems must be defined with respect to other coordinate systems, e.g. the Robot CS.

Parameterization

  • Reference CS: Choose the coordinate system in which the user coordinate system is defined. Options are: Robot CS, Tool CS, User CS [1-4], Object CS and Tag CS.

  • Target CS: Select the User CS to be defined. Options are User CS [1-4].

    • x: x-coordinate of the origin w.r.t. the reference CS.

    • y: y-coordinate of the origin w.r.t. the reference CS.

    • z: z-coordinate of the origin w.r.t. the reference CS.

    • x-Rotation: Relative orientation around the x-axis w.r.t. the reference CS.

    • y-Rotation: Relative orientation around the y’-axis w.r.t. the reference CS.

    • z-Rotation: Relative orientation around the z’’-axis w.r.t. the reference CS.

Additional Information

  • Clicking the delete icon delete deletes the command.

  • The Get Pose button updates the entered coordinates with the robot’s current pose.

  • The relative orientation of the desired coordinate system is defined in Cardan angles, i.e. sequential (intrinsic) rotations around the x-axis, the rotated y’-axis, and the rotated z’’-axis of the reference CS.

Applications

  • Define a machine coordinate system in machine tending applications.

  • Define a tray coordinate system for (de-)palletizing tasks.

Limitations

  • The User CS is static. This command does not allow conveyor tracking etc.

5.2.5. Run Script

Interface of the Run Script command

Fig. 104 Interface of the Run Script command

Description

Use this command to write custom Python code inside your program and create new functionalities.

Parameterization

  • Script Name: Assign a name to the command to describe its functionality.

  • Python Code: Use this editor to write your own Python code.

Additional Information

  • Import Python libraries to access various functionalities.

  • Clicking the delete icon delete deletes the command.

  • Clicking the info icon info opens the Python robot API documentation for additional help.

  • Use the code snippets below the editor for syntax tips.

  • The Run Script command can be expanded in the program overview to show the Python code during program execution.

5.2.6. Wait

Interface of the Wait command

Fig. 105 Interface of the Wait command

Custom waiting condition

Fig. 106 Custom waiting condition

Description

Use this command to pause the program until a specified condition is met.

Parameterization

  • Wait time: Set the waiting duration in seconds.

  • Wait until robot stopped: The program pauses until the robot has stopped moving.

  • Custom: Define a custom condition. Options are: Tool state, Digital input, Digital output, program variables (see Fig. 106).

Additional Information

  • Clicking the delete icon delete deletes the command.

  • The custom variable can also be a loop counter from a previous Repeat command.

Available operators are:

equal to

==

not equal to

!=

less than

<

less than or equal to

<=

greater than

>

greater than or equal to

>=

5.3. Tool

5.3.1. Tool Command

Interface of the Tool Command

Fig. 107 Interface of the Tool Command

Description

Use this command to control the equipped tool and set a TCP and/or mass offset.

Parameterization

  • General

    • TCP Offset: Enable/Disable the TCP offset option.

    • Payload: Enable/Disable the payload option.

    • Command checkbox: Enable/Disable the tool command option.

    • Command dropdown: Select a tool command from the dropdown menu. Available options depend on the active tool. New commands can be added via the tool settings.

  • TCP

    • x: Offset in x-direction of the Tool CS.

    • y: Offset in y-direction of the Tool CS.

    • z: Offset in z-direction of the Tool CS.

    • rx: Rotation around the x-axis.

    • ry: Rotation around the y’-axis.

    • rz: Rotation around the z’’-axis.

  • Payload

    • m: Additional mass at the end effector.

    • x: Center of mass of the payload in x-direction of the Tool CS.

    • y: Center of mass of the payload in y-direction of the Tool CS.

    • z: Center of mass of the payload in z-direction of the Tool CS.

Defining a payload

Fig. 108 Defining a payload

  • Clicking the delete icon delete deletes the command.

  • Only the differences in position/orientation/mass have to be specified. The resulting values will be shown in the interface.

  • The new TCP and payload parameters will be considered in the robot’s dynamics and kinematics model.

  • The code generator will automatically insert a wait_for_robot_stop_movement() command before the tool command, hence the tool command will only be executed after the robot has come to stop. If you want to control the tool during the robot’s movement, use the execute_tool_command() command via Python.

Applications

  • Control the tool (e.g. a gripper) to handle objects in pick-and-place applications, etc.

  • Adjust the TCP and payload parameters when an additional tool and/or heavy object has been grasped.

5.4. Other

5.4.1. Group

Interface of the Group command

Fig. 109 Interface of the Group command

Description

Use this command to group multiple commands and assign a name to them. If necessary, the group can be collapsed to improve the program’s readability.

Parameterization

  • Group Name: Assign a name to the group to describe its functionality.

Additional Information

  • Clicking the delete icon delete deletes the command.

Applications

  • Improve the program’s readability.

  • Group several commands that belong to one specific task (machine tending, part inspection, etc.).