5. Commands
5.1. Motion
5.1.1. Move To Point-to-Point
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 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 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
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 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 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
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 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
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 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
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 deletes the command.
Applications
Control third party devices such as conveyor belts or status lights.
5.2.4. Set User CS
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 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
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 deletes the command.
Clicking the info icon 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
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 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
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
Payload
Clicking the delete icon 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
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 deletes the command.
Applications
Improve the program’s readability.
Group several commands that belong to one specific task (machine tending, part inspection, etc.).