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
以如下整數值指定相機安裝方向。1~3只能以格式 (2) 指定。4~7只能以格式 (3) 指定。

  • 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