User Manual - Flexx Reference

Table of Contents

Product Overview

Product Description

The Flexx Reference pairs with your Universal Robot through the seamless integration of a URCap Plugin and the simple Flexx Lockout Assembly mechanical mating system. The Flexx Reference enables flexible deployment and repurposing of any UR robot utilizing relative calibration and native nodes. Whether it be increasing robot uptime, decreasing installation time or finding new applications for your robot, the Flexx Reference can help make any work space more efficient.

Key Terms and Definitions

Flexx Reference

Software and Mechanical Assembly that can help repurpose any UR robot within minutes without having to rewrite programs.

Flexx Feature

6 degrees of freedom (X, Y, Z, Rx, Ry, Rz) captured in the UR Polyscope while in a Flexx Lockout. This point relatively calibrates the robot.

Flexx Lockout Assembly

Mechanical assembly that when mated together creates a 6 degree of freedom lock or Flexx Lockout.

Female Reference Component

Mechanical interface between robot end and male reference component

Male Reference Component

Mechanical interface between work station and female reference component


Installation and Setup

In this section, the user should learn how to properly install the Flexx Reference URCap, efficiently integrate the Flexx Lockout Assembly, and effectively sync the URCap with the Flexx Lockout assembly. The Flexx Lockout Assembly has been intuitively designed to mate once the male assembly has been connected with the end effector. It is imperative to understand the best practices for the female assembly’s placement.

Proper maintenance is equally important to ensure your Flexx Lockout Assembly provides consistent precision. The mechanical mate’s precision directly correlates to your robot’s precision

URCap Installation

  • Plug the USB into the Universal Robots teach pendant

  • Navigate to the Settings page within Polyscope.

  • On the left side of the screen, click on the System tab.

  • Click the plus (+) button in the bottom left corner of the screen.

  • Open the USB device folder from the file explorer.

  • Select the Flexx Reference. URCap file and click Open.

  • Verify that Flexx Reference now appears in the Active URCaps list with a green check mark.

  • Click Exit to leave the Polyscope settings window.


License Activation

  • Navigate to the Installation Tab within Polyscope.

  • On the left side of the screen, click on the URCaps tab.

  • Select the Flexx Reference urcap. This will open the Flexx Reference. 

  • Click the “Enter a License” text box to launch the keyboard.

  • Enter the license code provided by Flexxbotics and click Submit

  • Verify the Flexx Reference Installation Node displays “Software activated!”.

  • Save the Installation File. 

NOTE: All data within the URCap (including the license activation) is stored per installation file. If using multiple installation files you must activate per instance.


Mechanical Installation

  • Verify that you have all of the following components:

    • End Effector Interface Component

    • Female Reference Component

    • Male Reference Component (Station Interface Block)

    • Two (2) M4 Mounting Screws

    • Four (4) M6 Mounting Screws

    • Three (3) Collars

  • Once you have confirmed you have all the necessary hardware, connect the End Effector Interface Component (1) to the Female Reference Component (2) using the M4 Mounting Screws (4). It is recommended to apply locktite to ensure a secure fit.Mount the End Effector Interface Component to the end of the robot arm using the M6 Mounting Screws (5). Align the interface holes with the mounting face of the robot. Ensure the flange is flush with the robot as seen in the image below.

Recording Flexx Feature

  • Navigate to the Installation Tab within Polyscope.

  • On the left side of the screen, click on the URCaps tab.

  • Select the Flexx Reference URCap. This will open the Flexx Reference Installation Node. Read the text information at the top of the page. 

  • Use the radio buttons within the installation page to select the Flexx TCP of the Flexx Lockout based on the orientation of the assembly on the end of the robot.


  • Click Set FlexxFeature to open the user interaction screen. Free Drive the robot to the Flexx Lockout assembly. 

NOTE: The FlexxFeature is automatically contributed and selected by the urcap. Setting the FlexxFeature pose is required by the user. 

Feature Tab.PNG
  • Mate the female component of the Flexx Lockout assembly to the male component. The components are symmetrical but must mount in one direction using the witness markings on the components. 


  • Install the three collars on each of the three sides of the interface as shown in the image below. The collars must be slid to be flush with the female and male components. Tighten each of the collars by closing the gold collar clamp. NOTE: The collars are adjustable by loosening the gold clamp screw. If the fit is too tight and cannot be slid flush with the lockout, loosen slightly and re-apply. 

  • In Polyscope, click OK within the user interaction screen to set the feature

  • The FlexxFeature can be found by navigating to the Feature tab within the Installation Page.  

  • To add additional Flexx Lockout positions, click Add New FlexxFeature and repeat steps above to lockout and capture.

  • The urcap automatically resets the Active TCP to the previous Active TCP prior to setting the Flexx Feature.

  • Save the Installation File.

Setting Approach Position

To allow for easy workflows when updating the FlexxFeature after re-deployment, the software allows the user to set a joint alignment position for the robot. The intention of the approach position is to provide a position just above or in front of the lockout position. With this position, the user can use the Toolbar to automatically move the robot near the lockout position prior to locking out and setting the FlexxFeature.

  • Position the robot just above the Flexx Lockout Assembly. 

NOTE: This position is decided by the end user depending on the orientation of the lockout assembly in the cell (horizontal versus vertical, for example).

  • Once in position, press the Set Approach button.

  • Follow the on screen prompts to set the position.

  • This position can be updated at any time by selecting the FlexxFeature in the drop down and using the set joint alignment position button. 

Feature Tab Fully Defined.PNG

Creating Flexx Planes (High Accuracy)

A Flexx Plane is a combination of 3 FlexxFeatures used to create a custom frame to program the robot relative to. The plane is made up of 3 points which are used to define the Origin, X-Axis, and Y-Axis of the reference frame. These points can be thought of as defining the coordinate system to program the robot. The below image shows a representative setup of 3 Station Interface Blocks which are used to create a plane. 

  • Follow the Mechanical Installation section to arrange 3 Station Interface Blocks so that an origin, x-axis- and y-axis can be defined. The 3 station interface blocks should never change relative position to each other; therefore they must be mounted on the same tablet, fixture, etc. 

  • Free Drive the robot to the Flexx Lockout assembly representing the Origin of the plane. Capture this position following the Recording FlexxFeature section of the user manual (by pressing the Set Feature button in the Feature tab)

NOTE: It is recommended that the Origin be set as FlexxFeature, X-Axis as FlexxFeature2, and Y-Axis as FlexxFeature3. 

  • Repeat the above step for the FlexxFeatures representing the X-Axis and Y-Axis of the Flexx Plane. 

  • Navigate to the Plane tab within the Flexx Reference Installation Node. 

  • Ensure that the FlexxPlane being created is selected in the drop down menu. Use the + button to create a new FlexxPlane if needed. 

  • Select the FlexxFeatures representing the Origin, X-Axis, and Y-Axis for the FlexxPlane being created.

NOTE: By default, FlexxFeature is selected for the Origin, FlexxFeature2 for the X-Axis, and FlexxFeature3 for the Y-Axis. 

  • Ensure that the features selected are defined from steps 2.6.2 and 2.6.3. An undefined feature will be marked with a yellow caution icon. A defined feature is marked with a green check mark. 

  • If a feature is undefined (yellow check mark), its position can be set by using the Set Origin, Set X-Axis, or Set Y-Axis buttons. The feature can also be set using the Feature tab as stated above. 

  • Once all FlexxFeatures have been selected and are defined, use the Set Plane button to calculate the plane. 

  • If the plane is successfully set, the Plane Status will have a green check mark. 


Updating Flexx Planes (High Accuracy)

  • To update FlexxPlanes, update the position of the FlexxFeatures for the Origin, X-Axis, and Y-Axis. 

  • Once the FlexxFeatures are updated, press Update Plane to update the position. 

Flexx Reference Programming Workflow

Adding Flexx Reference Node

  • Navigate to the Program tab within Polyscope.

  • On the left side of the screen, click on the URCaps tab.

  • Select the Flexx Reference Program Node to add it to the Robot Program tree. 

NOTE: Multiple Flexx Reference program nodes may be added to the program and act independently from each other. This functionality may be used for multiple Flexx Feature points or complicated programs.

  • Select the Flexx Reference Program Node within the Robot Program tree to view its user interface.  


Programming Workflow

  • Verify Flexx Feature (or Flexx Plane) is present in the Feature Drop Down List. 

NOTE: If the Flexx Feature is not in the drop down list, follow the steps in 2.4 Recording a Flexx Feature.

  • Select the Flexx Feature relevant to the current program. 

NOTE: This does NOT yet update the program.  

  • Program the robot using the native Move and Waypoint nodes in Polyscope.

  • Toggle the MoveJ inclusion checkbox. Checking this box will allow updating of MoveJ within the robot program relative to the Flexx Feature; however, it will convert them to MoveL move types. The MoveL can then need to be converted back to the MoveJ type, retaining its original configuration. This is due to a current UR programming limitation.

  • Once all Moves and Waypoints have been added, click “Update” to convert the child Move Nodes to be relative to the selected Flexx Feature or Flexx Plane.

  • After the update button is pressed, all moves will be updated relative to the selected feature. See the conversion progress bar on the number of moves updated and found.

  • CRITICAL: This does not offset the robot. This is merely a one-time programming step to ensure the moves and waypoints are in the correct frame. It is essential to Update the moves prior to moving the robot and setting the FlexxFeature on re-deployment.

  • The user may continue to add Moves and Waypoints until the program is complete. Use the conversion progress bar to keep track of updated moves. When additional Moves and Waypoints are added, the Update button needs to be pressed to convert them relative to the Flexx Feature or Flexx Plane.

  • Save the program when complete.

Adding Additional Moves After Update

  • After updating the selected feature pose or selected plane pose, the user will no longer be able to add and update additional moves beneath the Flexx Reference Node. This is to ensure that the waypoints do not become invalid.

  • To add additional moves, a new Flexx Reference node may be added and used to update moves relative to a Feature. 

NOTE: Adding waypoints to existing moves remain VALID. 


Flexxbotics Toolbar

The following section outlines the functionality of the Flexxbotics Toolbar. This is the primarily used interface for operators when redeploying the robot and updating Flexx Features. When updating Flexx Features, the updated feature will be saved in between runs. 

Preparing to Update Flexx Features

  • Open the toolbar from the UR+ menu at the top of Polyscope.

  • Select the FlexxFeature to be updated from the dropdown menu.

  • Prior to maneuvering to the final position of the robot, press the Approach button. This will slowly perform a MoveJ to move the robot arm to the joint positions captured in step 2.5. This joint position should be close to the previous orientation of the robot when the FlexxFeature was first captured. 

NOTE: Step away from the robot when performing this step.

  • Finalize the position of the robot by moving the robot base so that the Flexx Lockout EOAT aligns with the Flexx Lockout . 

Updating Flexx Features

  • Once the robot is in place, press the Enable Freedrive button to put the robot is freedrive mode. 

NOTE: Make sure the center of gravity parameters of the robot are setup properly. Failure to do so may result in some drifting of the robot while its held in freedrive. 

  • Perform the lockout of the Flexx Lockout Assembly.

  • Once locked out, press the Update button to update and save the FlexxFeature. 

  • Unlock the lockout assembly and move the robot arm away from it to allow for space when starting the program. 

  • Press the Disable Freedrive button in the toolbar to turn off freedrive mode. 

  • If a FlexxPlane is being used, repeat the above process for the remaining FlexxFeatures that make the plane (total of three FlexxFeatures updated). 

Updating Flexx Planes (High Accuracy)

  • To update Flexx Planes, update the FlexxFeature position using the previous section for the features representing the Origin, X-Axis, and Y-axis of the plane. 

  • Once the Flexx Features making up the Flexx Plane are updated, select the corresponding Flexx Plane. 

  • After the Flexx Plane has been selected, press the Update button.

  • The Update button will turn green when successful. 

Reprogramming Existing Programs

  • The following section outlines the recommended workflow for re-programming an existing UR stationary program with a Flexx Reference Node.

  • Open the Installation file for the existing program and follow seciton URCap Installation and section License Activation to install and setup the Flexx Reference URCap.

  • Incorporate the Flexx Lockout assembly into the existing robot work cell. 

  • CRITICAL: Do not move the stationary robot until AFTER the program is updated. This ensures the waypoints of your existing program are translated accurately in real-world coordinates when updated relative to FlexxFeature.

  • Set the Flexx Feature by following all steps in Section Recording a Flexx Feature.

  • Open the Program file for the existing UR program and Add a Flexx Reference Node to the Program Tree by following all steps in Section 3.1 Adding the Flexx Reference Node. NOTE: The node should be nested at the top level of the UR Program Tree.

  • Select the Flexx Feature set in the installation tab.

  • Copy and Paste the existing UR program, so that it is completely nested beneath the Flexx Reference node. 

  • CRITICAL:  It is highly recommended to save a copy of the original program nodes until verification of the Flexx Reference program update is complete.  

  • After the existing program is completely nested beneath Flexx Reference, click the Update button and allow the Flexx Reference to re-configure the Move Nodes relative to the Flexx Feature.

  • Verify that the program runs as intended, then delete original program nodes.

STEP Models

Flexx Station Interface:

Flexx End of Arm Tool: