ID : 641
Vis.CalTrans
機能
視覚座標とロボット座標のキャリブレーション。
構文
Vis.CalTrans Cal番号, 視覚座標1X, 視覚座標1Y, ロボット座標1(V型), 視覚座標2X, 視覚座標2Y,
ロボット座標2(V型), 視覚座標3X, 視覚座標3Y, ロボット座標3(V型)
指定項目
- Cal番号
- Calデータテーブルの番号(0~31)を整数型データで指定します。
- 視覚座標1X
- 視覚座標1のX座標を単精度実数型データで指定します。
- 視覚座標1Y
- 視覚座標1のY座標を単精度実数型データで指定します。
- ロボット座標1
- 視覚座標1に対応するロボット座標1をベクトル型データで指定します。ポジション型および同次変換型データを指定することもできますが、最初のX,Y,Z成分のみ反映されます。また、Arrayを使って値で指定する場合は、最初の3要素をX,Y,Zとして扱います。
- 視覚座標2X
- 視覚座標2のX座標を単精度実数型データで指定します。
- 視覚座標2Y
- 視覚座標2のY座標を単精度実数型データで指定します。
- ロボット座標2
- 視覚座標2に対応するロボット座標2をベクトル型データで指定します。ポジション型および同次変換型データを指定することもできますが、最初のX,Y,Z成分のみ反映されます。また、Arrayを使って値で指定する場合は、最初の3要素をX,Y,Zとして扱います。
- 視覚座標3X
- 視覚座標3のX座標を単精度実数型データで指定します。
- 視覚座標3Y
- 視覚座標3のY座標を単精度実数型データで指定します。
- ロボット座標3
- 視覚座標3に対応するロボット座標3をベクトル型データで指定します。ポジション型および同次変換型データを指定することもできますが、最初のX,Y,Z成分のみ反映されます。また、Arrayを使って値で指定する場合は、最初の3要素をX,Y,Zとして扱います。
解説
変換行列を計算して指定したCal番号のCalデータテーブルに登録します。
Calテーブルの内容を下に示します。各要素は単精度実数型データです。
Calテーブルは、変換行列データ領域と教示位置データ領域で構成されています。
変換行列データ
Vis.GetCalDataでデータを取り出せます。
データ番号 | 内容 |
---|---|
0 | ノーマルベクトルのX成分 |
1 | オリエントベクトルのX成分 |
2 | アプローチベクトルのX成分 |
3 | ロボット基準位置のX成分 |
4 | ノーマルベクトルのY成分 |
5 | オリエントベクトルのY成分 |
6 | アプローチベクトルのY成分 |
7 | ロボット基準位置のY成分 |
8 | ノーマルベクトルのZ成分 |
9 | オリエントベクトルのZ成分 |
10 | アプローチベクトルのZ成分 |
11 | ロボット基準位置のZ成分 |
教示位置データ
Vis.GetCalPosでデータを取り出せます。
データ番号 | 内容 |
---|---|
0 | 視覚座標1のX成分 |
1 | 視覚座標1のY成分 |
2 | 視覚座標1のZ成分 |
3 | 視覚座標2のX成分 |
4 | 視覚座標2のY成分 |
5 | 視覚座標2のZ成分 |
6 | 視覚座標3のX成分 |
7 | 視覚座標3のY成分 |
8 | 視覚座標3のZ成分 |
9 | ロボット座標1のX成分 |
10 | ロボット座標1のY成分 |
11 | ロボット座標1のZ成分 |
12 | ロボット座標1のRX成分 |
13 | ロボット座標1のRY成分 |
14 | ロボット座標1のRZ成分 |
15 | ロボット座標2のX成分 |
16 | ロボット座標2のY成分 |
17 | ロボット座標2のZ成分 |
18 | ロボット座標2のRX成分 |
19 | ロボット座標2のRY成分 |
20 | ロボット座標2のRZ成分 |
21 | ロボット座標3のX成分 |
22 | ロボット座標3のY成分 |
23 | ロボット座標3のZ成分 |
24 | ロボット座標3のRX成分 |
25 | ロボット座標3のRY成分 |
26 | ロボット座標3のRZ成分 |
注意事項
- Vis.Transコマンドを使用する前に、このコマンドやVis.SetCalDataコマンドを使用して、あらかじめ変換行列をCalテーブルに登録しておく必要があります。
- このコマンドは、「視覚-ロボット座標キャリブレーション」の「キャリブレーション用操作盤(Main.pns)」で使用しています。「キャリブレーション用操作盤(Main.pns)」を動かし、キャリブレーションを行ったときは、保存ボタンを押さないとCalデータは保存されません。(電源OFFで消えます。)
用例
Sub Main
Dim fCamPos1(1) as Single
Dim fCamPos2(1) as Single
Dim fCamPos3(1) as Single
Dim vRobPos1 as Vector
Dim vRobPos2 as Vector
Dim vRobPos3 as Vector
Dim lCalNum as Integer
lCalNum = 1
fCamPos1(0) = 50
fCamPos1(1) = 50
fCamPos2(0) = 50
fCamPos2(1) = 300
fCamPos3(0) = 500
fCamPos3(1) = 300
vRobPos1 = V(325, 112.5, 279)
vRobPos2 = V(200, 112.5, 279)
vRobPos3 = V(200, -112.5, 279)
Vis.CalTrans lCalNum, fCamPos1(0), fCamPos1(1), vRobPos1, fCamPos2(0),
fCamPos2(1), vRobPos2, fCamPos3(0), fCamPos3(1), vRobPos3
End Sub
ID : 641