一、手眼标定的用途

在实际的自动化工业生产中,我们常需要机械手和相机配合实现物料定位、摆正等操作过程,手眼标定的目标就是实现相机坐标系和机械手坐标系的空间映射,通俗的讲相机相当于眼睛,机械手相当于手,眼睛看到的地方机械手能够走到,在此过程中我们运用一种常见的二维标定方法9点法实现手眼标定。

简单介绍标定过程中的一些概念::

像素坐标系:像素在图像中的位置,一般坐标原点是图像的左上角,单位是像素。

相机坐标系:相机坐标系中相机中心是坐标系原点,垂直对应图像的正中心,单位是毫米。

机械手坐标系:相对于机械手基座而言,坐标也就是机械手末端法兰相对于基座的坐标,根据实际应用会建立工具坐标系,无论是哪种都是相对于基座而言。

定位过程:是根据特征点的像素坐标系仿射到机械手坐标系中,机械手能够在物料一致位置进行吸放料。

摆动过程:机械手吸取物料位置不一定,但是每次都能准确摆进目标位置,可以看做治具固定不动,物料上料上料过程中位姿不确定,但是能吸取物料准确摆入治具中。

二、空间放射变换介绍

空间的放射变换简单的介绍为一个空间坐标映射到另一个空间中,两个空间中的点有一一对应的关系,二维空间可以理解两个平面间的坐标关系。常见的映射关系主要有三种,平移、旋转、缩放。主要就是旋转问题,一定要记住是相对于基坐标系旋转,而不是相对自身工具坐标系而言,对于旋转平移矩阵,是先旋转再平移。仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。仿射变换能够保持图像的“平直性”,包括旋转,缩放,平移,错切操作。一般而言,仿射变换矩阵为2*3的矩阵,第三列的元素起着平移的作用,前面两列的数字对角线上是缩放,其余为旋转或者错切的作用。

具体表达式为:

其中A为变换后坐标矩阵,C为原始坐标矩阵,B是仿射变换矩阵,有6个未知量,假设目标图形(x , y)为轴心顺时针旋转θ弧度到目标图像,则变换矩阵对应的变量为:所以前两列的4个未知量a,b,d,e是起到旋转的作用,第三列的2个未知量c,f起到了平移的作用。仿射变换的方程组有6个未知数,所以要求解就需要找到3组映射点,三个点刚好确定一个平面。

对于3维空间放射变换是一个4*4的矩阵,同理如果要求出4维空间变换则需要4个对应点,对于刚体变换(没有大小缩放),二维平面变换则只需要2个点,三维空间刚体变换则只需要3个点。

简单举例介绍:

在halcon中常用代码:

*生成一个放射变换用的矩阵
hom_mat2d_identity*在初始化矩阵的基础上进行旋转、平移、缩放变换
hom_mat2d_translate
hom_mat2d_scale
hom_mat2d_rotate(先绕原点旋转,然后再平移到指定的旋转中心)*执行放射变换的算子
affine_trans_image
affine_trans_regione
affine_transe_xld*点与点生成对应矩阵(起码传进去三个点)
vector_to_hom2d*点和角度进行旋转平移变换
vector_angle_to_rigid
(其中第一个点是旋转中心,绕旋转中心进行旋转再将旋转中心平移到对应点位)

三、手眼标定的类型

常见的手眼标定类型根据相机所在位置可以分为两类:

1.眼在手上:相机和机器手绑定在一个位置,机器手移动,相机也跟着移动,相机和机械手末端共同运动,不发生相对变化。在标定时候标定板固定不动,机械手带着相机共同运动。

2.眼在手外:相机放置一个固定的位置,与机器人基坐标系相对位置不变。

关于二维三维手眼标定的相关内容,我会在后续文章中陆续更新。

根据相机的朝向可以分为:
1.上相机:相机在正上方,从上往下拍目标物。

2.下相机:相机在下方,从下往上拍,可以避免机械手干涉影响。

四、手眼标定的目的

从我上述这么多描述可以知道,手眼标定目的可以总结为:

1.求解X、Y方向的分辨率;

2.求解图像到X、Y方法的放射变换;

3.根据变换矩阵来实现像素坐标与实际坐标的转换;

标定系列一、手眼标定基础介绍相关推荐

  1. 干货 | 相机标定:机器人手眼标定

    作者丨张贶恩@知乎 来源丨https://zhuanlan.zhihu.com/p/76578691 编辑丨OpenCV与AI深度学习 相机标定是机器人视觉中非常重要的一步,可以帮助机器人转换识别到的 ...

  2. 基于标定板的手眼标定

    基于标定板的手眼标定 dev_update_off () *相机初始化参数 ImageNameStart := './calib_pics_' *机器人姿态 PoseDataStart := './c ...

  3. 「Python数据分析系列」6. 概率论基础介绍

    来源 |  Data Science from Scratch, Second Edition 作者 | Joel Grus 译者 | cloverErna 校对 | gongyouliu 编辑 | ...

  4. 机器人抓取系列——手眼标定

    学校快中期答辩了,写几个文章缕清一下最近做的项目中的逻辑和技术细节. 手眼标定 定义: 手眼标定是统一视觉系统和机器人的坐标系,从而可以使视觉系统所确定的物体位姿可以转换到机器人坐标系下,由机械臂完成 ...

  5. 遨博协作机器人ROS开发 - 机器人手眼标定原理

    目录 一.简介 二.环境版本 三.学习目标 四.知识储备 五.课堂小结 六.课后练习 一.简介 大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),在前面课程中我们讲解了Intel ...

  6. 手眼标定eye-to-hand 示例:handeye_stationarycam_calibration

    * * This example explains how to use the hand eye calibration for the case where * the camera is sta ...

  7. 经典手眼标定算法之Tsai-Lenz的OpenCV实现

    本文主要是讲解经典手眼标定问题中的TSAI-LENZ 文献方法,参考文献为"A New Technique for Fully Autonomous and Efficient 3D Rob ...

  8. 物体位姿估计精度验证实验(涉及位姿估计,手眼标定,机械臂运动)

    物体位姿估计精度验证实验(涉及位姿估计,手眼标定,机械臂运动) 1.位姿估计 2.手眼标定 Opencv 手眼标定函数calibrateHandEye() (1)Eye in Hand (1)Eye ...

  9. 一分钟详解「手眼标定」基本原理

    原文首发于[3D视觉工坊]知识星球:传送门. 一 前言 机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统.摄像机与机器人的手部末端,构成手眼视觉系统.根据摄像机与机器人相互位置的不同,手 ...

  10. (一)关于手眼标定理论相关的笔记

    上图中黄色向下的箭头表示:方程左右两边同时求逆. 内容 1.手眼标定的基本介绍 2.手眼标定中的坐标系 3.相机标定API:calibrateCamera( ) 4.手眼标定API:calibrate ...

最新文章

  1. (转)从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节
  2. 华三交换机VLAN 篇
  3. mysql 安装目录说明
  4. 经典MapReduce作业和Yarn上MapReduce作业运行机制
  5. python学多久能写东西的软件有哪些_怎么自学python,大概要多久?
  6. LeetCode 4. Median of Two Sorted Arrays
  7. 【Cocos得知】技术要点通常的积累
  8. 如何查看某个查询用了多少TempDB空间
  9. 接口implements(Java)
  10. ArcGIS制图表达Representation-规则和几何效果
  11. C语言:编写一个程序,从键盘读入一个矩形的两个边的值(整数),求矩形面积
  12. 指数/对数/WIN10计算器
  13. 网站机房:DDOS防火墙在企业机房中的应用介绍
  14. 修改python终端不能打开方法解决
  15. 2022年建筑设计中效果图渲染常见的7个错误
  16. Scratch3.0创意编程(基础篇):第9课 大鱼吃小鱼
  17. zookeeper基本讲解(Java版,真心不错)
  18. 管理故事:保罗与小男孩
  19. 雷达 -- 频谱历史介绍
  20. #单调栈#洛谷 2947 向右看齐

热门文章

  1. 字符串转换成数字的三种方法
  2. windows远程桌面实现之一 (抓屏技术总览 MirrorDriver,DXGI,GDI)
  3. 《Node.js区块链开发》——1.2 什么是加密货币
  4. 新能源市场狂暴风卷,零跑汽车仍砥砺前行
  5. Jupyter 快捷键总结
  6. highlight.js的使用
  7. Matplotlib绘制各类图像(折线图,曲线图...)-画图的神
  8. MSE均方误差、RMSE均方根误差、MAE平均绝对误差、方差、SD标准差、协方差Covariance
  9. 硅烷聚乙二醇活性酯;Silane-PEG-NHS;溶于大部分有机溶剂。仅供科研实验使用,不用于诊治
  10. Eventual Consistency-数据一致性