VxCalib

请在Vision Guide以外的客户准备的图像系统中使用该命令。

用于生成客户准备的图像系统的校准数据。

格式
(1) VxCalib CalNo

(2) VxCalib CalNo, CamOrient, P(pixel_st : pixel_ed), P(robot_st : robot_ed) [, TwoRefPoints]

(3) VxCalib CalNo, CamOrient, P(pixel_st : pixel_ed), P(robot_st : robot_ed),P(ref0) [, P(ref180)]

参数

CalNo
以整数值指定校准数据的编号。可利用0~15的整数定义最多16个编号。
CamOrient
以下述整数值指定摄像机的安装方向。仅可利用格式(2)指定1~3。仅可利用格式(3)指定4~7。

  • 1:固定摄像机
  • 2:向下固定摄像机
  • 3:向上固定摄像机
  • 4:移动摄像机第2轴安装
  • 5:移动摄像机第4轴安装
  • 6:移动摄像机第5轴安装
  • 7:移动摄像机第6轴安装
P(pixel_st : pixel_ed)
以连续点数据指定像素坐标(仅X、Y)。
P(robot_st : robot_ed)
以连续点数据指定机器人坐标。根据在CamOrient中指定的摄像机安装方向的不同,指定的点数有所差异。CamOrient = 1~3时,请以当前的TOOL和ARM设置机器人坐标。CamOrient = 4~7时,请以TOOL:0、ARM:0的方式设置机器人坐标。
TwoRefPoints
格式(1)时可指定。如果使用2个测量点,则指定“True”;如果使用1个测量点,则指定“False”。通过指定2个测量点,可实施更准确的校准。默认设置为“False”。可省略。
P(ref0)
格式(3)时可指定。以点数据指定基准点的机器人坐标。
P(ref180)
格式(3)时可指定。以点数据指定第2个基准点的机器人坐标。通过指定2个基准点,可实施更准确的校准。可省略。

说明
根据使用指定摄像机姿势的校准编号、由自变量赋予的像素坐标、机器人坐标、基准点(仅限于移动摄像机)运算校准数据。

仅指定CalNo时,显示定义时的点数据等(仅命令窗口)。

下表所示为像素坐标的坐标系。单位为像素。

关于像素坐标和机器人坐标,请将画面上的左上位置设为点1,然后按下表顺序将右下位置设为点9。根据CamOrient、TwoRefPoints自变量划分为4种类型。

1) CamOrient = 1~3(固定、向下固定、向上固定)、TwoRefPoints = False时

数据顺序 画面位置 像素坐标 机器人坐标
1 左上 检测坐标1 测量点坐标1
2 中上 检测坐标2 测量点坐标2
3 右上 检测坐标3 测量点坐标3
4 右中 检测坐标4 测量点坐标4
5 中中 检测坐标5 测量点坐标5
6 左中 检测坐标6 测量点坐标6
7 左下 检测坐标7 测量点坐标7
8 中下 检测坐标8 测量点坐标8
9 右下 检测坐标9 测量点坐标9

2) CamOrient = 2(向下固定)、TwoRefPoints = True时

已正确定义工具时,不需要TwoRefPoints。请设为“False”。

如果将TwoRefPoints设为“True”,则可使用2个测量点,因此可实施更准确的校准。

仅机器人坐标需要18个点。

设置1~9的测量点坐标之后,请将U轴转动180度,然后设置将夹具末端(杆等)对准校准目标位置的测量点坐标10~18。

数据顺序 画面位置 像素坐标 机器人坐标
1 左上 检测坐标1 测量点坐标1
2 中上 检测坐标2 测量点坐标2
3 右上 检测坐标3 测量点坐标3
4 右中 检测坐标4 测量点坐标4
5 中中 检测坐标5 测量点坐标5
6 左中 检测坐标6 测量点坐标6
7 左下 检测坐标7 测量点坐标7
8 中下 检测坐标8 测量点坐标8
9 右下 检测坐标9 测量点坐标9
10 左上 --- 测量点坐标10
11 中上 --- 测量点坐标11
12 右上 --- 测量点坐标12
13 右中 --- 测量点坐标13
14 中中 --- 测量点坐标14
15 左中 --- 测量点坐标15
16 左下 --- 测量点坐标16
17 中下 --- 测量点坐标17
18 右下 --- 测量点坐标18

3) CamOrient = 3(向上固定)、TwoRefPoints = True时

已正确定义工具时,不需要TwoRefPoints。请设为“False”。

如果将TwoRefPoints设为“True”,则可使用2个检测点,因此可实施更准确的校准。

仅像素坐标需要18个点。

在各测量点坐标设置1~9检测坐标之后,请设置将U轴转动180度的位置的检测坐标10~18。

数据顺序 画面位置 像素坐标 机器人坐标
1 左上 检测坐标1 测量点坐标1
2 中上 检测坐标2 测量点坐标2
3 右上 检测坐标3 测量点坐标3
4 右中 检测坐标4 测量点坐标4
5 中中 检测坐标5 测量点坐标5
6 左中 检测坐标6 测量点坐标6
7 左下 检测坐标7 测量点坐标7
8 中下 检测坐标8 测量点坐标8
9 右下 检测坐标9 测量点坐标9
10 左上 检测坐标10 ---
11 中上 检测坐标11 ---
12 右上 检测坐标12 ---
13 右中 检测坐标13 ---
14 中中 检测坐标14 ---
15 左中 检测坐标15 ---
16 左下 检测坐标16 ---
17 中下 检测坐标17 ---
18 右下 检测坐标18 ---

4) CamOrient = 4~7时

数据顺序 画面位置 像素坐标 机器人坐标
1 左上 检测坐标1 测量点坐标1
2 中上 检测坐标2 测量点坐标2
3 右上 检测坐标3 测量点坐标3
4 右中 检测坐标4 测量点坐标4
5 中中 检测坐标5 测量点坐标5
6 左中 检测坐标6 测量点坐标6
7 左下 检测坐标7 测量点坐标7
8 中下 检测坐标8 测量点坐标8
9 右下 检测坐标9 测量点坐标9

注意


  • 除上表之外,请指定基准点的机器人坐标。

    如果使用2个基准点,则可实施更准确的校准。此时,需要2个U轴相差180度的点。

    设置第1个基准点坐标之后,请将U轴转动180度,然后设置将夹具末端(杆等)对准校准目标位置的第2个基准点坐标。已正确定义工具时,不需要使用2个基准点。


参阅
VxTrans函数、VxCalInfo函数、VxCalDelete、VxCalSave、VxCalLoad

VxCalib使用示例

Function MobileJ2

  Integer i
  Double d(8)

  Robot 1
  LoadPoints "MobileJ2.pts"

  VxCalib 0, 4, P(21:29), P(1:9), P(0)

  If (VxCalInfo(0, 1) = True) Then
    For i = 0 To 7
      d(i) = VxCalInfo(0, i + 2)
    Next i
    Print "Calibration result:"
    Print d(0), d(1), d(2), d(3), d(4), d(5), d(6), d(7)

    P52 = VxTrans(0, P51, P50)
    Print "Coordinates conversion result:"
    Print P52
    SavePoints "MobileJ2.pts"
    VxCalSave "MobileJ2.caa"
  Else
    Print "Calibration failed"
  EndIf

Fend