Epson四轴机器人的手眼标定(原理并附上halcon代码)


关于机器人视觉的手眼标定的原理,勇哥先放上一些教程资源:


工业现场相机坐标系和机械手坐标系的标定
halcon之手眼标定基本原理
手眼标定的两种方式
手眼标定之9点法


众所周知,目前机器视觉项目,很大一部分都是引导机器人去取料 放料等工作。 

这个里面就有个非常重要的工作要做。就是将相机的坐标系  映射到机器人坐标系里面,这样才可以实现视觉配合机器人动作。 

通常这种标定使用有多点标定法(俗称九宫格标定法)可以实现将相机坐标系映射到机器人坐标系里面。


在康耐视软件中九宫格算法的结果如下图,它的这个功能,halcon也有对应的算子,请继续往下读。

image.png


上面的教程里讲的是手眼标定的原理,真正用起来,只是halcon的几个算子。

下面勇哥附上代码示例:

*标定数据
vector_to_hom_mat2d ([1863.074,1853.723,1858.503,1060.254,2654.917,2659.306,2650.395,1055.019,1064.807]\
                     ,[1934.265,3530.841,2732.168,2724.893,2736.01,1938.346,3534.78,3523.122,1926.546],\
                     [76398,66398,71398,71398,71398,76398,66398,66398,76398]\
                     ,[-40614,-40614,-40614,-35614,-45614,-45614,-45614,-35614,-35614], HomMat2D)

*查看qx,qy的值 是否和标定的数据差异太大
affine_trans_point_2d (HomMat2D, 1863, 1934, Qx, Qy)

hom_mat2d_to_affine_par (HomMat2D, Sx, Sy, Phi, Theta, Tx, Ty)


hom_mat2d_to_affine_par算子的结果见下图所示:

image.png



下面是几个算子的解释,供大家参考:

根据三个以上特征点获取仿射变换矩阵 
vector_to_hom_mat2d(::Px,Py,Qx,Qy:HomMat2D) 

功能:根据三个以上点对计算仿射变换矩阵,支持旋转、平移、缩放、斜切 
    Px:(输入参数)原始点组的x坐标 
    Py:(输入参数)原始点组的y坐标 
    Qx:(输入参数)变换的目的点组的x坐标 
    Qy:(输入参数)变换的目的点组的y坐标 
    HomMat2D:(输出参数)输出仿射变换矩阵 
××××××××××××××××××××××××××××××××××××××××× 

affine_trans_point_2d(::HomMat2D,Px,Py:Qx,Qy) 
    功能:对点进行任意二维仿射变换,支持缩放、旋转、平移、斜切 
    HomMat2D(输入参数):仿射变换矩阵 
    Px(输入参数):原始点x或行坐标 
    Py(输入参数):原始点y或列坐标 
    Qx(输出参数):变换点x或行坐标 
    Qy(输出参数):变换点y或列坐标
×××××××××××××××××××××××××××××××××××× 


计算仿射变换参数
hom_mat2d_to_affine_par(::HomMat2D:Sx,Sy,Phi,Theta,Tx,Ty) 
   功能:根据仿射变换矩阵(齐次二维变换矩阵)计算仿射变换参数 
    HomMat2D(输入参数):仿射变换矩阵 
    Sx(输出参数):x方向的缩放因子(如果从图像空间变换到物理空间,就是x方向的        像素单量) 
    Sy(输出参数):y方向的缩放因子(如果从图像空间变换到物理空间,就是y方向的        像素单量) 
    Phi(输出参数):旋转角度 
    Theta(输出参数):斜切角度 
    Tx(输出参数):沿x方向平移的距离 
    Ty(输出参数):沿y方向平移的距离


请注意:

机器人的九组坐标位置,一般情况下并不能直接使用机器人的当前坐标位置信息。

原因如下图所示:机器人有两个爪子A头与B头,要吸取的产品在它们的下面,它们的中心并不是机器人J3关节的中心。

这种情况下,你得为A头与B头各创建一个工具坐标。在进行九点标定的时候,我们使用这个工具坐标记录机器人九个点的坐标位置。

image.png



有关epson机器人的工具坐标系的创建方法见下面的教程:

EPSON机械手 工具坐标系的标定


netMarkting类库有专门的机器人视觉标定的类,有空勇哥会整理发布出来。


--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
  • 评论列表:
  •  Timmy
     发布于 2021-01-15 08:45:02  回复该评论
  • 视觉和机器人通过坐标系的一个转换后,会有一个RMSE(均方根误差)的结果,我想知道这个结果的可接受范围是怎么样衡量的,怎么才算结果是OK的?跟项目要求的精度又是怎么关联起来的?

发表评论:

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

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 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