# Pose Compute Overview

Alignment or assembly systems use motion devices to move one or more parts so that a part with desired alignment/assembly characteristics is obtained. The pose computation task computes the motion device parameters that facilitates this goal.

## Alignment Applications

The goal of alignment applications is to align a single part to a desired pose. These types of applications use the feature locations on a part to be aligned and compare them to the corresponding feature locations on a part with the desired pose, established during a training step, to compute the motion device parameters. AlignPlus supports two types of alignment applications based on the technique to handle the parts.

### Part Handling Technique

Alignment applications support two types of part handling techniques:

- Align To Base

  In these types of alignment systems, the motion device is in engagement with the part. During alignment, the application computes motion device parameters which move the run-time part so that it has the same pose as the train-time part, in Home2D. See more about Align to Base

- Align To Gripper

  In these types of alignment systems, the run-time part rests on a platform. During alignment, the application computes motion device parameters that move the motion device so that the relationship of the motion device to the run-time part on the platform is the same as one established during a training step. In these types of applications, the train-time and run-time parts have the same pose in Stage2D (when a robot is used as a motion device, Stage2D is the coordinate system established by the gripper). See more about Align to Gripper.

Application | Part Handling Type | Feature Compare Mode | Train Time | Run Time
--- | --- | --- | --- | ---
Part pose difference (Calculated based on features) | Motion Move | Motion Move Starting Pose
Alignment | Align To Base | Golden Pose | Features golden pose | Run time -> Golden pose | Run time -> Golden pose | Stage's current pose
Align To Gripper | Golden Pose | Feature's golden pose Gripper's picking pose | Golden pose -> Run time | Arbitrary pose depending on user

## Assembly Applications

Assembly applications align one part to another part so that the assembled part has the desired assembly characteristics. Assembly applications can be classified in various ways.

### Part Handling Technique

- Assembly Blind Transfer

  These systems have one of the parts(Part A) to be assembled at a station on a motion device. The second part(Part B) is in another station, on a platform. The two parts are assembled by moving the parts from the first station to the second station using a shuttling device that moves repeatably between two fixed positions. Before transfer, the part on the motion device(Part A) is re-positioned such that when assembled, the assembled part has the desired assembly characteristics. This technique is also used in applications where a robot grips a part (Part A) at the first station and assembles this part to another part (PartB) that is on a platform at a second station. See more about Assembly Blind Transfer

- Assembly Guided Pick

  These types of systems use a robot to assemble parts. The motion parameters allow the robot to pick the part(Part A) at the pick-station correctly. After the part is picked, the part is placed on a part at the place-station by moving the robot to a fixed position that is established during training. See more about Assembly Guided Pick.

- Assembly Guided Place

  These types of systems use a robot to assemble parts. The motion parameters allow the robot to pick the part(Part A) at the pick-station by moving the robot to a fixed position that is established during training. After the part is picked, the part is placed on a part at the place-station correctly. The part is placed in such a fashion that following assembly the assembled part has the desired assembly characteristics. See more about Assembly Guided Place.

### Part Pose Change Computation Technique

- Using Paired Features

  These types of assembly systems assemble parts by matching features of the pick-part to the corresponding features on the place-part and assemble the two parts such that the distance between the corresponding features minimize a metric in a least square sense. These systems employ a training step where the robot sends the gripper pose on one.

  During run-time, the alignment system performs the following steps:

  1. It locates the features on the part(Part A) at the pick station and the part(Part B) at the place station, both in Home2D.

  2. It computes a TrainFromRun transform that would map Part A's run-time features to Part B's run-time features.

  3. It uses the above transforms along with the train time pick-pose or train time place-poses of the grippers and to compute alignment parameters that would assemble the parts correctly.

- Using Golden Pose

  These types of systems assemble parts by computing the changes in the run-time pose of parts from their train-time poses in their respective stations. The recommended training steps for these systems are as follows:

  1. A correctly assembled part is placed at the place station.

  2. A robot picks the part that lives on the pick station(Part A) from the assembled part. The robot sends its pose during this step to the alignment system. The pose will be referred to as the train time place-pose of the gripper.

  3. The robot transfers the part(Part A) and places it at the pick station. The robot sends its pose following this step to the alignment system. The pose will be referred to as the train time pick-pose of the gripper.

  4. The alignment system locates the features on the part at pick station(Part A) in Home2D. The features will be referred to as the train time pick features.

  5. The alignment system locates the features on the other part at the place station(Part B) in Home2D. The features will be referred to as the train time place features.

  During run-time, the alignment system performs the following steps:

  1. It locates the features on the part at the pick station(Part A) in Home2D and computes the TrainFromRun transform for Part A at the train station. The TrainFromRun transform is one that would map Part A's run-time features to its train-time features.

  2. It locates the features on the part at the place station(Part B) in Home2D. It computes the TrainFromRun transform for Part B at the place station. The TrainFromRun transform is one that would map Part B's run-time features to its train-time features.

  3. It uses the above transforms along with the train time pick-pose and train time place-pose of the grippers and to compute alignment parameters that would assemble the parts correctly.

Application | Part Handling Type | Feature Compare Mode | Train Time | Run Time
--- | --- | --- | --- | ---
Part pose difference (Calculated based on features) | Motion Move | Motion Move Starting Pose
Assembly | Assembly Blind Transfer | Paired Features | / | Part A Run time -> Part B Run time | Part A Run time -> Part B Run time | Stage's current pose
Golden Pose | Part A: features golden pose Part B: features golden pose | Part A: Run time -> Golden pose Part B: Run time -> Golden Pose
Assembly Guided Pick | Paired Features | Gripper's place pose | Part A Run time -> Part B Run time | Part B Run time -> Part A Run time | Arbitrary pose depending on user
Golden Pose | Part A: features golden pose Part B: features golden pose Gripper's pick pose and place pose | Part A: Run time -> Golden pose Part B: Run time -> Golden Pose | Arbitrary pose depending on user
Assembly Guided Place | Paired Features | Gripper's pick pose | Part A Run time -> Part B Run time | Part A Run time -> Part B Run time | Arbitrary pose depending on user
Golden Pose | Part A: features golden pose Part B: features golden pose Gripper's pick pose and place pose | Part A: Run time -> Golden pose Part B: Run time -> Golden Pose | Arbitrary pose depending on user