Universal Robots Forum

Release of API 1.7.0, PolyScope 5.4 and 3.10

Release of URCaps API 1.7.0, PolyScope 5.4 and 3.10

Dear valued developers,

Universal Robots is delighted to announce, that we are now releasing a new software, to continuously deliver more value to you and our customers.The new release consist of:

  • PolyScope 5.4.0 for e-Series
  • PolyScope 3.10.0 for CB3
  • URCap SDK 1.7.0 including URCap API 1.7.0 for both platforms

Key features

The key features in this release is:

API

  • URCaps can request exclusive control over the Tool I/O
  • URCaps that are granted exclusive control (from the user) over the Tool I/O can configure the Tool I/O, including pin-mode, voltage and Tool Communication Interface.
  • URCaps that do not have exclusive control over the Tool I/O can read the configuration.
  • URCaps can query is a particular functionality is supported in the robot, i.e. the Tool Communication Interface, which is only available in e-Series.

Notice

After this software release, only the new API should be used to configure the Tool I/O Interface.
Use of script functions configuring the settings is not allowed, e.g. ‘set_tool_voltage(int)’. This also applies to the URCap that has the control of the Tool I/O Interface resource.
The controlling URCap only have exclusive control over the configuration of the Tool I/O Interface, but not the actual values of the I/O signals in the robot tool. Any non-controlling URCap or the end user are free to modify the value of any of these I/Os.

Get started with the new API

You can download the latest URCaps SDK and URCaps Starter Package under the Download Center .
Find the latest PolyScope software on the UR Support Site .

URCap API and SDK release notes

Please find the release notes related to the URCap API and SDK 1.6 below:

URCap API:

  • Added support for “I/O Input” configurations of Until Nodes:
    • URCaps can read and set “I/O Input” configurations of Until Nodes
    • See the new ‘create…InputConfig(…)’ methods in the ‘UntilNodeConfigFactory’ interface and the new ‘IOInputUntilNodeConfig’ interface in the existing ‘domain.program.nodes.builtin.configurations.untilnode’ Java package.
  • Added support for exclusive control over system resources
    • Introduced a framework where URCaps can obtain exclusive control of a system resource. A resource on the robot are defined as an entity that can be controlled. A resource can be unique, or a limited number of that resource type can be present on the robot, e.g. the Tool I/O Interface is a unique resource typically used by a device attached to the robot tool, such as a gripper.
    • URCaps can request exclusive control of the Tool I/O Interface resource and exclusively configure the settings of this interface if the control request is granted to the URCap.
    • The control is revoked when the end user reassigns the control (to a different URCap or himself), when a new installation is created or a different installation is loaded, and when the robot is shutdown.
    • See the new interfaces ‘ControllableResourceModel’ and ‘ToolIOInterfaceController’ in the new ‘domain.resource’ Java package.
    • See the new “Resource Control” document in the SDK for more information.
    • Note
      • After this software release, only the new API should be used to configure the Tool I/O Interface. Use of script functions configuring the settings is not allowed, e.g. ‘set_tool_voltage(int)’. This also applies to the URCap that has the control of the Tool I/O Interface resource.
      • The controlling URCap only have exclusive control over the configuration of the Tool I/O Interface, but not the actual values of the I/O signals in the robot tool. Any non-controlling URCap or the end user are free to modify the value of any of these I/Os.
    • ‘Tool IO’ installation screen (e-Series only)
      • Added support for selecting who controls the settings of the Tool I/O Interface. Available options are the end user or any of the URCaps that has requested the control.
      • While the control is assigned to a URCap, the settings of the Tool I/O Interface cannot be modified in any way by the end user or other URCaps.
      • In the “Controlled by” drop-down box, control requests from URCaps are grouped by the URCap “owner” in terms of the name of the URCap and its developer.
    • ‘I/O’ tab (CB3 only)
      • Added support for selecting who controls the tool output voltage setting of the Tool I/O Interface. Available options are the end user or any of the URCaps that has requested the control.
      • While the control is assigned to a URCap, the tool output voltage and tool analog input domain settings cannot be modified in any way either by the end user or other URCaps.
      • In the “Controlled by” drop-down box, control requests from URCaps are grouped by the URCap “owner” in terms of the name of the URCap and its developer.
  • Added support for configuration of the Tool I/O Interface settings
    • URCaps can read and configure all settings of the Tool I/O Interface including settings for
      • Tool output voltage level
      • Tool digital output pin mode Sinking (NPN), Sourcing (PNP), Push / Pull, Dual Pin Power (e-Series only)
      • Tool analog inputs Tool Communication Interface (TCI) (e-Series only), Analog domain (Voltage/Current)
    • See new ‘domain.resource.tooliointerface’ Java package
    • Note
      • Only the tool output voltage and tool analog input domain settings are available on CB3 robots.
      • The settings of the Tool I/O Interface can only be configured by the URCap controlling the Tool I/O Interface resource.
    • When Tool I/O Interface settings are modified, an update (re-rendering and invocation of ‘isDefined()’ methods) of the Program Tree is automatically triggered. This ensures the correct “defined/undefined” state is reflected for any program node contribution with an implementation of the ‘isDefined()’ method that checks for a specific configuration of the Tool I/O Interface.
  • Added support for querying if specific capabilities are present on the underlying robot system
    • Introduced the concept of capabilities supported by the underlying robot/system. A capability is a hardware-based or software-based system feature which is not available on all robot systems/platforms, e.g. the Tool Communication Interface and tool digital output pin mode features are not available on CB3 robots.
    • URCaps can query whether or not a specific capability (which is not guaranteed to be available on all systems) is supported by the underlying robot/system. Currently, such supported capabilities are the Tool Communication Interface and tool digital output pin mode features which are only available on the e-Series platform.
    • Interfaces and methods that represent functionality that are not available on all systems are annotated with ‘RequiredCapability’.
    • See new ‘domain.system.capability’ Java package
    • Note: Attempting to use functionality which is not supported by the underlying robot system will throw a ‘CapabilityNotSupportedException’.
    • See the new “Capabilities” document in the SDK for more information.
  • Added support for checking if an I/O is resolvable/available
    • URCaps can now check if an I/O is resolvable/available in PolyScope. An I/O can be unavailable if, e.g. a MODBUS I/O is not present in the loaded installation, the analog tool inputs are used as Tool Communication Interface (TCI) and the digital tool outputs are used for Dual Pin Power.
    • See new ‘isResolvable()’ method in the ‘IO’ interface in the domain.io Java package.
    • Note: Currently, all ‘Register’ types (‘Boolean’, ‘IntegerRegister’ and ‘FloatRegister’) are always resolvable.
  • Improved rendering support for MODBUS I/Os in the HTML-based drop-down box GUI element (‘SelectDropDownList’ interface). Now a selected MODBUS I/O, which became unresolved (e.g. because it was deleted/not present in the Installation), will be displayed as in PolyScope built-in program nodes (shown in italics with a yellow border).
  • Made various updates and improvements to Javadoc.

URCaps SDK:

  • Created new or updated URCap samples:
    • Added new ‘Tool I/O Control Swing’ URCap example demonstrating how to use the following new API features
      • Requesting exclusive control of the Tool I/O Interface resource
      • Reading and applying configurations of the Tool I/O Interface (resource)
      • Checking if a specific system capability is available on the underlying robot system
      • See section “10 URCap examples overview” in the Swing-based URCap tutorial for more details about the new sample
    • Changed the text of the top-most placeholder item in the variable selection drop-down box from “Select idle time summation variable”/“Select counting variable” to “” in the ‘Idle Time’/‘Idle Time Swing’ URCap sample.
    • Updated the ‘Localization’/‘Localization Swing’ URCap sample with fully translated generated pop-up for Russian, Japanese, Chinese and Korean.
  • Documentation
    • New documents:
      • Added document “Resource Control” which describes the new resource control framework (resource_control.pdf file). The document explains how to request exclusive control of a system resource as well as how to work with the resource once the control has been granted. The Tool I/O Interface resource is used as an example.
      • Added document “Capabilities” which describes the concept of capabilities, that are not guaranteed to be supported by the underlying robot/system, and how to work with this new concept (capabilities.pdf file).
    • URCap tutorial (Swing- and HTML-based):
      • Added new section “8.4/8.5 Updating the data model” containing the existing “Undo/redo Functionality” section and the new “8.5.1 Restrictions” section describing restrictions for modifications to the data model.

Bugfixes

  • Fixed the issue where calling the ‘set(boolean)’ method on the ‘DigitalIO’ interface for a digital tool output would always return true value even when the output was unavailable, because it was used for Dual Pin Power.
  • Fixed the issue where copy/pasted URCap program node containing another URCap program node with locked child sequence of sub nodes would lose the lock of the sub nodes (i.e. it was possible to, e.g. add and remove child nodes).
  • Fixed issue where storing a double value in the data model (using the ‘set(String, double)’ method in ‘DataModel’ interface) would not enable the unsaved changes indicator for programs and installations.
  • Fixed issue where a “Program node changes denied” exception was thrown and the ‘Pallet’ node was inserted without any of its children when the ‘Pallet’ node was added to a sub-tree generated in the constructor of a program node contribution.
  • URCap SDK:
    • Fixed the issue where building a URCap using Java 6 failed due to a Maven build error. The ‘newURCap.sh’ script (for creating new empty URCap projects) is fixed in the URCap SDK and all existing URCap samples have been updated.
    • Fixed issue in the program node from the ‘Localization’/‘Localization Swing’ URCap sample where the information about the selected language and programming language was not fully translated for Hungarian, Romanian and Traditional Chinese.
    • Fixed issue in the program node from the ‘Localization’/‘Localization Swing’ URCap sample where the information about the selected language and programming language was falsely displayed as Chinese when the selected language was Traditional Chinese
    • Fixed issue in the program node from the HTML-based ‘Localization’ URCap sample where the top introduction text was truncated in Spanish, French, Swedish and Russian and the text in the “Units” drop-down box was truncated in Russian.
    • Fixed issue where the ‘install.sh’ script would fail when installing on 32-bit Linux. If the dialog or/and sshpass Linux packages where not already installed on the system, the install script would furthermore not install these packages.

You can find the complete and general release notes here:
Release Notes 5.4
Release Notes 3.10

Happy development,
The Universal Robots+ Team

4 Likes