概述
视觉引导运控应用比较广泛了,有这么一个常见的场景,物料来了,和初始位置有偏差,怎么计算偏差的变换矩阵?为了计算矩阵,我们最少要找几个点?
学过仿射变换的小伙伴都知道,[x,y]'=[a11,a12,a13; a21,a22,a23]*[x0,y0,1]' 也就是说,仿射变换矩阵是一个2*3的矩阵,有六个参数,按照多元一次方程组的解法,我们至少要联立六个方程式,而且这六个方程式不可约,也就是说,要找三个点(每个点有两个数值,x,y),而且这三点不能共线,才可以解出这个仿射变换来。那么问题来了,为什么工业现场,很多机台只要找到两个点,就可以实现定位了呢?
这个问题一开始我也摸不着头脑,想啊想,可能两点连城一条直线,然后和坐标轴的夹角就可以求出来了,然后旋转角度就可以知道了,这样就可以少用一个点?(仿射变换阵=平移矩阵*旋转矩阵)
后来翻看opencv的一些博客,了解了问题成因:
https://blog.csdn.net/dongfang1984/article/details/52959308
这篇博客说的是 opencv中 estimateRigidTransform 函数,不过这个函数现在已经不用了,新的函数是:
estimateAffine2D()和estimateAffinePartial2D()
那么,究竟有啥区别呢?
full affine考虑了平移,旋转和缩放,而 partial affine是有约束条件的,不包括缩放的仿射变换;
这样以来,仿射变换的六个元素中,有两组元素的绝对值是相等的,那么,实际上也就只要知道四个元素的值就可以了,也就是说,两点就可以找到仿射变换矩阵,实现定位。
在机台上实际运行,三点定位和两点定位得到的仿射变换矩阵差异不大,运动轴所在X-Y平面和载物平台平行度良好的情况下,两点定位的精度也可以满足要求。
由此看来,观察,思考,抄作业(上网找答案),理论,实践,对于解决问题来说,都是比较重要的。
最后
以上就是内向哈密瓜为你收集整理的平面上视觉定位要找几个点的全部内容,希望文章能够帮你解决平面上视觉定位要找几个点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复