Polyscope Manual: Original Instructions (En) Us Version
Polyscope Manual: Original Instructions (En) Us Version
The information contained herein is the property of Universal Robots A/S and shall not be reproduced
in whole or in part without prior written approval of Universal Robots A/S. The information herein is
subject to change without notice and should not be construed as a commitment by Universal Robots
A/S. This manual is periodically reviewed and revised.
Universal Robots A/S assumes no responsibility for any errors or omissions in this document.
Copyright 20092015 by Universal Robots A/S
CB3
ii
Contents
II
PolyScope Manual
II-1
10 Safety Configuration
II-3
10.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-3
10.2
II-5
10.3
II-5
10.4
Tolerances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-6
10.5
Safety Checksum
. . . . . . . . . . . . . . . . . . . . . . . . . . .
II-6
10.6
Safety Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-7
10.7
Freedrive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-7
10.8
Password Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-8
10.9
Apply
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
II-8
II-9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . II-11
. . . . . . . . . . . . . . . . . . . . II-18
. . . . . . . . . . . . . . . . . . . . . . . . . II-22
11 Begin programming
II-23
11.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II-23
11.2
11.3
11.4
11.5
Initialization Screen
. . . . . . . . . . . . . . . . . . . . . . . . . . II-29
iii
CB3
12 On-screen Editors
II-33
12.1
12.2
12.3
12.4
13 Robot Control
13.1
II-39
. . . . . . . . . . . . . . . . . . . . . . . . . . . II-40
13.2
13.3
13.4
13.5
13.6
13.8
13.9
. . . . . . . . . . . . . . . . . . . . . . . . II-50
II-67
14.1
New Program
14.2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . II-67
iv
. . . . . . . . . . . . . . . . . . . . . . . II-70
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II-71
14.4
14.5
14.6
14.7
14.8
14.9
. . . . . . . . . . . . . . . . . . . . . . . II-76
. . . . . . . . . . . . . . . . . . . . . . II-79
. . . . . . . . . . . . . . . . . . . . . . . . . . . II-86
II-109
15.1
15.2
15.3
15.4
15.5
15.6
CB3
CB3
vi
Part II
PolyScope Manual
10
10.1
Safety Configuration
Introduction
The robot is equipped with an advanced safety system. Depending on the particular characteristics of the robot workspace, the settings for the safety system must be
configured to guarantee the safety of all personnel and equipment around the robot.
Applying settings defined by the risk assessment is the first thing the integrator must
do. For details on the safety system, see the Hardware Installation Manual.
DANGER:
1. Use and configuration of safety-related functions and interfaces
must be done according to the risk assessment that the integrator conducts for a specific robot application, see the Hardware
Installation Manual.
2. Safety configuration settings for set-up and teaching must be
applied according to the risk assessment conducted by the inte3. All safety configuration settings accessible on this screen and its
subtabs are required to be set according to the risk assessment
conducted by the integrator.
4. The integrator is required to ensure that all changes to the safety
configuration settings are done in compliance with the integrators own risk assessment.
5. The integrator must prevent unauthorized persons from changing the safety configuration, e.g. by use of password protection.
The Safety Configuration screen can be accessed from the Welcome screen (see 11.4)
by pressing the Program Robot button, selecting the Installation tab and tapping Safety. The safety configuration is password protected, see 10.8.
II-3
CB3
grator and before the robot arm is powered on for the first time.
10.1 Introduction
The safety settings consist of a number of limit values used to constrain the moveCopyright 20092015 by Universal Robots A/S. All rights reserved.
ments of the robot arm, and of safety function settings for the configurable inputs and
outputs. They are defined in the following subtabs of the safety screen:
The General Limits subtab defines the maximum force, power, speed and momentum of the robot arm. When the risk of hitting a human or colliding with a
part of its environment is particularly high, these settings need to be set to low
values. If the risk is low, higher general limits enable the robot to move faster and
exert more force on its environment. For further details, see 10.10.
The Joint Limits subtab consists of joint speed and joint position limits. The
joint speed limits define the maximum angular velocity of individual joints and
serve to further limit the speed of the robot arm. The joint position limits define
the allowed position range of individual joints (in joint space). For further details,
see 10.11.
The Boundaries subtab defines safety planes (in Cartesian space) and a tool orientation boundary for the robot TCP. The safety planes can be configured either
as hard limits for the position of the robot TCP, or triggers for activating the Reduced mode safety limits (see 10.6)). The tool orientation boundary puts a hard
limit on the orientation of the robot TCP. For further details, see 10.12.
The Safety I/O subtab defines safety functions for configurable inputs and
outputs (see 13.2). For example, Emergency Stop can be configured as an input.
For further details, see 10.13.
CB3
II-4
10.2
10.3
II-5
CB3
the GUI has loaded, is depicted by the shield icon next to the text Safety on the left
10.4
Tolerances
In the Safety Configuration, physical limits are set. The input fields for these limits are
excluding the tolerances: where applicable tolerances are displayed next to the field.
The Safety System receives the values from the input fields, and detects any violation
of these values. The Robot Arm attempts to prevent any violations of the safety system
and gives a protective stop by stopping the program execution when the limit minus
the tolerance is reached. Note, that this means that a program might not be able to
perform motions very close to a limit, e.g. the robot may not be able to obtain the
exact maximum speed specified by a joint speed limit or the TCP speed limit.
WARNING:
A risk assessment is always required using the limit values without
tolerances.
WARNING:
Tolerances are specific to the version of the software. Updating the
software may change the tolerances. Consult the release notes for
changes between versions.
10.5
Safety Checksum
The text in the top right corner of the screen gives a shorthand representation of the
safety configuration currently used by the robot. When the text changes, this indicates
that the current safety configuration has changed as well. Clicking on the checksum
displays the details about the currently active safety configuration.
CB3
II-6
10.6
Safety Modes
Under normal conditions (i.e. when no protective stop is in effect), the safety system
operates in one of the following safety modes, each with an associated set of safety
limits:
Normal mode: The safety mode that is active by default;
Reduced mode: Active when the robot TCP is positioned beyond a Trigger Reduced mode
plane (see 10.12), or when triggered using a configurable input (see 10.13).
Recovery mode: When the robot arm is in violation of one of the other modes (i.e. Normal or Reduced mode) and a Stop Category 0 has occurred,1 the robot arm will
start up in Recovery mode. This mode allows the robot arm to be manually adjusted until all violations have been resolved. It is not possible to run programs
for the robot in this mode.
WARNING:
Note that limits for joint position, TCP position and TCP orientation are
disabled in Recovery mode, so take caution when moving the robot
arm back within the limits.
sets of safety limits for Normal and Reduced mode. For the tool and joints, Reduced mode
limits regarding speed and momentum are required to be more restrictive than their
Normal mode counterparts.
When a safety limit from the active limit set is violated, the robot arm performs a Stop
Category 0. If an active safety limit, such as a joint position limit or a safety boundary,
is violated already when the robot arm is powered on, it starts up in Recovery mode.
This makes it possible to move the robot arm back within the safety limits. While in
Recovery mode, the movement of the robot arm is limited by a fixed limit set that is not
customizable by the user. For details about Recovery mode limits, see the Hardware
Installation Manual.
10.7
Freedrive Mode
When in Freedrive mode (see 13.1.5) and the movement of the robot arm comes close
to certain limits, the user will feel a repelling force. This force is generated for limits
on the position, orientation and speed of the robot TCP and the position and speed of
the joints.
The purpose of this repelling force is to inform the user that the current position or
speed is close to a limit and to prevent the robot from violating that limit. However,
if enough force is applied by the user to the robot arm, the limit can be violated. The
magnitude of the force increases as the robot arm comes closer to the limit.
1 According
II-7
CB3
The subtabs of the Safety Configuration screen enable the user to define separate
10.9 Apply
10.8
Password Lock
All settings on this screen are locked until the correct safety password (see 15.3) is
entered in the white text field at the bottom of the screen and the Unlock button is
pressed. The screen can be locked again by clicking the Lock button. The Safety tab
is automatically locked when navigating away from the safety configuration screen.
When the settings are locked, a lock icon is visible next to the text Safety on the left
side of the screen. An unlock icon is shown when the settings are unlocked.
NOTE:
Note that the robot arm is powered off when the safety Configuration
screen is unlocked.
10.9
Apply
When unlocking the safety configuration, the robot arm will be powered off while
changes are being made. The robot arm cannot be powered on until the changes have
been applied or reverted, and a manual power on is performed from the initialization
screen.
Any changes to the safety configuration must be applied or reverted, before navigating away from the Installation tab. These changes are not in effect until after the Apply
button is pressed and confirmation is performed. Confirmation requires visual inspection of the changes given to the robot arm. For safety reasons, the information shown
is given in SI Units. An example of the confirmation dialog is shown below.
CB3
II-8
Furthermore, on confirmation the changes are automatically saved as part of the current robot installation. See 13.5 for further information on saving the robot installation.
10.10
General Limits
The general safety limits serve to limit the linear speed of the robot TCP as well as the
force it may exert on the environment. They are composed of the following values:
Force: A limit for the maximum force that the robot TCP exerts on the environment.
Power: A limit for the maximum mechanical work produced by the robot on the environment, considering that the payload is part of the robot and not of the environment.
Speed: A limit for the maximum linear speed of the robot TCP.
Momentum: A limit for the maximum momentum of the robot arm.
There are two means available for configuring the general safety limits within the installation; Basic Settings and Advanced Settings which are described more fully below.
Defining the general safety limits only defines the limits for the tool, and not the overall limits of the robot arm. This means that although a speed limit is specified, it does
not guarantee that other parts of the robot arm will obey this same limitation.
II-9
CB3
The initial general limits subpanel, shown as the default screen, fea-
tures a slider with four predefined sets of values for force, power, speed, and momentum limits in both Normal and Reduced mode.
The specific sets of values are shown in the GUI. Predefined sets of values are suggestions only and shall not substitute a proper risk assessment.
Switching to Advanced Settings Should none of the predefined sets of values be
satisfactory, the Advanced Settings... button can be pressed to enter the advanced general limits screen.
Advanced Settings
Here, each of the general limits, described in 10.10, can be modified independently of
the others. This is done by tapping the corresponding text field and entering the new
value. The highest accepted value for each of the limits is listed in the column titled
Maximum.
The force limit can be set to a value between 100 N and 250 N, and the
CB3
II-10
10.11
Joint Limits
II-11
CB3
to it. When a program is running, the speed of the robot arm is automatically adjusted
in order to not exceed any of the entered values minus the tolerance (see 10.4). Note
that the minus sign displayed with each tolerance value is only there to indicate that
the tolerance is subtracted from the actual entered value. Nevertheless, should the
angular velocity of some joint exceed the entered value (without tolerance), the safety
system performs a Stop Category 0.
Position Range This screen defines the position range for each joint. This is done by
tapping the corresponding text fields and entering new values for the lower and upper
joint position boundary. The entered interval must fall within the values listed in the
column titled Range and the lower boundary cannot exceed the upper boundary.
Note that the fields for limits in Reduced mode are disabled when neither a safety plane
nor a configurable input is set to trigger it (see 10.12 and 10.13 for more details).
The tolerances and unit for each limit are listed at the end of the row that corresponds
to it. The first tolerance value applies to the minimum value and the second applies to
the maximum value. Program execution is aborted when the position of a joint is about
to exceed the range resulting from adding the first tolerance to the entered minimum
value and subtracting the second tolerance from the entered maximum value, if it
continues moving along the predicted trajectory. Note that the minus sign displayed
with the tolerance value is only there to indicate that the tolerance is subtracted from
the actual entered value. Nevertheless, should the joint position exceed the entered
range, the safety system performs a Stop Category 0.
CB3
II-12
10.12 Boundaries
10.12
Boundaries
In this tab you can configure boundary limits consisting of safety planes and a limit
on the maximum allowed deviation of the robot tool orientation. It is also possible to
define planes that trigger a transition into Reduced mode.
Safety planes can be used to restrict the allowed workspace of the robot by enforcing
that the robot TCP stay on the correct side of the defined planes and not pass through
them. Up to eight safety planes can be configured. The constraint on the orientation
of tool can be utilized to ensure that the robot tool orientation does not deviate more
than a certain specified amount from a desired orientation.
WARNING:
Defining safety planes only limits the TCP and not the overall limit
for the robot arm. This means that although a safety plane is specified, it does not guarantee that other parts of the robot arm will obey
this restriction.
The configuration of each boundary limit is based on one of the features defined in the
NOTE:
It is highly recommended, that you create all features needed for the
configuration of all the desired boundary limits and assign them appropriate names before editing the safety configuration. Note that
since the robot arm is powered off once the Safety tab has been unlocked, the Tool feature (containing the current position and orientation of the robot TCP) as well as Freedrive mode (see 13.1.5) will not
be available.
When in Freedrive mode (see 13.1.5), and the current position of the robot TCP is close
to a safety plane, or the deviation of the orientation of the robot tool from the desired
orientation is close to the specified maximum deviation, the user will feel a repelling
force which increases in magnitude as the TCP approaches the limit. The force is generated when the TCP is within approximately 5 cm of a safety plane, or the deviation of
the orientation of the tool is approximately 3 from the specified maximum deviation.
When a plane is defined as a Trigger Reduced mode plane and the TCP goes beyond this
boundary, the safety system transitions into Reduced mode which applies the Reduced
mode safety settings. Trigger planes follow the same rules as regular safety planes
except they allow the robot arm to pass through them.
II-13
CB3
10.12 Boundaries
10.12.1
If a boundary limit is active, the safety mode (see 10.12.3 and 10.12.4) is indicated by one
of the following icons
10.12.2
3D visualization
The 3D View displays the configured safety planes and the orientation boundary limit
for the robot tool together with the current position of the robot arm. All configured
10.12.3
CB3
II-14
10.12 Boundaries
The Name text field allows the user to assign a name to the selected safety
plane. Change the name by tapping the text field and entering a new name.
Copy Feature
The position and normal of the safety plane is specified using a fea-
ture (see 13.12) from the current robot installation. Use the drop-down box in the lower
left portion of the Safety Plane Properties section to select a feature. Only the
point and plane type features are available. Choosing the <Undefined> item clears
the configuration of the plane.
The z-axis of the selected feature will point to the disallowed area and the plane normal
will point in the opposite direction, except when the Base feature is selected, in which
case the plane normal will point in the same direction. If the plane is configured as
a Trigger Reduced mode plane (see 10.12.3), the plane normal indicates the side of the
plane that does not trigger transition into Reduced mode.
It should be noted that when the safety plane has been configured by selecting a feature, the position information is only copied to the safety plane; the plane is not linked
to that feature. This means that if there are changes to the position or orientation of a
feature which has been used to configure a safety plane, the safety plane is not automatically updated. If the feature has changed, this is indicated by a
over the feature selector. Click the
icon positioned
plane with the current position and orientation of the feature. The
icon is also
displayed if the selected feature has been deleted from the installation.
II-15
CB3
Name
10.12 Boundaries
Safety mode The drop down menu on the right hand side of the Safety Plane
Properties panel is used to choose the safety mode for the safety plane, with the
following modes available:
Disabled
Normal
Reduced
When the safety system is either in Normal or Reduced mode, a Trigger Reduced mode plane is active
and it causes the safety system to switch to Reduced
mode for as long as the robot TCP is positioned beyond it.
The selected safety mode is indicated by an icon in the corresponding entry in the
Safety Boundaries panel. If the safety mode is set to Disabled, no icon is shown.
Displacement When a feature has been selected in the drop down box in the lower
left portion of the Safety Plane Properties panel, the safety plane can be translated by tapping the Displacement text field in the lower right portion of this panel
and entering a value. Entering in a positive value increases the allowed workspace of
the robot by moving the plane in the opposite direction of the plane normal, while entering a negative value decreases the allowed area by moving the plane in the direction
of the plane normal.
The tolerance and unit for the displacement of the boundary plane are shown to the
right of the text field.
Effect of strict limit planes Program execution is aborted when the TCP position
is about to cross an active, strict limit safety plane minus the tolerance (see 10.4), if it
continues moving along the predicted trajectory. Note that the minus sign displayed
with the tolerance value is only there to indicate that the tolerance is subtracted from
the actual entered value. The safety system will perform a Stop Category 0, should the
TCP position exceed the specified limit safety plane (without tolerance).
Effect of Trigger Reduced mode planes When no protective stop is in effect and
the safety system is not in the special Recovery mode (see 10.6), it operates either in NorCB3
II-16
10.12 Boundaries
mal or Reduced mode and the movements of the robot arm are limited by the respective
limit set.
By default, the safety system is in Normal mode. It transitions into Reduced mode whenever one of the following situations occurs:
a) The robot TCP is positioned beyond some Trigger Reduced mode plane, i.e. it is
located on the side of the plane that is opposite to the direction of the small arrow
in the visualization of the plane.
b) The Reduced Mode safety input function is configured and the input signals are
low (see 10.13 for more details).
When none of the above is the case any longer, the safety system transitions back to
Normal mode.
When the transition from Normal to Reduced mode is caused by passing through a
Trigger Reduced mode plane, a transition from the Normal mode limit set to the Reduced
mode limit set occurs. As soon as the robot TCP is positioned 20 mm or closer to the
Trigger Reduced mode plane (but still on the Normal mode side), the more permissive
of the Normal and Reduced mode limits is applied for each limit value. Once the robot
TCP passes through the Trigger Reduced mode plane, the Normal mode limit set is no
longer active and the Reduced mode limit set is enforced.
Reduced mode plane, a transition from the Reduced mode limit set to the Normal mode
limit set occurs. As soon as the robot TCP passes through the Trigger Reduced mode
plane, the more permissive of the Normal and Reduced mode limits is applied for each
limit value. Once the robot TCP is positioned 20 mm or further from the Trigger Reduced
mode plane (on the Normal mode side), the Reduced mode limit set is no longer active
and the Normal mode limit set is enforced.
If the predicted trajectory takes the robot TCP through a Trigger Reduced mode plane,
the robot arm will start decelerating even before passing through the plane if it is
about to exceed joint speed, tool speed or momentum limit in the new limit set. Note
that since these limits are required to be more restrictive in the Reduced mode limit
set, such premature deceleration can occur only when transitioning from Normal to
Reduced mode.
II-17
CB3
When a transition from Reduced to Normal mode is caused by passing through a Trigger
10.12 Boundaries
10.12.4
The Tool Boundary Properties panel at the bottom of the tab defines a limit on
the orientation of robot tool composed of a desired tool orientation and a value for the
maximum allowed deviation from this orientation.
Deviation
The Deviation text field shows the value for the maximum allowed de-
viation of the orientation of the robot tool from the desired orientation. Modify this
value by tapping the text field and entering the new value.
The accepted value range together with the tolerance and unit of the deviation are
listed next to the text field.
Copy Feature
(see 13.12) from the current robot installation. The z-axis of the selected feature will be
used as the desired tool orientation vector for this limit.
Use the drop down box in the lower left portion of the Tool Boundary Properties
panel to select a feature. Only the point and plane type features are available. Choosing the <Undefined> item clears the configuration of the plane.
It should be noted that when the limit has been configured by selecting a feature, the
orientation information is only copied to the limit; the limit is not linked to that feature.
This means that if there are changes to the position and orientation of a feature, which
has been used to configure the limit, the limit is not automatically updated. If the
CB3
II-18
10.12 Boundaries
feature has changed, this is indicated by a
Click the
button next to the selector to update the limit with the current orientation
Normal
Reduced
When the safety system is either in Normal or Reduced mode, the tool boundary limit is active.
The selected safety mode is indicated by an icon in the corresponding entry in the
Effect Program execution is aborted when the deviation of the tool orientation is
about to exceed the entered maximum deviation minus the tolerance (see 10.4), if it
continues moving along the predicted trajectory. Note that the minus sign displayed
with the tolerance value is only there to indicate that the tolerance is subtracted from
the actual entered value. The safety system will perform a Stop Category 0, should the
deviation of the tool orientation exceed the limit (without tolerance).
II-19
CB3
Safety Boundaries panel. If the safety mode is set to Disabled, no icon is shown.
10.13
Safety I/O
This screen defines the Safety functions for configurable inputs and outputs (I/Os).
The I/Os are divided between the inputs and outputs, and are paired up so that each
function is providing a Category2 3 and PLd I/O.
Each Safety function can only control one pair of I/Os. Trying to select the same safety
function a second time removes it from the first pair of I/Os previously defined. There
are 5 Safety functions for input signals, and 4 for output signals.
10.13.1
Input Signals
For input signals, the following Safety functions can be selected: Emergency Stop,
Reduced Mode, Safeguard Reset, 3-Position Switch and Operational Mode.
Emergency Stop When selected, this allows the option of having an alternative
Emergency Stop button in inclusion of the one that is on the Teach Pendant. This
will provide the same functionality that the Emergency Stop button provides on the
Teach Pendant when a device complying with ISO 13850:2006 is attached.
Reduced Mode
All safety limits have two modes in which they can be applied: Nor-
mal mode, which specifies the default safety configuration, and Reduced mode (see 10.6
2 According
CB3
II-20
II-21
CB3
NOTE:
After the Safety I/O configuration with 3-Position Switch enabled is confirmed, the Welcome screen is automatically shown. The
Welcome screen is also automatically displayed when the operational
mode changes from Programming to Running.
10.13.2
Output Signals
For the output signals the following Safety functions can be applied. All signals return
to low when the state which triggered the high signal has ended:
System Emergency Stop
Robot Moving
When the robot arm has been requested to stop, some time
will pass from the request until the arm stops. During this time the signal will be high.
When the robot arm is moving and has not been requested to stop, or when the robot
arm is in a stopped position, the signal will be low.
Reduced Mode
Sends a low signal when the robot arm is placed in Reduced mode
or if the safety input is configured with a Reduced Mode input and the signal is currently low. Otherwise the signal is high.
Not Reduced Mode
CB3
II-22
11
11.1
Begin programming
Introduction
The Universal Robot arm is composed of tubes and joints. The joints with their usual
names are shown in Figure 11.1. The Base is where the robot is mounted, and at the
other end (Wrist 3) the tool of the robot is attached. By coordinating the motion of each
of the joints, the robot can move its tool around freely, with the exception of the area
directly above and directly below the base.
PolyScope is the graphical user interface (GUI) which lets you operate the robot arm
and control box, execute robot programs and easily create new ones.
The following section gets you started with the robot. Afterwards, the screens and
functionality of PolyScope are explained in more detail.
DANGER:
1. The Hardware Installation Manual contains important safety intor of UR robots before the robot is powered on for the first time.
2. The integrator must set the safety configuration parameters defined by the risk assessment before powering on the robot arm
for the first time, see chapter 10.
11.2
Getting Started
Before using PolyScope, the robot arm and control box must be installed and the control box switched on.
11.2.1
II-23
CB3
Figure 11.1: Joints of the robot. A: Base, B: Shoulder, C: Elbow and D, E, F: Wrist 1, 2, 3
5. Plug in the mains plug of the control box.
WARNING:
Tipping hazard. If the robot is not securely placed on a sturdy sur-
11.2.2
11.2.3
CB3
II-24
11.2.4
Quick Start
To quickly start up the robot after it has been installed, perform the following steps:
1. Press the emergency stop button on the front side of the teach pendant.
2. Press the power button on the teach pendant.
3. Wait a minute while the system is starting up, displaying text on the touch screen.
4. When the system is ready, a popup will be shown on the touch screen, stating
that the robot needs to be initialized.
5. Touch the button on the popup dialog. You will be taken to the initialization
screen.
6. Wait for the Confirmation of applied Safety Configuration dialog
and press the Confirm Safety Configuration button. This applies an initial set of safety parameters that need to be adjusted based on a risk assessment.
Stopped to Power off.
8. Step outside the reach (workspace) of the robot.
9. Touch the On button on the touch screen. Wait a few seconds until robot state
changes to Idle.
10. Verify that the payload mass and selected mounting are correct. You will be notified if the mounting detected based on sensor data does not match the selected
mounting.
11. Touch the Start button on the touch screen. The robot now makes a sound and
moves a little while releasing the brakes.
12. Touch the OK button, bringing you to the Welcome screen.
11.2.5
II-25
CB3
7. Unlock the emergency stop button. The robot state changes from Emergency
9. Press OK.
10. Press Add waypoint before.
11. Press the Set this waypoint button next to the ? picture.
12. On the Move screen, move the robot by pressing the various blue arrows, or move
the robot by holding the Freedrive button while pulling the robot arm.
13. Press OK.
14. Your program is ready. The robot will move between the two points when you
press the Play symbol. Stand clear, hold on to the emergency stop button and
press Play.
15. Congratulations! You have now produced your first robot program that moves
the robot between the two given waypoints.
CB3
II-26
11.3
PolyScope runs on the touch sensitive screen attached to the control box.
The picture above shows the Welcome Screen. The bluish areas of the screen are buttons that can be pressed by pressing a finger or the backside of a pen against the screen.
PolyScope has a hierarchical structure of screens. In the programming environment,
the screens are arranged in tabs, for easy access on the screens.
II-27
CB3
In this example, the Program tab is selected at the top level, and under that the
Structure tab is selected. The Program tab holds information related to the currently loaded program. If the Move tab is selected, the screen changes to the Move
screen, from where the robot arm can be moved. Similarly, by selecting the I/O tab,
the current state of the electrical I/O can be monitored and changed.
It is possible to connect a mouse and a keyboard to the control box or the teach pendant; however, this is not required. Almost all text fields are touch-enabled, so touching them launches an on-screen keypad or keyboard. Non-touchable text fields have
an editor icon next to them that launches the associated input editor.
The icons of the on-screen keypad, keyboard and expression editor are shown above.
The various screens of PolyScope are described in the following sections.
Welcome Screen
11.4
After booting up the controller PC, the welcome screen is shown. The screen offers the
following options:
CB3
II-28
Initialization Screen
II-29
CB3
11.5
arm and control box will not function correctly and may become dangerous to people or equipment around them.
CAUTION:
Great care should be taken if the robot arm is touching an obstacle or
table, since driving the robot arm into the obstacle might damage a
joint gearbox.
The large button with the green icon on it serves to perform the actual initialization
of the robot arm. The text on it, and the action it performs, change depending on the
current state of the robot arm.
After the controller PC boots up, the button needs to be tapped once to power
the robot arm on. The robot arm state then turns to Power on and subsequently
to Idle. Note that when an emergency stop is in place, the robot arm cannot be
powered on, so the button will be disabled.
When the robot arm state is Idle, the button needs to be tapped once again to start
the robot arm up. At this point, sensor data is checked against the configured
mounting of the robot arm. If a mismatch is found (with a tolerance of 30 ), the
button is disabled and an error message is displayed below it.
CB3
II-30
Finally, the smaller button with the red icon on it serves to power off the robot arm.
II-31
CB3
CB3
II-32
12
On-screen Keypad
Simple number typing and editing facilities. In many cases, the unit of the typed value
is displayed next to the number.
II-33
CB3
12.1
On-screen Editors
12.2
On-screen Keyboard
Simple text typing and editing facilities. The Shift key can be used to get some
additional special characters.
CB3
II-34
While the expression itself is edited as text, the expression editor has a number of
buttons and functions for inserting the special expression symbols, such as for multiplication and for less than or equal to. The keyboard symbol button in the top left
of the screen switches to text-editing of the expression. All defined variables can be
found in the Variable selector, while the names of the input and output ports can
be found in the Input and Output selectors. Some special functions are found in
Function.
The expression is checked for grammatical errors when the Ok button is pressed. The
Cancel button leaves the screen, discarding all changes.
An expression can look like this:
?
12.4
II-35
CB3
12.3
Robot
Copyright 20092015 by Universal Robots A/S. All rights reserved.
The current position of the robot arm and the specified new target position are shown
in 3D graphics. The 3D drawing of the robot arm shows the current position of the
robot arm, and the shadow of the robot arm shows the target position of the robot
arm controlled by the specified values on the right hand side of the screen. Push the
magnifying glass icons to zoom in/out or drag a finger across to change the view.
If the specified target position of the robot TCP is close to a safety or trigger plane, or
the orientation of robot tool is near the tool orientation boundary limit (see 10.12), a
3D representation of the proximate boundary limit is shown.
Safety planes are visualized in yellow and black with a small arrow representing the
plane normal, which indicates the side of the plane on which the robot TCP is allowed
to be positioned. Trigger planes are displayed in blue and green and a small arrow
pointing to the side of the plane, where the Normal mode limits (see 10.6) are active.
The tool orientation boundary limit is visualized with a spherical cone together with
a vector indicating the current orientation of the robot tool. The inside of the cone
represents the allowed area for the tool orientation (vector).
When the target robot TCP no longer is in the proximity of the limit, the 3D representation disappears. If the target TCP is in violation or very close to violating a boundary
limit, the visualization of the limit turns red.
CB3
II-36
RPY [ ] Roll, pitch and yaw (RPY) angles, where angles are in degrees.
Values can be edited by clicking on the coordinate. Clicking on the + or - buttons
just to the right of a box allows you to add or subtract an amount to/from the current
value. Pressing and holding down a button will directly increase/decrease the value.
The longer the button is down, the larger the increase/decrease will be.
Joint positions
Allows the individual joint positions to be specified directly. Each joint position can
have a value in the range from 360 to +360 , which are the joint limits. Values can be
edited by clicking on the joint position. Clicking on the + or - buttons just to the right
of a box allows you to add or subtract an amount to/from the current value. Pressing
and holding down a button will directly increase/decrease the value. The longer the
button is down, the larger the increase/decrease will be.
OK button
If this screen was activated from the Move tab (see 13.1), clicking the OK button will
return to the Move tab, where the robot arm will move to the specified target. If the last
specified value was a tool coordinate, the robot arm will move to the target position
using the MoveL movement type, while the robot arm will move to the target position
using the MoveJ movement type, if a joint position was specified last. The different
movement types are described in 14.5.
Version 3.2 (rev. 18629)
II-37
CB3
Rrpy (, , ) = R Z () RY ( ) R X ()
Cancel button
Clicking the Cancel button leaves the screen discarding all changes.
CB3
II-38
13
13.1
Robot Control
Move Tab
On this screen you can always move (jog) the robot arm directly, either by translat-
13.1.1
Robot
The current position of the robot arm is shown in 3D graphics. Push the magnifying
glass icons to zoom in/out or drag a finger across to change the view. To get the best
feel for controlling the robot arm, select the View feature and rotate the viewing angle
of the 3D drawing to match your view of the real robot arm.
If the current position of the robot TCP comes close to a safety or trigger plane, or the
orientation of robot tool is near the tool orientation boundary limit (see 10.12), a 3D
representation of the proximate boundary limit is shown. Note that when the robot is
running a program, the visualization of boundary limits will be disabled.
Safety planes are visualized in yellow and black with a small arrow representing the
plane normal, which indicates the side of the plane on which the robot TCP is allowed
to be positioned. Trigger planes are displayed in blue and green and a small arrow
pointing to the side of the plane, where the Normal mode limits (see 10.6) are active.
II-39
CB3
13.1.2
13.1.3
Move Tool
Holding down a translate arrow (top) will move the tool-tip of the robot in
the direction indicated.
Holding down a rotate arrow (bottom) will change the orientation of the
robot tool in the indicated direction. The point of rotation is the Tool Center Point
(TCP), i.e. the point at the end of the robot arm that gives a characteristic point on
the robots tool. The TCP is shown as a small blue ball.
Note: Release the button to stop the motion at any time!
13.1.4
Move Joints
Allows the individual joints to be controlled directly. Each joint can move from 360
to +360 , which are the default joint limits illustrated by the horizontal bar for each
joint. If a joint reaches its joint limit, it cannot be driven any further. If the limits for a
joint have been configured with a position range different from the default (see 10.11),
this range is indicated with red in the horizontal bar.
13.1.5
Freedrive
While the Freedrive button is held down, it is possible to physically grab the robot arm
and pull it to where you want it to be. If the gravity setting (see 13.7) in the Setup
tab is wrong, or the robot arm carries a heavy load, the robot arm might start moving
(falling) when the Freedrive button is pressed. In that case, just release the Freedrive
button again.
CB3
II-40
I/O Tab
13.2
On this screen you can always monitor and set the live I/O signals from/to the robot
control box. The screen displays the current state of the I/O, inluding during program
execution. If anything is changed during program execution, the program will stop.
At program stop, all output signals will retain their states. The screen is updated at
only 10Hz, so a very fast signal might not display properly.
Version 3.2 (rev. 18629)
II-41
CB3
13.3
the signal connection is lost, the corresponding entry on this screen is disabled.
Inputs
View the state of digital MODBUS client inputs.
Outputs
View and toggle the state of digital MODBUS client outputs. A signal can only be
toggled if the choice for I/O tab control (described in 13.8) allows it.
CB3
II-42
13.4
AutoMove Tab
The AutoMove tab is used when the robot arm has to move to a specific position in
its workspace. Examples are when the robot arm has to move to the start position
of a program before running it, or when moving to a waypoint while modifying a
Animation
The animation shows the movement the robot arm is about to perform.
CAUTION:
Compare the animation with the position of the real robot arm and
make sure that the robot arm can safely perform the movement without hitting any obstacles.
CAUTION:
The automove function moves along the robot along the shadow trajectory. Collision might damage the robot or other equipment.
II-43
CB3
program.
Auto
Hold down the Auto button to move the robot arm as shown in the animation. Note:
Release the button to stop the motion at any time!
Manual
Pushing the Manual button will take you to the MoveTab where the robot arm can
be moved manually. This is only needed if the movement in the animation is not
preferable.
13.5
Installation Load/Save
The Robot Installation covers all aspects of how the robot arm and control box are
placed in the working environment. It includes the mechanical mounting of the robot
arm, electrical connections to other equipment, as well as all options on which the
robot program depends. It does not include the program itself.
These settings can be set using the various screens under the Installation tab,
except for the I/O domains which are set in the I/O tab (see 13.2).
It is possible to have more than one installation file for the robot. Programs created will
use the active installation, and will load this installation automatically when used.
Any changes to an installation need to be saved to be preserved after power down. If
there are unsaved changes in the installation, a floppy disk icon is shown next to the
CB3
II-44
A Tool Center Point (TCP) is a characteristic point on the robots tool. Several named
TCPs can be defined on this screen. Each TCP contains a translation and a rotation
relative to the center of the tool output flange, as indicated on the on-screen graphics.
The position coordinates, X, Y and Z, specify the position of the TCP, while RX, RY
and RZ specify its orientation. When all of the specified values are zero, the TCP
coincides with the center point on the tool output flange and adopts the coordinate
system depicted on the right side of the screen.
II-45
CB3
13.6
13.6.1
13.6.2
13.6.3
II-46
Position button.
13.6.4
Orientation button.
2. Select a feature from the drop-down list. For additional information about how
new features can be defined, see 13.12.
II-47
CB3
13.6.5
Payload
The weight of the tool of the robot is specified in the lower part of the screen. To
change this setting, simply tap the white text field and enter a new weight. The setting
applies to all defined TCPs.
13.6.6
Center of gravity
The center of gravity of the tool may optionally be specified using the fields CX, CY
and CZ. The tool center point is assumed to be the tools center of gravity if nothing
else has been specified. The setting applies to all defined TCPs.
WARNING:
Make sure to use the correct installation settings. Save and load the
13.7
CB3
Installation Mounting
II-48
The default is that the robot arm is mounted on a flat table or floor, in which case no
change is needed on this screen. However, if the robot arm is ceiling mounted, wall
mounted or mounted at an angle, this needs to be adjusted using the push-buttons.
The buttons on the right side of the screen are for setting the angle of the robot arms
mounting. The three top right side buttons set the angle to ceiling (180 ), wall (90 ),
floor (0 ). The Tilt buttons can be used to set an arbitrary angle. The buttons on the
actual mounting.
WARNING:
Make sure to use the correct installation settings. Save and load the
installation files along with the program.
II-49
CB3
lower part of the screen are used to rotate the mounting of the robot arm to match the
13.8
Input and output signals can be given names. This can make it easier to remember
what the signal does when working with the robot. Select an I/O by clicking on it,
and set the name using the on screen keyboard. You can set the name back by setting
it to only blank characters.
The eight standard digital inputs and the two tool inputs may configured to trigger
an action. Available actions include the ability to start the current program on a rising edge, stop the current program on a rising edge, pause the current program on
a rising edge, or enter/leave Freedrive mode when the input is high/low (like the
Freedrive button on the back of the Teach Pendant).
The default behavior of outputs is that their values are preserved after a program stops
running. It is also possible to configure an output with a default value that is applied
whenever no program is running.
The eight digital standard outputs and the two tool outputs may furthermore be configured to reflect whether a program is currently running, so that the output is high
when a program is running and otherwise low.
Finally, it is also possible to specify whether an output can be controlled on the I/O
tab (by either programmers, or both operators and programmers) or if it is only robot
programs that may alter the output value.
CB3
II-50
13.9
Installation Safety
See chapter 10.
Installation Variables
Variables created here are called installation variables and can be used just like normal program variables. Installation variables are special because they keep their value
even if a program is stopped and then started again, and when the robot arm and/or
control box is powered down and powered up again. Their names and values are
stored with the installation, so it is possible to use the same variable in multiple programs.
Pressing Create New will bring up a panel with a suggested name for the new variable. The name may be changed and its value may be entered by touching either text
field. The OK-button can only clicked if the new name is unused in this installation.
II-51
CB3
13.10
13.11
Here, the MODBUS client (master) signals can be set up. Connections to MODBUS
servers (or slaves) on specified IP addresses can be created with input/output signals
(registers or digital). Each signal has a unique name so it can be used in programs.
Refresh
Push this button to refresh all MODBUS connections.
Add unit
Push this button to add a new MODBUS unit.
CB3
II-52
Delete unit
Push this button to delete the MODBUS unit and all signals on that unit.
Set unit IP
Here the IP address of the MODBUS unit is shown. Press the button to change it.
Add signal
Push this button to add a signal to the corresponding MODBUS unit.
Delete signal
Push this button to delete a MODBUS signal from the corresponding MODBUS unit.
II-53
CB3
either high or low. Before the value of this output has been set by the user, the
Signal value
Here, the current value of the signal is shown. For register signals, the value is expressed as an unsigned integer. For output signals, the desired signal value can be set
using the button. Again, for a register output, the value to write to the unit must be
supplied as an unsigned integer.
Advanced Options
Update Frequency: This menu can be used to change the update frequency of
the signal. This means the frequency with which requests are sent to the remote
MODBUS unit for either reading or writing the signal value.
Slave Address: This text field can be used to set a specific slave address for the
requests corresponding to a specific signal. The value must be in the range 0-255
both included, and the default is 255. If you change this value, it is recommended
to consult the manual of the remote MODBUS device to verify its functionality
when changing slave address.
CB3
II-54
Installation Features
Customers that buy industrial robots generally want to be able to control or manipulate a robot arm, and to program the robot arm, relative to various objects and
boundaries in the surroundings of the robot arm, such as machines, objects or blanks,
fixtures, conveyers, pallets or vision systems. Traditionally, this is done by defining
frames (coordinate systems) that relate the internal coordinate system of the robot
arm (the base coordinate system) to the relevant objects coordinate system. Reference
can both be made to tool coordinates and to base coordinates of the robot arm.
A problem with such frames is that a certain level of mathematical knowledge is required to be able to define such coordinate systems and also that it takes a considerable
ammount of time to do this, even for a person skilled in the art of robot programming
and installation. Often this task involves the calculation of 4x4 matrices. Particularly,
the representation of orientation is complicated for a person that lacks the required
experience to understand this problem.
Questions often asked by customers are for instance:
Will it be possible to move the robot 4 cm away from the claw of my computerised
numerically controlled (CNC) machine?
Is it possible to rotate the tool of the robot 45 degrees relative to the table?
Can we make the robot arm move vertically downwards with the object, let the
object loose, and then move the robot arm vertically upward again?
Version 3.2 (rev. 18629)
II-55
CB3
13.12
Rename
This button makes it possible to rename a feature.
Delete
This button deletes the selected feature and, if any, all sub-features.
Show Axes
Choose whether the coordinate axes of the selected feature shall be visible on the 3D
graphics. The choice applies on this screen and on the Move screen.
Joggable
Select whether the selected feature shall be joggable. This determines whether the
feature will appear in the feature menu on the Move screen.
Variable
Select whether the selected feature can be used as a variable. If this option is selected
a variable named the name of the feature suceeded by var will then be available
when editing robot programs, and this variable can be assigned a new value in a program, which can then be used to control waypoints that depend on the value of a
feature.
CB3
II-56
Add Point
Push this button to add a point feature to the installation. The position of a point
feature is defined as the position of the TCP at that point. The orientation of the point
feature is the same as the TCP orientation, except that the feature coordinate system is
rotated 180 degrees about its x-axis. This makes the z-axis of the point feature directed
Add Line
Push this button to add a line feature to the installation. A line is defined as an axis
between two point features. This axis, directed from the first point towards the second
point, will constitute the y-axis of the line coordinate system. The z-axis will be defined
by the projection of the z-axis of the first sub point onto the plane perpendicular to the
line. The position of the line coordinate system is the same as the position for the first
sub point.
II-57
CB3
Add Plane
Copyright 20092015 by Universal Robots A/S. All rights reserved.
Push this button to add a plane feature to the installation. A plane is defined by three
sub point features. The position of the coordinate system is the same as the position
for the first sub point. The z-axis is the plane normal, and the y-axis is directed from
the first point towards the second. The positive direction of the z-axis is set so that the
angle between the z-axis of the plane and the z-axis of the first point is less than 180
degrees.
CB3
II-58
13.13
Conveyor Parameters
Incremental encoders can be connected to digital inputs 0 to 3. Decoding of digital
signals runs at 40kHz. Using a Quadrature encoder (requiring two inputs), the robot
is able to determine the speed along with direction of the conveyor. If the direction of
the coneyor is constant, a single input can be used, detecting either Rising, Falling,
or Rise and Fall edges to determine the speed of the conveyor.
Absolute encoders can be used when connected through a MODBUS signal. This
requires that a digital MODBUS input register is preconfigured in the 13.11.
Linear conveyors
When a linear conveyor is selected, a line feature must be configured to determine the
direction of the conveyor. The line feature should be parallel to the direction of the
conveyor, and there should be a large distance between the two points defining the
line feature. It is recommended to configure the line feature by placing the tool firmly
against the side of the conveyor when teaching the two points.
II-59
CB3
(13.1)
Circular conveyors
When tracking a circular conveyor, the center point of the conveyor (circle) must be
defined. The value of Ticks per revolution must be the number of ticks the
encoder generates when the conveyor rotates one full revolution.
13.14
This screen contains settings for automatically loading and starting a default program,
and for auto initializing the robot arm on power up.
WARNING:
If auto load, auto start and auto initialize all three are enabled, the
robot will start running the selected program as soon as the control
box is powered up.
CB3
II-60
13.14.1
13.14.2
13.14.3
Auto Initialization
The robot arm can be automatically initialized, for instance when the control box is
powered up. On the specified external input signal edge transition, the robot arm will
be completely initialized, irrespective of the visible screen.
it moves a bit and makes a sound. Furthermore, the brakes cannot be automatically
released if the configured mounting does not match the mounting detected based on
sensor data. In this case, the robot needs to be initialized manually in the initialization
screen (see 11.5).
Note, on startup the current input signal level is undefined and chosing a transition
that matches the signal level on startup will initialize the robot arm immediately.
II-61
CB3
The final stage of initialization is brake release. When the robot is releasing the brakes,
13.15
Log Tab
Robot Health
The top half of the screen displays the health of the robot arm and
control box. The left part shows information related to the control box of the robot,
while the right part shows information about each robot joint. Each robot joint shows
information for temperaure of the motor and electronics, the load of the joint and the
voltage at the joint.
Robot Log
On the bottom half of the screen log messages are shown. The first col-
umn categorizes the severity of the log entry. The second column shows the time of
arrival of the message. The next column shows the sender of the message. While the
last column shows the message itself. Messages can be filtered by selecting the toggle
buttons which correspond to the severity. The figure above now shows that errors will
be displayed while information and warning messages will be filtered. Some log messages are designed to provide more information, this can be accessed by selecting the
log entry.
13.16
Load Screen
On this screen you choose which program to load. There are two versions of this
screen: one that is to be used when you just want to load a program and execute it,
and one that is used when you want to actually edit a program.
CB3
II-62
This image shows the actual load screen. It consists of the following important areas
and buttons:
Path history
The path history shows a list of the paths leading up to the present
location. This means that all parent directories up to the root of the computer are
shown. Here you will notice that you may not be able to access all the directories
above the programs folder.
Version 3.2 (rev. 18629)
II-63
CB3
Screen layout
In this area of the dialog the contents of the actual area is present.
It gives the user the option to select a file by single clicking on its name or to open the
file by double clicking on its name.
In the case that the user double-clicks on a directory, the dialog descends into this
folder and presents its contents.
File filter
By using the file filter, one can limit the files shown to include the type of
files that one wishes. By selecting Backup Files the file selection area will display
the latest 10 saved versions of each program, where .old0 is the newest and .old9
is the oldest.
File field Here the currently selected file is shown. The user has the option to manually enter the file name of a file by clicking on the keyboard icon to the right of the
field. This will cause an on-screen keyboard to pop up where the user can enter the
file name directly on the screen.
Open button Clicking on the Open button, will open the currently selected file and
Copyright 20092015 by Universal Robots A/S. All rights reserved.
A series of buttons gives the user the ability to perform some of the
actions that normally would be accessible by right-clicking on a file name in a conventional file dialog. Added to this is the ability to move up in the directory structure and
directly to the program folder.
Parent: Move up in the directory structure. The button will not be enabled in
two cases: when the current directory is the top directory or if the screen is in the
limited mode and the current directory is the program folder.
Go to program folder: Go home
Actions: Actions such as create directory, delete file etc.
CB3
II-64
Run Tab
This tab provides a very simple way of operating the robot arm and control box, with
as few buttons and options as possible. This can be usefully combined with password
protecting the programming part of PolyScope (see 15.3), to make the robot into a tool
that can run exclusively pre-written programs.
Furthermore, in this tab a default program can be automatically loaded and started
based on an external input signal edge transition (see 13.14). The combination of auto
loading and starting of a default program and auto initialization on power up can, for
instance, be used to integrate the robot arm into other machinery.
II-65
CB3
13.17
CB3
II-66
14
New Program
A new robot program can start from either a template or from an existing (saved) robot
program. A template can provide the overall program structure, so only the details of
the program need to be filled in.
II-67
CB3
14.1
Programming
14.2
Program Tab
14.2.1
Program Tree
The program tree on the left side of the screen displays the program as a list of commands, while the area on the right side of the screen displays information relating to
the current command. The current command is selected by clicking the command list,
or by using the Previous and Next buttons on the bottom right of the screen. Commands can be inserted or removed using the Structure tab, described in 14.30. The
program name is shown directly above the command list, with a small disk icon that
can be clicked to quickly save the program.
In the program tree, the command that is currently being executed is highlighted as
described in 14.2.2.
CB3
II-68
The program tree contains visual cues informing about the command currently being
executed by the robot controller. A small
the command icon, and the name of the executing command and any commands of
which this command is a sub-command (typically identified by the
command
icons) are highlighted with blue. This aids the user in locating the executing command
in the tree.
For example, if the robot arm is moving towards a waypoint, the corresponding waypoint sub-command is marked with the
of the Move command (see 14.5) to which it belongs to are shown in blue.
If the program is paused, the program execution indicator icon marks the last command that was in the process of being executed.
Clicking the button with the
ecuting or the last executed command in the tree. If a command is clicked while a
program is running, the Command tab will keep displaying the information related to
the selected command. Pressing the
14.2.3
Search Button
The button with the icon
When clicked a search text can be entered and program nodes that match will be highVersion 3.2 (rev. 18629)
II-69
CB3
14.2.2
14.2.4
Undo/Redo Buttons
The buttons with icons
and
14.2.5
Program Dashboard
The lowest part of the screen is the Dashboard. The Dashboard features a set of buttons similar to an old-fashioned tape recorder, from which programs can be started
and stopped, single-stepped and restarted. The speed slider allows you to adjust the
program speed at any time, which directly affects the speed at which the robot arm
moves. Additionally, the speed slider shows in real time the relative speed at which the
robot arm moves taking into account the safety settings. The indicated percentage is
the maximum achievable speed for the running program without violating the safety
limits.
To the left of the Dashboard the Simulation and Real Robot buttons toggle between
running the program in a simulation, or running it on the real robot. When running in
simulation, the robot arm does not move and thus cannot damage itself or any nearby
equipment in collisions. Use simulation to test programs if unsure about what the
While the program is being written, the resulting motion of the robot arm is illustrated
using a 3D drawing on the Graphics tab, described in 14.29.
CB3
II-70
14.3 Variables
Next to each program command is a small icon, which is either red, yellow or green.
A red icon means that there is an error in that command, yellow means that the command is not finished, and green means that all is OK. A program can only be run when
all commands are green.
14.3
Variables
A robot program can make use of variables to store and update various values during
runtime. Two kinds of variables are available:
Installation variables: These can be used by multiple programs and their names and
values are persisted together with the robot installation (see 13.10 for further details). Installation variables keep their value after the robot and control box has
been rebooted.
Regular program variables: These are available to the running program only and their
values are lost as soon as the program is stopped.
The following variable types are available:
A boolean variable whose value is either True or False.
int
float
string
A sequence of characters.
pose
list
A sequence of variables.
II-71
CB3
bool
14.4
Command: Empty
CB3
II-72
Command: Move
The Move command controls the robot motion through the underlying waypoints.
Waypoints have to be under a Move command. The Move command defines the acceleration and the speed at which the robot arm will move between those waypoints.
Movement Types
It is possible to select one of three types of movements: MoveJ, MoveL and MoveP each
explained below.
moveJ will make movements that are calculated in the joint space of the robot arm.
Each joint is controlled to reach the desired end location at the same time. This
movement type results in a curved path for the tool. The shared parameters that
apply to this movement type are the maximum joint speed and joint acceleration
to use for the movement calculations, specified in deg/s and deg/s2 , respectively.
If it is desired to have the robot arm move fast between waypoints, disregarding
the path of the tool between those waypoints, this movement type is the favorable
choice.
moveL will make the tool move linearly between waypoints. This means that
each joint performs a more complicated motion to keep the tool on a straight line
path. The shared parameters that can be set for this movement type are the desired tool speed and tool acceleration specified in mm/s and mm/s2 , respectively,
and also a feature. The selected feature will determine in which feature space the
Version 3.2 (rev. 18629)
II-73
CB3
14.5
Shared parameters
The shared parameters in the bottom right corner of the Move screen apply to the
movement from the previous position of the robot arm to the first waypoint under
the command, and from there to each of the following waypoints. The Move command settings do not apply to the path going from the last waypoint under that Move
command.
Recalculate motions
Tick this check box if the positions within this move command should be adjusted
based on the active TCP.
TCP selection
The TCP used for the waypoints under this Move command can be selected by ticking
the check box and selecting a TCP from the drop-down menu. The selected TCP is
then set as active each time the robot arm moves to one of the Waypoints under this
Move command. If the check box is not ticked, then the active TCP is not modified
in any way. If the active TCP for this motion is determined during runtime of the
program, it needs to be set dynamically using the Set command (see 14.10) or by using
script commands. For further information about configuring named TCPs, see 13.6.
Feature selection
For MoveL and MoveP, it is possible to select which feature space the waypoints under
the Move command should be represented when specifying these waypoints. This
CB3
II-74
Cruise
Speed
Deceleration
Acceleration
Time
Figure 14.1: Speed profile for a motion. The curve is divided into three segments: acceleration, cruise and
deceleration. The level of the cruise phase is given by the speed setting of the motion, while the steepness of
the acceleration and deceleration phases is given by the acceleration parameter.
means that when setting a waypoint, the program will remember the tool coordinates
in the feature space of the selected feature. There are a few circumstances that need
detailed explanation:
Relative waypoints: The selected feature has no effect on relative waypoints. The relative movement is always performed w.r.t. to orientation of the Base.
position is calculated as the coordinates of the variable in the space of the selected
feature. Therefore, the robot arm movement for a variable waypoint changes if
another feature is selected.
Variable feature: If any of the features in the currently loaded installation are selected
as variable, these corresponding variables are also selectable in the feature selection menu. If a feature variable (named with the name of the feature suffixed by
var) is selected, robot arm movements (except to Relative waypoints) are relative to the actual value of the variable when the program is running. The initial
value of a feature variable is the value of the actual feature as configured in the
installation. If this value is modified, then the movements of the robot change.
II-75
CB3
Variable waypoints: When the robot arm moves to a variable waypoint, the tool target
14.6
A point on the robot path. Waypoints are the most central part of a robot program,
telling the robot arm where to be. A fixed position waypoint is given by physically
moving the robot arm to the position.
Waypoint names
Waypoint names can be changed. Two waypoints with the same name is always the
same waypoint. Waypoints are numbered as they are specified.
Blend radius
If a blend radius is set, the robot arm trajectory blends around the waypoint, allowing
the robot arm not to stop at the point. Blends cannot overlap, so it is not possible to
set a blend radius that overlaps a blend radius for a previous or following waypont.
A stop point is a waypoint with a blend radius of 0.0mm.
CB3
II-76
Example
Starting point
Straight line segment
Waypoint 1
5 cm blend
Straight line segment
Waypoint 2
10 cm blend
Ending point 2
Ending point 1
A small example in which a robot program moves the tool from a starting position to
one of two ending positions, depending on the state of digital input[1]. Notice
that the tool trajectory (thick black line) moves in straight lines outside the blend areas
(dashed circles), while the tool trajectory deviates from the straight line path inside the
blend areas. Also notice that the state of the digital input[1] sensor is read just
as the robot arm is about to enter the blend area around Waypoint 2, even though
the if...then command is after Waypoint 2 in the program sequence. This is
somewhat counter-intuitive, but is necessary to select the right blend path.
II-77
CB3
Program
movel
WaypointStart
Waypoint1
Waypoint2
if (digital_input[1]) then
WaypointEnd1
else
WaypointEnd2
endif
14.7
A waypoint with the position given relative to the robot arms previous position, such
as two centimeters to the left. The relative position is defined as the difference between the two given positions (left to right). Note that repeated relative positions can
move the robot arm out of its workspace.
The distance here is the Cartesian distance between the tcp in the two positions. The
angle states how much the tcp orientation changes between the two positions. More
precisely, the length of the rotation vector describing the change in orientation.
CB3
II-78
A waypoint with the position given by a variable, in this case calculated pos. The
variable has to be a pose such as
var=p[0.5,0.0,0.0,3.14,0.0,0.0]. The first three are x,y,z and the last three
are the orientation given as a rotation vector given by the vector rx,ry,rz. The length
of the axis is the angle to be rotated in radians, and the vector itself gives the axis
about which to rotate. The position is always given in relation to a reference frame
or coordinate system, defined by the selected feature. The robot arm always moves
linearly to a variable waypoint.
For example, to move the robot 20 mm along the z-axis of the tool:
var_1=p[0,0,0.02,0,0,0]
Movel
Waypoint_1 (varibale position):
Use variable=var_1, Feature=Tool
II-79
CB3
14.8
14.9
Command: Wait
CB3
II-80
Command: Set
II-81
CB3
14.10
14.11
Command: Popup
The popup is a message that appears on the screen when the program reaches this
command. The style of the message can be selected, and the text itself can be given
using the on-screen keyboard. The robot waits for the user/operator to press the OK
button under the popup before continuing the program. If the Halt program execution item is selected, the robot program halts at this popup.
CB3
II-82
Command: Halt
14.12
II-83
CB3
14.13
Command: Comment
Gives the programmer an option to add a line of text to the program. This line of text
does not do anything during program execution.
CB3
II-84
Command: Folder
A folder is used to organize and label specific parts of a program, to clean up the
program tree, and to make the program easier to read and navigate.
A folder does not in itself do anything.
II-85
CB3
14.14
14.15
Command: Loop
Loops the underlying program commands. Depending on the selection, the underlying program commands are either looped infinitely, a certain number of times or as
long as the given condition is true. When looping a certain number of times, a dedicated loop variable (called loop 1 in the screen shot above) is created, which can be
used in expressions within the loop. The loop variable counts from 0 to N 1.
When looping using an expression as end condition, PolyScope provides an option for
continuously evaluating that expression, so that the loop can be interrupted anytime
during its execution, rather than just after each iteration.
CB3
II-86
Command: SubProgram
A Sub Program can hold program parts that are needed several places. A Sub Program
can be a seperate file on the disk, and can also be hidden to protect against accidental
changes to the SubProgram.
II-87
CB3
14.16
A call to a sub program will run the program lines in the sub program, and then return
to the following line.
CB3
II-88
Command: Assignment
Assigns values to variables. An assignment puts the computed value of the right hand
side into the variable on the left hand side. This can be useful in complex programs.
II-89
CB3
14.17
14.18 Command: If
14.18
Command: If
An if...else construction can make the robot change its behavior based on sensor
inputs or variable values. Use the expression editor to describe the condition under
which the robot should proceed to the sub-commands of this If. If the condition is
evaluated to True, the lines inside this If are executed.
Each If can have several ElseIf and one Else command. These can be added using
the buttons on the screen. An ElseIf command can be removed from the screen for
that command.
The open Check Expression Continuously allow the conditions of the If and
ElseIf statements to be evaluated while the contained lines are executed. If a expression evaluates to False while inside the body of the If-part, the following ElseIf or
Else statement will be reached.
CB3
II-90
Command: Script
This command gives access to the underlying real time script language that is executed by the robot controller. It is intended for advanced users only and instructions
on how to use it can be found in the Script Manual on the support website (http:
//support.universal-robots.com/). Note that only UR distributors and OEM
customers have access to the website.
If the File option in the top left corner is choosen, it is possible to create and edit
script programs files. This way, long and complex script programs can be used together with the operator-friendly programming of PolyScope.
II-91
CB3
14.19
14.20
Command: Event
An event can be used to monitor an input signal, and perform some action or set a
variable when that input signal goes high. For example, in the event that an output
signal goes high, the event program can wait for 200ms and then set it back to low
again. This can make the main program code a lot simpler in the case on an external
machine triggering on a rising flank rather than a high input level. Events are checked
once every control cycle (8ms).
CB3
II-92
Command: Thread
A thread is a parallel process to the robot program. A thread can be used to control
an external machine independently of the robot arm. A thread can communicate with
the robot program with variables and output signals.
II-93
CB3
14.21
14.22
Command: Switch
A Switch Case construction can make the robot change behavior based on sensor
inputs or variable values. Use the expression editor to describe the base condition
and define the cases under which the robot should proceed to the sub-commands of
this Switch. If the condition is evaluated to match one of the cases, the lines inside
the Case are executed. If a Default Case has been specified, then the lines will be
executed only if no other matching cases were found.
Each Switch can have several Cases and one Default Case. Switches can only
have one instance of any Case values defined. Cases can be added using the buttons
on the screen. A Case command can be removed from the screen for that switch.
CB3
II-94
Command: Pattern
The Pattern command can be used to cycle through positions in the robot program.
The pattern command corresponds to one position at each execution.
A pattern can be given as one of four types. The first three, Line, Square or Box
can be used for positions in a regular pattern. The regular patterns are defined by a
number of characteristic points, where the points define the edges of the pattern. For
Line this is the two end points, for Square this is three of the four corner points,
where as for Box this is four of the eight corner points. The programmer enters the
number of positions along each of the edges of the pattern. The robot controller then
calculates the individual pattern positions by proportionally adding the edge vectors
together.
If the positions to be traversed do not fall in a regular pattern, the List option can be
chosen, where a list of all the positions is provided by the programmer. This way any
kind of arrangement of the positions can be realized.
II-95
CB3
14.23
A Box pattern uses three vectors to define the side of the box. These three vectors are
Copyright 20092015 by Universal Robots A/S. All rights reserved.
given as four points, where the first vector goes from point one to point two, the second
vector goes from point two to point three, and the third vector goes from point three to
point four. Each vector is divided by the interval count numbers. A specific position
in the pattern is calculated by simply adding the interval vectors proportionally.
The Line and Square patterns work similarly.
A counter variable is used while traversing the positions of the pattern. The name of
the variable can be seen on the Pattern command screen. The variable cycles through
the numbers from 0 to X Y Z 1, the number of points in the pattern. This variable
can be manipulated using assignments, and can be used in expressions.
14.24
Command: Force
Force mode allows for compliance and forces in selectable axis in the robots workspace.
All robot arm movements under a Force command will be in Force mode. When the
robot arm is moving in force mode, it is possible to select one or more axes in which
the robot arm is compliant. Along/around compliant axes the robot arm will comply
with the environment, which means it will automatically adjust its position in order to
achieve the desired force. It is also possible to make the robot arm itself apply a force
to its environment, e.g. a workpiece.
Force mode is suited for applications where the actual tcp position along a predefined
axis is not important, but in stead a desired force along that axis is required. For example if the robot TCP should roll against a curved surface, or when pushing or pulling
CB3
II-96
Feature selection
The Feature menu is used to select the coordinate system (axes) the robot will use
while it is operating in force mode. The features in the menu are those which have
been defined in the installation, see 13.12.
II-97
CB3
the same orientation as the last time the TCP speed was larger than zero.
For the last three types, the actual task frame can be viewed at runtime on the graphics
tab (14.29), when the robot is operating in force mode.
Limits selection
For all axes a limit can be set, but these have different meaning corresponding to the
axes being complian or non-compliant.
Compliant: The limit is the maximum speed the TCP is allowed to attain along/about
the axis. Units are [mm/s] and [deg/s].
CB3
II-98
Command: Pallet
Copyright 20092015 by Universal Robots A/S. All rights reserved.
14.25
II-99
CB3
BeforeStart
The optional BeforeStart sequence is run just before the operation starts. This can
be used to wait for ready signals.
AfterEnd
The optional AfterEnd sequence is run when the operation is finished. This can be
used to signal conveyor motion to start, preparing for the next pallet.
14.26
Command: Seek
A seek function uses a sensor to determine when the correct position is reached to
grab or drop an item. The sensor can be a push button switch, a pressure sensor or a
capacitive sensor. This function is made for working on stacks of items with varying
item thickness, or where the exact positions of the items are not known or too hard to
program.
Stacking
CB3
II-100
Destacking
When stacking, the robot arm moves to the starting position, and then moves opposite
the direction to search for the next stack position. When found, the robot remembers
the position and performs the special sequence. The next time round, the robot starts
the search from the remembered position incremented by the item thickness along the
direction. The stacking is finished when the stack hight is more than some defined
number, or when a sensor gives a signal.
II-101
CB3
Stacking
Destacking
When destacking, the robot arm moves from the starting position in the given direction to search for the next item. The condition on the screen determines when the next
item is reached. When the condition becomes satisfied, the robot remembers the position and performs the special sequence. The next time round, the robot starts the
search from the remembered position, incremented by the item thickness along the
direction.
Starting position
The starting position is where the stack operation starts. If the starting position is
omitted, the stack starts at the robot arms current position.
CB3
II-102
The direction is given by two positions, and is calculated as the position difference
from the first positions TCP to the second positions TCP. Note: A direction does not
consider the orientations of the points.
BeforeStart
The optional BeforeStart sequence is run just before the operation starts. This can
be used to wait for ready signals.
AfterEnd
The optional AfterEnd sequence is run when the operation is finished. This can be
used to signal conveyor motion to start, preparing for the next stack.
Pick/Place Sequence
Like for the Pallet operation (14.25), a special program sequence is performed at each
stack position.
Version 3.2 (rev. 18629)
II-103
CB3
Direction
14.27
14.28
Command: Suppress
Suppressed program lines are simply skipped when the program is run. A suppressed
line can be unsuppressed again at a later time. This is a quick way to make changes to
a program without destroying the original contents.
Graphics Tab
14.29
Graphical representation of the current robot program. The path of the TCP is shown
in the 3D view, with motion segments in black, and blend segments (transitions between motion segments) shown in green. The green dots specify the positions of the
TCP at each of the waypoints in the program. The 3D drawing of the robot arm shows
CB3
II-104
II-105
CB3
boundary limits.
14.30
Structure Tab
The program structure tab gives an opportunity for inserting, moving, copying and
removing the various types of commands.
To insert new commands, perform the following steps:
1) Select an existing program command.
2) Select whether the new command should be inserted above or below the selected
command.
3) Press the button for the command type you wish to insert. For adjusting the
details for the new command, go to the Command tab.
Commands can be moved/cloned/deleted using the buttons in the edit frame. If a
command has sub-commands (a triangle next to the command) all sub-commands are
also moved/cloned/deleted.
Not all commands fit at all places in a program. Waypoints must be under a Move
command (not necessarily directly under). ElseIf and Else commands are required
to be after an If. In general, moving ElseIf commands around can be messy. Variables must be assigned values before being used.
CB3
II-106
Variables Tab
The Variables tab shows the live values of variables in the running program, and keeps
a list of variables and values between program runs. It only appears when it has
information to display. The variables are ordered alphabetically by their names. The
variable names on this screen are shown with at most 50 characters, and the values of
the variables are shown with at most 500 characters.
II-107
CB3
14.31
14.32
This screen allows setting variable values before the program (and any threads) start
executing.
Select a variable from the list of variables by clicking on it, or by using the variable
selector box. For a selected variable, an expression can be entered that will be used to
set the variable value at program start.
If the Prefers to keep value from last run checkbox is selected, the variable will be
initialized to the value found on the Variables tab, described in 14.31. This permits
variables to maintain their values between program executions. The variable will get
its value from the expression if the program is run for the first time, or if the value tab
has been cleared.
A variable can be deleted from the program by setting its name to blank (only spaces).
CB3
II-108
Setup Screen
II-109
CB3
15
15.1
Language and units used in PolyScope can be selected on this screen. The selected
language will be used for the text visible on the various screens of PolyScope as well
as in the embedded help. Tick off English programming to have the names of commands within robot programs written in English. PolyScope needs to be restarted for
changes to take effect.
CB3
II-110
Update Robot
Software updates can be installed from USB flash memory. Insert an USB memory
stick and click Search to list its contents. To perform an update, select a file, click
Update, and follow the on-screen instructions.
WARNING:
Always check your programs after a software upgrade. The upgrade
might change trajectories in your program. The updated software
specifications can be found by pushing the ? button located at the
top right corner of the GUI. Hardware specifications remain the same
and can be found in the original manual.
II-111
CB3
15.2
15.3
Set Password
Two passwords are supported. The first is an optional System password which prevents unauthorized modification of the setup of the robot. When the System password
is set, programs can be loaded and executed without the password, but the user must
enter the correct password in order to create or change programs.
The second is a required Safety password which must be entered correctly in order to
modify the safety configuration.
NOTE:
In order to change the safety configuration, the Safety password must
be set.
WARNING:
Add a System password to prevent non-authorized personnel from
changing the robot installation.
CB3
II-112
Calibrate Screen
Calibrating the touch screen. Follow the on-screen instructions to calibrate the touch
screen. Preferably use a pointed non-metallic object, such as a closed pen. Patience
and care help achieve a better result.
II-113
CB3
15.4
15.5
Setup Network
Panel for setting up the Ethernet network. An Ethernet connection is not necessary for
the basic robot functions, and is disabled by default.
CB3
II-114
Set Time
Set the time and date for the system and configure the display formats for the clock.
The clock is displayed at the top of the Run Program and Program Robot screens. Tapping on it will show the date briefly. The GUI needs to be restarted for changes to take
effect.
II-115
CB3
15.6