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
- 以下述整数值指定摄像机的安装方向。仅可利用格式(2)指定1~3。仅可利用格式(3)指定4~7。
- 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 →