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つの基準点を使用すると、より正確なキャリブレーションを実施することができます。その場合、U軸が180°異なる2ポイントが必要になります。

    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