Changelog

0.15.59-beta - 2025-03-14

Compatible with PolyScope X 10.8.

Changed

  • Breaking: Bump Angular from 18 to 19 (official migration guide)

    • Angular components are now, by default, standalone. This means that components that are part of a module must have the standalone: false property set in the @Component definition. For an example, see the application node in the gripdistance sample.

      • This also means the .eslintrc.json configuration file must be updated to not prefer standalone components (again, see the gripdistance sample for how to do this).

    • Angular-based URCaps will need to be updated with the following changes in their package.json file:

      • The domhandler package must be added with version ^5.0.3 to the peerDependencies section, due to conflicts in transitive dependencies

      • @angular/* (and related) packages must have their version updated. See below for the exact packages or the gripdistance sample for the full context:

        {
          "dependencies": {
            "@angular/animations": "19.0.5",
            "@angular/cdk": "19.0.4",
            "@angular/common": "19.0.5",
            "@angular/compiler": "19.0.5",
            "@angular/core": "19.0.5",
            "@angular/elements": "19.0.5",
            "@angular/platform-browser": "19.0.5",
            "@angular/platform-browser-dynamic": "19.0.5",
            "@angular/router": "19.0.5",
            "@universal-robots/ui-angular-components": "3.1.0",
            "zone.js": "0.15.0"
          },
          "devDependencies": {
            "@angular-devkit/build-angular": "19.0.5",
            "@angular-eslint/builder": "~19.0.2",
            "@angular-eslint/eslint-plugin": "~19.0.2",
            "@angular-eslint/eslint-plugin-template": "~19.0.2",
            "@angular-eslint/schematics": "~19.0.2",
            "@angular-eslint/template-parser": "~19.0.2",
            "@angular/cli": "19.0.5",
            "@angular/compiler-cli": "19.0.5",
            "@angular/language-service": "19.0.5",
            "ngx-build-plus": "^19.0.0",
            "typescript": "5.6.3"
          },
          "peerDependencies": {
            "domhandler": "^5.0.3"
          }
        }
      
  • TypeScript API: Enhanced updateSubTreeNode function. We have updated the updateSubTreeNode function in PolyScope X to support BranchNode objects containing a children object. This enhancement allows developers to update a program node and its children in one operation, improving efficiency and simplifying program modifications.

  • TypeScript API: SubTreeNode Interface Fix. We have updated the SubTreeNode interface in PolyScope X to correctly include BranchNode as a valid type for ProgramNode. This resolves a previous issue where BranchNode was mistakenly omitted, ensuring that developers can now work with hierarchical structures as intended.

  • TypeScript API: Enhanced SourceBehaviours` for set/get. New methods have been added to SourceBehaviours to allow a contribution to perform extra range checking and validation when using a Source in a Set and Wait node. An example of their use would to range check an analog voltage to between 0-10V.

Added

  • Added a description of communicating with the simulator in the Working with the PolyScope X Simulator document.

  • New Backend Connectivity Guide in the Getting Started section of the SDK documentation.

  • New Serial communication via the Tool Connector in the How to guides section of the SDK documentation.

  • New Design Guidelines section in the SDK documentation, providing components and tools to guide UX designers.

  • TypeScript API: New Program Node Lifecycle Hook, onLifeCycleHook, for program nodes in PolyScope X. This function allows developers to execute custom logic whenever a program node undergoes key lifecycle events, including deletion, pasting, suppression, and unsuppression.

Removed

  • Breaking: Removed deprecated methods in ProgramNodeService, refer to ProgramTreeService instead.

Fixed

0.14.74 - 2024-12-20

Compatible with PolyScope X 10.7.

Changed

  • Breaking: Changed the Analog and Digital types to represent a single IO pin in the ROS2 urinterfaces.

    • Instead, should use the newly added AnalogIOStateStamped and DigitalIOStateStamped message types.

  • Breaking: Moved isAdvancedProgramLabel from @universal-robots/contribution-api to LabelService.

  • Breaking: Renamed isAdvancedProgramLabel to isAdvancedLabel

  • Breaking: SetAnalogOutput and SetDigitalOutput are using the same message types.

    • This will require any ROS2 services that uses the Analog or Digital IOs to be updated.

Added

  • The following functionality have been added to the ProgramExecutionService

    • Play the currently loaded program

    • Resume a currently paused program

    • Pause a currently running program

    • Get the status of the current program

    • Step the currently running program

  • ProgramService has been added to the Presenter APIs with the functionality to:

    • Get the list of programs

    • Get the content of a specific program

    • Load a program

    • Get information about the currently loaded

  • The following methods have been added to the ProgramTreeService

    • updateSubTreeNode can update a specific node in the program tree given a node id.

    • getTreeContextFromProgramnodeById gets the tree context given a node id.

    • getContributedNodeInstancesForURCap gets the contributed node instances for the URCap that are currently inserted in the program

  • Added the AnalogStamped and DigitalStamped message types.

    • These types respectively hold the Analog and Digital values and a header.

  • Added the AnalogIO and DigitalIO message types.

    • These types are the aggregates of the vectors of the inputs and outputs.

  • Added the AnalogIOStateStamped and DigitalIOStateStamped message types.

    • These types are the aggregates of the Analog and Digital IOs e.g. control box digital IOs.

Removed

Fixed

0.13.127 - 2024-11-01

Compatible with PolyScope X 10.6.

Changed

  • Updated documentation for: “ROS2 topics and service” and “UR interface API”.

  • Updated Node version to 20.14.

Added

  • Added default safety password to the documentation.

  • Added “Permanent” mount type, that will prevent data being deleted after a URCap is deleted.

Removed

Fixed

  • When loading a program with a custom safety, after resetting the simulator, will no longer result in an error message.

  • Fixed issue where the simulator sometimes where unable to start in Windows WSL.

  • The URCap project generator “newurcap.sh” now always presents questions in the same order.

0.12.125 - 2024-07-04

Compatible with PolyScope X 10.5.

Changed

  • Breaking: For RobotPositionService in @universal-robots/contribution-api, the getInverseKinematics now needs an input argument for qNear.

  • Breaking: Interface FrameName in @universal-robots/contribution-api has been changed to a type of string.

  • The KinematicPosition interface in @universal-robots/contribution-api has been deprecated.

  • The Position interface in @universal-robots/contribution-api has been deprecated.

  • Revamped introduction to the SDK documentation

Added

  • New Waypoint type in @universal-robots/contribution-api which should be used instead of the now deprecated KinematicPosition and Position

  • The new Getting Started page guiding the user through creating their first URCap

  • A new more thorough guide on Working with the Simulator. There is a known issue when using the --reset option without --clear-application when working with the simulator described in a note in the following linked section.

Removed

Fixed

0.11.95 - 2024-04-23

Compatible with PolyScope X 10.4.

Changed

  • Universal Robots NPM packages for the SDK is available by download and not packaged with the SDK-zip file.

  • Breaking: Bump Angular from 16.1.1 to 17.1.2

Added

  • Add Smart Skill option to the urcap generator in the SDK

  • Option to run the UR30 in the simulator.

Removed

  • Breaking: install.bat from the SDK, directing Windows users towards DevContainers and WSL2.

  • Documentation bundled with the SDK, it is now only available online.

Fixed

  • DevContainer terminal exit on commands with non 0 return code.

  • URProgram Node sample referenced internal component and not sample component.

  • URCap Generator newurcap.sh hanging during execution.

  • Configuring DevContainer takes a long time in VS Code.

0.10.103 - 2024-01-18

Added

Fixed

  • npm run delete-urcap would not delete a URCap including a Device

0.10.94 - 2023-12-20

Compatible with PolyScope X 10.3.

  • URCap development is now done inside a devContainer

  • Slimmed down SDK filesize

  • Cleaned up naming in the SDK, removed UR+ and instead using URCap

Changed

  • Breaking: Renamed following packages:

    • Rename LanguageSettings to RobotSettings

    • Rename ProgramPresenterComponent to ProgramPresenter

  • Breaking: Moved following packages from @universal-robots/contribution-typings to @universal-robots/contribution-api

    • ApplicationPresenter, ProgramPresenter, SmartSkillsPresenter, and SourcePresenter

  • Breaking: Move WebComponentDialogComponent to sub-package @universal-robots/contribution-api known as @universal-robots/contribution-api/angular.

  • Breaking: Move functions convertValue and valueRawConverter, from @universal-robots/utilities-units, to @universal-robots/contribution-api.

  • Breaking: Move interface @universal-robots/contribution-api to @universal-robots/ros2-interfaces

  • Breaking: Rename ApplicationAPI to ApplicationPresenterAPI

  • Breaking: Rename ProgramAPI to ProgramBehaviorApi

  • Breaking: Rename SmartSkillsAPI to SmartSkillsBehaviorAPI

  • Breaking: Rename service TreeService to ProgramNodeService

  • URCap installation guide URCap installation

Added

  • Document: Container cheat sheet

  • Document: Communicate with controller

  • Document: Smart Skills

  • Generate requiments.txt inside URCaps. This file describes what frontend API versions is used by the URCap.

  • Smart Skills URCap API

  • Add RobotPositionService

  • Add built-in PolyScope X program nodes as samples

  • Add --reset flag to URSim

Removed

  • Breaking: remove package @universal-robots/contribution-typings

Fixed

  • hotplug device did not reconnect after reboot

  • hotplug device where assigned to the wrong URCap

  • hotplug device did not reconnect after update

0.9.27 - 2023-09-25

Changed

  • Breaking: Bump Node from 16.14.0 to 18.17.1

  • Breaking: Bump Angular from 14.1.1 to 16.1.1

  • Breaking: In manifest.yaml

    • volumeMounts are now mounts. See datastorage samples and documentation.

    • Devices have changed to include a type instead of a specific device (e.g. device: "ttytool:/dev/ur-ttylink" becomes type: ttyTool)

Added

  • For Application nodes allow descriptive text to card in Applications menu