openpnp - 解决“底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题“
文章目录
- openpnp - 解决"底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题"
- 概述
- 笔记
- 问题现象1
- 问题现象2
- 原因分析
- 现在底部相机和吸嘴的位置偏差记录
- 修正底部相机位置
- 现在再看看NT1在底部相机中的位置
- 开机归零,看看是否能通过所有校验
- 配置备份很重要
- END
openpnp - 解决"底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题"
概述
和厂家同学讨论,他连轴的齿隙校正都不做。
经过和他的多次讨论,和自己的实验体会,才知道,因为他是做完设备初步校正后,就开始贴片。当然不需要做齿隙校正。
但是,只做设备的初步校验,设备的贴片精度和JOG控制精度要差很多。
必须做到底部相机高级校正之后,才能将设备的贴片精度和JOG控制精度提高到设备本身能达到的最高等级。
如果想让底部相机高级校正通过,就必须将齿隙校正做了,UI上有提示。
做了底部相机高级校正之后,和贴片相关的机械零件(顶部相机,底部相机,X, Y, Z, C1, C2)的安装偏差,就都被openpnp提供的补偿修正了。
我这边遇到一个新问题(以前也遇到过,不过不是每次都出现) : 底部相机高级校正后,用openpnp归零,home点校验没问题。但是2个吸嘴的自动开机校验都失败了。
以前遇到这种情况,因为自己是小白,也不知道咋处理好,只能很蠢的重新标定设备,一次标定就3个小时。标定完,这个问题也不一定会消失。
可怕的是,一旦增加了吸嘴,在NT1/NT2上装的不是设备标定时用的吸嘴的时候,还有可能会出现开机归零后的吸嘴校验失败问题。
现在用了openpnp很长时间了,一直在研究和体会openpnp的各种报错的现象。现在遇到问题,都能具体问题具体分析,确定解决问题的正确方向,然后确定出正确的具体解决方法,然后实验搞定。
被openpnp折腾怕了,在设备机械/电气零件都不移动的情况下,会在标定的每个重要节点结束后,退出openpnp, 做配置备份。
这个问题是可以重现的,这问题就好找了。
笔记
问题现象1
这个情况是相机曝光太低了,图像识别不出吸嘴。如果人眼就分辨不出吸嘴, opencv也不能分辨。
将底部相机曝光调节成既能看清吸嘴,又不至于过亮的值,我这里是-8.
这个曝光值不确定,和环境光的强弱有关系。白天和黑天的效果有点不一样,有可能是我的底部相机灯光不是很强引起的。
现在再用openpnp归零试试,是否能开机校验全部(一个home点,2个吸嘴)通过。
问题现象2
home点校验过了。
但是2个吸嘴还是校验失败
原因分析
在设备的初步校验中,有一步是底部相机初步校验。
就是将NT1移动到底部相机十字的中间开始的校验。
这步会记录底部相机的位置。
我很确定的记得,当时,是很准确的讲NT1吸嘴内部的中间对准了底部相机十字。
现在明显底部相机十字和吸嘴中心,差了不少。
出现这种情况的原因: 因为过了底部相机高级校验,有补偿存在,那么底部相机初步校验时的位置,应该发生了改变。
现在要尝试在当前情况(底部相机高级校正通过后)下, 修正底部相机的位置(通过顶部相机中心看到的底部相机中心要重合),然后再试试开机归零
现在底部相机和吸嘴的位置偏差记录
将吸嘴选为NT1, 然后在底部相机视图上右击,选择将当前吸嘴移动到底部相机中心。
将标尺刻度换为0.1mm, 可以看出,吸嘴中心和底部相机十字中心确实有偏差。
以底部相机十字为参考点,吸嘴X方向偏差为0.3mm, Y方向偏差0.5mm
修正底部相机位置
关掉顶部相机灯光,打开底部相机灯光。
用JOG面板,在顶部相机视图中,将顶部相机移动到底部相机的中心。
这个对齐必须在顶部相机中对齐,否则就不对了,因为吸嘴的偏移和顶部相机是固定的。
对齐时,用标尺不太好看,最好将光标改为圆圈,改合适的圆圈大小,可以套住顶部相机中看到的底部相机镜头的圆环。
这样对齐,比较准。
打开设备设置 => 相机 => 底部相机 => 位置
点击"学习"按钮,记录底部相机在顶部相机坐标中的位置,然后应用参数。
现在再看看NT1在底部相机中的位置
确认选择当前吸嘴是NT1
将NT1用底部相机的右键菜单功能, 移动到底部相机中心。
可以看到,现在NT1吸嘴内部中心区域已经在底部相机中心附近了,虽然还不是很精确,但是只要底部相机十字在吸嘴的内部区域中间就可以。
现在看看NT2和底部相机十字的位置关系。
现在底部相机十字也在NT2吸嘴内部区域中间。
这说明,底部相机的中心位置已经调整成功了,且定位精确性还可以。
开机归零,看看是否能通过所有校验
可以看到,归零后,home点校验成功。
吸嘴校验时,底部相机十字也始终在吸嘴内部区域的边缘位置移动,没有校验失败时哪种离的很远的感觉。
2个吸嘴都自动校验成功了。
且在校验完成后,可以看到底部相机十字最后停在NT2的中心。
那说明,这个问题的解决思路是对的,思路很清晰。
到此,这个问题(底部相机校正成功后, 开机归零时,吸嘴自动校验失败)被成功快速的搞定 😛
配置备份很重要
修正后的这个配置,就可以作为后续操作的基础配置了,备份一下不吃亏。
在openpnp中关机,退出openpnp, 进行配置文件的压缩备份。
备份的好处多多。
如果以后出现问题,就可以回到以前的重要节点上实验,看看问题是否存在。
如果改错了配置,也可以通过配置文件的比对,大致确定不对在哪里。
如果不做备份,万一配置文件坏了或不对了(自己配置失误或手误改了参数),就得重新标定设备,白白的浪费时间。
END
相关文章:
openpnp - 解决“底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题“
文章目录 openpnp - 解决"底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题"概述笔记问题现象1问题现象2原因分析现在底部相机和吸嘴的位置偏差记录修正底部相机位置现在再看看NT1在底部相机中的位置开机归零,看看是否能通过所有校…...
Python字幕滚动:为视频添加专业级动态效果!
Python实现由下向上滚动字幕 在数字媒体和编程领域,动态文本效果总能吸引观众的注意力。其中,滚动字幕是一种常见的视觉效果,经常用于视频、演示文稿和网页中。在Python中,我们可以通过多种方式来实现滚动字幕效果,比…...
Linux 系统中,将网络配置从 DHCP 改为静态 IP的几种方法
Linux 系统中,将网络配置从 DHCP 改为静态 IP 可以通过几种不同的方法来实现,下面是几种常见的方式: 方法一:使用 connman(Connection Manager) 如果你已经在使用 connman 管理网络,可以通过修…...
【jellyfin】解决Edge 浏览器播放 jellyfin 的 hevc/h265 视频“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”错误
文章目录 问题原因分析解决方法 问题 在 windows 系统自带的 Edge 浏览器里网页播放 jellyfin 媒体库里的 hevc/h265 编码的视频时,总是提示 该客户端与媒体不兼容,服务器未发送兼容的媒体格式,无法播放视频。 原因分析 Edge 浏览器默认不…...
企业管理系统设计思路——毕业论文设计
根据企业对人事管理的要求,本系统可以实现以下目标: l 操作简单方便、界面简洁美观。 l 在查看员工信息时,可以对当前员工的家庭情况、培训情况进行添加、修改、删除的操作。 l 方便快捷的全方位数据查询。 l 按照指定的条件对员工进行统…...
Android 默认去掉URL网络校验,设置不进行网络校验
Android 系统连接WIFI显示网络连接受限分析处理_安卓13类原生系统网络受限-CSDN博客 package\modules\NetworkStack\src\com\android\networkstack\util\NetworkStackUtils.java public static final String CAPTIVE_PORTAL_MODE "captive_portal_mode"; //0 不…...
Python | Leetcode Python题解之第515题在每个树行中找最大值
题目: 题解: class Solution:def largestValues(self, root: Optional[TreeNode]) -> List[int]:if root is None:return []ans []q [root]while q:maxVal -inftmp qq []for node in tmp:maxVal max(maxVal, node.val)if node.left:q.append(n…...
Java泛型:类型安全的艺术
Java泛型是JDK 5中引入的一项重要特性,它为Java带来了类型安全的机制,极大地提升了代码的可读性和可维护性。泛型允许程序员在编译时检测非法类型,从而避免了运行时的ClassCastException异常,使得代码更加健壮和可靠。 泛型的基本…...
Redis 淘汰策略 问题
前言 相关系列 《Redis & 目录》(持续更新)《Redis & 淘汰策略 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 淘汰策略 & 总结》(学习总结/最新最准/持续更新)《Redis &a…...
技术成神之路:设计模式(二十二)命令模式
相关文章:技术成神之路:二十三种设计模式(导航页) 介绍 命令模式(Command Pattern)是一种行为设计模式,允许将请求(命令)封装为对象,从而使您可以使用不同的请求、队列或记录请求日…...
facebook账号类型有哪些?
Facebook的主要账号类型 在Facebook上,用户可以基于不同的目的和需求创建不同类型的账号,主要包括以下几类: 1. 个人账号 这是最常见的Facebook账号类型,每个用户都可以创建一个个人账号,分享生活动态、与朋友互动、…...
Flutter鸿蒙next 中如何实现 WebView【跳、显、适、反】等一些基础问题
✅近期推荐:求职神器 https://bbs.csdn.net/topics/619384540 🔥欢迎大家订阅系列专栏:flutter_鸿蒙next 💬淼学派语录:只有不断的否认自己和肯定自己,才能走出弯曲不平的泥泞路,因为平坦的大路…...
机器视觉:9点标定的原理与实现
一、什么是标定 标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素,如下图所示,10mm的距离内有222个像素,那像素坐标和实际的毫米坐标就有个比例关系了。 二、九点标定 9点标…...
《深度学习》 了解YOLO基本知识
目录 一、关于YOLO 1、什么是YOLO 2、经典的检测方法 1)one-stage单阶段检测 模型指标介绍: 2)two-stage多阶段检测 二、关于mAP指标 1、概念 2、IOU 3、关于召回率和准确率 4、示例 5、计算mAP 一、关于YOLO 1、什么是YOLO YOL…...
什么是Kubernetes?K8s基础与工作原理
什么是 Kubernetes(K8s)? Kubernetes,通常简称为 K8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源容器编排平台。它由 Google 于 2014 年开源,后来交由 CNCF(Cloud Native Computin…...
HTML5新增属性
1、HTML5 1.1 新增布局标签 header:用于定义文档或者section的页眉;footer:用于定义页面或section的底部信息;nav:用于定位页面上的导航链接部分;article:用于定位文档或者页面中的独立部分&a…...
软件开发术语(E开头)---持续更新
e—business 电子商务EAI (enterprise application integration)企业应用程序集成(整合)EBCO (empty base class optimization) 空基类优化(机制)Edge and Vertex Connectivity 割边/割点 Edge Coloring 边染色 EDI (Dlectronic Data Interchange)电子数据交换effic…...
多机器人编队避障算法(1)
文章目录 前言一、基于感知的避障1.基于感知的Epuck2避障思路(理论)2.基于感知的Epuck2避障实现(现实)3.距离传感器结合红外传感器修复避障Bug4.问题5.代码逻辑图 二、基于人工势场力的避障1.基于人工势场的Epuck2避障思路(理论)2.基于人工势场力的Epuck2避障实现(现实) 三、两…...
【网站项目】SpringBoot401超市收银系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
KD树详解:多维数据高效搜索的利器
摘要 在处理多维数据时,如何高效地进行搜索与查询成为一个关键问题。KD树(K-Dimensional Tree)作为一种高效的多维数据结构,广泛应用于计算机视觉、机器人导航、数据库检索等领域。本文将详细介绍KD树的基本概念、结构、构建算法…...
从裸机到70B大模型2:基础设施设置与脚本
从裸机到70B大模型2:基础设施设置与脚本 随着深度学习技术的不断发展,神经网络模型的规模逐渐扩大,从单个模型到大型70B模型,所需的计算资源和存储空间也在不断增加。为了训练这些大型模型,我们需要一套高效的基础设施…...
shodan4,挂黑网站查找,弱口令网站搜索
myip参数 shodan myip(查看自己的出口IP,哪个地址链接的公网)挂黑网站查找 我们今天看一看找一下,有些已经被黑的网站好吧,就是利用shodan查看一下哪些网站已经被黑了。 shodan search -limit 10 -fields ip_str,port http.title:hacked b…...
spring boot 整合Knife4j
项目依赖配置 在本项目中,我们使用了以下关键依赖,以支持 Spring Boot 和 API 文档生成。 1. Spring Boot 版本 为了构建一个可靠和高效的 Spring Boot 应用程序,我们使用以下父级依赖: <parent><groupId>org.springframework.boot</groupId><art…...
攻防世界的新手web题解
攻防世界引导模式 1、disabled_button 好,给了一个按钮,第一道题目就不会做 看的wp<input disabled class"btn btn-default" style"height:50px;width:200px;" type"submit" value"flag" name"auth&q…...
【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线
在昨日晚间的原生鸿蒙之夜暨华为全场景新品发布会上,华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布。 华为官方透露,截至目前,鸿蒙操作系统在中国市场份额占据 Top2 的领先地位,拥有超过 1.1 亿 的代码行和 6…...
pytest 单元框架里,前置条件
1.使用 setup 函数级的(setup_function、teardown_function)只对函数用例生效,而且不在类中使用类级的(setup_class、teardown_class)在类中使用,类执行之前运行一次,类执行之后运行一次 类中方…...
数字IC后端实现 | Innovus各个阶段常用命令汇总
应各位读者要求,小编最近按照Innovus流程顺序整理出数字IC后端项目中常用的命令汇总。限于篇幅,这次只更新到powerplan阶段。有了这份Innovus常用命令汇总,学习数字IC后端从此不再迷路!如果大家觉得这个专题还不错,想继…...
MySQL全文索引检索中文
MySQL全文索引检索中文 5.7.6版本不支持中文检索,需要手动修改配置 ft_min_word_len 1 ,因为默认配置 4 SHOW VARIABLES LIKE ft%; show VARIABLES like ngram_token_size;配置 修改 MySQL 配置文件 vim /etc/my.cnf在配置的 [mysqld] 下面添加**ft_…...
pikachu靶场-Cross-Site Scripting(XSS)
sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting pikachu靶场的安装刷题记录反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss盲打xss之过滤xss之htmlspecialcharsxss之href输出xss之js输出 pikachu靶场的安装 刷题记录 反射型xss(get) …...
在数据库访问中,使用localhost、127.0.0.1和IP地址有什么差异
在数据库访问中,使用127.0.0.1和IP地址(在本地环境中通常指的是局域网IP或环回地址)的速度差异,实际上是非常微小的,甚至在很多情况下可以忽略不计。不过,为了更深入地理解这个问题,我们可以从以…...
东莞做网站ab0769/泉州百度开户
第11章 易用性测试一、用户界面测试用于与软件程序交互的方式称为用户界面或UI。软件的UI各不相同,但是从技术上讲,它们与计算机进行同样的交互——提供输入和接受输出。二、优秀UI由什么构成优秀UI具备的7个要素:符合标准和规范、直观、一致…...
兰州做网站公司/站点推广是什么意思
每年都有无数年轻程序员,加入软件行业。他们在学校里学过编程,但是对这个行业的现实一无所知。Patrick McKenzie 是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。 原文:https://www.kalzumeu…...
建个可以注册会员网站多少钱/b2b平台有哪些网站
一、光盘重装系统步骤1、启动计算机,屏幕上出现 Press Del to Enter BIOS Setup,按住“DEL”。2、出现BIOS设置窗口:点击“Advance BIOS Features”,点击“enter”。3、点击“First Boot Derive”,点击“Page Up”或“…...
电子工程设计网站/seo网络推广案例
KMP 暴力算法是在失配时,回溯子串指针,从头开始匹配。而 KMP 失配时尝试更有进取心地往前走,掠过那些不可能匹配的情况。往前移动的长度由一个「部分匹配表」来确定。 (图片来自 CLRS《Introduction to Algorithms, 3rd Ed》1&am…...
公司网站如何做百度收录/网络营销应用方式
Centos7安装Python3的方法由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到。输入Python命令,查看可以得知是Python2.6.6版本[rootxxx]# pythonPython 2.6.6 (r266:84292, Aug 18 2…...
丰台b2c网站制作价格/小红书搜索关键词排名
1.1 函数指针 1.1.1 基本概念 程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。 我们可以将函数的入口地址赋给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以调用这个函…...