一、为什么要计算旋转中心?
机器视觉——旋转中心的标定_旋转标定-CSDN博客
在机械手抓料的时候传送带上过来的料可能是各个角度的,不同的位置,这样如果我们没有做好机械手标定的话很难抓取,因此我们要做旋转中和和机械手TCP标定。
但是这里我要记录一下再项目中用的其他的一种方式,不需要标定,但是这个的精度可能就没有那么好了。但是做这个所有前提都是要做9点标定的。
那我命名第一方式就是 项目抓取法。
二、项目抓取法
有一个前提就是相机不动,而且能排到传送带上的很大的视野,就是让每次产品的图片都在图像里面。示意图如下(盗图,懒得画)
计算偏移量
首先就是要做九点标定,做完之后我的思路是做一个 位移补偿
我们可以先计算出相机的的位置,然后用机械手做运动,让其走到我们想要的那个产品中间,如果有微小的差距,那么我们可以通过计算移动机械手,计算出差值 delt_x 和 delt_y ,这个值应该是很小的,其实就是一个补偿,我们也可以多做几次然后做一个均值,还可以做个标记然后做运动,其原理是一样的。
计算角度
我们的产品上面是一个矩性的东西,所以很容易找到一条边 如下
在图像上我们可以使用找边的方式,计算出来出两条边的中线,计算与X轴之间的夹角 angle_product,可以知道当前机械手的角度angle_tool ,angle_diff=angle_product-angle_tool ,然后我们可以先走平移,然后再旋转angle_diff ,这样就可以将产品拿到。
但是这种是对产品的精度要求没有那么高的,这种方法是可以的,如果更优点就是解决最短路径和最佳旋转角度的问题。
三、旋转中心
机器视觉——旋转中心的标定_旋转标定-CSDN博客
基础知识: 三点可以确定一个圆
旋转中心 半径
如果机器人没有tcp 标定的功能,而且要求精度是表高的,那么我们就需要使用自己计算出旋转中心和旋转半径。
在拟合的过程重我们可以多拍几个点,拟合的精度会更高一些,基本在就是解方程 ,多个点的话可以用随机一致采样的方法或者最小二乘法来计算一个最优。
步骤:
然后我我们通过拟合一个圆,可以得到一个球心即使一个旋转中心,还可以得到一个旋转半径,下面我就要计算 一个产品从 A-》B的过程;
1、先对角度,将角度转到和目标的角度一致,如下
2、计算平移
3、加上平移补偿
代码就不写了,很简单,思路很重要