PCBased原理类似,可以参考本文的方法 。
视觉定位引导4轴或6轴机器人 相机固定安装在支架上,或者安装在机器人上
首先需要了解的……
对位贴合类项目,不论采用机器人还是运动平台,考虑采用Alignplus TA;
多相机多工位组合装配引导,考虑采用Visionpro VGR;
安装的相机是否下往上拍照,还是上往下拍照?
尽量采用本文档介绍的实物标定方法,以减少客户的工作量,视觉模块化,以缩
短调试时间
夹爪式一般用于精度不高的系统,吸盘用于精度高的;
机器人的精度?
由此确定对视觉系统的精度要求
调试方法:使用实物标定模板文件
文件名:Robot Guide.job
一. 确定是否需要做非线性标定(Camera Calibration)?
➢ 计算像素分辨率;确定系统精度要求;确定FOV;
➢ 确定产品在相机FOV内可能出现的位置范围;
➢ 查所使用镜头的光学畸变率/TV失真;
➢ 根据以上指标计算产品范围内可能造成的最大畸变;然
后跟定位精度相比较,确定是否需要做非线性标定;
最大畸变大于1/2像素,建议做非线性标定
最大畸变=TV失真*产品在FOV内出现的范围mm
一般镜头的光学畸变率:
0.2X以上的Macro远心镜头:0.01%~0.2%;不用品牌一般差异不大;
CCTV镜头:35mm及以上 0.01%0.1%;825mm为0.3%~0.9%,广
角式4~8mm镜头畸变率可能达到20%;不同品牌镜头差异较大;
非线性标定的使用
A2单元格,CalibrateGrid;
➢ 只有42行TransPatternsToWorld使用其结果,将Patmax找到的结果转换到标定后坐标系
➢ 所有使用Patmax定位结果点坐标的工具都应该要引用42行的行列坐标;
➢ 如果要自行定义点,则也需要转换后再使用;
➢ 如果项目不需要做非线性标定,直接删除42行,从40行引用定位结果即可
二. 执行多点手眼标定
➢ 相机装机器人上,或者相机安装在固定支架上且
从下往上拍照:使用实物标定(Part Based)
这一类应用的共性是相机和实际工件之间很容易产生多点的相对移动,可以利用来做多点标定,统一机器人和相机坐标系;
相机固定在机器人上:工件不动,机器人带动相机移动
相机固定在支架上且下往上拍照:相机不动,机器人带动工件移动
➢ 相机装固定支架上,从上往下拍照
这一类应用比较麻烦,多点标定一般有两种方法:
机器人上安装尖椎,逐个扎点;
如果机器人取放零件的重复性比较好,则可以由机器人取放零件,分别移动到相机FOV内的9个不同的点,然后对应计算建立关系;
相机安装在机器人上的标定步骤
➢ 在工作台或治具内放置一个工件,保持不动;
➢ 机器人带动相机移到拍照位置,使工件基本处于FOV中心;
➢ 模板训练:在job中A37处修改模板区域,A38重新训练模板, 模板原点尽量选取在接近机器人所用坐标系的原点位置,这样 可减少误差;A40调整模板查找区域,确保定位成功;
➢ 9点位置:
1)机器人带动相机移动,使得工件分别处于FOV的3*3排列的 9个位置;记录机器人此时工具坐标系的坐标;
2)相机在每个位置时进行拍照,分别记录FindPatmaxPattern 得到的工件坐标,使用42行非线性标定后得到的坐标
3)勾选C5的标定开关,将所有值对应输入到7~15行的区域, 然后勾掉C5开关即可完成多点标定;
注意:1) 坐标的对应关系和X、Y顺序不能弄错;
相机安装在机器人上
相机安装在支架上从上往下拍照的步骤
➢ 机器人拿起然后放下一个零件,相机拍照,检测零件的位置变 化量;如果变化量小于(系统对视觉定位精度的要求-视觉算 法的重复精度),则可以考虑采用取放实物的方法来完成标定;
这样的多点标定方法与相机固定安装从下往上拍照步骤一样;
➢ 如果不满足上述条件,则只能够请客户加工一个治具,安装在 机器人上,用于实现标定。
第一种治具是尖椎,最好安装在所用的工具坐标系原点上,直 接用人眼观察锥尖位置;例如,使用Tool0的话,锥尖对准TCP;
下一页详细描述
第二种是安装一个能够伸出机器人遮挡范围的治具,带有固 定图案,相机可以直接进行定位得到坐标。
这样的多点标定方法与相机固定安装从下往上拍照步骤一样;
用尖椎做多点标定
➢ 这样的方式应尽可能避免,因为通常需要客户另外加工一个治 具,而且标定速度比较慢; ➢ 步骤:
1.打印一张纸,在FOV范围内大致均匀分布9个点,5个点也可 以。图案建议采用粗十字;
标定时纸要固定好,不能移动。机器人尖椎分别指向9个点, 得到机器人坐标;
相机一次拍照得到9个点的坐标;输入job中,执行标定。 如果去客户现场需要实现快速标定,也可以采用我们棋盘格的 标定板,使机器人尖椎分别指向Fuducial Mark的中心,X轴端点, Y轴端
Job中多点标定的画面
三.进行旋转中心补偿
➢ 无论哪种相机安装方式,只要机器人使用一个固定的坐 标系进行作业,就会存在旋转中心补偿的问题。如果不 进行旋转中心补偿,你会发现机器人按照相机给的补偿 量执行时,角度是准确的,但是X和Y的偏移量是错误的;
➢ Robot Guide-TempleJob-0715.job中完成了一种简单的方式 来实现旋转中心的补偿。主要原理是让机器人带动工件 逆时针旋转一个固定的角度,5~15度,相机在旋转前后 两次拍照,计算得到STDx和STDy;当实际抓取工件时, 视觉会得到工件的实际旋转量,用这个旋转值代入公式 即可计算得到经过补偿的机器人X/Y偏移量。
模板job中已经实现了完整的方法,只需要输入几个参数即可完成, 非常方便。
3.1训练抓取的标准位置
➢ 机器人带动相机移到拍照位置,使工件基本处于FOV中心;机器人记录此时的坐标,此 后运行状态下相机拍照时机器人都需要走到这个固定的拍照位置;
➢ 标准位置及模板训练:在job中A37处修改模板区域,A38重新训练模板,模板原点尽量 选取在接近机器人所用坐标系的原点位置,这样可减少误差;A40调整模板查找区域,确保定位成功;
➢ 验证定位的稳定性:同一位置重复拍照,改变工件位置,更换多个零件,验证是否能够准确定位;
➢ 将42行的X,Y, Angle坐标写入到45行红色字部分。此时标准位置坐标已记录。
注意:如果以后要修改或更换定位模板,必须从3.1步开始按顺序重新做一遍
3.2 机器人旋转固定角度,计算中间参数
➢ 机器人带着相机或者工件逆时针旋转一个固定角度,5~15度范围内即可;相机拍
照,40行Patmax会得到旋转后的图像和工件X, Y, Angle坐标;
相机上往下拍照时,取放精度不够的情况下,不能够使用这个方法。这种情况大多是汽车行业卡爪类的应用,解决方法是建立工件坐标系,后面另外描述。
➢ 将这个坐标写入到job的25行红字的部分;此时job会自动计算得到中间参数STDX
和STDY(关于这两个参数的数学意义请参考Henry的文档)
➢ 旋转中心参数计算完成了,视觉系统参数全部OK,可以运行。
计算公式
3.3 运行时位置计算
➢ 机器人在运行状态下,工件上料,机器人带动工件或相机进行拍照,此时job会自动计算得到机器人所需的X,Y, Angle的偏移量,如下图模板Job的60行所示
3.4 验证相机与机器人坐标方向是否一致
机器人抓一个工件,相对于标准位置将X和Y移动 一个固定值;或者将工件放到相对于标准位置只移 动X和Y;
相机拍照,机器人根据B58,C58的偏移量进行调 整 3. 相机重新拍照,看工件是否回到标准位置; 如果回到标准位置,说明数据都正确; 如果没有回到标准位置,修改B58,C58单元格偏 移量的正负号,再做测试,直到位置正确
模板job使用时的注意事项
➢ 调试过程中可能会发现Patmax定位工具运行不稳定,需 要重新训练模板,即3.1步骤的设置。直接修改后执行即 可。
➢ 多点标定完成后,建议让机器人走几个点,验证标定结 果与机器人坐标对比,误差有多大;如果超出系统精度 要求,则需要重新标定
➢ 相机从上往下拍照,如果机器人取放工件的精度较差, 则不能够使用这个方法。例如系统整体定位精度0.5mm, 机器人精度0.05mm,工件取放精度综合0.4mm,要求视 觉做到0.1mm精度。这种情况只能够采用建立工件坐标 系的方法?
四. 机器人引导中经常碰到的问题讨论
每步做的似乎都没问题,但是视觉引导的结果始终不准确, 如何排除? 验证机器人:用相机拍照看机器人旋转角度是否正确?相 机拍照来验证机器人走点的重复性精度; XY轴不垂直;标定和运行过程的左右手坐标系是否正确?
如果不使用模板job的方法,也可以拟合旋转中心,但是 需要机器人转90度以上的角度,且相机还能够拍到工件,使 用范围比较受限;并且如果旋转中心在图像外,Patmax的模 板标记点不能够设置成与旋转中心重合;只能自己加公式计 算,不方便;
相机安装在4轴机器人的第2轴,如何处理? 建立工件坐标系的方法
旋转中心问题-工件坐标系法
➢ 多点标定部分的方法跟前面描述的一致,在工具或基坐标系下进行标定;
➢ 机器人建立工件坐标系,记录工件坐标系原点的工具或基坐标;原点可以任 意设置,但最好设置在工件上的某个特殊位置
➢ 确定相机的标准拍照位置,机器人记录坐标,以后每次都要在这个位置进行 拍照
➢ 相机设置PatMax工具模板,并把定位的标记点设置为与工件坐标系的原点重 合
➢ 记录在标准拍照位置的X/Y/Angle像素值和经过标定矩阵转换的Robot XY 值; 运行时:
➢ 得到工件的模板坐标和经过转换成的Robot坐标,并与标准位置求偏差量, 计算得到以机器人坐标表示的Dx,Dy,Dr
➢ 用机器人工件坐标系原点坐标(在工具或基坐标系下),加上Dx, Dy, Dr,得到 新的原点坐标值,改变工件坐标系的原点,然后机器人在新的工件坐标系下 以记录的抓取姿态进行抓取目标即可