EPSON机器人第三方相机方法 - 下载本文

EPSON机器人同第三方相机校准方法

基本思路:

1. 相机通过以太网或RS232同机器人通信

2. 按机器人校正指令的要求获取、分离相机发送过来的信息 3. 使用校准指令

准备工具: 1. 制作9宫图

2. 做作机器人工件坐标的校准工具(类似铅笔,装在Z轴或抓手上)

一.机器人与相机通过以太网通信(TCP/IP)

1. 制作如下9宫图,该图的大小尽量占满相机的视野范围,但是不能太靠近边界,可用打

印机打印,为获得更高精度加工类似的高精治具。

注:以上的数字为点的排列顺序,制作时可以省略,但是取点时一定要严格按照改顺序来取点。

2. 相机必须具备两个功能:a.收到某个命令或输入点信号为校准模式 b.收到某个命令或输

入点信号为正常工作模式。

3. 相机的单位必须为像素:相机按顺序获得9个圆的中心点的像素坐标,这9个点的坐标

可以用特殊符号阁开(常用:”+”、”-”、” ”等,但是不能用”,”;这样用的目的是让机器人编程方便地把这些点的信息提取),然后发送给机器人。如:p1+p2+??+p9

二.机器人的TCP/IP通信

1. TCP/IP参数设定:

在菜单栏“工具”->“控制器设置”->“TCP/IP”->“端口”

a.“IP地址”:相机的IP地址。 b.“TCP/IP地址”:相机TCP/IP通信的端口号。 c.“终端”:信息的结束符;相机、机器人双方必须设置一致。 d.“超时”:可以忽略。

2. 程序示例(测试通信,有些地方没完善) Function tpcip OpenNet #201 As Client ?以客户端方式打开TCP/IP端口 Print \ WaitNet #201 ?等待TCP/IP端口打开 Print \ Print #201, “CC,21” ?发送命令给相机指定工作模式, Print #201, “T1” ?命令相机拍照并且返回结果 ?这里是KEYENCE的格式 If ChkNet(201) > 0 Then ?判断是否收到数据 Wait 0.1 Input #201, DATA$ ?收到数据后存到DATA$

If Len(data$) > 10 Then 这段命令为数据提取功能,但是不 Integer ll 能通用,这里只是提供参考!!! For ll = 0 To 8 s$ = Mid$(data$, ll * 12 + 1, 12) Xccd(ll) = Val(s$) ?坐标分离

思路:提取每个点后,用P=XY()指令转存到点文件里面去,如 P21-P29 Print Xccd(ll)

Print DATA$ ElseIf ChkNet(201) = -3 Then ?后面为通信异常处理 CloseNet #201 OpenNet #201 As Server WaitNet #201 EndIf Fend

三.校准,RC+5.4以后增加了支持第三方相机校准的功能,安装了对应的版本软件以后打

开“SPEL+语言参考”里面有详细说明。指令包含:VxCalib, VxCalDelete, VxCalLoad, VxCalInfo, VxCalSave, VxTans这些命令。

1.使用:只要用VxCalib,VxTans两个命令就可以完成校准。 VxCalib:建立一个校准,指令的详细说明阅读手册;

根据相机的像素点和机器人的毫米点来校准。假定通过上面程序已经获得了9宫图的9个点的像素坐标,接下来也要按顺示教机器人的9宫图的圆心点的坐标,也要按顺序保存如:P1-P9

注意:点坐标必须连续,使用TOOL:0,ARM:0

VxTans:将当前点通过已经建立的校准转换成机器人坐标。

参考手册上的例子: