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
← VSD関数 VxCalDelete →