投稿人:Vuser-744871
定位项目中,为了降低相机的分辨率要求、提升定位精度,或者遇到超大产品时,可分两次获取产品对角位置的图像,然后拟合产品中心来计算产品的位置偏差,可实现较高的对位精度。如图1、图2为手机屏产品定位项目的两张对角位置图片:
图1 产品左上角图像 图2 产品右下角图像
这种对位方式难点在于通过两张图片中产品的特征位置计算整体产品的位置偏差。本案例介绍了一种在这样场景下,计算位置偏差的方法。
本案例实际应用场景为手机屏点胶项目,客户通过机械手夹取手机屏进行位置摆放,需精确控制产品排放位置,来实现高精度点胶。依靠机械手的运动,相机可依次拍取手机屏的对角两个位置的图像,客户期望通过两个对角位置的位置偏差来计算得到整体产品的位置偏差。
本项目最大问题便是计算拟合中心的位置偏差和角度偏差,需要通过两次拍照的特征点拟合产品中心,两个拍照位间需要建立映射关系。
方案示意图及方案描述
视觉流程如下:
(1)首先需要分别计算两张图片中特征的位置,上方图1、图2中的特征点下文称为Mark1、Mark2;
(2)第二步,通过两个Mark点计算产品的拟合中心;
(3)最后,计算拟合中心的位置偏差和角度偏差,整体位置偏移=拟合中心点平移偏差+角度补偿偏差。
步骤一:计算Mark1的位置
本步骤较为简单,通过VM现有功能N点标定模块便可实现。总需要标定12个点,并获取机械手旋转中心的物理位置。标定流程如下:
在标定完成之后,便可利用生成的标定文件计算运行点的物理位置。需先通过特征定位获取mark1的图像位置,然后计算出Mark1的物理位置。Mark1(x1,y1)=(x’,y’),此处的x’、y’为标定转换后的XY坐标。
步骤二:计算Mark2的位置
本步骤需知道拍照位一与拍照位二的物理位置偏差,通过计算机械手的两次拍照位的物理坐标,便可计算得到此偏差(x_m,y_m)。Mark2(x2,y2)=(x’+x_m,y’+y_m)。
步骤三:计算拟合中心的位置,本项目拟合中心取Mark1与Mark2的中点(x_r,y_r)=((x1+x2)/2,(y1+y2)/2)。
步骤四:通过脚本程序计算拟合中心的位置偏差
计算拟合中心的位置偏差,需考虑机械手的旋转中心问题,在机械手调整产品角度偏差时,产品会绕旋转中心旋转,导致产品中心位置移动,造成角度补偿偏差。需要计算出角度补偿时产生的位置偏差,才能获取正确的位置偏差。
整体位置偏移(dX,dY)=拟合中心点平移偏差(dx1,dy2)+角度补偿偏差(dx1,dy2)。(dx1,dy1)=(x_c-x_r,y_c-y_r),(x_c,y_c)为示教时拟合中心的位置,(x_r,y_r)为运行时拟合中心的位置。
(dx2,dy2)=(x_r-x_r’,y_r-y_r’)。(x_r’,y_r’)是产品进行角度补偿后,拟合直中心的位置。
由旋转公式可知:
至此整体位置偏移(dX,dY)=拟合中心点平移偏差(dx1,dy2)+角度补偿偏差(dx1,dy2)已完成计算。
最终,利用计算出的产品整体的位置偏移量和角度补偿量,对机械手摆放动作进行偏移,实现手机屏的点胶前对位功能。
运行界面,现场应用图,检测效果,检出率,测量精度对位精度等等