运动控制之手眼定位


运动控制之手眼定位

原理

手眼定位,是针对带视觉的运动控制而言的,直白点说就是摄像头看到的地方,机械手或是xyz轴可以找到这个地方。实际上就是一个坐标转换的原理。

思路解析

根据轴运动和机械臂运动分为两种:

1.第一种轴运动

我们知道,轴运动都是使用脉冲或是当量驱动电机进行位移的,一般定位一个点,都需要一个三维坐标(X,Y,Z),这里的Z是高度或着说是深度。为了更好的去解释原理,这里暂且不考虑高度问题,以二维平面去理解。如有有以下情形,黑色区域是视觉边界,w是宽度,h是高度,A,B,C,D是四个顶点,其中A点是原点(0,0):

轴要到S点(x5,y5)上,我们需要知道X轴跨过这个黑色边界到 x5 需要多少脉冲,Y轴到y5需要多少脉冲。因此我们需要知道这个转换系数。

假设有如下表:

到A点的脉冲 到B点的脉冲 到C点的脉冲 到D点的脉冲
X轴 a1 a2 a3 a4
Y轴 b1 b2 b3 b4

此时,我们可以算出:
从X轴方向移动一个像素点的脉冲是:(a3-a1)/w = m
从Y轴方向移动一个像素点的脉冲是:(b3-b1)/h = n

有了M N 我们就可以计算出移动到S点(x5,y5)需要的脉冲,x5,y5 是像素点的坐标。

S点X方向的脉冲应该是 a1 + m * x5 ,Y方向的脉冲应该是 b1 + n * y5

理论上这样的结果应该是准确的。但实际上会有偏差,为了减少偏差。我们需要用多个点去计算出多个m 和多个 n ,然后求出他们的平均值 M 和 N。

所以就有了 多点标定一般是 九点标定

话说回来,下图的整个表中的数据,怎么来呢?

到A点的脉冲 到B点的脉冲 到C点的脉冲 到D点的脉冲
X轴 a1 a2 a3 a4
Y轴 b1 b2 b3 b4

我们需要通过肉眼去调试让轴运动到指定的点,并几下他们的运动脉冲值。当数据量足够大的时候,这个误差值就会变的非常小。从而达到精准定位的目的。

  1. 第二种机械臂

机械臂的手眼标定,因为机械臂的运动,使用的是坐标,那么我们应该统计的表就变成了这样:

机械臂 到A点的位移 到B点的位移 到C点的位移 到D点的位移
X轴 a1 a2 a3 a4
Y轴 b1 b2 b3 b4

拿四轴机械臂举例,它的点位信息是 XY(x,y,z,u),这里的位移就是 x,和y的值。原理相同。

以上,做个笔记,万一对别人有帮助呢!