我们知道图像坐标和机械坐标是相互独立的,需要通过移动9个点(常说的9点标定)的方式建立二者的关系,从而达到通过像素点的坐标关系得到机械坐标。相机的视野中心对准目标物中心这会延申到吸嘴是否准确的抓取到目标,如何达到这一操作见下

(假设已经通过9点标定建立关系后,准确说方法1根本就没用到9点标定的关系式,它也不需要进行9点标定

方法1:

如下图所示:

视觉标定板opencv_视觉标定板opencv

假设大黑框里面的内容代表相机视野里的东西,绿色十字是视野的中心点,黑叉叉代表目标物。现在需要操作机械轴将视野沿蓝色箭头指示的方向移动使视野中心点落到黑叉叉中心。

我们现在已知的条件有:

黑叉叉中心像素坐标(Px,Py)

绿色十字中心像素坐标(Px0,Py0)

当前的二维插补机械坐标Q0(0,0)

我们需要求出的就是黑叉叉中心所在的机械坐标(Qx,Qy)。 

移动三个机械坐标点,为了方便(只要3点不共线即可)就取构成直角三角形的三点,同时都需要记录下这三个点的像素坐标和机械坐标。由此我们可以计算一个像素的宽等于多少pluse,高又等于多少pluse:

 单个pix的宽(x方向)为:

视觉标定板opencv_视觉标定板opencv_02

  ;高(y方向)为:

视觉标定板opencv_视觉标定板opencv_03

 
注:p代表像素,q代表机械脉冲

 那么现在就得到了一个像素的实际机械距离比值。

接下来带入已有条件即可求得黑叉叉中心所在的机械坐标:

1、▲X = Px0 - Px ; ▲Y =  Py0 - Py 

视觉标定板opencv_视觉辅助机械手抓取目标_04

2、那么黑叉叉中心所在的机械 坐标为:Qx = ▲X * W;Qy = ▲Y * H

 

方法2:

分别将物体的像素坐标和视野中心像素坐标带入9点标定后的关系式中得到它们两个的机械坐标,然后让视野中心点机械坐标减去物体所在的机械坐标,最后把结果带入到机械轴的插补运动中即可