V+ 12.4 Release Notes

Displays the Table of Contents for the current document
Displays the previous topic in the current document
Displays the next topic in the current document
Displays the Index for the current document

BELT_CAL

Description

Conveyor tracking calibration utility

Disk File Name

BELT_CAL.V2

Program Name

a.belt_cal

Functions

Determine the calibration data required to have the robot track a moving conveyor belt.

Test the calibration data by having the robot track a point on the conveyor.

Abstract

Various data are required to have the robot track a moving conveyor belt. These include the following:

The belt calibration program can be used to define all these data, and to store the data in a disk file for subsequent use by application programs.

Once the data are defined, the performance of the robot/conveyor/encoder system can be tested.

Requirements

The following items are needed for use of the program:

The following conditions must exist before the program can be used:

Procedure

1. If you want to save all of your programs and data on a disk, type:

store save_all

2. Clear the system memory by typing:

zero

3. Load the calibration program into the system memory by typing:1

load \util\belt_cal

4. Start execution of the program by typing:

execute a.belt_cal

5. If your system is configured for more than one belt encoder, enter the number of the encoder channel you want to work with. The channels are numbered 1 through 6.

6. If your system controls more than one robot, enter the number of the robot you want to work with.

7. Select the operations you want from the menu displayed (see below).

8. Follow the prompts provided by the program during the various procedures (see below). At the end of the calibration procedure you will be able to store the calibration information in a disk file for later use.

9. Delete the calibration program by typing the commands:

kill
delete a.belt_cal

NOTE: The above command deletes all the calibration data from memory, except for any variables that are referenced by some other program in memory.

10. Later, to restore the calibration data from the disk, your application program should CALL the subroutine load.belt contained in the utility file LOADBELT.V2.

Program Prompts

The conveyor tracking calibration program displays a menu of selections to the user. The following paragraphs describe the menu items and provide additional information to help you decide how to respond to prompts from the program. After you respond to a prompt, the program displays instructions on the monitor or terminal.

NOTE: If you want to exit the program at any prompt, press ctrl+z.

0 => Exit to system monitor

Choose this item to exit the program and return to the V+ monitor.

1 => Perform complete calibration sequence

This menu selection initiates processing of all the steps for defining the conveyor calibration data.

If you want to define only a portion of the calibration data (for example, because something in the setup has changed), do not make this selection. Select only the appropriate menu choice(s).

During the calibration procedure the program will ask you to move the robot pointer to several locations on the conveyor. To see a description of the locations and a diagram indicating proper positions, respond y to the prompt

Do you want to see an explanatory diagram (Y/N)?
 

See the descriptions that follow for more information on individual steps of the calibration procedure.

2 => Load calibration data from the disk

This selection loads belt calibration data from a previously created data file.

You are asked for the disk unit on which the calibration data file is stored. Then you are asked to specify the subdirectory in which the file is located. If the correct subdirectory path is shown as the default, press the enter key.

The program displays the names of all the files currently in the selected subdirectory that appear to be belt calibration data files. (The data is normally stored in a disk file with its name in the format BELTnnn.DAT, where nnn is a user-specified data set number.)

After you enter the desired data set number, the data is read from the disk and is used to reinitialize the conveyor tracking system.

NOTE: See Programming Considerations for information on the variables defined by the program for use during conveyor tracking.

3 => Store calibration data onto the disk

This selection allows you to store the current belt calibration data in a disk file for later use. After the file is created, the data can be read from disk by this program or by an application program that contains the subroutine load.belt (provided in the file LOADBELT.V2 on the Adept Utility Disk).2

You are asked which disk device you want the data stored on. Then you are asked to specify the subdirectory in which the file is to be located. If the correct subdirectory is shown as the default, you can simply press the enter key.

The program displays the names of any files currently in the selected subdirectory that appear to be belt calibration data files. (The data is normally stored in a disk file with its name in the format BELTnnn.DAT, where nnn is a user-specified data set number.)

After you enter the data set number you want to use, the data file is created. (The name of the new data file is BELTnnn.DAT, where nnn is the data set number you entered.)

4 => Display belt encoder output

Choose this selection to have the program display the position and speed of the conveyor as indicated by the output from the belt encoder. This is useful to verify that the encoder is functioning correctly.

5 => Set encoder scale factor

The encoder scale factor defines how far the belt moves between each count output by the belt encoder. This menu selection initiates the steps required to determine that scale factor.

If you know the value of the scale factor, you can enter it directly to the program. Otherwise, you can use the robot to measure the belt motion between two positions.

NOTE: When positioning the calibration pointer over the calibration disk, keep the robot end-effector flange from rotating relative to the workspace. Otherwise, any eccentricity of the calibration pointer results in errors in the measurements between recorded positions.

The procedure for using the robot to determine the encoder scale factor involves recording a robot location on the stationary belt and its corresponding encoder reading. Then the belt is moved so that the point on the belt moves to the opposite extreme of the robot's reach. A new robot location and encoder reading are recorded. The difference between the two robot locations determines how far the belt moved, and the difference between the two encoder readings is the number of encoder counts output during that belt motion.

The Adept calibration pointer and disk are designed to simplify this procedure. The calibration program asks you to perform the following steps:

1. Place the disk on the belt as far upstream as the robot can reach, on the side of the belt nearest the robot. (It's a good idea to tape the disk to the belt so it can't slip when the belt is started and stopped.)

2. Center the robot pointer on the disk.

3. Press the enter key to indicate the pointer is in place.

4. Back the pointer away and run the belt until the disk moves near the other extreme of the working range of the robot. (Be careful that the disk does not slip on the belt when the belt is started and stopped.)

5. Without moving the disk, center the pointer on the disk a second time.

6. Press the enter key again to indicate the pointer is in place.

6 => Define belt reference frame

The belt reference frame describes the direction in which the belt moves and the orientation of the surface of the belt.

Four robot locations on the conveyor must be recorded to define the belt reference frame. The two locations used to determine the encoder scale factor (see above) are used when the complete calibration procedure is performed. Otherwise, all four locations need to be recorded.

For each location requested by the program, position the calibration disk on the belt and center the robot pointer on the disk. Note these considerations when following the instructions from the calibration program:

1. The calibration disk must not move across the belt while the upstream and downstream locations are being recorded.

2. The upstream, downstream, and across-the-belt locations must all be recorded at the same height above the surface of the belt.

3. The center-of-the-belt location can be anywhere in the vicinity of the center of the robot working range on the belt.

4. Care should be taken to keep the robot end-effector flange from rotating relative to the belt. Otherwise, any eccentricity of the calibration pointer results in errors in the measurements between recorded positions.

When the nominal belt transformation is computed, it can have a pitch component that is upside down with an absolute value greater than 90 degrees. As a result, you have the option of rotating the transformation 180 degrees about the X axis. The following prompt is displayed:

The nominal location has a non-standard pitch (i.e., greater than 90 degrees). 
Rotate the transformation 180 degrees about the X (belt) axis (Y/N)? 

NOTE: In most cases, you should have this rotation done. However, you should not do it if your application program expects the orientation that was determined with a previous version of the belt calibration program.

See the V+ Language User's Guide for additional details on programming conveyor belt applications.

If you are using AIM MotionWare for belt tracking operations, the belt calibration utility built into MotionWare can be used to create, store, and load calibration data.

7 => Define belt working window

The system should be told how far upstream and downstream the robot can reach. That is done by defining a robot location at each end of the desired working window. These locations are used to define imaginary planes perpendicular to the belt, and thus only their positions along the belt are used by the program.

NOTE: The upstream and downstream locations should be defined such that the robot is able to reach all belt locations within the working window.

8 => Initialize the belt variable(s) with current data

This menu item causes the system to incorporate the calibration data determined by the steps above. As a result, the belt variable %b[i] is defined, where i is the number of the belt encoder being used.

NOTE: See Programming Considerations for information on the variables defined by the program for use during conveyor tracking. In particular, the robot must be able to reach all the locations on the far side of the belt with no joint moving to a "stretched-out" position.

9 => Test belt calibration

To test the belt calibration you can have the robot track a point on the belt. Place a calibration disk on the belt and position the calibration pointer slightly above the disk.

As the robot is tracking the belt, you can stop and start the belt, change its speed, and reverse its direction of motion. You can stop the belt tracking by pressing the enter key on the keyboard, or the done button on the manual control pendant. The robot automatically stops tracking the belt if it moves close to an end of the defined working window along the belt.

You should verify that the robot accurately tracks the disk. That is, it should remain centered over the disk as the disk moves down the belt. Inaccurate tracking indicates the belt calibration procedure should be repeated.

If the robot correctly follows the path of the disk, but gains on it or lags behind, only the encoder scale factor needs to be recalibrated. If the robot moves across the belt as it tracks the disk, you should repeat the procedure that defines the belt reference frame.

Do you want to save the calibration data on the disk (Y/N)?
 

After completing the calibration procedure entering y to the prompt shown above will store the calibration data in a disk file for later use. The steps that follow are identical to those for the main-menu selection "Store calibration data onto the disk", which is described above.

10 => Select belt to work with

Use this menu item to change the number of the belt encoder channel you want to work with. The number of the channel currently selected is displayed above the main menu.

11 => Select robot to work with

If your V+ system controls more than one robot, use this menu item to change the number of the robot you want to work with. The number of the robot currently selected is displayed above the main menu.

NOTE: If there is no robot connected to your system or the robot has not been calibrated, there is a 3-second timeout and an error message is displayed.

Programming Considerations

For use when tracking the conveyor belt(s), the program defines the global variables listed below. Your application program can access these variables, or it can define other, equivalent variables by calling the routine contained in the file LOADBELT.V2 on the Adept Utility Disk.

Variable Name
Variable Type
Description
%b[i]
Belt
Belt variables, which define the motion of the conveyor belts (i = 1 to 6)
belt.cal[i]
Real-value
TRUE/FALSE indications of whether or not belts have been calibrated (i = 1 to 6)
belt.nom[i]
Transformation
Nominal belt transformations, which define the position, orientation, and direction of conveyor belts (i = 1 to 6)
belt.sf[i]
Real-value
Scale factors for belt travel per belt encoder count (i = 1 to 6)
belt.win1[i]
Transformation
Locations defining one end of windows on the respective conveyor belts (i = 1 to 6)
belt.win2[i]
Transformation
Locations defining other end of belt windows on the conveyor belts (i = 1 to 6)

Special Considerations

The calibration program defines several real-valued and location variables that use bc. and belt. as prefixes. These variables must not be modified by the user or by other programs. (All these variables are deleted from memory when a DELETE command is used to delete the program from memory, as described earlier.)

The disk file BELT_CAL.V2 is a read-only file on the distribution diskette. Thus, the programs in the file cannot be modified or stored from memory to a disk. The FCOPY command can be used to copy the disk file to another disk.

The diskcopy utility program (in DISKCOPY.V2) can be used to make a backup copy of the entire distribution diskette. That program can also be used to copy the file BELT_CAL.V2 from the distribution diskette to the optional hard disk.

1

Type the correct drive and path specification if the file is stored on another drive or subdirectory.

2

See the LOADBELT description in the Instructions for Adept Utility Programs manual for information on how your application programs can read calibration data from disk files.

Please submit comments to: techpubs@adept.com

Last modified on: 06/28/2004
Copyright © 2004 by Adept Technology, Inc.
All rights reserved.