尊重作者,支持原创,如需转载,请附上原地址:

https://libaineu2004.blog.csdn.net/article/details/106995624

心得笔记

字面意思,眼代表眼睛,这里指的是我们的工业相机;
手,指的是我们的运动部分,比如机械手或者运动控制系统;
眼在手上,就是相机按照在运动轴上面,跟随运动的某个轴一起运动,这种标定就是图像和机械点一一运动去做标定。
眼在手外,就是相机固定一个位置拍照,机械手或者运动部分不会带动相机,这个时候标定就要一次性拍全视野,然后机械部分再一一针对图像的上点做好对应关系,然后标定。

这两种标定是我们图像和运动部分联合主要的两种标定方法,都可以实现图像转机械运动,就是标定关系不一样而已,结果都是一样的!

眼在手上就是一个点对应一个机械坐标,做九组就好了!

也就是相机一次拍9个点 然后机械手走这九个点得到九个对应的机械坐标进行变换。

眼在外:相机放置一个固定的位置,与机器人基坐标系相对位置不变
眼在手:相机和机器手绑定在一个位置,机器手移动,相机也跟着移动

halcon手眼标定,最少4点就可以,4个像素坐标对应4个机械手坐标就可以算出转换关系

九点标定法的实现流程

STEP 1:准备好一张标定板,里面有3X3的圆。
STEP 2:把标定板水平放置在相机正下方,控制相机拍照得到一张图片,并按顺序(走Z字型)记录图片上9个圆的中心位置。


STEP 3:控制机器人TCP工具末端按顺序(走Z字型)移动到每个圆心,并记录下9组机器人位置坐标数据。


STEP 4: 执行标定,这里使用HALCON标定算子作为演示,利用上面求得的数据。
图像上9个位置
image_x:=[]
image_y:=[]
机器人9个位置
robot_x:=[]
robot_y:=[]
图像与机器人数据结合
vector_to_hom_mat2d (image_x, image_y, robot_x, robot_y, HomMat2D)

矩阵进行保存:write_tuple (HomMat2D, '路径') 。注意:保存的矩阵后缀名是.tup格式的
STEP 5:标定完成后,拍摄一个特征点的,求得像素位置
img_x:=
img_y:=
利用以下算子即可把像素坐标转换成机器人坐标

read_tuple (‘路径’, HomMat2D)
affine_trans_point_2d(HomMat2D,img_x,img_y, Qx, Qy)
到这里标定以及转换过程就完成了。

read_image (Image, 'D:/hellowprld/初学者必用10mm视觉标定板图/9points.jpg')
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
connection (Region, ConnectedRegions)*筛选出来九个点
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 2000)
shape_trans (SelectedRegions, RegionTrans, 'outer_circle')*求出九点坐标
area_center (RegionTrans, Area, Row, Column)
disp_message (WindowHandle, 'R:'+Row+'  C:'+Column, 'Image', Row, Column, 'black', 'true')*把求得的Row和Column赋值
*九点标定行
PxRow:=Row
*九点标定列
PxColunm:=Column*九点标定行
*PxRow:=[23.5, 23.5, 23.5, 71.5, 71.5, 71.5, 118.5, 118.5, 118.5]
*九点标定列
*PxColunm:=[28.5, 75.5, 122.5, 28.5, 75.5, 122.5, 28.5, 75.5, 122.5]*机器坐标行
Qx:=[100,50,0,100,50,0,100,50,0]
*机器坐标列
Qy:=[0,0,0,50,50,50,100,100,100]*拿到机器坐标和像素坐标求出关系矩阵
*                   标定行  标定列  机器X 机器Y 得到矩阵
vector_to_hom_mat2d (PxRow, PxColunm, Qx, Qy, HomMat2D)*保存矩阵
write_tuple (HomMat2D, '九点标定.tup')*读取矩阵
read_tuple ('九点标定.tup', HomMat2D)*利用求出来的物体行列坐标得到机器坐标
affine_trans_point_2d (HomMat2D, Row, Column, Qx1, Qy1)

官方例程

vector_to_hom_mat2d

calibrate_hand_eye_scara_stationary_cam_approx

hand_eye_stationarycam_calibration

pick_and_place_scara_stationary_cam

参考文献

关于“眼在手外“和“眼在手上”标定求教

关于“眼在手外“和“眼在手上”标定求教-Halcon综合答疑

【3】机器人手眼标定:固定向下相机

【3】机器人手眼标定:固定向下相机-机器人视觉

“眼在手中”标定之坐标转换

“眼在手中”标定之坐标转换-机器人视觉

机器人手眼标定算法源码

halcon学习网

机械手手眼标定/9点标定/4点标定/Halcon标定脚本

halcon学习网

vb.net联合halcon以及运动控制卡做的点胶贴合项目

halcon学习网

手眼标定----眼在手外(eye-to-hand) [魁拔之十万火急]

错误提示 - Halcon学习网

手眼标定----眼在手上(eye-in-hand) [魁拔之十万火急]

错误提示 - Halcon学习网

错误提示 - Halcon学习网

九点标定-眼在外(没有标定板的情况) [魁拔之十万火急]

错误提示 - Halcon学习网

手眼标定----眼在手上(eye-in-hand) [tystq]

halcon学习网

枫痕机械手相机9点坐标标定-基于C#+EmguCV

机械手相机9点坐标标定-基于C#+EmguCV - FreshBreezes - 博客园

相机标定助手代码

halcon学习网

Haclon代码框架c#编程haclon代码学习

halcon学习网

https://www.cnblogs.com/Bonker/

[原创]一种自动化九点标定工具原理(包涵部分源码) - Bonker - 博客园

[原创]移动相机九点标定工具原理及实现(包涵部分源码) - Bonker - 博客园

Halcon标定系列(3):我个人总结的“眼在手外“和“眼在手上”的心得笔记相关推荐

  1. Halcon:手眼标定——眼在手外与眼在手上

    为什么需要九点标定? 为了得到机械和相机的关系,就好比人的手和眼的关系.我们用手将一个物体放到空间的一个位置,用眼看到这个物体,这也存在两个坐标系,一个是手所在的运动空间的坐标系,一个是视网膜上成像的 ...

  2. 手眼标定(眼在手外,眼在手上代码)

    分享一种可以快速求解眼在手上跟眼在手外的C++代码,直接就可以计算出手眼矩阵的. 眼在手外(C++) #include <iostream> #include <string> ...

  3. 基于ROS的手眼标定程序解决方案|支持眼在手外/上

    大家好,我是小鱼.今天分享一个自己写的开源程序,欢迎大家围观~ 1.概览 如果教程对你有帮助,可以start一下~ 若需手眼标定小鱼付费-指导请添加微信:AiIotRobot 本程序支持眼在手上和眼在 ...

  4. Ubuntu18.04+ROS Melodic+RealsenseD435i+Robotiq-2F-85+UR5真实机械臂手眼标定(眼在手外)

    一.配置环境 操作系统:Ubuntu 18.04 机械臂型号:UR5 :polyscope 3.14 夹爪型号:Robotiq 2F-85 深度相机:Intel RealSense - D435i 二 ...

  5. 手眼标定算法TSAI_LENZ,眼在手外python代码实现

    手眼标定算法TSAI_LENZ,眼在手外python代码实现(未整理) 大家好,我是小智,今天来给大家看一看手在眼外的代码实现. #!/usr/bin/env python # coding: utf ...

  6. 眼在手外情况的二维视觉自动标定(一)

    自动标定前传 业务相关需要做一个眼在手外的二维视觉自动标定功能,简单版本无非是机器人带着mark点在相机视野跑来跑去

  7. 手眼标定,眼在手中,眼在手外

    相机绑定在3轴垂直机械手上的手眼标定,能实现全自动的标定. mark点是什么,可以是小圆,小三角形,小矩形及形状分明的任意图形. 标定思路:产品平面上随便选一个特征形状建立模板(mark),然后机械走 ...

  8. 眼在手外情况的二维视觉自动标定(二)

    自动标定正传 书接上回

  9. 标定系列一、手眼标定基础介绍

    一.手眼标定的用途 在实际的自动化工业生产中,我们常需要机械手和相机配合实现物料定位.摆正等操作过程,手眼标定的目标就是实现相机坐标系和机械手坐标系的空间映射,通俗的讲相机相当于眼睛,机械手相当于手, ...

  10. 标定系列二、9点标定以及5点圆心标定过程(代码详解)

    一.九点标定过程 1.算法原理 9点标定就是通过9个点计算出相机坐标系到机械手坐标系下的一个仿射变换,(实际上空间中的二维平面的仿射变换只需要3个点就足够了).在实际应用过程中,需要获取像素下特征点的 ...

最新文章

  1. 老师,免费版的IDEA为啥不能使用Tomcat?
  2. 为什么全天坐在电脑前会让你精疲力竭
  3. Extjs可视化设计视频教程二
  4. 李子柒被坑,大厂生气了!字节跳动火速对杭州微念启动撤资
  5. eBPF.io eBPF文档:扩展的数据包过滤器(BPF)
  6. leetcode/力扣 贪心算法总结,代码随想录PDF下载
  7. React Native 触摸事件处理详解
  8. WinForm应用实战开发指南 - 快速开发一个WinForm应用系统
  9. 为你收罗100个学英语的网站!!!
  10. 产学研2.0:麦可思大学生就业据、企业创新调查年鉴(含产学研部分)、RD相关数据等
  11. 风口的猪-中国牛市(小米2016校招)
  12. 麻省理工学院公开课,信号与系统: (一) 引言
  13. php保存上传的音频文件在哪里,php - 如何在laravel中上传带有文件的音频? - 堆栈内存溢出...
  14. 巧用友盟UShare、ULink玩转裂变营销
  15. 【论文阅读笔记】Rethinking the Evaluation of Video Summaries 视频摘要评估
  16. (wake_lock)后台任务 - 保持设备唤醒状态
  17. 基于matlab的多路BPSK调制—为什么采样率=码元速率x一个码元周期内对码元的采样点数
  18. Flink Forward Asia 2019 总结和展望 - 附PPT下载
  19. 飞思卡尔微控制与MSCAN ----自学笔记
  20. 【计算机组成】计算机组成原理大纲含思维导图

热门文章

  1. Storm入门之第6章一个实际的例子
  2. 软件设计方案说明书的编写
  3. 如何建语料库_语料库-如何建设语料?如何建设语料库 爱问知识人
  4. Mac彻底卸载搜狗输入法,看这一篇就够了
  5. VMware ESXi 7.0 SLIC 2.5 macOS Unlocker LegacyCPU MOD iso 百度网盘 下载
  6. 聚来宝获商务部《媒体购物国家标准》制订单位 【2012-12-22 17:04:20】【来源:京华网】【字体:大 中 小】【颜色:红 绿 蓝 黑】【分享新闻】
  7. PMP考试通关宝典一
  8. 使用linux批量引物设计,【分享】超实用的引物设计操作,一看就学会
  9. uniapp 即时通讯_在uni-app使用极光IM 开发一个聊天室
  10. 掘金小册前端性能优化原理与实践读后总结