V+ Language Reference Guide, v
CALIBRATE program instruction
Syntax
CALIBRATE mode, status
Function
Initialize the robot positioning system with the robot's current position.
Usage Considerations
Normally, the instruction is issued with mode equal to zero.
The instruction has no effect if the DRY.RUN system switch is enabled.
If the robot is to be moved under program control, the CALIBRATE instruction (or command) must be processed every time system power is turned on and the V+ system is booted.
The robot cannot be moved under program control or with the pendant until a CALIBRATE instruction (or CALIBRATE monitor command) has been processed.
NOTE: Some robots can be moved in joint mode with the control pendant even when they have not been calibrated.
If multiple robots are connected to the system controller, this instruction attempts to calibrate all robots unless they are disabled with the ROBOT switch. All of the enabled robots must be calibrated before any of them can be moved under program control.
The CALIBRATE instruction may operate differently for each type of robot. For robots with non-absolute (e.g., incremental) encoders, this instruction causes the robot to move. In this case, the robot must be far enough from the limits of the working range that it will not move out of range during the calibration process. (See the description of the CALIBRATE monitor command for details of the robot motion.)
If the V+ system is not configured to control a robot, executing the CALIBRATE instruction causes an error.
Parameters
mode A real expression that indicates what part of calibration is to be performed:
Value of mode Interpretation 0
(or omitted)Perform a normal calibration of all the robots controlled by the system.
In detail, the following operations are performed:
(a) Load the main calibration program if it is not already in memory.
(b) Execute the main calibration program with the load, execute, and delete flags set. That causes the robot-specific calibration routines to be loaded, the robots to be calibrated, and the robot routines to be deleted. (Note that the main calibration program is left in memory.)
1 Load the main calibration program if it is not already in memory, and execute the main calibration program with the load flag set. That causes the calibration program to load the applicable robot-specific calibration routines. Note, however, that the calibration process is not performed. 2 Execute the main calibration program (which must already be in memory) with the execute flag set. That causes the system robot(s) to be calibrated, and all the calibration programs to be left in memory. 3 Execute the main calibration program (which must already be in memory) with the delete flag set. That causes the calibration program to delete the robot-specific calibration routines from memory. Note, however, that the actual calibration process is not performed, and the main calibration program is left in memory. status Real-valued variable that receives the exit status returned by the calibration program, or (in mode -1) from V+ when trying to enter into the special "calibrate" mode. Details
When started, V+ assumes that the robot is not calibrated and restricts your ability to move the robot with the pendant or an application program.
NOTE: The COMP mode light on the pendant does not come on when the robot is not calibrated.
Robots with incremental encoders lose start-up calibration whenever system power is switched off. As a safety measure, these robots also lose start-up calibration whenever an *Encoder quadrature error* occurs for one of the robot joints. Other servo errors that can cause the robot to lose calibration are *Unexpected zero index*, *No zero index*, and *RSC Communications Failure*.
For the Cobra s600 and s800 robots, this instruction causes a small motion of joint 4 (theta).
For devices controlled by the AdeptMotion VME option, the robot action depends upon the particular robot device module that is being used.
If this program instruction attempts to load the main calibration program, the same program, module, and file name, and search algorithm, are employed as for the CALIBRATE monitor command.
If you wish to carry out a CALIBRATE instruction in task 0, one way to do so is from a program run using the /C qualifier on the EXECUTE instruction. With that qualifier specified, a program to calibrate the robot can run in task 0 even when DRY.RUN is disabled. A program running in any task other than 0 can execute the CALIBRATE instruction without special conditions.
Example
The following instruction sequence can be used by any program task to perform start-up calibration on the robot (if task #0 is used, the DRY.RUN switch must be enabled before the program is executed):
DETACH() ;Detach the robot DISABLE DRY.RUN ;Ensure DRY.RUN is disabled CALIBRATE ;Calibrate the robot ATTACH() ;Reattach the robotRelated Keywords
CALIBRATE monitor command
NOT.CALIBRATED system parameter
SELECT program instruction
SELECT real-valued function
Submit comments to: techpubs@adept.com
Last modified on: 3/27/2012
Copyright © 1994 - 2012. Adept Technology, Inc.
