四轴平面机器人的手眼标定

四轴平面机器人的手眼标定四轴平面机器人的手眼标定介绍在实际的机器人应用中,通常会给机器人配备视觉传感器,视觉传感器用于感知周围环境。但是,通过视觉传感器获取的场景坐标是基于视觉坐标系下的,机器人并不能直接使用,要获取机器人可以直接使用的坐标信息,必须将坐标转换到机器人坐标系下。因此,机器人手眼标定的目的是为了获取从视觉坐标系转换到机器人坐标系的转换矩阵。机器人手眼标定问题可以分为两类:1)eye-in-hand,…

大家好,又见面了,我是你们的朋友全栈君。

四轴平面机器人的手眼标定

介绍

在实际的机器人应用中,通常会给机器人配备视觉传感器,视觉传感器用于感知周围环境。但是,通过视觉传感器获取的场景坐标是基于视觉坐标系下的,机器人并不能直接使用,要获取机器人可以直接使用的坐标信息,必须将坐标转换到机器人坐标系下。因此,机器人手眼标定的目的是为了获取从视觉坐标系转换到机器人坐标系的转换矩阵。
机器人手眼标定问题可以分为两类:

1)eye-in-hand,视觉传感器安装在机器人末端执行器上,随着机器人的移动而移动;


四轴平面机器人的手眼标定

2)eye-to-hand,视觉传感器固定安装,与机器人基座坐标系相对固定。


四轴平面机器人的手眼标定
那么如何进行手眼标定呢? 本篇文章仅仅研究四轴平面机器人的手眼标定。

四轴机器人的手眼标定

在四轴机器人的应用场景中,通常都是用于抓取平面上的物体,实际配置如下图所示。


四轴平面机器人的手眼标定
在作业过程中,主要存在以下几个步骤:

1)相机拍摄平面上的物体;

2)在拍摄的图像中定位物体的位置(像素坐标);

3)将像素坐标转换到机械手基座坐标系下;

4)机械手抓取零件。

四轴平面机器人手眼标定的任务就是计算出像素坐标系到机械手基座坐标系下的转换矩阵。由于相机拍摄的是一个平面,而机械手作业的区域也是一个平面,因此,平面机器人手眼标定的任务可以转换成计算两个平面之间的映射关系的过程,也就是计算两个平面之间的仿射变换。
点(x,y,w)‘为图像点的齐次坐标,而点(x’,y’,w’)’为机械手每组场景的控制器读数(仅读取x,y参数)的齐次坐标,经过如下转换。


四轴平面机器人的手眼标定
式中,$a_{11},a_{12},a_{21},a_{22}$不是旋转矩阵的元素,因为该变换矩阵是齐次坐标(在许多的博客中直接说是旋转矩阵是不对的。 方程中,存在6个未知数,理论上使用3组对应点就可以计算出所有参数,但是实际读取的数据都存在噪声,因此,需要采集>3组的数据(通常是9组,所以称该方法是9点法)使用最小二乘就行求解。

halcon中计算方法

  • 首先进行手眼标定
%计算图像坐标
area_center(SortedRegions,Area,Row,Column)
%输入机械手示教的9点坐标
Column_robot := [275,225,170,280,230,180,295,240,190]
Row_robot := [55,50,45,5,0,-5,-50,-50,-50]
%求解放射变换矩阵,HomMat2D是图像坐标和机械手坐标之间的变换矩阵
vector_to_hom_mat2d(Row,Column,Row_robot,Column_robot,HomMat2D)
  • 在标定结束后,使用标定的数据计算机械手抓取位置
%由像素坐标和标定矩阵求出机器人基础坐标系中的坐标
affine_trans_point_2d(HomMat2D,Row2,Column2,Qx,Qy)

opencv中的计算方法

  • 手眼标定
//计算图像坐标
std::vector<cv::Point2f> img_corners;
//输入机械手示教的9点坐标
std::vector<cv::Point2f> robot_corners;
cv::Mat transform;
//计算手眼标定矩阵transform
cv::estimateAffine2D(img_corners, robot_corners,transform);

大家好,我主要的研究方向有:
1)主流的结构光三维测量方法,包括:线扫,格雷码,相移,散斑等;
2)摄像机标定和投影仪标定;
3)点云处理;
4)图像处理;
5)Halcon应用;
6)机器视觉相机选型。

对以上研究方向感兴趣的朋友可以关注我的微信公众号:


四轴平面机器人的手眼标定


另外,关于以上研究方向的任何问题都可以到我的知识星球进行提问,我将给大家满意的回答 !!!!


四轴平面机器人的手眼标定

3D视觉QQ群:1012179080。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146228.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • opencv 图像伽马校正

    opencv 图像伽马校正Referfromhttp://blog.csdn.net/xiaojidan2011/article/details/8027670伽马校正,最好的,最高效的方法是通过table来访问:核心函数LUT(TheCoreFunction)¶这是最被推荐的用于实现批量图像元素查找和更该操作图像方法。在图像处理中,对于一个给定的值,将其替换成其他的值是一个很常见的操作,Ope

    2022年9月24日
    2
  • linux系统怎么数据恢复,linux系统数据恢复

    linux系统怎么数据恢复,linux系统数据恢复程序员的误操作造成数据丢失,忙着一个星期的项目,就这样付之东流了。老板的痛斥、经理的训斥接踵而来。接下来就是没休息、加班,甚至忙到凌晨都不能离开那该死的电脑,都有种想屎的感觉呢?为那些不喜欢备份数据的朋友带来了福音,我们来谈谈数据恢复,这里我们来手把手地教会你如何利用简单的工具来恢复被你删除的数据。工具:hexedit、fdisk下文内容操作均在root环境下完成。hexedit:在linux上…

    2022年5月13日
    43
  • WINRAR 去除广告[通俗易懂]

    WINRAR 去除广告[通俗易懂]WinRAR是目前市面上最优秀的压缩文件的软件之一。我个人非常喜欢的一款软件,以前还好,注册了就没广告了,现在这广告没完没了,注册了还是打开一次弹一次广告,究竟为啥?无意中使用了英文版的,发现并没广告,故去除广告最好的方法是用繁体中文版的,再注册,注册方法如下繁体版去官网下载https://www.rarlab.com/直接给下载页面吧,万一看不懂英语https://www.rarlab.com/d

    2022年6月12日
    33
  • 正则替换括号但保留内容(常用的正则表达式)

    正则表达式保留部分内容替换需求:把trim(ABC)替换成trim(replace(ABC,char(9),”)需要把ABC保留不变,替换其它的。实现:trim\(([^).]*)\)替换成trim\(replace\($1,char\(9\),”\)在查找的时候用括号括起来的代表一部分,在替换的时候可以用$1,$2…引用。注意:有写编…

    2022年4月10日
    115
  • 阿里云服务器开放所有端口_阿里云服务器开放端口设置

    阿里云服务器开放所有端口_阿里云服务器开放端口设置阿里云服务器默认只开放了部分端口号,服务配置好后,如需客户端远程访问,还需在阿里云服务器安全组开放端口号。具体操作流程如下:ps:0.0.0.0/0即为不限定ip地址,如配置nginx拦截访问端口80或443为了安全,一般需要指定允许访问的ip地址…

    2022年9月27日
    0
  • pycharm2022 02激活码【2022最新】

    (pycharm2022 02激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4KDDGND3CI-eyJsa…

    2022年4月1日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号