Main Page   File List  

Robot to Conveyor Calibration Program

Greg Causey

December 3, 2001


This document explains the procedure for calibrating the robot and conveyor relative to one another. This calibration is necessary to enable the robot to track the moving conveyor. Once the robot is tracking the conveyor, any changes to the conveyors speed, acceleration, deceleration, or direction is automatically followed by the robot. This allows the conveyor parameters to be adjusted without regard to the current position and motion of the robot.

The calibration is performed by a utility program provided with the Adept controller. It directs the user (through a command line interface) to perform a series of actions and motions with the robot and computes the calibration. It assumes the robot is mounted along side the conveyor and thus some of Adept's descriptions are not directly applicable to this situation. This document will help to explain, relative to the feeder, what actions are required.

The instructions for running the Adept provided calibration program can be found in the on-line Adept manuals. Open the file cd_menu.pdf to start, then select V+ Manuals and then Instructions for Adept Utility Programs. Next, click on the Description of Utility Programs in the left-hand pane and select BELT_CAL.


The following sections describe the process that one goes through when calibrating the conveyor to the robot. The calibration program computes the calibration after one inputs the correct data (using the manual pendent and the robot).

It is assumed for the following discussion that the conveyor encoder has been connected to the Adept controller and the Adept controller is able to actively monitor the value of the encoder.

It is also assumed the the AdeptWindows program is running on the PC and is connected to the Adept controller. Most of the following directions involve typing commands at the Adept system's command prompt.

In addition to the Adept supplied program one also uses the Conveyor test program to manually drive the conveyor. Conveyor move distances are input in millimeters. Positive values move the conveyor toward the robot, negative values move the conveyor away from the robot. One generally uses option 1) advance the horizontal conveyor forward to move the horizontal conveyor.

The conveyor test program is located in the D:\FlexFeeder\Feeder_control_code\Debug directory and is named Conveyor_test.exe.

There are four major steps to calibrating the robot and conveyor. They are:

Shutdown the Feeder Software

The first step to computing the calibration between the robot and conveyor is loading and starting the conveyor calibration program supplied by Adept. When the Adept controller is started (powered on), the feeder control software is automatically loaded and executed. To load the conveyor calibration program, one must stop the feeder software, change the file-system pointer to the local flash disk, ``cd'' to the correct directory, and load the software.

There are three tasks which are running by default any time the feeder software is running. The first action is to stop the tasks. This is performed using the abort command from the Adept command line. Type a 1 and press return, a 2 and press return, and type a 3 and press return. This aborts the tasks. The numbers indicate the task slot in which each task is running (eg. a 1 aborts the task running in task slot 1). After aborting the tasks, use the zero command to clear the Adept controller's system memory. Type ze and press return.

Next we have to switch the file-system pointer to the flash disk. At start-up, the system's file-pointer is directed to the NFS share on the feeder's main control PC. (The feeder software resides on the PC's hard-drive while the Adept supplied utility programs reside on the controller's flash disk.) This is performed using the def command. Type def=disk>d: to point the file-system to the flash disk. A fdir should now show the contents of the flash disk.

The actual program is stored in a file called BELT_CAL.V2 and is stored in the util directory. Type cd util and press return and then use the load command to load the program into memory. load belt_cal should load the program.

Lastly, the program must be started (or executed) Use the ex command. Type ex a.belt_cal to begin program execution. The programs main menu should appear on the screen.

Perform the Calibration

The calibration procedure is accomplished by performing the steps specified by the calibration program. Begin by selecting option 1 => Perform complete calibration sequence.


Next, select N to indicate that you do not want to view the diagram. Since the diagram assumes the robot is mounted along side the conveyor, it does not represent the feeder situation (robot at the end of the conveyor) and is not useful. Refer to the following figure for a diagram showing the teach locations for the parts feeder.

Note that exact placement of the calibration target is not necessary. Placing it in the general vicinity of the indicated location is good enough. Accurately aligning the pointer on the robot with the target is, however, extremely important.

Confirm Encoder Functionality

Next, if necessary, confirm that the encoder is properly connected. Simply jog the conveyor a small amount (using the conveyor test program) and note that the encoder value on the Adept controller changes.

Encoder Scale

Next, we are going to use the robot to set the encoder scale. This is accomplished by pointing the robot at the calibration target and noting the location, moving the conveyor, and pointing the robot at the new calibration target location. By comparing the two locations, the encoder scale may be derived. Select R to indicate we are going to measure the scale with the robot. Then tape (using clear tape) the target to the belt in the center of the belt as far from the robot as the robot may reach. This is shown as position 1 in the diagram.


Teach Positions


Calibration Target

An easy way to determine the location is to (using the pendent) drive the robot to a y-axis value of 0 and then driving the robot in +x until it cannot go any farther (Note: slowly approach the straight-away point). Then move the robot in the -x direction a small amount and tape the target approximately under the pointer. Lastly, carefully lower the robot till the pointer is touching the target and then move the pointer till it is centered in the target. The final robot location should be near x = 600, y = 0.

After recording the point, raise the robot slightly and jog the conveyor till the target is at a location very near the end of the conveyor, close to the robot. This is shown as position 2 in the previous figure. Use care not to job the conveyor too far. If the target goes around the rollers at the end of the conveyor, its position on the conveyor will be disturbed and the procedure must be restarted. It is very important that the calibration target not move during the conveyor jog. That is the reason for taping the target to the conveyor.

Once the target is in location, move the robot so that it is centered on the target and lightly touching it. Record this location. The program then computes the encoder scale.

Conveyor Plane

Next, we need to indicate the plane of the conveyor relative to the robot (even though the conveyor and robot are designed to be parallel, there may be a slight tilt between the two). Move the robot to a location in about the center of the conveyor, indicated by position 3 in the figure. This is about at x = 400, y = 0. Record the point (following the program directions) and then move the robot to a position next to the side rail of the conveyor about the same y distance from the robot's base; position 4 in the figure. The location is about x = 400, y = 250. At each location, the pointer should be lightly touching the surface of the conveyor.

If the controller prints a message the the`` nominal location has a non-standard pitch'' and asks to rotate the transformation 180 degrees, answer Y.

Working Windows

Lastly, we need to define the belt working window. The windows (one up-stream and one down-stream) define the area on the belts surface which the robot can reach. First, the up-stream window is defined. This is accomplished by moving the robot to a position next to the side-rail of the conveyor as far as possible from the robot's base. We use a position on the side-rail because the robot window is defined by a plane and the robot must be able to reach all positions inside the plane. The robot can reach further up the conveyor in the middle and if such a position was used, errors would occur when the robot attempted to retrieve a part from the side of the conveyor. The desired position is number 5 in the figure.

An easy way to define the position is to (using the pendent) put the robot in joint mode and drive joints 1 and 2 to a value of 0. This should point the robot straight away from its base in a direction up the conveyor. From this position, drive joint 1 until the robot reaches the edge of the conveyor. Next drive joint 2 a small amount from 0 (away from the side of the conveyor) and then put the robot in world mode and move to the side of the conveyor and then as far as possible upstream. When the robot hits its limit, move back a small about and record that position.

The down-stream position can be defined directly in front of the robot, shown as position 6 in the figure. This position may be defined by moving the robot to a world location with a y value of 0 and then moving the robot in the -x direction till it hits a stop. Then move the robot slightly in +x and define the location.


To test the calibration, point the robot at the calibration target and follow the program directions. The robot should track the conveyor as it is jogged back and forth. Use the conveyor test program to move the conveyor. Use care to not move the conveyor such that the robot cannot reach the target.

After confirming the robot is accurately tracking the conveyor, save the calibration to a file.

Lastly, select NO when asked to write another calibration and then select option 0 => EXIT from the main menu to exit.

Saving the Calibration File

The calibration information is saved in a disk file for later loading and use. The Adept program, by default stores the calibration files in the flash-disk's util directory. Files may be stored in this directory or they may be saved elsewhere. File names are defined by the program to be DBELTxxx.dat where xxx is a user supplied number when the calibration is stored.

Using a Stored Calibration

To use the calibration in the feeder, one uses the load.belt program supplied by Adept. Simply call load.belt with the appropriate parameters to load the belt calibration. Before calling load.belt, belt tracking must be enabled on the Adept controller. This is accomplished by calling ENABLE BELT from with an Adept program. The first parameter to load.belt is the location of the disk file (the flash-disk is labeled as disk D on the controller). Currently (as of Dec 2001), the load.belt call is in the a.server program which is run on the adept controller as part of the feeder control software.

Generated at Mon Feb 25 13:56:50 2002 for Conveyor Robot Calibration Procedure by Doxygen