openpnp - configure - 矫正里程碑
文章目录
- openpnp - configure - 矫正里程碑
- 概述
- 备注
- END
openpnp - configure - 矫正里程碑
概述
进入矫正里程碑了
查找问题

现在第一个问题是X轴的齿隙矫正
根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正.
正好开机后, 使能了视觉原点归零. 现在正好主基准点在顶部相机中心.
点击接受, 开始矫正.
矫正失败, 说subject not found
看了一下, 好像基准点位置变了.
将主基准点和次基准点的位置重新学习了一次. 保存配置, 重新上电, openpnp重新运行, 重新归零.
再矫正, 还是失败.
最后发现, 是openpnp有bug, 不能开启视觉原点归位. openpnp - configure - FIDUCIAL-HOME no matches found
重新矫正 X轴的齿隙矫正, 这次成功了.

查找问题

现在进行Y齿隙矫正.
先将顶部相机十字线罩住主基准点(进行X齿隙矫正完成后, 顶部相机和主基准点已经不在一个位置了), 然后开始矫正.
矫正成功

查找问题

现在矫正相机到N1的偏移.
按照说明, 将一个测试圆片(3~6mm直径, 1mm厚度), 放到主校准点上. 然后用相机罩住放在主校准点上的原片, 并用绿圈框住, 然后开始矫正.
测试圆片的样子

将圆片放到住基准点上.

用顶部相机罩住圆片, 并用绿圈框住

点击接受, 开始矫正.
N1吸嘴会不断的将圆片吸起来再方向, 移动到其他位置, 再回来吸住圆片. 等待10秒钟左右, 矫正完成.

查找问题

现在矫正顶部相机到N2的偏移
先将测试圆片重新摆到主基准点中心.
将顶部相机罩住测试圆片, 且用绿圈框住, 开始矫正

出现报错, 说N2没装吸嘴.
现在建立一个吸嘴, 装到N2上. 请参阅 openpnp - configure - 安装新吸嘴
重新查找问题, 矫正顶部相机到N2的偏移
N2不断的吸住圆片, 然后移动到其他地方, 再回来重复操作, 等待10秒左右, 矫正完成.

将圆片收起来, 用不到了.
查找问题

现在矫正N1吸嘴座上的NT1吸嘴.
点击Center Nozzle, 将吸嘴放到底部相机中心

用绿圈框住吸嘴外径.

接受, 开始矫正.
矫正不是每次都成功, 有时会弹出报错框如下:

出现这种情况, 可以用如下的方法处理:
- 将吸嘴用镜头纸擦干净点, 使视觉识别效果更清晰.
- 绿框调整一下, 多框住一些吸嘴外径图像
- 多矫正几次, 直到不弹出报错框, 直到矫正成功.
- 调整底部相机视觉设置(这个我还没去实验)
如果不报错的话, 10秒左右矫正成功.

查找问题

居然NT1吸嘴的参数被动了, 去改成非0(e.g. 3)

查找问题, 此问题消失.

矫正NT1背景优化方法, 采用Brighness and Key-Color, 这种适用于绿吸嘴.
手工移动, 将NT1吸嘴放到底部相机十字中心.
点击接受, 开始矫正

报错了, 试了几次也过不了.
改为Brightness方法, 点击接受, 开始矫正.

这种也过不去, 只能去调整底部视觉了.
好像底部视觉只能是吸取了原件之后, 才能调整. 那只能将这个问题拒绝了.
再查找问题,居然这个问题消失了, 晕倒…

现在矫正NT2吸嘴

先用吸嘴对中功能, 将吸嘴NT2和底部相机大致对齐, 然后再手工调整, 精确的用底部相机十字罩住NT2吸嘴.
再看一眼设备, 是否NT2吸嘴在底部相机中间.

用绿框罩住NT2吸嘴外径, 点击接受, 开始校准.

吸嘴矫正失败, 有报错提示. 只能将这个问题先拒绝, 以后再解决.

查找问题

现在除了里程碑之外, 还有顶部相机和底部相机的高级矫正.
这2个问题要拒绝, 是毒药, 不能吃.
我试过顶部相机高级矫正 能矫正成功, 但是矫正完之后, 用顶部相机看电路板都看不清了, 那要这个高级相机矫正还有啥用?
估计不是每个相机都支持高级矫正.

查找问题

进入生产里程碑了.
备注
openpnp - configure - 索引贴
END
相关文章:
openpnp - configure - 矫正里程碑
文章目录openpnp - configure - 矫正里程碑概述备注ENDopenpnp - configure - 矫正里程碑 概述 进入矫正里程碑了 查找问题 现在第一个问题是X轴的齿隙矫正 根据提示, 将顶部相机移动到主基准点上, 选择容差(就选用默认的0.025), 开始矫正. 正好开机后, 使能了视觉原点归零. …...
JavaScript高级程序设计读书分享之8章——8.2创建对象
JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 创建Object的实例 let person new Object(); person.name "Nicholas"; person.age 29; person.job "Software Engineer"; person.sayName function() { console.log(this…...
关于Could not build wheels for opencv-python-headless, which is...报错的解决方案
在通过最新版pip在线安装package:opencv-python-headless的时候,会产生报错信息,主要为 ERROR: Failed building wheel for opencv-python-headless ERROR: Could not build wheels for opencv-python-headless, which is required to insta…...
【K3s】第1篇 K3s入门级介绍及架构详解
1、什么是 K3s? K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进行了高度优化。K3s 有以下增强功能: 打包为单个二进制文件。使用基于 sqlite3 的轻量级存储后端作为默认存储机制。同时支持使用 etcd3、MySQL 和 PostgreSQL 作…...
Java学习--反射
1. 反射 1.1 反射的概述: **专业的解释(了解一下):**是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法ÿ…...
应用和迭代(名词解释)
应用和迭代是什么意思 应用: ● 一个完整的前端应用,一般用应用脚手架创建,包含路由,页面,状态等 ● 一个应用对应一个代码仓库 ● 应用的分组(业务中心,数据中台等)只用于逻辑分类&…...
HTMLCollection 和 NodeList 区别
Node 和 Element DOM 是一棵树,所有节点都是 NodeNode 是 Element 的基类Element 是其他 HTML 元素的基类,如 HTMLDivElement HTMLCollection 和 NodeList HTMLCollection 是 Element 的集合NodeList 是 Node 的集合 <body><p id"p1&qu…...
fork()出来一个进程,这个进程的父进程是从哪来的?
基本概念fork() creates a new process by duplicating the calling process. The new process is referred to as the child process. The calling process is referred to as the parent process.fork()是一个系统调用,不是一个函数。详细信息可以,man…...
结构体内存对齐
结构体相信大家已经了解过了,现在我们深入讨论一个问题,计算结构体的大小 也是很热门的一个考点:结构体内存对齐 先看看下面结构体的大小 typedef struct Test {char a;char b;char c; }Test; 很容易看出答案为3,结构体的大小位…...
【C语言进阶】指针进阶
今日所做之事勿候明天,自我所做之事勿候他人。 --歌德 目录 指针进阶(更深层次的理解): 一.字符指针 二.指针数组 三.数组指针 1.数组指针的定义: 2.&数组名和数组名: 3.数组指针的使用: 四.数组参数,指针参数 1.一维数组传参:…...
java:Class的isPrimitive方法使用
java:Class的isPrimitive方法使用 1 前言 java中Class类的isPrimitive方法,用于检查类型是否为基本类型。java虚拟机创建了int、byte、short、long、float、double、boolean、char这8种基础信息,以及void,一共9种。为这9种类型时…...
TCP 握手过程 三次 四次
蛋老师视频 SYN 同步 ACK 确认 FIN 结束 核心机制是确定哪些请求或响应需要丢弃 SYN、ACK、FIN 通过 1/0 设置开启/关闭 开启SYN后,报文中会随机生成 Sequence序号 用于校验 (应用可能发起多个会话,可以区分) 服务器的同步序…...
windows 下 安裝mysql 5.7.41 (64位) 超简单方式
文章目录1. 安装包下载2.安装步骤3. 服务卸载方式4. 配上 my.ini 常用配置1. 安装包下载 注意,截至2023年2月23日,MySQL所有版本不提供ARM芯片架构的Windows版本(8.0.12开始支持Red Hat系统的ARM版本),所以ARM架构的Windows无法安装MySQL&am…...
二叉树——二叉树的最近公共祖先
二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一…...
数据结构与算法基础-学习-14-线性表之串
一、串的定义由0-n个字符组成的有限序列。(n>0)二、串的相关术语1、子串串中任意个连续字符组成的子序列成为该串的子串。2、主串包含子串的串成为主串。3、字符位置字符在序列中的序号为该字符在串中的位置。4、子串位置子串第一个字符在主串中的位置…...
Mac 快捷键
目录 命令行快捷键 命令行快捷键 control d 命令行中代表发送EOF终止输入 control u 删除光标之前到行首的字符 control k 删除光标之前到行尾的字符(比较常用) control a 移动光标到行首(常用) control e 移动光标到行尾 control l 清屏,相当于clear命令 con…...
【微服务】-微服务环境搭建
目录 2.1 技术选型 2.2 模块设计 2.3 微服务调用 2.4 创建⽗⼯程 2.5 创建商品微服务 2.6 创建订单微服务 2.1 技术选型 持久层: SpingData Jpa 数据库: MySQL5.7 其他: SpringCloud Alibaba 技术栈 2.2 模块设计 --- shop-parent ⽗⼯程 --- shop-product-api 商品微服…...
IGKBoard(imx6ull)-ADC编程MQ-2烟雾传感器采样
文章目录1- ADC介绍2- MQ-2烟雾传感器介绍(1)工作原理(2)MQ-2应用电路3- MQ-2烟雾传感器硬件连接4- ADC驱动配置5- 编程查看当前浓度1- ADC介绍 ADC是Analog-to-Digital Converter的缩写,指模数转换器。真实世界的模拟…...
前端二面vue面试题总结
什么是 mixin ? Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。然后将 mixin 的内容合并到组件中…...
时间API在更新,传奇已经谢幕,但技术永远不死
(Bill Joy(左一),Vinod Khosla(左二),Andy Bechtolsheim(右二),Scott McNealy(右一) ) CSDN 博文征集活动(和日期相关的代码和bug):点击这里 各位 “big guys”,这篇博文…...
douyin-downloader:智能化解构无水印视频批量采集的技术方案
douyin-downloader:智能化解构无水印视频批量采集的技术方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代,如何高效获取高质量视频素材成为内容创作者、研究者…...
【含文档+PPT+源码】基于springboot的教师评价系统的设计与实现
项目介绍本课程演示的是一款基于springboot的教师评价系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项…...
Onekey:Steam游戏清单管理的自动化解决方案 | 玩家与开发者必备工具
Onekey:Steam游戏清单管理的自动化解决方案 | 玩家与开发者必备工具 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 当独立游戏开发者小林第三次因为手动复制Steam App ID出错而导致…...
【Godot】【整活】用 50 行代码做一个“抖音同款解压小游戏”(附源码)
最近短视频平台上经常能看到一种“解压小游戏”: 点一下 → 爆炸特效 💥 滑一下 → 连锁反应 🎯 满屏粒子 → 爽感拉满 😎 这些游戏的核心特点只有三个字: 👉 简单、直接、上头 今天我们就用 Godot 4,只用 约 50 行代码,实现一个“点击爆炸”的解压小游戏。 精…...
Mermaid CLI:从文本到图表的自动化解决方案
Mermaid CLI:从文本到图表的自动化解决方案 【免费下载链接】mermaid-cli Command line tool for the Mermaid library 项目地址: https://gitcode.com/gh_mirrors/me/mermaid-cli 引言:技术文档中的图表困境 在软件开发过程中,技术文…...
GB28181协议实战:WVP开源项目+ZLM流媒体服务联调配置详解
GB28181协议实战:WVP开源项目ZLM流媒体服务联调配置详解 在视频监控领域,GB28181协议作为国家标准协议,已经成为设备互联互通的重要基础。而将WVP(Web Video Platform)开源项目与ZLM(ZLMediaKit)…...
VLSI设计实战:手把手教你用SPICE模型搭建9种基础电路(附完整代码)
VLSI设计实战:手把手教你用SPICE模型搭建9种基础电路(附完整代码) 在集成电路设计的浩瀚宇宙中,SPICE模型就像工程师手中的瑞士军刀。我第一次接触SPICE仿真时,面对密密麻麻的网表文件完全不知所措——直到导师扔给我一…...
CentOS 7下PHP7.4编译安装全攻略:从依赖解决到常见报错处理
CentOS 7下PHP7.4编译安装全攻略:从依赖解决到常见报错处理 在Linux服务器环境中,PHP作为最流行的服务器端脚本语言之一,其安装方式通常有yum安装和编译安装两种选择。对于追求性能优化和功能定制的开发者来说,编译安装PHP7.4无疑…...
深入解析iOS中CUICatalog: Invalid asset name警告的解决方案与优化实践
1. 理解CUICatalog: Invalid asset name警告的本质 当你正在调试iOS应用时,突然在控制台看到一堆[framework] CUICatalog: Invalid asset name supplied: 的警告信息,这感觉就像开车时仪表盘突然亮起故障灯。作为开发者,我们首先需要理解这个…...
【板栗糖GIS】从KML到KMZ:GIS数据压缩、共享与ArcMap实战指南
1. KMZ与KML:GIS数据压缩与共享的黄金拍档 第一次接触KMZ文件时,我也被这个后缀名搞得一头雾水。直到有次野外测绘,队友发来一个带照片的谷歌地图范围文件,才真正体会到它的便利性。简单来说,KMZ就是KML的压缩版本&…...
