正运动控制器:视觉纠偏和找孔

一、用户主界面CCD参数设置

通过主界面CCD参数设置,学习如何操作计算相机中心与电批中心的偏移量,以及相机标定的功能。

 1、相机中心与电批中心的偏移量计算

1.1、在用户主界面点击CCD参数按钮,进入CCD设置界面。

    主界面

CCD参数设置界面

1.2、在CCD参数设置界面顶部区域设置相机相关参数。

如上图所示,可以知道当前扫描的相机厂商和相机曝光情况。首先点击【扫描相机】,将重新扫描相机,然后设置完当前相机的曝光参数后,最后点击【修改曝光】就可将输入框的数据设置到相机的曝光参数中,至此相机的参数设置完毕。

1.3、计算相机中心和电批中心的偏移量。

1.4、计算相机中心和电批中心的偏移量步骤:

    1.4.1、首先点击相机【连续采集】模式,然后点击【手动】按钮弹出手动调试机台移动的界面,移动机台让相机中心蓝色十字线对准机台上的某点(如上图i字母所示),最后点击【记录相机中心坐标】按钮,至此相机中心坐标位置记录完毕。

1.4.2、首先点击【手动】按钮弹出手动调试机台移动的界面,移动机台使电批中心对准之前相机中心对准的点(如上图所示的i点),然后点击【记录电批中心坐标】按钮,至此电批中心坐标位置记录完毕。

1.4.3、点击【计算偏移量】按钮,即可完成偏移量的计算。

●注意:在遇到对点不精确时,会使计算出来的偏移量不准确。此时可以返回用户主界面,点击【配方管理】按钮手动修改偏移量即可生效。

2、相机采集与相机标定

2.1、相机采集设置。

2.1.1、点击【采集】可采集一张照片,点击【连续采集】将连续采集照片,如果打开连续采集模式图片的显示界面会有一个蓝色的十字中心线。

2.1.2、点击【停止采集】可停止连续采集。

2.2、选择相机标定模式。

    点击【相机标定】可弹出相机标定方式选择界面,如下:

  2.2.1、选择自动标定模式。(推荐使用自动标定此标定方法操作更便捷)

自动标定步骤:

    A.点击【手动】按钮并打开相机的【连续采集】模式,手动控制机台移动,使Mark点/形状模板在相机视野的左上角区域如图二所示:(不同机台系统坐标系方向可能不一样,这时候可能需要移动Mark点/形状模板到右上角或者右下角之类的,只要保证自动标定过程中,机台自动移动九个位置时Mark点/形状模板始终在相机视野范围内即可)

 B.点击【0、显示ROI】按钮,弹出ROI选择矩形框,拖动绿色矩形ROI框将需要进行学习模板的区域框选起来,如图二所示:

    C.点击【1、创建形状模板】进入形状模板创建界面,如图二所示。

 形状模板创建步骤:

 A、点击橡皮擦功能“擦除”或“恢复”后,之后再点击【显示橡皮擦】按钮可以使用鼠标在画面中对着边缘轮廓进行擦除或者恢复,下图中黑色部分为被擦除,绿色部分为正在学习的形状模板。

B、修改完模板后,点击【确认修改】按钮,最后点击【返回上一级】按钮,返回自动标定设置界面。

C、根据Mark点/形状模板在哪个Y轴平台上面,在相机自动标定界面的标定步骤点击【2、选择Y轴:Y1/Y2】按钮进行切换。如果物体在Y1平台上面则不需要切换。

D、填写合适的X/Y轴间距(间距:机台自动走九个位置进行9次拍照学习形状模板/mark点时,机台XY每次拍照移动的间隔),然后点击【3、开始自动标定】开始标定,等待标定OK窗口弹出,标定OK后,最后点击【保存标定系数】进行保存。

●自动标定注意事项:首先所选择的Mark点要轮廓清晰,其次的话是9次拍照都要能拍到Mark点。至此,相机自动标定完成。

 2.2.2、选择手动标定模式。

    原理:输入九个mark点图像坐标和实际坐标的对应点,计算像素坐标系统与实际坐标系统的校准矩阵系数。

    首先在CCD参数设置界面采集一张九点标定板的图片,之后点击【相机标定】按钮,选择【手动标定】模式。

标定参数设置:

   标定类型:

    线性坐标系标定:这是一种两个坐标系之间的坐标转换关系的标定,当相机平面与拍照平面垂直且镜头无畸变时,可用此方法;

    非线性坐标系标定:这是一种两个坐标系之间的坐标转换关系的标定,当相机平面与拍照平面不垂直且镜头无畸变时,可用此方法;

    畸变标定:由于透镜设计的复杂性和工艺水平等因素的影响,实际透镜成像系统产生所谓的镜头畸变,常见的如径向畸变、切向畸变等,相机标定过程就是确定相机的几何模型和光学参数,当相机平面与拍照平面不垂直且镜头存在畸变时,可用此方法。

   对比度:增强图像边缘和局部对比度,以当前像素为中心,按照设定的比率和周围像素进行局部对比度增强运算。

   极性:获取九点标定版圆点的极性,非黑即白。

   最小面积:圆点最小像素面积范围。

   最大面积:圆点最大像素面积范围。

    手动标定步骤:

    A.点击标定步骤【1提取圆心像素坐标】按钮,提取采集的九点标定板图像上的九个圆心像素坐标。

 B.根据九点标定板在哪个Y轴平台上面,则在相机手动标定界面的标定步骤点击【2当前Y轴:Y1】按钮进行切换Y1/Y2轴。如果物体在Y1平台上面则不需要切换。

 C.点击【机台对点】,进入手动调试让机台带动相机中心蓝色十字标分别移动到相对应九点标定板的9个mark点,取点的实际坐标。

  机台取点操作步骤:

    首先点击【连续采集】按钮,操作机台带动相机中心让蓝色十字标移动到对准九点标定版的第一个圆心的中心位置。

    之后点击【取点1】,就会将第一个圆心的实际中心坐标自动写入相对应的实际坐标table中,并在手动标定界面将世界坐标X,Y的值显示出来。(需要多次手动操作相机中心依次移动到九个mark点的位置,分别获取九个mark点坐标)

    取完9个mark点的坐标后,最后点击【返回】按钮,返回手动标定界面。

 D.点击【4标定】开始标定,这时标定完成,最后点击【保存标定系数】进行保存。至此,相机手动标定完成。

E.相机手动标定操作视频。

二、视觉纠偏和找孔

上一节主要讲述用户主界面CCD参数设置,学习如何去计算相机中心与电批中心的偏移量,以及相机标定的功能。

    今天,正运动小助手给大家分享一下机器视觉锁付整体解决方案之视觉纠偏和找孔示教操做设置的步骤。

  1、视觉纠偏设置
 

    增加视觉纠偏是因为在视觉锁付过程中样品容易发生位置偏移,所以正运动技术配合机器视觉技术研发了一套自动纠偏系统,实现了对样品在进行锁付时样品产生位置偏移可实时定位,并且能及时将偏差信号反馈给执行元件,提高了锁付精度和工作效率。

    1.1、在用户主界面点击配方管理按钮,进入配方管理界面,接着点击MARK点设置,进入视觉纠偏设置界面。

【工件定位方式】:点击可切换视觉纠偏模式。

    【手动】:点击可弹出手动操作机台界面。

    【返回】:点击可返回到上一级。

    【纠偏拍照位】:当前治具上存在多个不同工件时,可点击切换当前创建模板的第几个工件,即纠偏拍照位,这时需要设置多个纠偏拍照位。(例如:当前治具上存在2个不同样品,需要进行锁付时,这时需要点击纠偏拍照位1,创建第一个样品模板,创建完毕后接着再点击纠偏拍照位2,创建第二个模板。单个mark点可点击创建4个不同的工件形状模板,双mark点可点击创建8个不同的工件形状模板)

    【拍照位纠偏数目】:填写当前创建的工件模板上有几个需要进行螺丝锁付的螺丝孔。

1.2、视觉纠偏模式介绍及设置步骤阐述。

    (1)双Mark点定位纠偏

    定义:如果样品尺寸较大,拍照视野兼容不下整个工件的所有需要进行锁付的螺丝孔时,则使用此功能。(需通过移动机台带动相机到两个拍照位进行采图)

设置步骤:

    A.首先点击【手动】按钮,移动机台,使机台移动到【Mark1拍照位】的位置(要求拍摄该位置下清楚成像的Mark点1),然后点击【采集】获取一张照片。

    B.点击Mark1拍照位的【显示ROI】按钮,弹出绿色的矩形ROI框,拖动矩形框框选需要创建的形状模板。

    C.点击Mark1拍照位的【创建模板】,对Mark1创建形状模板。

D.此时显示的绿色区域是模板的轮廓,如果需要修改可点击【显示橡皮擦】,通过橡皮擦对模板进行修改,修改完后点击【确认修改】进行保存,然后点击【返回上一级】。如果不修改直接点击【返回上一级】即可,至此模板创建纠偏拍照位1的模板创建完成。

    E.点击【手动】按钮,移动机台,使机台运动到【Mark2拍照位】的位置(要求拍摄该位置下清楚成像的Mark点2,即第二个形状模板),然后点击【采集】获取一张照片。接着再进行设置Mark2拍照位的形状模板,后面操作步骤可参照前面步骤B-C-D。至此双Mark点定位纠偏设置完毕。

    F.视频演示。

  (2)单Mark点定位纠偏。

设置步骤:

    A.先通过【手动】,移动机台,使机台运动到【Mark拍照位】的位置(要求拍摄该位置下清楚成像的Mark点),然后点击【采集】获取一张照片。

    B.点击【显示ROI】按钮,弹出绿色的矩形ROI框,拖动矩形框框选需要创建的形状模板。

    C.点击【创建模板】,对Mark点创建形状模板。

 D.此时显示的绿色区域是模板的轮廓,如果需要修改可点击【显示橡皮擦】,通过橡皮擦对模板进行修改,修改完后点击【确认修改】进行保存,然后点击【返回上一级】。

    E.如果不修改直接点击【返回上一级】即可,自此单点定位纠偏方式设置完成。

    F.视频演示。

    2、视觉找孔示教操作

视觉找孔示教目的是为了,寻找当前需要进行螺丝锁付的样品上需要进行锁付的螺丝孔。

【灰度值范围】:根据提取出螺丝孔的灰度值,进行设置采集图像的灰度值上下限,筛选出满足条件的螺丝孔。

    【孔面积范围】:根据获取螺丝孔的孔洞面积,进行孔洞面积范围上下限设定,筛选出满足条件的螺丝孔。

    【螺丝孔圆度】:设置螺丝孔的圆度,设置范围1~100%,设置数值越大,圆度越接近于圆。

    【对比度】:设置图像的对比度。

    【手动】:点击可弹出手动操作机台界面。

    【返回】:点击可返回到上一级。

    视觉找孔步骤:

    1.点击【手动】按钮移动机台,使机台移动到合适位置(可以采集到螺丝孔孔洞照片)。然后点击【1、记录拍照位】,根据当前拍照位的编号,点击相应拍照位的【取点】按钮,对拍照位进行记录。记录完后点击【返回】,返回上一级。(机台有几个拍照位,就相应取几个点)

2.然后点击【2、获取图像】,更新一下当前拍照位下的图像信息。

    3.设置灰度值范围,首先判断螺丝孔内灰度值范围:点击右侧的【灰度值提取器】图标,设置成提取模式,然后通过鼠标点击图片上的位置,将反馈对应像素点的灰度值。接着多取几个点判断出螺丝孔内外的灰度值范围,最后填写【找孔参数】里面的【灰度值范围】。

 4.设置孔面积范围:点击【显示ROI】将弹出绿色矩形框,移动到某个螺丝孔框选起来,然后点击【孔洞面积】按钮,计算出一个参考面积。最后根据参考面积数值,填写【找孔参数】里面的【孔面积范围】,从而实现找对应面积的螺丝孔。

 5.设置螺丝孔圆度和对比度:根据实际找孔情况填写【找孔参数】里面的【螺丝孔圆度】、【对比度】等参数。【螺丝孔圆度】作为螺丝孔的筛选条件之一,大于该圆度的螺丝孔才能保留。【对比度】是螺丝孔边界处螺丝孔内外灰度值的差值的绝对值,大于这个差值的才认为是螺丝孔的边界。

    6.点击【显示ROI】按钮,拖动绿色的矩形ROI框,将所有需要进行锁付的螺丝孔框选起来,最后点击【3、感兴趣区域】按钮,至此我们就在该矩形ROI框区域内,进行视觉找孔。

    7.点击【4、视觉找孔】即可根据找孔参数条件进行视觉找孔。

    8.点击【5、点位记录】弹出孔位排序界面,在此界面可对螺丝孔洞进行排序和删除。在锁付点排序那一列中输入0-10对孔进行排序,到时候锁付的时候会先锁数值小的孔,且如果相关孔的排序数值设置为0时则将不锁该孔。然后点击【确定】将孔位位置和排序数据更新到相关的配方文件中。至此,视觉找孔操作完成。

参考文档:

【机器视觉锁付整体解决方案】用户主界面CCD参数设置-正运动技术 (zmotion.com.cn)【机器视觉锁付整体解决方案】视觉纠偏和找孔示教操作-正运动技术 (zmotion.com.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/332318.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

显存碎片化与CUDA OOM解决

目录 一.显存碎片化与CUDA OOM解决 1.查看显卡内存容量 2.显存碎片化 (1)如何理解显存中“已分配”和“未分配”的内存块? (2)碎片化形成的原因? (3)如何减轻显存碎片化? 3.实…

空间注意力机制

第一步是沿着通道维度进行最大池化和平均池化,比如下面3*3的特征图,有3个通道。 第二步新特征图进行拼接并经过卷积调整通道数 第三步经过Sigmoid函数后乘到输入上 代码: class SpatialAttention(layers.Layer):def __init__(self):super(S…

Hibernate

主流ORM框架Object Relation Mapping对象关系映射,将面向对象映射成面向关系。 如何使用 1、导入相关依赖 2、创建Hibernate配置文件 3、创建实体类 4、创建实体类-关系映射文件 5、调用Hibernate API完成操作 具体操作 1、创建 Maven工程,在pom.xml中导…

Milvus Cloud 非结构化数据平台

从技术面来看,向量数据库底座自然而然向外延伸的产品包含: 1)向量提取,从非结构化数据中提取向量,这是向量数据库上游的工作,十分重要; 2)模型选择,选择正确的模型,能够更精准、更高质量地提取向量; 3)映射管理,即管理数据的本体和数据的语义层之间的映射,在…

【Linux杂货铺】进程通信

目录 🌈 前言🌈 📁 通信概念 📁 通信发展阶段 📁 通信方式 📁 管道(匿名管道) 📂 接口 ​编辑📂 使用fork来共享通道 📂 管道读写规则 &…

01.并发编程简介

1 什么是并发编程 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 2 为什么我们要学习并发编程? 最直白的原因就是因为面试需要,大厂的 Java 岗的并发编程能力属于标配。 而在非大厂…

【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)

这是我的第287篇原创文章。 一、引言 主成分分析(Principal Component Analysis, PCA)是一种常用的降维技术,它通过线性变换将原始特征转换为一组线性不相关的新特征,称为主成分,以便更好地表达数据的方差。 在特征重要…

【数据结构】二叉树的认识与实现

目录 二叉树的概念: 二叉树的应用与实现: 二叉树实现接口: 通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树 二叉树节点个数​编辑 二叉树叶子节点个数 二叉树第k层节点个数 二叉树查找值为x的节点​编辑 二叉树前序遍…

全网讲的最详细的Docker镜像分层存储原理

先说结论,容器镜像分层存储图示 欢迎关注 实验环境准备 当前实验docker版本24.0.7如下,当前docker版本使用overlay2机制存储镜像 Client: Docker Engine - CommunityVersion: 24.0.7API version: 1.43Go version: go1.20.10…

Redis第18讲——Redis和Redission实现延迟消息

即使不是做电商业务的同学,也一定知道订单超时关闭这种业务场景,这个场景大致就是用户下单后,如果在一定时间内未支付(比如15分钟、半小时),那么系统就会把这笔订单给关闭掉。这个功能实现的方式有很多种&a…

《Ai学习笔记》-模型集成部署

后续大多数模型提升速度和精度: 提升速度: -知识蒸馏,以distillBert和tinyBert为代表 -神经网络优化技巧。prune来剪裁多余的网络节点,混合精度(fp32和fp26混合来降低计算精度从从而实现速度的提升) 提…

【Week-R1】RNN实现心脏病预测,基于tensorflow框架

文章目录 一、什么是RNN?二、准备环境和数据2.1 导入数据 三、构建模型四、训练和预测五、其他(1)sklearn模块导入报错:ModuleNotFoundError: No module named sklearn(2)优化器改为SGD,accurac…

SVM兵王问题

1.流程 前面六个就是棋子的位置,draw就是逼和,后面的数字six就代表,白棋最少用六步就能将死对方。然后呢,可以看一下最后一个有几种情况: 2.交叉测试 leave one out: 留一个样本作测试集,其余…

基于51单片机的超声波液位测量与控制系统

基于51单片机液位控制器 (仿真+程序+原理图PCB+设计报告) 功能介绍 具体功能: 1.使用HC-SR04测量液位,LCD1602显示; 2.当水位高于设定上限的时候,对应声光报警报警&am…

【ai】pycharm安装langchain 相关module

pycharm module install 【Python学习 】一篇文章教你PyCharm如何快速安装module 【python】pycharm如何安装python的模块包版本 2024.1.2 RC2 找到当前的虚拟项目 找到解释器 我现在配置为专门为openai-start 准备的3.10 版本+ 号可以找到模块

leetcode-顺时针旋转矩阵-111

题目要求 思路 1.假设现在有一个矩阵 123 456 789 2.我们可以根据19这个对角线将数据进行交换&#xff0c;得到矩阵 147 258 369 3.然后将矩阵每一行的数据再翻转&#xff0c;得到矩阵 741 852 963 代码实现 class Solution { public:vector<vector<int> > rot…

设计模式深度解析:分布式与中心化,IT界两大巨头“华山论剑”

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨IT界的两大巨头交锋✨ &#x1f44b; 在IT界的广阔天地中&#xff0c;有两座…

JavaFX安装与使用

前言 最近学习了javafx,开始时在配置环境和导包时遇到了一些麻烦,关于网上很多方法都尝试过了,现在问题都解决了,和大家分享一下我是怎么实现javafx的配置,希望大家可以通过这个方法实现自己的环境配置! &#x1f648;个人主页: 心.c &#x1f525;文章专题:javafx &#x1f49…

嵌入式实时操作系统笔记1:RTOS入门_理解简单的OS系统

今日开始学习嵌入式实时操作系统RTOS&#xff1a;UCOS-III实时操作系统 本次目标是入门RTOS&#xff0c;理解多任务系统...... 本文只是个人学习笔记&#xff0c;基本都是对网上资料的整合...... 目录 STM32裸机与RTOS区别&#xff1a; 裸机中断示例&#xff1a; RTOS对优先级…

9.Docker网络

文章目录 1、Docker网络简介2、常用基本命令3、网络模式对比举例3.1、bridge模式3.2、host模式3.3、none模式3.4、container模式3.5、自定义网络 1、Docker网络简介 作用&#xff1a; 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接进行网络通信而不受到影…