EPSON机器人同第三方相机校准步骤

目的:

将第三方相机的视野坐标与EPSON机器人的坐标进行校准,建立转换关系

image.png

基本思路:

1.  相机通过以太网或RS232同机器人通信,按机器人校正指令的要求获取、分离相机发送过来的信息

2.  按照校准步骤,记录机械手校准点的机器人坐标和视觉像素坐标

3.  使用校准指令,建立机械手和视觉的坐标转换关系

视觉工作时,将检测到的工件的坐标发给机器人,机器人根据坐标转换关系,转换为机器人坐标后再去做抓取、装配等相应动作

准备工作:

1.      相机安装固定、焦距、光源调整(一旦相机移动了或焦距调整过,需要重新校准)

2.      机器人原点位置检查:打开电机,命令行窗口中输入Pulse 0,0,0,0看机器人是否运动到原点位置。如果不准,检查机器人的序列号与控制器是否配套,或者需要重新调整原点。

3.      制作9宫图校准板(注意4-5-6的方向是相反的,即上左->上中->上右->中右->中中->中左->下左->下中->下右)

image.png

4.      做作机器人工件坐标的校准工具。一般要求末端是尖端,方便对位,可以稳固的装在Z轴或抓手上)

相机安装方式:

相机安装方式有以下几种:

1 独立安装(相机坐标与机械手坐标不需要相互转换)

2 固定安装(固定向上、固定向下)                                     

3 移动相机(J2轴移动,J4轴移动,J5J6轴移动)

安装方式比较

         使用固定安装,相机无法移动,拍摄范围小;但是视觉检测的时间一般可以用机器人工作的时间并列运行,节省节拍时间。

         使用移动相机,相机跟随机器人移动,可以拍摄的范围大;但是视觉进行检测前,机器人必须有一定的静止时间0.2s~0.5s视觉进行检测时,机器人一般需要停止不动,不能进行其他工作;整体节拍时间会更长。

         因为机器人本身有定位精度,使用移动相机时,视觉检测的精度一般也比使用固定相机的低。

 

校准步骤:

每种安装方式均需要不同的校准方式。

独立安装:使用9宫格校准板,精确的测量该板9个点之间的坐标关系

固定安装(固定向下)

·使用九宫格校准板

·机器人末端安装校准治具

·示教治具末端的工具坐标Tool n

·按照九宫图的顺序,机械手末端依次对准9个位置,机器人管理器中选择对应的Tool n,并保持点位置(如保持到P1P9

·移开机器人,视觉识别九宫图上的9个点的像素坐标,同样按照九宫图顺序,将其像素坐标XY依次保存到P11-P19中。

固定安装(固定向上)

机械手可以在相机中移动,不需要九宫图校准板

·在机械手治具上找一个视觉容易识别的、唯一的特征点,建议圆形、圆孔。或者机械手抓取需要识别的工件,在工件上找特征。

         ·使用机器人管理器的工具向导,根据提示,在相机视野中,示教工具坐标Tool n(将特征点移动到相机中心附近,先用视觉的功能抓取该特征点的中心并记录下来,该点示教为工具坐标的第一个点;旋转U轴,再平移XY,将该特征移回到视觉上一次抓取的位置,示教为工具坐标的第二点)

         ·按照九宫图的顺序,依次将特征点移动到相机视野中的上左->上中->上右->中右->中中->中左->下左->下中->下右等位置,共移动9次,并在Tool n下保存机器人位置到P1-P9。同时视觉依次抓取9个特征点的中心像素值,记录为P11-P19

 

移动相机校准:

         移动相机需要按机器人末端安装校准治具,并在相机工作视野平面上,找一个视觉容易识别且唯一的特征点。

         ·示教校准治具末端的工具坐标Tool n

将治具末端对准特征点,在Tool n下保存该位置为P0

         ·机器人管理器中,将Tool切换到Tool 0

·将相机移动到特征点上方,让特征点按照九宫图顺序,即视野的上左->上中->上右->中右->中中->中左->下左->下中->下右位置。Tool 0下记录下每个位置的机器人坐标为P1-P9

·同时每走一个位置时,视觉抓取该特征点的中心像素值,依次记录到P11-P19


image.png

校准程序:

校准指令

         独立视觉:

         VxCalib 0, VISION_CAMORIENT_STANDALONE, P(11:19), P(1:9)

         固定向下:

         VxCalib 0, VISION_CAMORIENT_FIXEDDOWN, P(11:19), P(1:9)

         固定向上:

         VxCalib 0, VISION_CAMORIENT_FIXEDUP, P(11:19), P(1:9)

         第二轴移动相机:

         VxCalib 0, VISION_CAMORIENT_MOBILEJ2, P(11:19), P(1:9), P0

         第四轴移动相机:

         VxCalib 0, VISION_CAMORIENT_MOBILEJ4, P(11:19), P(1:9), P0

 

 

校准结果

         使用VxcalInfo指令来查询校准结果。

         If VxCalInfo(0, 1) = True Then

                 Print "相机校准成功,结果如下:"

                 Print "      X方向の平均偏差[mm]:", VxCalInfo(0, 2)

                 Print "      X方向の最大偏差[mm]:", VxCalInfo(0, 3)

                 Print "      X方向一个像素/毫米( mm ):", VxCalInfo(0, 4)

                 Print "      X方向的倾斜角度( deg ):", VxCalInfo(0, 5)

                 Print "      Y方向の平均偏差[mm]:", VxCalInfo(0, 6)

                 Print "      Y方向の最大偏差[mm]:", VxCalInfo(0, 7)

                 Print "      Y方向一个像素/毫米( mm ):", VxCalInfo(0, 8)

                 Print "      Y方向的倾斜角度( deg ):", VxCalInfo(0, 9)

         Else

                 Print "相机校准失败,请重新示教点校准相机!"

         EndIf

 

校准保存与读取

         可以将校准结果保存在后缀名为CAA的文件中,方便下次运行视觉程序时可以直接读取而不用再次运行校准。

         保存时,会同时保存校准编号0-15至文件中。因此,如果需要把多个相机的校准都保存到同一个文件,每次运行校准保存前先用Vxcalload “Calibration.caa”加载文件。

 

         VxCalLoad "CCD_Calib.caa"         '加载校准文件

         VxCalSave "CCD_Calib.caa" '保存校准文件

                         

视觉数据转换

 

固定相机:

         vx = 100           '拍摄工件的视觉坐标x

         vy = 100          '拍摄工件的视觉坐标y

         vu = 90             '拍摄工件的视觉坐标角度u

         P50 = XY(vx, vy, 0, vu)

         Print "转换前的视觉坐标为:", P50

        

         P60 = VxTrans(0, P50)

         Print "转换后的机器人坐标为:", P60

         Tool 1

         Jump P60

移动相机:移动相机拍照时,需要把机械手的拍照位置(Tool 0)也计算进去。同时相机的角度也是随着机械手移动而改变的,需要计算相机的当前角度。

'第二轴移动相机 

         Tool 0

         Jump P40 '移动到拍照位置

         uCamera = PAgl(P40, 1) + PAgl(P40, 2) '相机角度=第一关节角度+第二关节角度

         vx = 100  '拍摄工件的视觉坐标x

         vy = 100         '拍摄工件的视觉坐标y

         vu = 90             '拍摄工件的视觉坐标角度u

         P50 = XY(vx, vy, 0, vu + uCamera)

         Print "转换前的视觉坐标为:", P50

        

         P60 = VxTrans(0, P50, P40)

         Print "转换后的机器人坐标为:", P60

Tool 1

         Jump P60

'第四轴移动相机 

         Tool 0

         Jump P40 '移动到拍照位置

         uCamera = CU(Here) '相机角度=U轴角度

         vx = 100  '拍摄工件的视觉坐标x

         vy = 100         '拍摄工件的视觉坐标y

         vu = 90             '拍摄工件的视觉坐标角度u

         P50 = XY(vx, vy, 0, vu + uCamera)

         Print "转换前的视觉坐标为:", P50

        

         P60 = VxTrans(0, P50, P40)

         Print "转换后的机器人坐标为:", P60

Tool 1

Jump P60

注意:有些视觉系统中角度的方向与机器人相反,因此在取视觉发过来的u角度数值时,需要取相反数值vu = -vu。视觉的角度正方向可以通过测试得知

image.png

校准验证

         校准完成后,可以在相机视野中找任意一点,将其视觉坐标进行转换,再切换工具坐标,让机械手的工具末端走到对应的位置,看位置是否能够重叠。如果重叠,说明视觉校准是准确的。

参考程序:(RC+7.0版本)

image.png

image.png

image.png

image.png

image.png



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864