机器人手眼标定:第四关节移动相机标定算法

声明:本文转载自公众号AmazingRobo+


分享一个可任意移动,任意旋转的J4关节移动相机标定算法。只需标定一次,相机就可以在任意位置且相机可以带旋转的进行拍照。简单方便。

— Edited By Hugo

image.png



image.png


前言:

说起SCARA手眼标定,这是第四篇了。已经基本覆盖常用平面手眼标定的方式。

这些都是基于第三方实现的算法,可适用于所有的SCARA机器人。


标定步骤如下:

移动相机需要按机器人未端安装校准治具,并在相机工作视野平面上,找一个视觉容易识别且唯一的特征点。


STEP1: 求教校准治具未端的工具坐标Tool 1


STEP2: 将治具未端对准标定圆,在Tool 1下保存该位置为ref_pos


*参考点位置 用当前工具Tool1去对准标定圆

ref_pos:=[-2.5760,381.149,224.404]


STEP3: 机器人管理器中,将Tool切换到Tool 0


STEP4: 将相机移动到特征点上方,让特征点按照九宫图顺序,即视野的上左->上中->上右->中右->中中->中左->下左->下中->下右位置。

Tool 0下记录每个位置的机器人坐标。(注意整个过程不要旋转U轴)


robot_x:=[-10.427,-32.830,-19.948,-4.683,-26.218]

robot_y:=[312.182,320.876,323.668,326.091,334.909]


STEP5: 同时每走一个位置时,视觉抓取该特征点的中心像素值,依次记录如下:

image_x:=[622.904,2389.383,1573.035,583.063,2294.077]

image_y:=[406.118,427.244,951.266,1512.772,1564.933]


STEP6: 代入如下算子执行标定

scara_J4_calib(robot_x,robot_y,ref_pos,image_x,image_y,HomMat2D)


到此标定就完成了。



标定转换步骤如下:

STEP1: 拍摄一个特征点,求得像素位置(img_x,img_y)

img_x:2402.432

img_y:1304.998


STEP2: 获取机器人Tool 0下当前位置(X,Y,U)

cur_pos:=[215.588,268.285,326.067]


STEP3: 取得第一个拍照点

cali_pos:=[robot_x[0],robot_y[0]]


STEP4. 执行标定转换

scara_j4_calib_trans(HomMat2D,img_x,img_y,cur_pos,ref_pos,cali_pos,final_Posx,final_Posy)


到此标定转换结束了。


代码如下:

*/********************************************************************************
* @文档名称: SCARA机器人J4相机移动标定。
* @作者: HUGO 
* @版本: 1.1
* @日期: 2020-6-20
* @描述: 该方法支持相机随意移动以及旋转。

********************************************************************************/


*---------------------第一步 执行手眼标定------------------


*参考点位置 用当前工具Tool1 去对准标定圆(注意整个过程不要旋转U轴)
ref_pos:=[-2.5760,381.149,224.404]

*Tool0 下移动机器人9个拍照位置
robot_x:=[-10.427,-32.830,-19.948,-4.683,-26.218]
robot_y:=[312.182,320.876,323.668,326.091,334.909]

*图像上9个位置
image_x:=[622.904,2389.383,1573.035,583.063,2294.077] 
image_y:=[406.118,427.244,951.266,1512.772,1564.933]


*/*******************************************************
*
* 函数名 :scara_J4_calib
* 描述        : 执行标定函数
* 参数        :
*        @robot_x            记录工具0下机器人X位置 
*        @robot_y            记录工具0下机器人y位置     
*        @ref_pos            记录工具1下机器人对准标定圆心的位置 
*        @image_x            记录对应的图像X位置 
*        @image_y            记录对应的图像y位置 
* 返回          :HomMat2D 
**********************************************************/

scara_J4_calib (robot_x, robot_y, ref_pos, image_x, image_y, HomMat2D)


*----------------------第二步 标定转换--------------------

*取第一个拍照点
cali_pos:=[robot_x[0],robot_y[0]]

*标定完成后,拍摄一个特征点的,求得像素位置(img_x,img_y)
img_x:=2402.432
img_y:=1304.998
        
*获取机器人当前位置(X,Y ,U) Tool0 下
cur_pos:=[215.588,268.285,326.067]

*/*******************************************************
*
* 函数名 :scara_J4_calib_trans
* 描述        : 标定转换函数
* 参数        :
*        @HomMat2D           变换矩阵 
*        @img_x              图像X位置     
*        @img_y              图像y位置 
*        @cur_pos            机器人当前位置(X,Y ,U)Tool0 下 
*        @ref_pos            标定时参考点位置
*        @cali_pos           标定时第一组标定位置 
* 返回          :final_Posx, final_Posy 
**********************************************************/
scara_J4_calib_trans (HomMat2D, img_x, img_y, cur_pos, ref_pos, cali_pos, final_Posx, final_Posy)


勇哥注:

作者没有提供完全的代码,几个外部函数可用,但不可以查看代码。

因此,本贴是授人以鱼,并没有授人以渔,不过还是感谢作者的代码。



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864