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.
- URCaps can read and configure all settings of the Tool I/O Interface including settings for
- 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.
- Added new âTool I/O Control Swingâ URCap example demonstrating how to use the following new API features
- 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.
- New documents:
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