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

四轴平面机器人的手眼标定四轴平面机器人的手眼标定介绍在实际的机器人应用中,通常会给机器人配备视觉传感器,视觉传感器用于感知周围环境。但是,通过视觉传感器获取的场景坐标是基于视觉坐标系下的,机器人并不能直接使用,要获取机器人可以直接使用的坐标信息,必须将坐标转换到机器人坐标系下。因此,机器人手眼标定的目的是为了获取从视觉坐标系转换到机器人坐标系的转换矩阵。机器人手眼标定问题可以分为两类: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)
上一篇 2022年5月15日 下午4:40
下一篇 2022年5月15日 下午4:40


相关推荐

  • java是面向对象还是面向过程_面向对象和面向过程最本质的区别是什么?

    java是面向对象还是面向过程_面向对象和面向过程最本质的区别是什么?面向对象和面向过程最本质的区别在于考虑问题的出发点不同,面向过程是以事件流程为考虑问题的出发点,而面向对象则是以参与事件的角色(对象)为考虑问题的出发点,所以面向对象在处理问题时更加灵活。目前,面向过程的语言更多被用于处理底层业务,而面向对象编程则更多用于实现一些业务逻辑复杂的大型系统。从结构上来说,面向过程的特点是模块化和流程化,而面向对象的特点是封装、继承和多态,这里面就有本质的区别了。面向过…

    2022年7月7日
    22
  • 搭建Eurake集群

    搭建Eurake集群eureka作为SpringCloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置。单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况,具有较强容灾能力的eureka集群服务。其实我们只需要在部署时候,对eureka的配置文件做相应的修改,运行即可。在项目中,创建三个名字分别为eureka01,eureka02,eureka03的eur…

    2022年6月4日
    42
  • linux内核移植imx8,iMX8模块Ubuntu移植

    linux内核移植imx8,iMX8模块Ubuntu移植ByToradex 胡珊逢本文将介绍如何将 Ubuntu 系统移植到 ToradexApali 计算机模块上 该方法也同样使用与其他使用 eMMC 作为存储介质的模块 例如 Colibri Verdin 模块 撰写文章时 Toradex 发布的最新 LinuxBSP 是 5 2 0 Ubuntu 为 20 04LTS 和 20 10 为了获得更好的支持 建议使用新的 LinuxB

    2026年3月26日
    2
  • pdf.js使用方法「建议收藏」

    pdf.js使用方法「建议收藏」项目中显示pdf的功能,浏览过不少的技术帖,都不太理想,花了点时间研究了下pdf.js正确使用方法,总结下:1.防止自己忘记2.工作留有痕迹3.供大家参考借鉴pdf.js:将PDF文件解析后生成一张.png图片,利用canvas元素显示在页面上,此方法不推荐使用,呈现在页面上的pdf会模糊,目前没有找到有效解决办法,给爱钻研的小伙伴提供个思路,在pdf.js官网上有…

    2022年7月11日
    25
  • python基础(7)内置函数divmod用法

    python基础(7)内置函数divmod用法前言我们都知道,python中//代表整数运算中的取整,%代表整数运算中的取余,那么有什么函数可以同时取到整数和余数吗?答案是有的,使用python内置函数divmoddivmod首先看一下源

    2022年8月7日
    5
  • 按键精灵定位坐标循环_用按键精灵录制微信自动摇一摇脚本

    按键精灵定位坐标循环_用按键精灵录制微信自动摇一摇脚本金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455学习路上不再孤单,金猪脚本伴你一同成长.前面我们说了模拟器和应用app的安装,这里来说说另外一个重点,也是…

    2022年5月30日
    60

发表回复

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

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