上下相机对位,上下贴合,上下相机映射对位场景案例

2023-10-30 14:37

本文主要是介绍上下相机对位,上下贴合,上下相机映射对位场景案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 场景描述
    适用场景:上下相机映射对位场景,机械手在固定上料位置取料,然后放置到料盘内/贴合
    到目标位置;当上料与料盘位置都会出现偏差时可采用上下相机映射对位。
    在这里插入图片描述
    案例场景目标:
    位置目标:将图 1 中物料的 Point 点贴合到图 2 中料盘的 Point2 点;
    姿态目标:将图 1 中物料的 Line 边和图 2 中的 Line2 边对齐。
    在这里插入图片描述
    限制条件:该应用对机构有一定限制,需确保机构的 XYR 一体,上相机安装在 R 轴上(可随 XY 一起平移,随 R 轴一起旋转)或相机静止;下相机静止安装。
  2. 定位引导视觉流程
    整个应用分为标定、示教和生产三部分,需依次进行。
    2.1 标定(步骤一)
    标定目的:本场景涉及到两个相机坐标系和一个机构坐标系,为了统一坐标系需做两次坐标
    系标定,将坐标系统一到机构坐标系。
    标定方式:
    1)下相机做十二点标定:工具中心与旋转中心(一般为法兰中心)共轴的定位引导场景,可采
    用九点标定;工具中心与旋转中心不共轴,此时可采用十二点标定;
    2)上相机和下相机做映射标定:有标定板可用标定板映射,无标定板可用物料做相机映射;
    下相机十二点标定示意图如下:
    在这里插入图片描述
    上下相机映射标定示意图如下:提取四组一一对应的特征点
    在这里插入图片描述
    2.1.1 搭建下相机标定流程
    在这里插入图片描述
    1)图像特征点提取
    高精度模板匹配:粗定位;
    边缘交点:精定位,获取图像点和角度信息。
    在这里插入图片描述
    2)物理坐标获取
    可使用接收数据和协议解析,解析出通信发送的机械手实时物理坐标。
    3)平移旋转标定模块
    标定基本参数设置如图所示:
    在这里插入图片描述
    标定类型:共轴选择平移标定;不共轴选择平移旋转标定;
    相机模式:根据实际场景选择,自由度建议使用默认选项第二个自由度(缩放、旋转、纵横
    比、倾斜以及平移);
    平移次数默认 9 次;旋转次数十二点标定可设为 3。
    2.1.2 创建通信触发
    可在通信管理添加通信设备,全局触发建立触发事件,实现 PLC 通信触发视觉流程;详细协议需与 PLC 工程师协商。
    在这里插入图片描述
    2.1.3 下相机平移旋转标定流程
    1)标定的操作步骤:
    [1]. 机械手吸取标定片或物料移动至下相机视野内。
    [2]. 机构带着相机按 Z 字形等间距平移 9 次,平移中保持角度固定;每移动到位一次,需
    通讯发送物理坐标(如:C1,5,5,0)给视觉流程并触发标定流程拍照。
    [3]. 回到中心点(一般为标定第五点,第十一点和第五点重合),机构带着相机顺/逆时针
    旋转 3 次,旋转过程中机械手 XY 坐标保持固定。
    整体标定轨迹如下图所示:
    在这里插入图片描述
    2)标定结果查看(出现异常需重新标定)
    标定轨迹:如图所示为标定轨迹,轨迹是否存在波动(建议等步长,方便通过轨迹排查特征提取是否正确)。
    在这里插入图片描述
    标定状态:标定状态 1 表示成功,0 表示失败需重新标定。
    平移像素平均误差和旋转像素平均误差:根据实际精度要求判断,一般建议在一个像素以内。
    角度旋转一致性:表示图像坐标系与机械手坐标系的旋转一致性,1 表示旋转一致,-1 表示旋转方向相反,需旋转机构查看旋转一致性是否判断准确,若判断错误需调整参数重新标定。
    3)标定状态检测正常则生成标定文件。
    2.1.4 上下相机映射标定流程
    上下相机映射标定步骤:
  1. 放置标定物料于上相机视野内:物料要求上下相机拍摄不同面时能同时拍摄到至少四个不共线的特征点;
    在这里插入图片描述
  2. 上相机在拍照位拍照;
  3. 移动机械手抓取物料,记录此时的物理坐标(为示教物理点);
  4. 抓取物料平移到下相机视野内,下相机拍照;
  5. 搭建上下相机映射标定流程:
    流程如图所示,左右分别为上下相机采集的一一对应的图像特征点,用相机映射模块得到两个相机的映射矩阵。
    在这里插入图片描述
  6. 生成映射标定文件。
    2.2 示教(步骤二)
    示教目的:通过示教建立目标检测物的基准像素坐标和物理坐标之间的关系。记录映射标定时吸取物料时的物理坐标(示教物理点),填入单点映射对位模块。
    在这里插入图片描述
    2.3 生产(步骤三)
    2.3.1 下相机拍照流程
    1)下相机拍照流程如图所示
    在这里插入图片描述
    2)将下相机提取的对象特征点和直线角度传给全局变量以便上相机位使用。
    2.3.2 上相机拍照流程
    1)上相机拍照位确认
    上相机拍照位坐标最好与标定第五点拍照位一致,可产生 X/Y 偏移,但拍照姿态(相机旋转角度)必须保持不变。
    上相机拍照位与标定时的工作距离必须保持不变。
    2)上相机拍照方案搭建:如图所示为上相机拍照流程,生产时需保证上相机提取的对象特征点与下相机提取的目标图像特征点一致,直线查找方向一致。
    在这里插入图片描述
    3)单点映射对位模块配置:对象像素点订阅下相机传送到全局变量的特征点;目标像素点订阅上相机提取的特征点;目标直线起点终点订阅上相机提取的直线起点终点,加载上下相机标定的标定文件。
    在这里插入图片描述
    2.3.3 实际生产流程
    1)机械手抓取物料移动到下相机拍照位,触发下相机拍照流程;
    2)机械手移动到上相机拍照位,触发上相机拍照流程:单点映射对位模块结果分为相对坐标及绝对坐标,绝对坐标则为机构抓取的位置。使用格式化模块订阅单点映射对位模块输出的坐标值,然后使用发送数据模块将结果发送给机械手,机械手按照绝对坐标可实现引导定位。
    在这里插入图片描述

这篇关于上下相机对位,上下贴合,上下相机映射对位场景案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308587

相关文章

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Python get()函数用法案例详解

《Pythonget()函数用法案例详解》在Python中,get()是字典(dict)类型的内置方法,用于安全地获取字典中指定键对应的值,它的核心作用是避免因访问不存在的键而引发KeyError错... 目录简介基本语法一、用法二、案例:安全访问未知键三、案例:配置参数默认值简介python是一种高级编

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛