Instructions for Adept Utility Programs
SPEC, Edit Motor Calibration Parameters
File Name Program Name File Type Description SPEC.V2
a.spec
B
Robot specification utility
Calibration is required to tell each motor in the Adept SmartMotion system where it is. You must establish a reference point, usually a zero-index on the encoder near a home switch, from which all subsequent motion can be referenced. The Motor Calibration Parameters Menu allows you to specify the zero index and other parameters used by the calibration program STANDARD.CAL. For a description and diagram of the calibration process, see the Motor Calibration Overview in the Adept SmartMotion Developer's Guide.
This reference is needed every power cycle for incremental encoders, and only once for absolute encoders.
When you select a menu option, the following information is provided on screen:
Instructions for the specified option
Current value
Value range for the parameter if applicable
Menu Options
![]()
The Robot/Motor Calibration Menu
Change motor number
Use this option to select a different motor for tuning. The currently selected motor is indicated in the menu page title.
Change homing configuration
The SPEC program contains an option that allows users with AdeptModules controlled by an AdeptWindows Controller to change the homing configuration so that the robot calibration procedure searches for a dedicated home sensor. (Previously, the AdeptModules devices calibrated only to an overtravel sensor.)
Select "Change homing configuration" from the menu. A submenu is displayed followed by a series of questions.
![]()
Change Homing Configuration Submenu
To use a home sensor mounted on your AdeptModules axis for calibration, select "Search for home sensor" from the submenu and press ENTER. To exit without changing the option, simply press ENTER.
After selecting the option, you are asked to disable (or enable) the "calibrate to zero index" feature. To toggle the setting, press Y and then press ENTER. To use the existing setting, press N and then press ENTER, or just press ENTER to accept the default value (N).
After answering this question, you are asked to enable (or disable) the "fine search toward home" switch. To toggle the setting for fine search toward home, press Y. To use the existing setting, press N or just press ENTER to accept the default value (N). After you answer this question, the screen is cleared and the Robot/Motor Calibration menu is displayed.
Change Homing Configuration Subfields
The Homing Configuration is a bit field that specifies the type of calibration method to be used. The following three homing configuration settings are described below: Search Type, Calibrate Without Zero Index, and Final Calibration.
The homing configuration value that displays on the Motor Calibration Menu is the sum of the mask values of the desired options.
Bits 0,1 SEARCH TYPE
These bits define the target of the initial search performed during calibration, as defined below:
Bit Setting
Mask Value
Description
00 0 Search for home switch. 01 1 Search for hard stop. 10 2 Stay at current position (calibrate from the current position of the motor). This is generally not used because without a search it is difficult to guarantee that the same zero index or calibration position will always be found. 11 3 Absolute calibration. (requires special hardware) 100 4 Calibrated via dual encoder (for Adept robots only) Bit 2 CALIBRATE WITHOUT ZERO INDEX (Mask value 4)
This bit is set to calibrate to the position found at the end of the search (or to the current position if no search is performed), without using a zero index. This type of calibration tends to be less repeatable than using a zero index.
Bit 3 FINAL CALIBRATION DIRECTION (Mask value 8)
This bit is ignored unless a home switch search has been selected (bits 0 and 1 both off). If this bit is off (the default), the position of the home switch will be determined while moving slowly OFF of the home switch, and the optional zero-index search will continue in the same direction. If this bit is set, the position of the home switch will be determined while moving slowly ON to the home switch, and the optional zero-index search will continue in the same direction. It is usually desirable to leave the bit off, since the home switch is usually placed close to an overtravel switch, and the zero index search will then occur moving away from the overtravel.
NOTE: Depending on the configuration chosen, some of the following parameters may not be required, and will not appear on the menu.
Speed and Direction
Signed integer value which specifies the direction and speed the motor moves during its initial search for the home switch or hard stop, and the speed at which it moves to the park position. After the motor senses the home switch, if one is used, it also moves at this speed in the opposite direction until it moves off the switch. If the speed for fine search is set to zero. This guarantees that the home switch edge is found quickly whether the robot begins calibration on the home switch or off it.
![]()
WARNING: In most installations, the speed specified here determines the speed of the first robot motion after power up. Set this value low enough so that a person unfamiliar with the robot's operation will not be injured if they are standing inside the work envelope.
Determines the speed at which the motor searches for the precise home-switch edge after coarsely locating it.
"Motor Stalled' Timeout During Cal
Because calibration is often the first motion a robot performs after startup, it is advisable to shorten the amount of time the motor command can saturate at the maximum DAC value before declaring a Motor Stalled error. This parameter allows you to set a special timeout value during calibration; a value of 100 ms is typically satisfactory.
Maximum Search Distance
Positive integer value which specifies the maximum distance the motor will move without finding the home switch or hard stop before it declares an error. This value should generally be slightly greater than the motor range in counts to make sure it doesn't stop before reaching the home switch or hard stop.
Maximum Home Switch Width/ 'Hard-stop Found' Position Error
If the homing configuration specifies Search for home switch, this value specifies the maximum distance the motor will move on the home switch before declaring an error. This value should generally be slightly greater than the number of encoder counts that the home switch spans.
If the homing configuration specifies Search for hard stop, this value specifies the position error in counts at which the motor will declare that it has hit the hard stop. This value should be much smaller than the envelope error limit, but big enough so it will not give a false hard-stop found reading while simply moving to the stop. If it is set too big, *motor stalled* errors will occur as the DAC saturates against the stop.
Distance From Edge of Home Switch to First Zero Index
If the motor happens to have a zero index that almost perfectly coincides with the edge of the home switch or the hard stop, the motor might sometimes catch it and sometimes catch the next index during calibration. This value specifies the expected number of counts from the home switch or hard stop to the first zero index. If the number of counts is off by more than half the number of counts between zero indices, the system projects where the desired zero index is and calibrates to it.
This value is difficult to calculate off-line. It is suggested that you use the interactive teaching utility to help you define this value.
Motor Position at Zero Index/Hard Stop/Home Switch/Current Position
This is the value to which the motor position is reset once the calibration target (zero index, hard stop, home switch, or current position, depending on the settings of the homing configuration setting) is found.
While the other parameters do not require a high degree of accuracy, this parameter should be specified as accurately as possible, since it can be critical to straight-line tracking accuracy and positioning consistency from one robot to another of the same type.
If your device module contains motor-to-joint coupling (if motion of a given joint involves moving more than one motor), you will need to refer to your device module documentation to determine what joint position corresponds to the Motor position at zero index.
If your module does not contain any motor-to-joint coupling, the corresponding joint position can be obtained by multiplying the motor position (in encoder counts) by the encoder scale factor for the joint.
This value and Distance From Edge of Home Switch above are usually different for different robots of the same design, because it is very difficult to guarantee a precise relationship between a zero index location and home switch closure. As a result, these values should be customized for each version of a mechanism to guarantee consistent calibration.
Calibration Groups
For some robots, all the motors can be calibrated simultaneously, in which case all motors should be put into calibration group 1. But depending on your robot's mechanical design and its workcell, it may be desirable to calibrate motors in a specific order. For example, a vertical axis may need to be retracted to avoid gripper damage during calibration. Such a motor should be in calibration group 1, and its park position such that it moves out of the way of workcell collisions. Other motors can be put into calibration group 2. Motors can appear in several calibration groups; sometimes this is useful when one motor has to be moved to a particular position in order for another to calibrate, and then must itself be calibrated later.
Park Position After Calibration
This is the position to which the motor moves after calibration is complete. It can be used to move the motor out of the way, so that subsequent motors can calibrate.
Teach Calibration Specs
This option appears only if STANDARD.CAL program file is selected for calibration file name on the Robot Initialization Specifications Menu. This option provides an iterative sequence to easily measure and record parameters such as home switch width, first zero index position, park position, etcetera. You must first set the homing configuration, speeds, and distances.
Calibrate Motor
This option allows you to test the calibration sequence for the current motor.
Calibrate Robot
This option performs the complete calibration for all motors.
Encoder type
The encoder type code is used by the servo and calibration code to identify the type of encoder attached to the motor (absolute, incremental, etcetera). The encoder type establishes which internal software drivers are used to communicate with the encoder.
Select "Encoder type" from the menu. The following description of this selection is displayed, followed by a prompt for the new encoder type value.
![]()
Encoder Type Input
To change the selected encoder type, find the desired encoder type from the list and enter the corresponding number at the NEW VALUE prompt. To keep the existing value, press ENTER at the NEW VALUE prompt.
The valid encoder types are:
0 Undefined 1 Incremental encoder 10 Yaskawa Sigma-I series absolute encoder 11 Yaskawa Sigma-II series serial absolute encoder 20 Panasonic absolute encoder This parameter should be set based on the way the encoder is actually USED. For example, if an absolute encoder is wired to the system, but it is used only in incremental mode, the encoder type should be set to 1.
Joint-encoder counts/index
Select "Joint-encoder counts/index" from the Edit Motor Calibration Parameters menu. The following description of this selection is displayed, followed by a prompt for the new value.
![]()
Joint-encoder Counts/index Input
To change the joint-encoder counts/index, enter the desired number of encoder counts/index at the NEW VALUE prompt and then press ENTER. To keep the existing value, press ENTER at the NEW VALUE prompt.
Motor counts/joint revolution
Select "Motor counts/joint revolution" from the menu. The following description of this selection is displayed, followed by a prompt for the new value.
![]()
Motor Counts/joint Revolution Input
To change the number of motor counts/joint revolution, type the desired value at the NEW VALUE prompt and then press ENTER. To keep the existing value, just press ENTER at the NEW VALUE prompt.
Drive train backlash
Select "Drive train backlash" from the menu. The following description of this selection is displayed, followed by a prompt for the new value.
![]()
Drive Train Backlash Input
To change the drive train backlash value, type the desired number of encoder counts at the NEW VALUE prompt and then press ENTER. To keep the existing value, just press ENTER at the "NEW VALUE" prompt.
Enable and reset absolute encoder
NOTE: The "Enable and reset..." menu displays only for SmartModule's absolute encoder.
To reset and enable the absolute encoder, type Y at the prompt and then press ENTER. To keep the existing value, type N and press ENTER at the prompt.
Related Utilities
Submit comments to: techpubs@adept.com
Last modified on: 4/1/2010
Copyright © 2006 - 2009. Adept Technology, Inc.
