VCal语句

适用
视觉校准

说明
通过VCal可从SPEL+程序运行视觉校准。

用法

VCal  Calibration [, var]
Calibration
要校准的校准名
var
表示返回状态的整数变量。可省略。


在var中返回状态。

如果用户单击[OK]按钮,var含有“1”。

如果用户单击[取消]按钮,var含有“0”。

详细说明
校准定义必须在运行校准前从Vision Guide窗口设定或使用VCreateCalibration创建。此外,校准点必须已示教,或者可以使用控制器中含有校准所需点数据并与校准名称相同的点文件。如果Epson RC+找到该点文件,将使用文件中的点。请参考下面的示例。

使用VCal执行校准后,必须调用VSave保存新的校准数据。

NOTE:


用于校准的相机连接至紧凑型视觉时,Epson RC+需要连接至机器人控制器。否则命令将导致执行错误。

例1
在例1中,禁用AutoReference属性并启用AutoCamPoints属性,执行移动J6相机校准。

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

例2
在例2中,执行固定向下相机的校准时使用通过已校准移动相机的九个点识别结果代替实施示教。

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

参照
ShowConfirmation属性、VCalPoints、VCreateCalibration、视觉序列、VSave