10. Cell Calibration

Cell Editor Tutorial

These tutorials introduces the calibration tools available in cell editor, and provides a walkthrough on how to apply calibration data to a work cell by using these tools.

Prerequisites and Resources

This tutorial uses an uncalibrated example cell which can be downloaded here.

Calibration Data for Tutorial

Calibration of a work cell for use in Verbotics Weld requires the physical work cell to be driven to a series of positions. Examples of these positions include the centre of platter’s for both rotators and tailstocks, edges of tables, etc.

As such, the data you’ll use to calibrate your work cell will be provided as a series of readings from a robot controller, as well as some reference photos we’ve created in Cell Editor to mimic the data you’ll most likely receive when calibrating your own cells.

Rotator Calibration Data

Click images to expand…

Reading

Reference

imga1

imgb1

imga2

imgb2

imga3

imgb3

imga4

imgb4

Step-by-Step Guide

To begin, first load the Uncalibrated Example Cell into cell editor, and make sure to have this tutorial’s webpage open to have quick access to the calibration data needed to follow along with the tutorial.

Note

Make sure to have the latest version of cell editor installed. If you are using an older version of cell editor, you may not have the calibration tools available in your version.

Step 1: Adding Calibration Measurements

Once calibration data has been recorded from the physical work-cell, this data needs to be visually represented in the digital cell in order to identify if the items in the digital cell match the position of their physical equivalents.

To do this, you’ll need to create a Cell Calibration element. This element allows for adding calibration points into the cell, and positioning joints to match the state they were in when the calibration data was recorded.

../../../_images/calibration-element.png

Calibration Element in URDF Tree

Before you can create these elements however, you’ll first need to identify the position that these calibration points are in reference too.

Note

Calibration points used to calibrate the position of cell items will often be in reference to one of two possible locations. For most robot makes, this reference point will be the origin of the robot’s base joint. However some robot makes, such as FANUC, instead reference a unique point positioned towards the top of link 1.

This point uses the X and Y position of the base joint’s origin, but has a Z position in line with the origin of joint 2. The robot in the cell we’re calibrating today is a FANUC, as such we’ll demonstrate how you can locate this point now.

First, go ahead and create a new joint and link pair under robot_link_1, and name them calibration joint and calibration link respectively. Joint 1 shares an X and Y position with the base joint, as such leave these positions as they are, however we do need to adjust the Z position to now be inline with robot_joint_2.

Let’s start by selecting joint 2 from the URDF tree, and take a look at the manipulation widget. Make sure that the position is in Local mode so that the position is in reference to the parent joint. You should find that joint 2 is positioned at Z=565mm above joint 1. Note down this value, then select our calibration joint and set its Z-position to match this value.

../../../_images/cal-joint.png

Calibration Reference Point

Now that we have the reference point for the calibration data, go ahead and create a new cell calibration element cal-element under the calibration_link.

If you now select the cell calibration element, you should notice a new element has been recommended in the cell element creation menu, represented by the ruler icon. This element is a calibration measurement, and it allows you to define a new calibration point in you cell. For this tutorial, there are 4 calibration points used to locate the headstock and tailstock platters of the rotator, as such, go ahead and create 4 new measurements.

With these 4 measurements created, now you’ll need to update the position of each of these points to match the calibration data. To do this, simply select a measurement element, then change its position in the manipulation element to match a calibration point from the calibration data at the top of the tutorial webpage. While each point also has rotation data, this data isn’t useful for calibration the position of headstocks and tailstocks.

With that, the first calibration point has been added into the cell. Repeat this process for the 3 remaining rotator calibration points.

Step 2: Calibrating the Cell Positions

Now that all the calibration points have been added to the cell, each cell item now needs to be updated to be positioned according to this calibration data.

Let’s start with the headstock of the rotator, go ahead and locate the reference photos for the 2 calibration points measured on the headstock. Compare these photos to your cell.

../../../_images/uncal-head.png

Headstock with Calibration Points

You should find that the calibration points in the cell don’t line up exactly with the photos. First, the calibration point for the centre of the platter is offset slightly to the left, and the calibration point for the left edge of the headstock is not sitting on the platter, and instead floating just in front of it and slightly inwards.

Keeping this in mind, now go ahead and compare the calibration measurements for the tailstock to reference photos. Once again, you should find that the calibration point for the centre is offset and the point for the edge of the platter is floating in front the platter.

../../../_images/uncal-tail.png

Tailstock with Calibration Points

As such, you’ll now need to correct the position of both the headstock and tailstock to match the calibration data. To simplify this process while maintaining accurate positioning for both the headstock and tailstock, set the origin of each base joint to match their associated platter. You’ll also want to make sure that the rotation of each calibration point matches the rotation of the base joint to maintain the correct rotation after repositioning.

Once that’s done, to correct the positioning of the rotator:

  1. Select headstock_base_joint.

  2. Set the manipulation mode to transform then select the Pick transform from tool represented by the transform icon.

  3. Select the calibration point for the centre of the headstock, and the headstock will snap to that position.

Now, go ahead and repeat this process for the tailstock.

../../../_images/pick-transform.gif

Snapping Tailstock to Centre Calibration Point

Now, both the headstock and tailstock have been corrected to be positioned correctly. However, if we take another look at the calibration points, the edge point for both platters is still not positioned correctly, and as such it can be assumed our headstock and tailstock are not aligned in our cell. To align these, you can use one of the 3 point towards tools located next to the Pick transform from tool.

As both platters have the z-axis pointing outwards, we’ll use point-z-towards pointz. Go ahead and select the headstock_base_joint, then enable point-z-towards and select the tailstock. You should find now that the headstock has rotated to face the tailstock.

Repeat this for the tailstock, selecting the tailstock_base_joint, enabling point-z-towards then selecting the headstock. Now, you should have both ends of the rotator aligned, and if you take a look at the calibration points, you should find that the points for the platter edge are now positioned as they are in the reference photos.

../../../_images/pick-z.gif

Aligning Headstock to Tailstock