开启左侧

【1】机器人手眼标定:J1移动相机

[复制链接]
Hugo 发表于 2020-6-18 16:38:16 | 显示全部楼层 |阅读模式
相机发生了旋转该如何标定?


相机安装在SCARA机器人第一关节,或者运动平台某个旋转关节上,通过计算旋转差,可得拍照后任意位置的准确坐标数据。—— Edit By Hugo

/前言:在scara机器人中,相机这样的安装方式其实我也没有遇到过,但是在一些非标运动控制平台却遇到了不少。那么当相机做完固定向下相机标定后,相机发生了移动同时发生了旋转,该如何处理呢?这里提供一种方法仅供大家参考。/

   # 1
1.gif
如上图所示:线段f代表某个旋转关节,线段f'则是代表旋转后的位置,正方形代表固定在旋转轴上的相机。由于相机跟关节是刚性连接在一起的,所以,当关节转了10°时,相机也是跟着旋转了10°。它们拥有同一个旋转中心。


2.png

下面开始标定过程:

STEP 1:确定好机器人或者运动平台的执行末端TCP。让相机拍摄一张带9个点的图(如上图),然后移动执行末端示教对应9个点的机器人坐标。执行固定相机标定。

STEP 2: 把机器人或者运动平台当前的位置记下来Ref_pos(X,Y,U)。用于计算旋转移动后偏差的参考位置。注意:是指当前工具坐标系下的机器人位置数据。

STEP 3:计算关节旋转中心,即移动相机拍照时,相机是绕着哪个中心进行的。移动关节f,示教三个点,PA,PB,PC; 按照前一篇文章的里面介绍的方法可以算出旋转中心Pcenter(X,Y)。
到这里前期准备工作完成了。

   # 2   
3.png
如上图所示:
视觉在标定拍照时的位置在B处,B'是相机旋转移动后的位置,也可认为是任意旋转移动后的位置。我们知道,无论相机在何处拍照,在你不做任何转换的提前下,它转换出来的数据仍然是当前标定位置的数据,意思是相机它并不知道它自己发生了旋转移动。

下面继续讲:
通过观察可知,关节f与关节f'的位置都是已知的,所以我们知道关节f‘相对于关节f旋转了多少度。即已知数据有:标定时机器人的位置Ref_pos(X,Y,U)。旋转后机器人当前的位置:Cur_pos(X,Y,U)。旋转后拍照得到物料的位置:Obj_pos(X,Y,U)。关节旋转中心的位置:Pcenter(X,Y)。

当相机移动到B'的位置时,拍照后经过标定转换,得出F'的位置坐标(实际是F位置的坐标)。那么现在想办法把实际是F位置的坐标还原到F'的位置去。如何做呢?
# 3   
4.png
旋转的角度  

角度旋转示意图
5.png


由上图可知,实际物体中心旋转的角度与关节旋转的角度是一样的。据此我们可以绕点旋转公式进行求解:

方式 1: 利用绕点旋转公式

  1. x0= (x - rx0)* cos(a)-(y - ry0)*sin(a)+rx0;

  2. y0= (x - rx0)* sin(a)+(y - ry0)*cos(a)+ry0;
复制代码

物理意义就是:点(x,y) 绕着点(rx0,ry0)旋转角度a后,得到新的点坐标(x0,y0)。

代入实际数据为:
  1. x = Obj_pos_X ; y=Obj_pos_Y

  2. rx0=Pcenter_X;  ry0 = Pcenter_Y;
复制代码


即可得到点F'(x0,y0)的位置坐标。


下面继续介绍其他2种解法:未完待续~

同学们,可在微信公众号进行免费完整阅读......


关注微信公众号第一时间获取更多首发机器人视觉知识
6.jpg

  - end -  

视觉选型|机器人选型|手眼标定图像处理|视觉软件开发|案例应用分享

下面列举方法2、3,收费可阅读:

购买主题 本主题需向作者支付 15 视觉币 才能浏览
Hugo 发表于 2020-9-13 10:08:22 | 显示全部楼层
sankyo_feng 发表于 2020-8-12 10:29
我有金币,没有视觉币

没有视觉币可以去公众号查看~
Hugo 发表于 2020-9-15 11:26:33 | 显示全部楼层

没有视觉金币,可以去公众号查看原文~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表