VCal Statement
Applies To
Vision Calibration
Description
VCal enables you to run a vision calibration from a SPEL+ program.
Usage
VCal Calibration [, var]
- Calibration
- Name of the Calibration to be calibrated.
- var
- Integer variable that will contain the return status. Optional.
Values
Returns status in var.
If the user clicks [OK] button, var will contain “1”.
If the user clicks [Cancel] button, var will contain “0”.
Remarks
The calibration definition must be set up from the Vision Guide window or created using VCreateCalibration before a calibration will run. Also, the calibration points must already be taught, or you can use a point file in the Controller with the same name as the calibration that has the point data required for calibration. If Epson RC+ sees this point file, it will use the points in the file. See the following example.
After executing a calibration with VCal, you must call VSave to save the new calibration data.
KEY POINTS
When the camera to be used for the calibration is connected to Compact Vision, Epson RC+ needs to be connected to the Robot Controller. Otherwise, the command will result in an execution error.
Example 1
In this example 1, disable the AutoReference property and enable the AutoCamPoints property to perform calibration of the mobile J6 camera.
Function CalMobileJ6
String cal$
cal$ = "mycal"
VCreateCalibration 1, cal$
VSet cal$.CameraOrientation, VISION_CAMORIENT_MOBILEJ6
VSet cal$.TargetSequence, "calSeq"
VSet cal$.AutoReference, False
VSet cal$.AutoCamPoints, True
VCalPoints cal$
VCal cal$
VSave
Fend
Example 2
In this example 2, use a recognition result of nine points using a calibrated mobile camera insteead of implementing teaching to calibrate a fixed downward camera.
Function CalFixedCamera
Integer i, status
Boolean found
Real x, y, u
String obj$
' "mobileCal" is a sequence with 9 blobs
' that uses a mobile calibration.
' First we search with the mobile camera
Jump mobileCamView
VRun mobileCal
VGet mobileCal.AllFound, found
If Not found Then
MsgBox "Could not find all targets"
Exit Function
EndIf
For i = 1 TO 9
obj$ = "blob0" + Str$(i)
VGet mobileCal.obj$.RobotXYU, found, x, y, u
' Save each target point in robot coordinates
P(i) = XY(x, y, 0, 0)
Next i
' Save the points for VCal to use
' Note that "fixed" is the name of the calibration
SavePoints "fixed.pts"
Jump clearFixed
' Calibrate the fixed camera calibration scheme
VCal fixed, status
If status = 1 Then
VSave
EndIf
Fend
See Also
ShowConfirmation Property, VCalPoints Statement,, VCreateCalibration Statement, Vision sequence, VSave Statement