如何在LabVIEW中求解2个坐标系的对应关系(3点标定原理)
文/LabVIEW爱好者 刘松
有些时候,我们需要把相机拍照计算出的目标位置(在图像里的像素坐标),去告诉机械手末端抓取或吸取(即机械坐标,单位毫米),那么如何把计算出的这个像素坐标转化成机械坐标呢?在这里,标定就是要找出A坐标系与B坐标系上点的对应关系。
方法一:直接根据XY的像素坐标与机械坐标的比例关系来算,这种简单标定方法对于XY模组安装不是十分垂直的场景会有大的偏差。
方法二:在NI提供的视觉工具里有用“标定圆点板”进行包含畸变标定的精密方法,这个方法要求首先要有一个标准标定圆点板,其次要放在视野中的目标物所在高度,然后进行标定,标定出一幅标定图像。在以后的每次新图像坐标转换时都要加载这幅标定图像进行转换,操作较复杂。并且,当图像视野达几百毫米时,标定圆点板的制作和打光成为大问题。我们迫切需要一种像3点标定这样的方法来简化坐标系映射。
3点标定方法原理:
假设A坐标系(例如相机图像坐标系)的一点(10,20)像素坐标,在B坐标系(例如机械手所在坐标系)里用“标定针”对位的是(2,4)毫米机械坐标。接下来问,如果是A坐标系(20,30)像素坐标在B坐标系里看到的是多少呢?此时会有无数种答案,因为没有一个唯一的映射关系。
但如果给定更多的限制条件,例如更多的点(3个以上)在A、B坐标系的对应关系被找到,此时再来问A坐标系(20,30)在B坐标系里看到的是多少,则答案就是唯一的。
为何有要求3个点以上,就是求解三元一次方程的要求至少有3个已知条件(9点标定是为了提高精度,现在我们只研究3点标定)。
已知A坐标系的一些点(x,y),在B坐标系里去行走得到(x’,y’)。然后通过求解(x,y)到(x’,y’)的关系,得到仿射变换齐次矩阵。两个坐标系点的计算关系可列如下方程:
ax+by+c=x’
dx+ey+f=y’
求解出6个未知变量a、b、c、d、e、f即找出了映射关系。
















