如图1所示坐标系
图1
这是一台自动钻孔机的示意图.
1. 坐标系代表钻孔机的平台坐标系(x轴, y轴).
2. 红点代表钻头, 坐标是(-70, -30).
3. 蓝点代表ccd的中心, 坐标是(-50, -45).
自动钻孔机的功能就是在平台上放入一块板材, 钻头自动在板材的位置上钻孔.
怎样让钻头移动到板材的正确位置钻孔呢?
视觉定位系统通常板材上有3个或3个以上的定位孔. 通过定位孔定位, 板材在平台上的位置就确定了, 那么钻头就可以在板材上的任何位置上钻孔了.
(因为定位孔与要钻孔的相对位置是知道的.)
但是有一个问题, 由于实物安装的关系, 钻头与ccd并不同轴的, 但它们是同步移动的.(或者说, 在同一时刻, 钻头与ccd的坐标是不同的, 但有一个固定偏移值的.)
如图1所示 偏移 = (-70, -30) - (-50, -46) = [-20, 16]
这个偏移值引起的问题就是ccd定位板材得到的坐标与钻头要钻孔的坐标会相差这个固定的偏移值.
视觉定位系统怎样计算出这个偏移值?
这个偏移值在这里很容易计算, 两个点相减就是了. 但实际中你很难用尺在实物中测量.
所以需要使用一定的方法来计算测量.
可以利用的条件:
1. 平台坐标, 这个通常是已知的(这个是关键).
2. ccd中心和钻头
步骤:
1. 先移动钻头到平台的某一个位置钻一个孔, 记录当前的平台坐标, 例如(-70, -30).
2. 然后移动钻头/ccd, 让ccd的中心对准钻孔(ccd中心与钻孔重合). 所以此时ccd的坐标也是(-70, -30), 同时平台的坐标肯定就是(-70 + xoffset, -30 + yoffset)了.
3. (-70 + xoffset, -30 + yoffset)在平台坐标是知道的, 例如是(-90, -14)
那么
xoffset = -90 - (-70) = -20;
yoffset = -14 - (-30) = 16;
原理就是这样.
如果手动能准确的把钻孔对准到ccd中心, 我切.
图2
通常的结果是如图2所示那样:
矩形就是ccd的图像, 那么矩形的中心就是ccd的中心. 而钻孔总是或多或少的偏移ccd中心.
但是有一点是关键的, 那就是从钻头钻孔, 到移动ccd看见孔这个过程钻头移动了多少我们是知道的.
步骤:
1. 先移动钻头到平台的某一个位置钻一个孔, 记录当前的平台坐标, 例如(-70, -30).(如图1)
2. 然后移动钻头/ccd, 让钻孔能在ccd上可以显示(如图2). 记录当前平台坐标, 例如(x2, y2).
3. 很明显, ccd中心与钻孔没有重合, 差多少重合呢? 看图2就知道.
3.1 假设图像分辨率是1024*768, 所以图2中蓝点的坐标是(1024 / 2, 768 / 2) = (512, 384).
3.2 红点在图像的坐标是多少? 用鼠标点一下就知道了, 你懂的. 假设是(x3, y3), 具体点, 假设是(600, 200).
3.3 所以ccd中心与钻孔差(600, 200) - (512, 384) = (88, -184)像素就重合.
或者说(x3, y3) - (512, 384);
3.4 注意到什么? a. 图像坐标系与平台坐标系单位不同. b. 平台坐标系y轴向下递减, 图像坐标系y轴向下是递增的.
4. 所以有:(-70 + xoffset, -30 + yoffset) = (x2, y2) + ((x3, 384) - (512, y3))
xoffset = x2 - (-70) + (x3 - 512) * xx像素/毫米 // 这里像素要转换成平台坐标系相同的单位.
yoffset = y2 - (-30) + (384 - y3) * xx像素/毫米 // 这里为什么是384 - y3, 因为3.4.b.
小结: 1. 视觉定位系统描述的非常绕口, 但原理就是这样子, 都是一些相对关系, 还有就是单位转换, 不是加就是减, 很容易搞错.
2. 使用坐标平台的坐标是可以获得的, ccd需要标定, 坐标系单位要统一, ccd的坐标系y轴通常是向下递增的.
3. 理解相对平移的关系: 钻头和ccd是固定在一起的, 钻头走了多少距离, ccd就走了多少距离. 所以在钻头钻孔后, 移动平台使ccd中心与钻孔重合, 钻头移动的距离(ccd也移动了这个距离),就是钻头与ccd的偏移值了。
