openpnp - 设备矫正的零碎记录

2023-12-17 10:59

本文主要是介绍openpnp - 设备矫正的零碎记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • openpnp - 设备矫正的零碎记录
    • 概述
    • 笔记
    • 设备内部不能有任何强干扰源
    • 相机就选100W像素的就行, 没有特殊要求
    • openpnp软件的选择
    • 视觉归位必须禁止
    • 轴的赤隙矫正不用做
    • 运行openpnp软件的计算机, 必须是台式机
    • 校验完成后, 数据占用的体积
    • 吸嘴校验时是采用外壁还是内壁?
    • 为了抓取元件时框住外形准确, 还是暂时使用2022/8/1的开发版
    • 框住元件外形时的尺寸精度选择
    • 校验时,最好上503的吸嘴
    • 底部相机高级矫正后相机十字线太密的问题
    • 昨天一天时间, 底部相机高级矫正都过不去. 今天从头做了一次设备标定, 就全部通过了. 总结一下区别, 下次如果要重新标定设备, 就这么做.
    • END

openpnp - 设备矫正的零碎记录

概述

设备矫正终于正常通过了…
从头进行多次设备校验, 都能一次性校验通过, 重复性很好.
补充一些矫正过程中的细节.

同学说我是过度矫正, 太不负责任了, 听的我浑身难受. 同学做的任何事情, 都是抱着凑合的态度来做事, 这对自己和别人都不好啊. 这样做事, 口碑都没了.
这次定制的设备, 主干是好的(丝杠, 伺服, 机械强度, 结构设计), 我确实很感谢.
细节的问题, 一定是有的(非标设备, 又是改型的第一台, 不可能细节都到位), 这是正常的, 大家都能理解. 对于细节问题, 大家一起来当作自己的事情来解决, 出主意, 想办法, 这才是正道啊.

设备自带的顶部相机高级矫正和底部相机高级矫正, 是用来矫正相机安装的垂直度补偿的(谁能保证机械部分安装是完全垂直的?), 如果矫正通不过, 那贴片精度根本就无从谈起.

用了4个月, 终于让设备到达了一个出厂设备应该有的正常状态, 味道有点苦.

笔记

设备内部不能有任何强干扰源

我的设备里面安装的真空泵, 是个强干扰源. 是设备矫正过程中的数据受到了干扰. 设备矫正过程时间很长, 真空泵启动的次数很多, 保不准就干扰到啥, 导致无法走完设备校验流程. 即使侥幸走完设备校验流程, 等正常贴片流程时, 还会有干扰.

后来拆掉了设备自带的真空泵, 用冰箱压缩机改了一个真空泵(openpnp - 用空调压缩机改真空泵), 消除了干扰源.

自己做的这个真空泵是否对贴片操作有干扰, 有待观察. 初步看, 是没有影响的.

相机就选100W像素的就行, 没有特殊要求

官方推荐, 就使用100W像素的彩色相机. 这种相机价格不到100RMB.
只要设备没有强干扰, 对相机的垂直度安装, 也没有特别高的要求. 肉眼可见的垂直就行. 有条件时, 可以拿三角尺大概齐看一下.

相机设置时, 去掉自动选项(e.g. 自动曝光, 自动白平衡)

openpnp软件的选择

官方最新的OpenPnP-windows-x64-develop_2023-03-15_00-30-21.460d8aa.exe, 有bug. 底部相机高级矫正完成后, 底部相机标尺分的太细了(密密麻麻的, 像毛毛虫一样). 导致将N1移动到底部相机上, 无论如何缩放, 都看不到正常图像.

我用的是官方的OpenPnP-windows-x64-develop_2022-08-01_18-07-09.2a36a8d.exe, 这个稳定版好使.
但是操作流程上, 需要注意, 必须将当前步骤需要的前置操作先用UI配置完, 否则会导致软件崩溃. (e.g. 矫正N2和相机的偏移时, 必须先设置N2的换刀区, 然后将N2吸嘴载入, 然后才去执行 N2和相机的偏移的矫正)

视觉归位必须禁止

如果使能了视觉归位, 再移动到主基准点, 次基准点时, 位置就偏差了不少. 再重新设置主/次基准点位置, 视觉归位后, 再移动到主/次基准点, 位置还是偏的.

不使能视觉归位, 一切都是正常的.
同学也跟我说, 不要使能视觉归位, 原因他没说.

轴的赤隙矫正不用做

这个点同学说的对, 对于丝杠设备, 齿隙矫正是不必要的.

我的设备X/Y轴是丝杠, 精度由伺服和丝杠来保证. 不用做齿隙矫正
Z轴是步进电机+皮带传动, 但是行程短(+/-20mm), 不用做齿隙矫正.
C1, C2是旋转轴, 也不用做齿隙矫正.

运行openpnp软件的计算机, 必须是台式机

应该和USB口的供电和通讯速率有关系. 应该独立的USB口更好.
笔记本上的独立的USB口不够用(一般就是2,3个, 还要插入鼠标).
台式机上的独立USB口够用, 至少能用4~8个.

如果使用笔记本+USB扩展坞(冰沙主板, 顶部相机, 底部相机), 不好. 发现顶部相机的图像, 过10秒钟, 就会闪一下, 图像不是一个连续完整的图像. 这个不连续, 不是受干扰引起的, 看起来更像通讯带宽不够引起的.
据我的经验, 如果发现有不正常的情况, 就要停下来, 将问题解决掉. 否则不知道会带来啥新问题.

当使用台式机时, 插入设备的3条USB线, 使用OpenPnP-windows-x64-develop_2022-08-01_18-07-09.2a36a8d.exe, 可以正常将校验流程走完. 最后一步是底部相机高级矫正, 当底部相机高级矫正完成后, 看底部相机标尺的分隔, 是正常的分隔(而不是密密麻麻的标尺分隔), 将N1移动到底部相机下, 可以看到正常图像. 缩放底部相机图像, 图像的缩放层级比矫正前多很多.

校验完成后, 数据占用的体积

一次性校验通过, .openpnp2目录体积约为400MB. 备份好.
以后可以观察正常贴片后, 多出哪些可以删除的文件.

吸嘴校验时是采用外壁还是内壁?

听同学说, 如果采用吸嘴外壁虽然也能校验过去. 但是对精度有影响.
还是用吸嘴内壁面积作为吸嘴校验的基准圆.
如果吸嘴内壁粘了东西, 导致内壁不是一个完整的圆形, 用3D打印机专用的吸嘴清理针将内壁清理干净.

为了抓取元件时框住外形准确, 还是暂时使用2022/8/1的开发版

在这里插入图片描述
2023/8/11的测试版, 框住元件外形时, 滑动条(阈值, 细节尺寸)拉大最右边才能正确框住元件, 如果出现元件抓偏的情况, 就没法再调节滑动条了, 导致无法准确框住元件.

但是2022/8/1的开发版要好很多, 正常情况下, 滑动条调节到中部偏右, 就能准确框住元件. 如果抓偏了, 还有调节的余地.

框住元件外形时的尺寸精度选择

默认是20%, 但是不能太大. 如果太大了, 就会使吸嘴上无元件时, 导致误判.
我这设备, size精度改为33%, 可以正确应对有吸嘴有元件和无元件的情况.

校验时,最好上503的吸嘴

校验用的陶瓷圆片如果尺寸比较大(e.g. 6mm直径),有可能502有时吸取不起来。这时, 因为标定还没完,也不敢换吸嘴。
所以, 校验时, 如果是双头的设备, 最好N1/N2都先上503的吸嘴。
或者,如果能买到直径3mm, 直径4mm的陶瓷圆片,可以用502吸嘴来标定设备。

底部相机高级矫正后相机十字线太密的问题

现在oenpnp不管哪个版本, 在底部相机高级矫正后, 都有可能出现底部相机十字倍率太高的问题.
这时, 将N1移动到底部相机中心内, 无论如何缩放, 都看不清N1的吸嘴.
这说明校验的不合适(也不是失败, openpnp显示校验成功了).

此时, 需要重新进行底部相机高级矫正.
先去设备配置树中, 底部相机最右边的配置. 将应用底部相机高级矫正的勾先去掉.
然后在openpnp中, 用按钮关闭设备.
关掉openpnp
打开openpnp, 归零.
然后再进行底部相机高级矫正, 从点了开始矫正的按钮后, 就千万别在操作了, 将鼠标和键盘就拿的远远的, 让openpnp自动校验.

最后校验成功的效果是, 底部相机十字缩放, 可以正常看到N1的吸嘴.

如果校验失败, 看看是不是N1的吸嘴被东西堵住了一部分, 不是圆形引起的.
用3D打印机通孔针将吸嘴清一下. 502吸嘴用0.35mm的针能正好通开.

昨天一天时间, 底部相机高级矫正都过不去. 今天从头做了一次设备标定, 就全部通过了. 总结一下区别, 下次如果要重新标定设备, 就这么做.

openpnp版本为2022/8/1

我是在上午至中午来做设备标定的, 光线比较好.

吸嘴N1装503, 吸嘴N2装502

设置N1/N2安全高度时, 直接Z轴归零, 然后设置归零高度为N1/N2的安全高度.

按照向导提示去做, 不多做超前的设置. 只有这步需要设置的参数才去设置.

相机窗口为H自动布局, 上面是顶部相机, 下面是底部相机. 图像都缩放到最大, 就不再动相机缩放比例. 就按照这个相机缩放来做所有的标定操作.

在需要目标识别的步骤时, 优先采用openpnp自己识别出来的对象绿圈, 不自己调整. 除非自动识别的不对, 才自己用绿圈手工圈目标.

在标定吸嘴和主/次校准点的偏移时, 要用到测试目标(陶瓷圆片, 官方对圆片没有特殊要求, 我这里采用4mm圆片, 厚度1mm, 要单独实验一下, 是否N1/N2上装的吸嘴都能将这个陶瓷圆片吸取到吸嘴尖端. 我实验的结果, 如果是6mm直径的圆片, 502就吸取不上来)

底部相机初次矫正时, 要选取503吸嘴尖端的内壁! (关键点 : 503吸嘴, 吸嘴尖端内壁)

底部相机高级矫正时, 时间比较长, 点击接受后, 任务开始, 然后将鼠标和键盘都拿的远远的.
底部相机高级矫正成功的判断: * openpnp不报错 * 操作完成后, 可以用肉眼看清吸嘴尖端(标定前后, 肉眼观察N1吸嘴, 视觉效果是差不多才对), 如果标定完成后, 底部相机十字太密了, 怎么缩放都看不清吸嘴, 这时就是底部相机高级矫正失败了(虽然openpnp没有报错提示)

因为openpnp软件有bug, 所以不是每次设备标定都能成功. 设备标定完成后, 做个备份. 以后都可以在干净的配置备份上干活.

END

这篇关于openpnp - 设备矫正的零碎记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为