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
← VSD函數 VxCalDelete →