Robot Positioning System

Jump to: navigation , search


Overview

Robot Positioning System (RPS) is a technology that allows the robot to adapt to ever-changing, real-world environments such as common plant-floor variations that may occur (tables being bumped, fixtures being moved, and more). The Robot Positioning System also helps users to more quickly and easily re-deploy the robot after changing applications.

This system adjusts more readily to changing work environments by using visual reference markers, called Landmarks™, in conjunction with its embedded vision system. The robot is able to learn the original locations of the markers, and, when those locations change slightly, can observe the changes in orientation to the new locations and automatically adjust its positions and movements in the task accordingly.

Users can tag fixtures and machinery in the robot's environment with up to 20 Landmarks within a given task. The Robot Positioning System enables the Robot to adapt quickly to workstation changes. For best results, the Landmark should be as “close to the original location” as possible, which is defined as the Landmark being within +/- 20 mm (x/y plane) and +/- 5 mm (z axis) of its original position and 4 deg (roll/pitch) and 10 deg (yaw) of its original orientation.

Example scenarios the Robot Position System can be used in:

  • Register all Landmarks during an initialization sequence on robot start up
  • Register a Landmark every time the robot completes a specified number of cycles (i.e. every time 100 parts are completed)
  • Register a Landmark from behavior based logic, for example re-register a Landmark if a mispick occurs by using a DO IF node
  • Based on external sensor input such as a cart of material arriving into the work space that is detected by a photoelectric sensor


Landmarks

The Robot Positioning System uses Landmarks placed in the work space. A landmark is a fiducial registration marker mark placed in the field of view of an imaging system to be used as a visual point of reference. Rethink Robotics supplies landmarks, unique to Intera, that are anodized aluminum with a strong adhesive backing. These Landmarks are placed on the surface of modules, machinery, or equipment in the work area (CNC machine, conveyors, carts, stands, tables).

Landmark 1.jpg


Note: Landmark numbers 1-4 are included with the purchase of a robot. Landmarks 5-20 are available as an optional accessory (p/n 55995- Landmark 16 Piece Kit).


Key Concepts: Creating a Landmark Registration in A Behavior Tree


When a landmark note is encountered in a behavior tree, the robot will automatically move to the landmark pose and re-register the landmark. The re-registration process will update the landmark frame and all associated nodes. (Note: Prior to the release of Intera 5.2, a Move To node was needed in order to have the robot move to the landmark pose. With the release of Intera 5.2, this is no longer necessary). See the image below for reference and note that the "camera arm pose" is selected by default.

Landmark Node with Snapshot.PNG

The Landmark registration creates a Frame. When the robot re-registers the Landmark, it updates the position of the frame all associated nodes move with it. The example below demonstrates a pattern moving relative to its Landmark parent frame.

RPS GIF.gif

-

Landmark Registration on an Initialization Sequence

Re-registering Landmarks on task start-up can help ensure the robot is registered to the equipment it is working on before it starts performing the task. The steps below detail how to create an initiailize sequence for re-registering landmarks. Note that the steps do not include the procedure for initially registering the landmark, see the Surface and Landmark section of the Vision page for instructions.

  1. Create a Move To node MoveTo 5 1.png for a safe pose. This is used to move the robot arm to a location that will allow it to move to the landmark registration pose without colliding with any objects in the work cell.
  2. Create a Landmark Node Landmark 5 1.png.
    Initialize Landmark Set Up.png
  3. Select the Landmark that will be registered at this step and rename the landmark node if desired.
    Initialize Landmark Set Up Select Landmark.png
  4. Create a final safe pose Move To node MoveTo 5 1.png for the robot to go to before it starts the main task. This can be the same location as the first safe pose. If the same position is used, the same pose can be selected from the arm pose list instead of adding a new arm pose.
    Landmark Initialize Tree tutorial Safe pose 2.png
  5. Set the parent frame of all nodes in the task that you want associated to the Landmark_"#". One example is shown below:
    Move To Set Parent to Landmark.png

Landmark Registration on a Specified Number of Cycles

In this example, the robot will re-register the landmark every 100 cycles.

Register Landmark Do If Part Count = 100
  1. Create your task, this example will use a basic Pick and Place task created using Studio.
  2. Create a User Variable named Current Part Count, Data Type: Integer, with a Default value of 0. This variable will be used to keep track of the number of parts completed (# of cycles).
    Current Part Count User Variable for Landmark.png
  3. In place sequence, insert a Set to SetTo 5 1.png node after the Retract Move To node MoveTo 5 1.png.
  4. Set the Current Part Count variable to Increment. This is used so that after every Place the Current Part Count will increment its value +1.
    Landmark Increment Part Count.png
  5. Insert a Do IF DoIf 5 1.png node before the Pick sequence in task Loop. This will add the logic to do a Landmark registration if the part count reaches 100 cycles.
  6. In the Do If, Create a Move To node MoveTo 5 1.png for a safe pose.
  7. Create a Move To node MoveTo 5 1.png for a registration scanning pose.
  8. In the scanning pose node editor, set the Arm Pose tool center point to hand camera.
    Landmark Registration Pose Hand Camera.png
  9. Create a Landmark Node Landmark 5 1.png
  10. Select the Landmark that will be registered at this step. Rename the landmark if desired.
  11. Create a another safe pose Move To node MoveTo 5 1.png for the robot to go to before it starts the main task.
  12. Set the parent frame of all nodes in the task that you want associated to the Landmark_"#". One example is shown below:
    Move To Set Parent to Landmark.png
  13. Set the conditionals for Do IF DoIf 5 1.png node to Current Part Count == 100.
    Reregister Landmark DOIF Part Count 100.png
  14. Insert a Set to SetTo 5 1.png node after the Safe Pose Move To MoveTo 5 1.png node.
  15. Set the variable Current Part Count to Reset. This will reset the Current Part Count to 0 so it will begin to continue doing the Pick an Place task.
    Reregister Landmark Reset Current Part Count.png


Landmark Registration Based on Behaviors

A smart way to use Landmarks is to register based off of logic created in user designed behaviors. One example is to have the robot register a Landmark after a miss pick occurs to accommodate or any variation in the environment that may have occurred. This could be due to if a tray or table has moved causing the robot to miss pick. This example scenario assumes that a Smart Pick was created.

Register on Mispick Behavior Tree
  1. After the Retry Fails Do IF DoIf 5 1.png node and the Set to SetTo 5 1.png grip signal releases, insert a Safe pose by creating a Move To node MoveTo 5 1.png.
  2. Insert a Landmark Node Landmark 5 1.png.
  3. Select the Landmark_"#" that will be registered at this step.
  4. Insert a safe pose Move To node MoveTo 5 1.png for the robot to go to before to allow the robot safely get back to the Approach pose.
  5. Set the parent frame of all nodes in the task that you want associated to the Landmark_"#". One example is shown below:
    Move To Set Parent to Landmark.png
  6. Completed Task Tree View:
    Register Landmark On Mispick.png


Landmark Registration on Sensor Input and Variables

This example is a machine tending application that will re-register after every two Parts are completed.

  1. Two user variables are created to help build logic in the task.
  2. Assume a photoelectric sensor (Cart Sensor) is connected to a device and configured in the Signal panel.
  3. A Do IF DoIf 5 1.png is inserted for the Landmark registration sequence. The conditions are set to Parts Completed == 0 AND Do Machine Tend == false.
    Register Landmark On Sensor Input 2.png
  4. A WaitUntil 5 1.png Wait Until node is inserted to start the registration sequence. The nodes will not run until the Cart Sensor is true.
    Register Landmark On Sensor Input.png
  5. A SetTo 5 1.png Set To node is inserted at the end of the sequence to flip the variable to do the main Machine Tend Loop.
    Register Landmark On Sensor Input 3.png
  6. The LoopIf 5 1.png Loop If node will run when Do Machine Tend == true.
    Register Landmark On Sensor Input 4.png
  7. The task will run the Do Machine Tend LoopIf 5 1.png Loop If node until Part Completed = 2. Then a Do IF DoIf 5 1.png will run a SetTo 5 1.png Set To node.
    Register Landmark On Sensor Input 5.png
  8. The SetTo 5 1.png Set To node sets Do Registration to true, Parts Complete to 0, and Do Machine Tend to 0. The robot will now go back the to the registration sequence.
    Register Landmark On Sensor Input 6.png