Release note Software version 3.5.x.x

Release notes for Universal Robots Software 3.5

The first release note is placed at bottom of this and describes the most important improvements from version 3.4.x.x to 3.5.x.x

The latest software version is at the top of this article.



Release notes 3.5.4 Date: 30/04-2018
Released Versions:

  • UR Software:
  • URSim: 3.5.4
  • Safety A firmware: 3.5.2
  • Safety B firmware: 3.5.4 (no changes)
  • Support Log Reader: 3.5.4 

Bug fixes

Fixed 2 issues that prevents proper robot initialization, and results in C201 error:

  • Robot tries to recover from error C200A7(not always captured in log file as initializing process fails), robot needs complete reboot to recover. It has been fixed so complete reboot is not required.
  • Fixed C201A0, and C201A1 when SCB Processor A fails to initialize (LED "A" on SCB is not blinking). NOTE: Requires manual update of SCB firmware in the control box.



Released Versions:

  • UR Software:
  • URCap SDK: 1.2.41 (available from the Developer forum)
  • URSim: 3.5.3
  • Safety Firmware: 3.5.1
  • Support Log Reader: 3.5.3
  • Manuals: 3.5.3

New Features

  • New timeout parameter for script functions socket_read_ascii_float, socket_read_binary_integer, socket_read_line, socket_read_byte_list and socket_read_string.
    The user can now specify the timeout for the read action. The default parameter remains at 2 seconds. Please refer to section 5.1 of the Script Manual for more information.


Bug Fixes and Improvements

UR Software:

  • Fixed problem with the behavior of wait function on analog input when configured to currents.
  • Improved conversion of old programs to new software versions.
  • Improved support for calling script functions containing positional and named parameters simultaneously.
  • Improved display of safety error pop-ups by including explanation and suggestion messages, which previously were only available from the Log Tab.
  • Improved error messages by adding more explanations and suggestions.

URCap Software Platform:

  • Improved the formatting of scripts generated from URCaps.
  • Improved robustness in the SCB communication when multicast packets are used. Example: URCaps using zeroconf library.


  • Corrected analog input/output function descriptions in Script Manual.
  • Updated Script Manual to include indentation requirements for scripts sent directly to the controller, primary, secondary, or real-time socket.



Released Versions:

  • UR Software:
  • URCap SDK: 1.2.41
  • URSim: 3.5.2
  • Safety Firmware: 3.5.1
  • Support Log Reader: 3.5.2
  • Manuals: 3.5.2

New Features
Error reporting and data collection tool.
A report will be generated whenever a violation or exception occurs that causes a change in the robot mode, for example, a protective stop.
In the Log tab, a paper clip icon will be used to indicate that there is a report available for an event. Tapping on the log entry will provide the user with the option of saving a copy of the report to a selected USB drive.
Please refer to sections 11.3.1 and 13.15 of the User Manual for more information.

Bug Fixes and Improvements

UR Software:

  • Fixed German translation of "Momentum" in Polyscope and the User Manual.
  • Freedrive mode can now be used in the Automove screen. In addition, freedrive mode now causes the robot to enter "real robot" mode directly if the robot was in simulation.
  • Enabled interpretation of escape sequences in suffix and prefix for socket_read_string function.
  • Improved Norwegian translations in Polyscope and the User Manual.
  • Improved support for the use of threads in programs.
  • Improved reporting of joint speed limit violation. Now the error contains information about which joint it refers to. [Requires update of SCB software]
  • Improved number formatting when entering values to TCP Center of Gravity fields.
  • Improved program tree validation after a new installation is loaded.
  • Improved error messages by adding more explanations and suggestions.


  • Removed "dummy" field from the Edit Pose screen.

User Manual:

  • Corrected maximum ethernet speed in section 5.5
  • Added Index section.
  • Removed test certificate from "What Do the Boxes contain" section.




Released Versions:

  • UR Software:
  • URCap SDK:    1.2.41
  • URSim:           3.5.1
  • Safety Firmware:      3.5.0
  • Support Log Reader: 3.5.1
  • Manual:                   3.5.1


Bug Fixes and Improvements

UR Software:
  • Waypoints from a List Pattern node can be suppressed. The pattern node will be marked as undefined, when all waypoints are suppressed.
  • The Move tab displays joint position limits according to the active robot mode (Reduced, or Normal).
  • During program execution, the popup title matches the selected popup type.
  • Fixed a problem with the operator assignment popup. The accept/green button will remain deactivated as long as the input field is empty.
  • Automove will always move to the first fixed waypoint used in a program. Fixed an issue where the second waypoint was being wrongly selected as the first waypoint due to naming.
  • Reduced the time taken to load and start large programs.
  • Previously-used variable names that are not currently being used, can be reused by the same variable and other variables.
  • The selected feature in the Move tab will be persisted when moving to the Pose Editor, and vice versa.
  • While freedrive mode is active, no motion commands will be processed by the controller. The user will get a runtime exception when attempting to run a program that uses move, speed, servo and conveyor tracking functions while freedrive mode is active.
  • Improved error message for C201A0 and added a new error code (C103A3) for Ethernet initialization failure at startup.
  • Fixed issue with C104A0 flooding the log history if the confirmation of user parameters is delayed.
  • The robot moves smoothly when performing circular conveyor tracking with tool rotation enabled.
  • Users can modify array type variables (e.g List, Pose) passed as parameters to a script function. Example added to Script Manual.
  • PolyScope will display a number of revolutions and angle in the Move tab for UR3 wrist 3.
  • Fixed issue that prevented the robot from entering Recovery Mode when the robot is started in Reduced Mode and is in violation of the Reduced Mode joint position limits.
    NOTE: This fix requires manual update of SCB firmware in the control box.
URCap Software Platform: 
  • The "Set center point" action (under an Ellipse node) can be undone with a single click of the undo button below the program tree.
  • Fixed rendering problem with <hr> tag not showing when size was not specified in css. The width/thickness of the lines can be customized.
  • The red borders used to highlight an error with a URCaps node have been resized to avoid displacing other components in the GUI.

  • Improved the description of the movej command in the Script Manual.
  • Corrected maximum input voltage specification in the User Manual.
  • Improved the explanation of safety modes in the User Manual (section 2.4).
  • Fixed screenshots for the safety section of the User Manual.



Release notes 3.5.0

Released Versions:

  • UR Software:
  • UR Firmware 3.10.7 (no changes)
    • Joint firmware: 3.10.0-118
    • Safety A firmware: 3.4.1-55 [URSafetyA 510]
    • Safety B firmware: 3.4.1-28 [URSafetyB 259]
  • Manual: 3.5.0
  • Support Log Reader:
  • URCap Software Platform:
    • URCap API: 1.2.56
    • URCap SDK: 1.2.41


Compatibility notice:

Note that the log file format has changed for this release and therefore reading a log from a robot running software version 3.5 requires the new version of the Support Log Reader.


Key features

  • Support for circular movements with fixed orientation (relative to the circular arc) in the 'CircleMove' program node in PolyScope and the 'movec()' script function
  • Virtual keyboard and Expression Editor improvements
  • URCap API: Support for configurations of "built-in" PolyScope program nodes
  • URCap API: Support for getting a robot position defined by the user through the 'Move' tab
  • URCap API: Support for accessing, creating and storing variables 
  • URCap API: Support for capturing click/touch pixel positions in GUI elements
  • URCap API: Support for getting the selected language, programming language and unit type settings

PolyScope GUI

  • 'Program' tab:
    • Added a new 'Orientation' setting with two modes: 'Fixed' and 'Unconstrained'. When the 'Fixed' mode is selected, the orientation of the tool will be fixed relative to the circular arc during the motion, whereas the 'Unconstrained' mode corresponds to the behavior in previous software versions. The default selection when a new 'CircleMove' node is created is 'Fixed'. Old programs will default to 'Unconstrained' mode and hence will not be affected. 
    • The layout and text description for the 'Command' tab screen have been improved including a graphical illustration of the functionality.
    • To clarify the meaning of the two 'Waypoint' nodes under the 'CircleMove' node, their default names have been changed to 'ViaPoint' and 'EndPoint', respectively.
    • 'CircleMove' program node: 

    • Waypoints and movements:
      • The functionality when changing the feature selection in the 'Command' tab screen for the 'Move' node has been changed. The new behavior applies, if the feature selection is changed when the 'Waypoint' nodes under the 'Move' node have already been defined. The impact on these waypoints is now to keep the relative displacement between feature and waypoint constant in order to perform the movement relative to the newly selected feature (waypoint coordinates in the feature space are constant). This replaces the old behavior which was the opposite: keep the absolute positions constant, and change the relative displacements of the waypoints (waypoint coordinates in feature space) to achieve this. Note that this change only has an effect when the actual feature selection is changed and hence does not affect existing programs.
      • Adding a new 'Waypoint' node will now (automatically) insert a new 'Move' node (containing one new 'Waypoint' node) in the program tree when the top level 'Robot Program' (root) node is selected. In previous versions this action was not allowed and a "Waypoint has to be under a Move" dialog was displayed.
      • In the 'Command' tab screen for the 'Waypoint' program node, the buttons 'Set this Waypoint' (undefined node) and 'Move robot here' (defined node) have been renamed to 'Set Waypoint' and 'Move here', respectively. 
    • Maximum allowed number of characters in the name of a Sub Program have been increased from 15 to 25.
    • A 'Set' program node with the 'Increment installation variable by one' option configured will now become undefined (yellow), if the type of the selected installation variable is changed (in the installation) from a "valid" type to an "invalid" type, i.e. not a whole number or decimal number. Furthermore, the drop-down box with the variable selection will be highlighted with a yellow border and the variable name in the drop-down box is shown in italics.

    • Changed the automatically assigned default names for the corner program nodes under the 'Pattern' program node in the 'Pallet' wizard when the 'Square' or 'Box' option is selected. The names have been changed from "a1st_Corner_1", "a2nd_Corner_1", ... to "Corner1_1", "Corner2_1", .... This change aligns these names with the general naming convention in PolyScope as well as improves and unifies translations for non-English languages.

    • Minor improvement of the layout of the 'Command' tab screen for the 'Switch' program node 
    • Improved the layout of the 'Command' tab screen for the 'Loop' program node

Software 3.4 (old version)

Software 3.5 (new version)

    • Simplified the 'Force' program node by disabling the 'Force' input text fields for setting the forces for non-compliant (position controlled) axes, since these values are ignored (have not effect) in Force mode. Applies for all force types except for 'Simple'.

  • 'Setup Robot' screen: Under 'Language' it is now possible to select the virtual popup keyboard layout (based on language) independently of the PolyScope language setting. Note that it is not necessary to press the 'Restart' button for a new keyboard language setting to take effect. Available options are: 
    • ExistingInternational English, German (QWERTZ), Spanish, Danish and Swedish
    • New: German, French (QWERTZ), Portuguese, Norwegian and Dutch (AZERTY)

  • Virtual keyboard improvements:
    • Long press on the 'Shift' key will capitalize all typed characters ("Caps Lock") until the 'Shift' key is pressed again. When this "Caps Lock" functionality is enabled, the 'Shift' key will visually stay pressed. Single pressing the 'Shift' key will only capitalize the first character typed as in previous versions of PolyScope.
    • Added "left arrow" and "right arrow" keys to allow the user to navigate the typed content in the input text field by advancing to the next character or going back to the previous character.
    • Existing layout of keys has been revised
    • Added an icon to the 'Shift' key as well as an icon and the text "Backspace" to the key for deleting characters.
    • Now in addition to the "current" key symbol/number, non-letter keys also display a "ghosted" (light blue color) version of the key symbol to indicate what the key symbol will change to, if the 'Shift' key is pressed. In this way, each non-letter key shows both available key symbols. 

  • Expression Editor improvements
    • The full screen 'Expression editor' has been replaced with a popup version
    • Added "left arrow" and "right arrow" keys to allow the user to navigate the typed content in the input text field by advancing to the next character or going back to the previous character
    • Added a dedicated button (with the name "ABC"/"f(x)") for returning from the keyboard to the 'Expression Editor' (instead of using the 'Cancel' button as in previous PolyScope versions)
    • The 'Shift' key which was previously used for making more symbols available has been removed. Now, all available symbols are always visible.
    • Now the 'Expression Editor' has access to the same keyboard that is used for "non-expression" input text fields
    • Now the expression is evaluated while the user types and if the evaluation result is false, the input text field becomes red and the 'Submit' button is disabled. In previous PolyScope versions, the expression was only evaluated when the 'Submit' button was pressed and errors was reported through a popup.

  • Conveyor Tracking:
    • 'Conveyor Tracking' installation screen:
      • In the 'Direction' and 'Center' feature selection drop-down boxes (where the direction of a linear conveyor or the center point of a circular conveyor is defined), the text when no feature is selected (the first list item), has been changed from "Choose direction" and "Choose center" to "Select line feature" and "Select point feature", respectively.
      • The notice texts "Notice a point feature that defines..." and "Notice: Define a line feature that specifies..." (only displayed if the current installation contains no line features or no point features) have been re-positioned, so that they are displayed above the feature selection drop-down box.
      • For configuration of linear conveyors, the 'Switch direction' button has been renamed to 'Reverse direction' and has received a new symbol ("⇄").
      • For configuration of circular conveyors, the 'Rotate tool' checkbox has been renamed to 'Rotate tool with conveyor'.

Software 3.4 (old version)

Software 3.5 (new version)

Software 3.4 (old version)

Software 3.5 (new version)

    • Added description in the 'Command' tab for the 'Conveyor Tracking' program node explaining how the functionality works.

  • 'Installation' tab:
    • In the 'Safety I/O' tab in the 'Safety' screen, a safety configuration with two input signal pairs assigned the '3-Position Switch' and 'Operational Mode' safety functions, respectively, will be in an error state, if the '3-Position Switch' assignment is removed. Now, in this situation (in addition to showing a tool tip error message) the drop-down box with the 'Operational Mode' safety function assignment will be highlighted with a red error border and the safety function name in the drop-down box is shown in italics.

    • 'Features' screen: 
      • Renamed the 'Move robot here' button to 'Move here' in the screen displayed when a feature is selected
      • Removed the 'Move robot here' button in the screen displayed when the 'Base' or 'Tool' feature is selected.
    • Simplified the 'Default Program' screen. The check boxes for enabling auto start of the default program and auto initialize (auto brake release) of the robot arm have been removed. Instead the two actions can be enabled by selecting an input signal in the first drop-down box and can be disabled again by deselecting the chosen signal (selecting the top '<Di. Input>' item). When no input signal is selected, the second drop-down box where the signal edge transition is selected is now disabled to further make it clear that the action is disabled.

Software 3.4 (old version)

Software 3.5 (new version)

    • 'I/O Setup' screen: An input signal configured (in the 'Default Program' screen) to auto start the default program and/or auto initialize (auto brake release) the robot arm is now displayed in the 'Input' list in the same way as a signal assigned an I/O action. This means that the I/O action name is shown next to the signal's default name (e.g. "digital[0]") and the signal's entry in the list is shown in italics. "Auto-Play" and "Auto-init" is displayed as I/O action name, if the signal is configured to auto start the default program and auto initialize the robot arm, respectively, whereas "Auto-Play & Init" is shown when the same signal is assigned both actions.

  • For simplicity, the 'About' dialog now only shows the 'Universal Robots Software' version. The individual versions of PolyScope and the Controller are no longer displayed (in an expandable section).
  • Going to the 'Automove' tab (e.g. by pressing the 'Move here' button for a feature in the 'Features' installation screen) when the robot is not fully initialized (i.e. brake released) will now display the "The Robot Cannot Proceed with Normal Operation" dialog and disable the 'Auto' and 'Manual' buttons until the robot is fully initialized.
  • The first log entry in the 'Log' tab with information about the PolyScope version and the robot's serial number now also includes the robot type.

  • Dialogs:
    • Pressing the 'Submit' button on the virtual popup keyboard in the "Open" and "Save As" file dialog now completes the intended action without having to press the 'Open' or 'Save' button in the dialog itself. For example, a program can now be saved by pressing the 'Filename' text field in the 'Save Program As' dialog, typing a name and pressing the 'Submit' button on the virtual popup keyboard. Previously, it was also necessary as a final step to press the 'Save' button (in the 'Save Program As' dialog). 
    • Saving a program under an existing filename using the "Save as" action now prompts the user with a warning dialog before overwriting the program
    • When loading a program, a dialog is shown if the associated installation depends on one or more URCaps which are not installed. This dialog now lists the specific missing URCaps using bullets to improve readability.
    • Introduced a new dialog displayed in situations where loading a program fails due to issues with the controller (e.g. if it failed to start). In previous versions, the program would not load and no user notification occurred.

    • Introduced a new dialog displayed when an unhandled/uncaught Java exception occurs in the code of a URCap. The dialog provides information about the responsible URCap. In some situations, the UI provided by the URCap will be replaced by a screen displaying information about the error (instead of a dialog). See the "URCap Software Platform" section of these release notes for more details.

    • Improved layout and text in the "Set Installation for Program?" dialog displayed when loading an installation which is different than the installation used by the current program. This dialog asks the user, if the current program should be updated, so that it becomes associated with the new installation, which will ensure that this installation will be loaded when loading the program in the future.

Software 3.4 (old version)

Software 3.5 (new version)


  • The speed scaling is now reported as zero when no program is running.  This smoothens the motion when a program is started or resumed.
  • A new mode for generating trajectories has been added to the 'movec()' script function called fixed orientation. In this mode the orientation of the tool will be fixed relative to the circular arc. A new parameter to the script function enables the user to select between unconstrained orientation (default for backwards compatibility) and the new fixed orientation mode.
  • Added new script function 'force_mode_set_damping(val)' which can be used to adjust force mode for various applications. A damping lower than 1 can reduce vibrations when using force control.
  • Added new script function 'wrench_trans(transform, wrench)' that can apply a transformation to a wrench. 

Client Interfaces

  • Changed the protocol of the primary/secondary client communication interface. The 'Robot Mode Data' package now contains an extra byte field. See the protocol Excel sheet on the support site.
  • Added elbow position and elbow velocity to the Real-Time client communication interface. See the protocol Excel sheet on the support website.
  • Added elbow position and elbow velocity to the Real-Time Data Exchange (RTDE) interface. See documentation on the support website.

URCap Software Platform

  • URCap API: 
    • URCaps can get all variables available in PolyScope including program, installation and feature variable (corresponding feature is marked variable in the Installation) types.
    • URCaps can create new program variables for configuring "built-in" PolyScope program nodes as well as URCap program node contributions. The created variables will be available in PolyScope.  
    • URCaps can store variables in the data model. When variables are loaded from data model again, they are automatically resolved and registered in PolyScope.
    • Added support for variables in the drop-down box and list GUI elements ('SelectDropDownList' and 'SelectList' interfaces). Variables are displayed as in PolyScope built-in program nodes. This includes that a selected installation or feature variable, which becomes unresolved e.g. because it is deleted or missing in the Installation, will be shown in italics with a yellow border around the item (to inform the user of the problem).
    • All functionality is in the 'variable' domain Java package
    • See the new "URCap Working With Variables" document in the URCap SDK for more details
    • Support for variables:
    • Support for configuration of child nodes in a program node contribution's sub tree:
      • URCaps can read the configuration of built-in PolyScope program nodes
      • URCaps can configure built-in PolyScope program nodes
      • Most node types are supported except for: 'Thread', 'SubProgram', 'Script Code', 'Switch', 'Event', 'CircleMove' and 'Conveyor Tracking'. Note that not all options available in PolyScope can be configured for all node types.
      • See the new "URCap Program Node Configuration" document in the URCap SDK for more details, especially sections "2: Creating a configuration" and "4: Extracting a configuration".
    • Support for traversal of a program node contribution's sub tree using a program node visitor:
      • Visit all child nodes or all child nodes of specific types without object typecasting
      • An elegant alternative to the traditional approach of using a list to iterate through the children, that conveniently does not require check of node type followed by node typecasting.
      • See the 'ProgramNodeVisitor' and 'URCapProgramNodeInterfaceVisitor' interfaces in the 'program.structure' domain Java package
      • See section "3: Traversal of sub tree" in the new "URCap Program Node Configuration" document in the URCap SDK for more details
    • A URCap program node can now (optionally) provide a custom API interface:
      • A URCap program node contribution can choose to expose a custom interface giving access to various information and/or operations through a set of methods
      • This makes it possible for another URCap node to access state/configuration of the program node implementing the custom interface as well as configure or interact with it.
      • See the new methods 'getAs()' and 'canGetAs()' in the 'URCapProgramNode' interface.
      • See section "5: URCap Program Node proprietary API" in the new "URCap Program Node Configuration" document in the URCap SDK for more details
    • Support for building expressions:
      • Added a builder for easy building of expressions to be used for configuration of built-in PolyScope program nodes. Domain entities, such as variables, features, waypoints and I/Os can be used to build expressions.
      • To ensure that only valid expressions are created, the builder evaluates the submitted expression before creation (and throws an exception, if it is invalid).
      • Now, all built-in PolyScope program nodes where an expression is part of the configuration can be configured using an expression object.
      • The created expressions are tokenized, so that they behave in the same way as expressions (in built-in nodes) defined by the user using the Expression Editor. This means that when users rename entities which are part of an expression, such as variables and features, it will not "break" the expression. Furthermore, when entities (that are part of an expression) become unresolved, e.g. because a feature or an installation variable is deleted or missing, the built-in program node using the expression will become undefined. Editing the created expression in the Expression Editor (e.g. deleting a feature) is now identical to editing a user-defined expression.
      • See the 'value.expression' domain Java package
    • Support for capturing click/touch coordinates in GUI elements:
      • Introduced a new UI event type fired when the mouse/touchscreen is clicked/pressed or released on a GUI component. The event provides the pixel position (x, y) at which the event occurred.
      • Supported GUI elements: image ('ImgComponent' interface), label ('LabelComponent' interface), button ('InputButton' interface) and text field ('InputTextField' interface)
      • Typical usage is for capturing click/touch coordinates when the user interacts with an image 
      • See the new 'TouchEvent' API interface in the 'component' UI Java package
    • Support for getting the language, programming language and unit type settings. See the new 'system' domain Java package and the new 'Localization' API interface.
    • Support for getting a robot position defined by the user through the 'Move' tab. The resulting pose and corresponding joint positions/angles (a joint configuration) is returned to the URCap. See new API interfaces 'UserInteraction' and 'RobotPositionCallback' located in the 'UserInteraction' domain Java package.
    • Support for value objects:
      • Pose
      • Joint positions/angles (a joint configuration)
      • Blend
      • Simple value: Length, speed, acceleration, angle, angular speed, angular acceleration, force, torque, current, voltage and time.
      • Added factory interfaces for creating various value objects
      • Supported value objects:
      • For convenience, it is possible to work with different unit types, such as metric and imperial. For example, units supported by length objects are meters, millimeters and inches. 
      • Support for storing poses, joint positions and simple values in a URCap's data model.
      • Typical usage is for configuration of built-in PolyScope program nodes
      • See the 'value' domain Java package
    • Added interfaces for the 'Base' and 'Tool' features. Can be used for configuration of program nodes.
    • Added new methods in the 'ScriptWriter' API interface:
      • 'assign(Variable, String)'
      • 'incrementVariable(Variable)'
      • 'getResolvedVariableName(Variable)': Must be used to get a URScript safe/compatible resolved name of a variable in situations where it is necessary to use the variable in raw script code   
    • Added support for general purpose registers (boolean, integer and float types). See the 'io' domain Java package.
    • Added new filters in the 'IOFilterFactory' interface for retrieving all analog inputs ('analogInputFilter()' method) and all analog outputs ('analogOutputFilter()'method). 
    • It is now always possible to get an instance of the entry point to the URCap API (the 'URCapAPI' interface) through a static method in the new 'URCapAPIFacade' interface.
    • HTML support improvements:
      • Added HTML support for CSS style 'vertical-align'. Possible values are 'TOP', 'MIDDLE' and 'BOTTOM'. Default value when setting text in a label is 'MIDDLE'. See section "B: CSS and HTML support" in the URCap tutorial for more details.
      • Added HTML support for CSS style 'text-align'. Possible values are 'LEFT', 'CENTER' and 'RIGHT'. Default value when setting text in a label is 'LEFT'. See section "B: CSS and HTML support" in the URCap tutorial for more details.
    • Added the method 'getKeys()' to the 'DataModel' interface. This method can be used to obtain the set of keys for the data stored in the data model.
  • URCap SDK:
    • Coordinate Map: Demonstrates new API feature for getting clicked/touched pixel positions in an image
    • Cycle Counter: Demonstrates new API features for configuring program nodes, creating expressions, creating and accessing variables as well as storing variables in the data model. 
    • Idle Time: Demonstrates new API features for applying and extracting program node configurations, iterating child nodes using the program node visitor, creating and accessing variables as well as storing variables in the data model.
    • Ellipse: Demonstrates new API features for getting a user-defined robot position (through the 'Move' tab), applying and extracting program node configurations as well as creating poses.
    • Localization: Demonstrates how to localize a URCap node using the new API feature for getting the language, programming language and unit type settings. 
    • Added the section "13: Exception handling" which describes what happens when an unhandled/uncaught Java exception occurs in the code of a URCap.
    • Updated the "8.4: Undo/redo functionality" section with more precise information about changes to sub trees as well as information about the ignoring of changes occurring outside the scope of a user-initiated event.
    • Added new sample URCaps (see section "10: URCap examples overview" of the URCap tutorial for more details): 
    • Added new document "URCap Working With Variables" describing how to work with variables (file: working_with_variables.pdf)
    • Added new document "URCap Program Node Configuration" describing how to work with program node configuration (file: program_node_configuration.pdf)
    • URCap tutorial:
  • Introduced a new dialog displayed when an unhandled/uncaught Java exception occurs in the code of a URCap: 
    • Shows information about the responsible URCap
    • Provides an (expandable) advanced view containing a stack trace detailing were exactly the exception occurred in the Java code
    • If the exception occurs in the 'openView()' method in the node contribution, the UI provided by the URCap will be replaced by a screen displaying information about the error (instead of a dialog).
    • This is described in the new "13: Exception handling" section in the URCap tutorial.


  • The notice that concludes section "10.13.1: Input Signals" in the "Safety Configuration" chapter has been extended with a requirement warning stating that the physical mode selector and 3-position switch should comply with ISO 10218-1.
  • Various minor improvements to the description of the 'Force' program node.
  • Improved the description of the 'Conveyor Tracking' program node.
  • Improved the description of the 'Conveyor Tracking' installation screen:
    • Added description of the 'Reverse direction' button (named 'Switch direction' in previous PolyScope versions) used for configuration of linear conveyors
    • Added description for the 'Rotate tool with conveyor" checkbox (named 'Rotate tool' in previous PolyScope versions) used for configuration of circular conveyors
    • For circular conveyors, it is now explained that the center point is configured using a feature (as for linear conveyors)
  • Various improvements to the text and formatting as well as various spelling and grammatical corrections.

Script Manual

  • Small improvements to script manual text
  • Added simple examples of usage for all script functions

Dual Robot calibration

  • Added two extra "Go" and "NoGo" verification positions.

Bug fixes


  • Conveyor tracking stability when leaving conveyor tracking mode has been improved.
  • Avoided protective stops when resuming programs by smoothing the startup of the motion
  • Fixed issue where the Freedrive safety compliance efforts, which generate a small repelling force when the robot arm comes close to a joint position safety limit, in rare situations would cause a speed limit violation, because the robot arm was exerting a too large feedback force in Freedrive. This would occur, if a joint position was a lot outside of the range of a joint position limit right after the robot arm had passed through a 'Trigger Reduced mode' plane.

PolyScope GUI:

  • Programs:
    • 'CircleMove' program node movements are now properly visualized in the 3D graphics.
    • Shared blends defined in the 'MoveP' program node are now displayed in the 3D graphics for the waypoints under the 'MoveP' node.
    • Fixed issue where the name in the program tree for a 'Wait' or 'Set' program node would contain the string "shortName" (e.g. "Wait shortName=Off"), if the node was configured to use a general purpose register and the user-defined name for that register was cleared in the 'I/O Setup' installation screen. The correct (short) name of the register, e.g. "GPbi", is now displayed in the program tree.
    • In the 'Set' program node the expression text field for the 'Set' option will no longer disappear when the program tree is expanded (using the '<---->' button).
    • Now force and torque values are validated correctly in the 'Force' program node when using U.S. customary units. Previous, it was possible to enter too small and too large values, since the minimum and maximum accepted values was identical to the corresponding values in metric units.
    • 'Graphics' tab:
    • Fixed issue where it was not possible to "clear" the current expression by submitting an empty string in a program node's expression text field (e.g. 'Wait' node, 'If' node etc.).
    • 'Switch' program node:
      • Appropriate tool tip error message will now be shown when a too large numeric value is entered in the 'Case number' text field in the 'Case' program node and the 'Case' text field in the 'Switch' program node. Previous the "Not a number" error message was displayed.
      • Appropriate tool tip error message will now be shown when an invalid numeric value, such as a decimal number (using a physical keyboard), is entered in the 'Case number' text field in the 'Case' program node and the 'Case' text field in the 'Switch' program node. The previous "Not a number" error message has been replaced with "Not a whole number".
      • In the 'Case number' text field in the 'Case' program node the number will now by completely visible when the number is very big.
    • 'Move' program node:
      • Fixed issue where submitting the maximum allowed value of 192 °/s in the 'Joint Speed' text field in the 'MoveJ' program node would apply a value of 191.5 °/s. Now, the maximum allowed value is 191 °/s (the error message tool tip for the text field validation has also been updated).
      • Fixed issue where a 'Move' program node was (falsely) marked as defined (green) in the program tree, if all 'Waypoint' nodes under it were suppressed.
      • Fixed issue where the available options in the 'Advanced' section of the 'Command' tab screen for the 'Waypoint' program node was not properly reset when the type of the parent 'Move' node was changed while the 'Advanced' section was visible (check box checked). For example, when changing the move type from 'MoveJ' to 'MoveP', the 'Advanced' section would still contain the 'Time' option (which is not valid for a 'MoveP').
      • Fixed issue where moving a 'CircleMove' node up in the program tree (using the 'Edit' section in the 'Structure' tab) would result in a new 'Waypoint' node being inserted in the tree after the 'CircleMove' node while the 'CircleMove' node remained in the same position.
    • Fixed issue where the top level 'Robot Program' node was (falsely) marked as defined (green) in the program tree, when all program nodes under it were suppressed.
    • Fixed the left alignment in the layout of the 'Command' tab screen for the 'SubProgram' program node
    • Naming:
      • Fixed issue where undoing the delete operation of a program node (e.g. an 'Assignment' node) that was using a program variable (e.g. named "var_1") when an installation variable with the same name existed in the installation, would result in two variables with the same name being in the system (one program variable and one installation variable). Furthermore, after the undo operation the node would be using the installation variable (without any user notification) and if the installation variable was subsequently deleted, the node would be using the original program variable. After the undo operation, a dialog will now be displayed where the user can choose to use the installation variable or automatically rename the original program variable.

      • Fixed issue where loading a program containing a program node (e.g. an 'Assignment' node) that was using a program variable (e.g. named "Point_1_var") when a feature variable (corresponding feature is marked variable) with the same name existed in the installation, would result in two variables with identical name being available in PolyScope (in drop-down boxes in program nodes and Expression Editor). When loading such programs, a dialog will now be displayed where the user can choose to use the installation variable or automatically rename the program variable.
    • Fixed a problem when loading a sub program containing a URCap program node with a sub tree of child nodes under it. If some of the child nodes under the URCap node were deleted, these changes were not preserved in some situations when the sub program was reloaded after it had saved. 
    • Fixed issue where the save icon (unsaved changes indicator) would not become enabled after loading a program where there were name clashes between program variables and variables in the installation ("Duplicate variable found" dialog displayed and the user chooses how to resolve the situation).
    • Fixed issue where saving an unzipped program (raw xml text file) would write a zipped archive instead of a text file to disk.
    • Fixed issue where an expression text field (in a program node) containing a call to a script function in very rare situations could cause a dialog with an unhandled (null pointer) Java exception to be shown
    • Fixed issue where the "f(x)" placeholder text was not displayed in an empty expression text field for some program nodes. This was fixed for the following program nodes: 'Loop', 'If', 'ElseIf', 'Script', 'Event', 'Stack'/'Destack' ('Seek' wizard) and 'Direction' (under the 'Stack'/'Destack' node).
  • Installation:
    • Fixed issue where the feature selection drop-down box was not cleared when the 'Cancel' button was pressed in the 'Teach TCP Orientation' panel (accessed through the 'Orientation' button).
    • Fixed issue where pressing the 'Set' button in the 'Teach TCP Orientation' panel in some situations could result in a dialog with an unhandled (null pointer) Java exception.
    • Fixed issue where changes to the default TCP (green icon to the left of its name in drop-down box) where not applied (could be seen in the 'Move' tab) after a new TCP position or orientation had been taught.
    • Now, it is not possible to assign an I/O action to an input signal in the 'I/O Setup' screen, if that same input signal is also configured to auto start the default program and/or auto brake release the robot (in the 'Default Program' screen).
    • In the Conveyor Tracking' screen only the 'Encode Type' and 'Select conveyor type' drop-down boxes are now shown the first time the screen is visited and no conveyor has been configured. Previous additional UI elements (corresponding to specific configuration options) were falsely displayed.
    • Teaching TCP positions and orientations in the 'TCP Configuration' screen:
    • Fixed issue in the 'Load/Save' screen where the text message displayed in the bottom of the screen when the safety configuration contains errors was not fully visible.
    • Fixed issue where the safety configuration would remain in an error state when 'Revert Changes' was chosen in the "Unresolved Errors in Safety" dialog, that appears when the user tries to step away from the 'Installation' tab while the Safety I/O configuration is in an error state.
  • Dialogs:
    • In "Open" and "Save As" file dialogs when deleting a folder contained inside another folder, the file selection area will now keep displaying the content of the current selected folder instead of "moving 1 level up".
           Example: Deleting the "folder2" folder inside the "folder1" folder ("folder1" located under the "programs" folder), would in previous versions change the folder selection, so that the file selection area would display the content of the "programs" folder.
    • Fixed issue where PolyScope seemed unresponsive when the 'About' dialog was open while the robot had problems connecting to the network (local network issues).
    • Fixed issue where the "Safety Checksum may change" dialog was incorrectly displayed after boot up of PolyScope when the "default" installation file was missing (new "default" installation file is auto-generated).
    • Dialogs are now always centered on the screen when they appear. This ensures that they are always visible, also if the virtual popup keyboard is currently on the screen.
    • Fixed issue where confirmation dialogs were automatically cancelled, if another dialog was already being shown. Any dialog requested to be displayed while another dialog is showing will now be queued and displayed when the current dialog is closed by the user.
    • Fixed issue where two dialogs could be displayed on top of each other (overlapping).
    • Fixed issue where a "normal" dialog was displayed instead of the detailed dialog for runtime errors (better debugging dialog) in certain situations when running a program with an error. This issue could e.g. occur with a program with a 'Popup' program node where the text message contained the "#" character.
    • The dialog with kinematics conversion will now always be displayed when loading a program. Previous this dialog was not shown in some situations. If the kinematics conversion fails, a separate dialog has been introduced to warn users about changes of kinematics of the robot. This dialog suggests reloading the program. The conversion could fail in some cases where the loading of the program loads an installation different from the currently loaded installation.
    • Fixed issue in German where the wrong error message was shown in the runtime error dialog when running a program. The message "Bahn wird skaliert" was displayed instead of the correct "Aufgrund der konfigurierten Geschwindigkeitsgrenze kann nicht mit der vorgegebenen Geschwindigkeit verfahren werden". This error message is e.g. displayed when running a program with a 'MoveP' node where the value of the 'Tool Speed' setting is higher that speed limit in the safety configuration.
  • Translations:
    • Request operator for 'A whole number' option: The "geheel getal ophalen" part of the name has been changed to "integer ophalen".
    • Request operator for 'A decimal number' option: The "zweef ophalen" part of the name has been changed to "float ophalen"
    • Fixed issue with rendering of the Japanese font where the "≟", "≤" and "≥" operator symbols were not correctly displayed in the program tree and in input text fields in the 'Command' tab for program nodes that can be configured with an expression (e.g. 'Assignment' nodes)
    • Fixed Dutch translations for the name of the 'Assignment' node in the program tree displayed when the node is using 'Operator' input as source:
    • Fixed Dutch translation in the 'I/O Setup' installation screen. In the 'View' drop-down box (in the top of the screen) the items "Register geheel getal" and "Register zweven" have been changed to "Register integer" and "Register float", respectively.
  • 'Initialize Robot' screen:
    • The explanation text in the top of the screen is now fully shown for all languages. In German the text was truncated.
    • PolyScope will not get stuck in the 'Initialize Robot' screen when loading large programs. The 'OK' button is now responding in the 'Initialize Robot' screen.
  • 'Automove' tab:
    • Fixed issue where moving the robot to a target position, which required "auto-moving" using the 'Auto Move' tab, while the robot was protective stopped, in some situations would result in a delay in the transition to the 'Automove' tab. Furthermore, after the switch to the 'Automove' tab the 3D graphics of the robot would not be displayed.
    • Fixed issue in the 'Automove' tab where the robot arm state indicator icon in the top left corner of PolyScope would falsely indicate that the robot was fully initialized (brake released), i.e. the icon was green, when the state of the robot was actually not initialized (e.g. in 'Power off' or 'Idle' state).
  • Now online help is always available on UR10 robots.
  • Fixed issue where pressing the 'Current Payload' text field in the 'Initialize Robot' screen or the 'Force' text field in the 'Command' tab screen for the 'Force' program node (with 'Simple' type selected) would enlarge the selected text field.
  • Now, the cursor does not disappear from the input text field on the virtual popup keyboard when the 'Shift' key is pressed. 

RTDE python client (available on the UR support site)

  • Improved detecting socket problems and skipping of packages for the '__recv' function, and introduced an exception in case of protocol negotiation failure.

URCap Software Platform:

  • URCap API:
    • Fixed issue with the 'selectItems()' method where it was not possible to select multiple elements in the list.
    • Fixed issue where calling one of the methods 'setItems()', 'addItems()' and 'removeAllItems()' would fire two select events if the list had a selection. Now, no select events will be fired.
    • 'SelectList' UI component interface:
    • When (programmatically) trying to add program nodes in the sub tree under a URCap program node, that does not allow children, the correct exception ('TreeStructureException') is thrown.
    • Fixed issue where the names of named PolyScope entities, such as waypoints and variables, would not be "released" when a URCap program node (programmatically) removed child nodes from its sub tree. This would occur, if the deleted node was a suppressed built-in PolyScope node using a named entity or a built-in PolyScope node containing a suppressed node using a named entity. 
           Example: This issue could be observed in the 'PickOrPlace' URCap SDK sample, if a 'Move' node containing a defined 'Waypoint' node named "Waypoint_1" was suppressed and the sub tree was removed by pressing the 'Reset Node' button in the 'Pick or Place' URCap node. Pressing the 'Make Pick Node' or 'Make Place Node' and defining a position for the 'Waypoint' child node in the sub tree would result in the 'Waypoint' node getting the name "Waypoint_2" instead of the correct "Waypoint_1".
    • Fixed issue where a new built-in PolyScope 'Assignment' program node would not be initialized to the correct default configuration when (programmatically) inserted into the sub tree of a URCap program node. The generated node configuration would be invalid, since it did not include a newly created variable (e.g. named "var_1"). In 'Variable' drop-down box in the 'Command' tab screen for the 'Assignment' node, the top "Create New" item would be selected (not a valid selection) and pressing the 'Rename' button would result in a dialog with an unhandled (null pointer) Java exception being displayed. 
  • URCap SDK:
    • Minor improvement of the 'addGripper()' method in the 'PickOrPlace' URCap SDK sample regarding how the type of 'ProgramNodeService' class (used as argument to the 'createURCapProgramNode()' method) is determined.
    • Fixed the description of the 'samples' folder in the "readme.txt" file.


  • Fixed Dutch translations for the table that concludes section "14.3: Variables". In the first column the word "zweven" has been replaced with "float" and in the corresponding entry in the second column "zwevende puntgetal (decimaal)" has been replaced with "decimaal getal".
  • Fixed issue where part of the table in section "5.3.2: Safety I/O" extended into the right page margin for several non-English languages.
  • Fixed issue where the EMC certificate was missing in section"B.5" and the cleanroom certificates were missing in section "B6" in the Japanese, Chinese and Korean user manual.