关于Epson机器人视觉引导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、建立TCPIP通信,从视觉系统获取可使用的像素坐标字符串,一

般机器人控制器作为客户端client,而视觉系统作为server。

涉及指令【OpenNet WaitNet LineInput Print # Parsestr Val】

Function TCPIP

OpenNet #201 As Client

WaitNet #201

LineInput #201……

Parsestr…………..

FEND

2、确定相机的安装位置,此处以相机安装在#4 joint为例子,此时

吸嘴也不在原来的Tool0中心,所以此时需要确立新的两个坐标系,此中最必要的是确立吸嘴的工具坐标系Tool1,在机器人控制中的工具坐标系向导进行示教保存,这是前期必要的准备工作。

3、有了以上步骤作为辅助后,根据Epson视觉标定的需求,具体见

VxClib函数,需要9个机器人坐标系下的点,总而言之就是,在新建的Tool1下示教9个点,且获取这九个点下的像素坐标,这样的就可以生成具体的视觉标定caa文件了

涉及指令【VxClib LoadPoints SavePoints VxCalSav VxCalInfo】

4、利用上面生成的标定caa文件就可以进行之后的操作了,标定文

件是之后坐标转换的基准,也就是说,像素坐标对应的机器人坐

标均由此产生。

涉及指令【VxCalLoad VxTrans XY CX CY CZ CU CV CW】5、基于以上步骤,要注意实际运行时工具的选用,以免造成工具坐

标系的不匹配而位置错误

6、关机触发拍照,最好使用视觉系统触发,这样的话配合内部存储

IO指令指令即可形成循环的逻辑判断,知道相机的进程,以及对拍照失败等情况做出反应

7、其他需要注意的地方是程序的容错性,不能中途进行不下去就一

直等待或者没有别的相应操作,全局变量和局部变量的使用

'该项目中相机固定在机器人的4#轴上,为移动相机,利用相机拍照识别托盘中的工件

'放在一固定的模具内,每次放置为角度位置确保一致

Global String pixel_string$;

Global String rec_string$(10);

Global Real data_x, data_y, data_u;

Integer camara_id;

Function main

'Call intialization

Call TCPIP

Call creat_calib_data

Call point_trans

Call working

Fend

'初始化

Function intialization

If Motor = Off Then

Motor On

EndIf

SpeedS 500; AccelS 1000, 1000

Home; Reset;

Power High; Speed 60; Accel 60, 60

SpeedS 500; AccelS 1000, 1000

Fend

'[点位的对应关系,计算出来的是否足够准确]

'创建标定数据,准备好标定需要的像素坐标,机械坐标各9个点,[参考点的使用与否]

Function creat_calib_data

Integer i, j, k;

Real info(10);

LoadPoints ""

Pallet 1, robot_cal1, robot_cal3, robot_cal7, robot_cal9, 3, 3

'生成9个机器人坐标点P20-P28,换顺序

For i = 1 To 9

P(i + 19) = Pallet(1, i)

Next i

P13 = Pallet(1, 6)

P15 = Pallet(1, 4)

SavePoints ""

'基于刚才生成的9个机器人坐标点,拍照9次,获取对应点的像素坐标P10-P18

For j = 20 To 28

Go P(j)

On light1, ; On camara1, '执行拍照

Call parsestr_str '拍完照后进行解析

P(j - 10) = XY(data_x, data_y, 0, data_u)

Print "P(j-10)", P(j - 10)

Next j

SavePoints ""

'开始生成标定数据

'vxcalib 0[1-15标定数据ID号],5[安装方式:mobile on joint#4],P[指定的像素坐标xy only],P[指定的机器人坐标],P[参考点,也不一定要]

VxCalib 0, 5, P(10:18), P(20:28), P9

If (VxCalInfo(0, 1) = True) Then

For k = 0 To 7

info(k) = VxCalInfo(0, k + 2)

Next k

Print "Calibration_0 result:"

Print "X Avg Error [mm]:", info(0)

Print "X Max error [mm]:", info(1)

Print "X mm per pixel [mm]:", info(2)

Print "X tilt [deg]:", info(3)

Print "Y Avg error [mm]:", info(4)

Print "Y Max error [mm]:", info(5)

Print "Y mm per pixel [mm]:", info(6)

Print "Y tilt [deg]", info(7)

Else

Print "calibration failed!"

EndIf

VxCalSave ""

Fend

'创建TCP/IP通信,解析发送来的像素坐标字符串Function TCPIP

pixel_string$ = "12000,,2121212,";

OpenNet #201 As Client

Print "waiting for connect"

WaitNet #201

相关文档
最新文档