机器视觉旋转中心的标定

首先呢,今天要聊聊工业视觉领域应用中抓取物料要用到“旋转中心”,我们先思考一下以下两个问题:

 1、为什么要标定旋转中心?

 2、旋转中心的标定步鄹分为哪些?

一、为什么要标定旋转中心?

在我们现在工业视觉应用的过程中,存在这样的案例:机械手要抓取物料,物料每次的角度不一样,机械手末端的工具中心和旋转轴的中心不重合,从而导致机械定位误差比较大。

如果要更好的完成该抓取动作的过程,有以下两个解决办法:

1.TCP标定

目前市场上普遍的机械手都有建立新工具坐标系的功能。比如:EPSON.、博郎特等。TCP标定的本质:求旧工具坐标系和新工具坐标系之间的旋转平移矩阵。

另外市场上还存在一种情况,如果你使用的运动结构是运动控制卡控制,并且设备中一般带有旋转轴结构,这个时候我们就需要标定旋转中心和旋转半径了。

二、旋转中心的标定步鄹

1、先要完成九点标定(相机位置默认固定位置)。

2、如下图,取一个物料在旋转工具上放置一个Mark点,旋转角度,获取3个点,利用3点拟合圆,求的圆心坐标和旋转半径

 2.1 打开Halcon,Mark点提取,图像预处理后得到3个点后,转世界坐标系,三点拟合圆,在Halcon实现代码的过程,如下图

 2.2 使用旋转中心计算偏移量的过程,这一步是最关键的一步,三点拟合圆后可先计算出A点到旋转轴O1点的偏差Q。

 物料A点到B点摆正过程的,实际是2D平面下点的仿射变换,先求出A点下的世界坐标,再求出旋转夹角,由点A的坐标和夹角,再求出B点的世界坐标和偏移量。Halcon的实现代码如下图

 

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器视觉中的旋转中心是指图像中物体旋转中心点,它是进行图像旋转、偏移等操作的基础。标定旋转中心的目的是为了准确地进行图像处理和分析。下面是标定旋转中心的方法和使用旋转中心计算偏移量的步骤: 1. 标定旋转中心的目的 标定旋转中心的目的是为了准确地进行图像处理和分析。在进行图像旋转、偏移等操作时,需要知道物体的旋转中心,才能准确地进行处理。 2. 如何标定旋转中心 标定旋转中心的方法有多种,其中一种常用的方法是三点拟合圆心。具体步骤如下: 2.1 标定旋转中心的操作步骤 (1)选择三个不在同一条直线上的点。 (2)通过这三个点拟合出一个圆。 (3)圆心即为旋转中心。 2.2 三点拟合圆心代码: ```python import numpy as np from scipy.optimize import leastsq def calc_center(x, y): x_m = np.mean(x) y_m = np.mean(y) def calc_R(xc, yc): return np.sqrt((x-xc)**2 + (y-yc)**2) def f_2(c): Ri = calc_R(*c) return Ri - Ri.mean() center_estimate = x_m, y_m center, ier = leastsq(f_2, center_estimate) return center # 示例 x = [10, 20, 30] y = [20, 30, 10] center = calc_center(x, y) print(center) # 输出:[20.0, 20.0] ``` 3. halcon多点拟合圆的方法 除了三点拟合圆心外,还有一种常用的方法是使用halcon多点拟合圆的方法。具体步骤可以参考halcon的官方文档。 4. 如何使用旋转中心计算偏移量 使用旋转中心计算偏移量的步骤如下: (1)确定旋转中心。 (2)计算物体的重心。 (3)计算旋转中心和重心之间的距离。 (4)根据旋转角度和距离计算偏移量。 5. 计算一点绕另一点旋转一定角度后新点的坐标 计算一点绕另一点旋转一定角度后新点的坐标的公式如下: ``` x_new = (x - x0) * cos(theta) - (y - y0) * sin(theta) + x0 y_new = (x - x0) * sin(theta) + (y - y0) * cos(theta) + y0 ``` 其中,(x0, y0)为旋转中心的坐标,theta为旋转角度,(x, y)为原始点的坐标,(x_new, y_new)为旋转后的点的坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值