openpnp - 在openpnp中单独测试相机

news2024/11/26 20:22:05

文章目录

    • openpnp - 在openpnp中单独测试相机
    • 概述
    • 笔记
    • 测试工装
    • 相机镜头顶部盖子到目标的距离
    • END

openpnp - 在openpnp中单独测试相机

概述

底部相机的位置不合适, 重新做了零件,准备先确定一下相机和吸嘴的距离是多少才合适。
如果在设备上直接实验,那么拆装调整相机挺麻烦的。
准备直接在电脑上接一个USB相机,然后用openpnp来直接测试相机。等调试好相机和吸嘴的距离了,再直接安装到设备上用。
openpnp用的视觉实现是opencv, 组件为openpnp-capture-java-0.0.22.jar。
如果直接用openpnp-capture-java-0.0.22.jar,还得写测试程序,或者去找第三方的相机测试程序。
就在想,能不能直接在openpnp中测试相机呢?
试了一下,可以啊,这就方便多了。

笔记

将.openpnp2删掉。
打开openpnp, 会新建默认的模拟设备环境,这时就可以模拟操作openpnp贴片的任务。
建立相机,先择自己实际接入电脑的相机。
将相机参数设置为openpnp默认的,然后测试速率,能达到30FPS左右,就符合openpnp的要求了。
在这里插入图片描述
在相机视图,找到自己新建的openpnp相机,这时就可以用实际的相机支架和测试工装(固定相机支架,28电机和吸嘴之间的位置关系),来调整相机和吸嘴的最佳距离和相机焦距了。
在这里插入图片描述
这样就可以脱离实际设备进行相机的单独测试,但是用openpnp操作相机的流程和实际设备一致。
只要将相机的安装位置和焦距调整到最佳,就可以直接装回设备上。
这种方法和在设备上实际调试相机,要方便很多,可以节约很多时间,且调整相机位置和焦距时很方便。

测试工装

为了脱离设备单独测试相机模组,需要做一个工装,让相机和吸嘴在一条轴上,且距离可调,底部相机灯光和设备一样。
将测试工装搭好了,这就和实际设备用吸嘴和底部相机时差不多了.
这样就可以轻松的测试相机模组安装的理想垂直位置和相机焦距了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相机镜头顶部盖子到目标的距离

并不是随便摆一个距离,调焦就能看清目标的。
必须是一个确定的距离,然后再调焦,才能将目标看的最清晰

摄像头像素镜头焦距(mm)镜头顶盖到目标的距离(mm)
1600W3.020

END

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

联动香港、成都、武汉三所高校!“2024 深圳国际金融科技大赛”校园行圆满结束

在金融科技蓬勃发展的当下,人才培养成为推动行业前行的关键。为推进深圳市金融科技人才高地建设,向高校学子提供一个展示自身知识、能力和创意的平台,2024 FinTechathon 深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛重磅开启&#xf…

【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库

实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法,认识界面,了解其两个基本操作系统文件,并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作;学习有关数据库的基本操作,包括&#xff1a…

LeetCode:83. 删除排序链表中的重复元素 II(java) 保留一个重复的

目录 题目描述: 代码: 第一种: 第二种: 题目描述: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2]示例 2&#xff1a…

【快速上手】pyspark 集群环境下的搭建(Standalone模式)

目录 前言 : 一、spark运行的五种模式 二、 安装步骤 安装前准备 1.第一步:安装python 2.第二步:在bigdata01上安装spark 3.第三步:同步bigdata01中的spark到bigdata02和03上 三、集群启动/关闭 四、打开监控界面验证 前…

SpringSecurity6+OAuth2.0 从入门到熟练使用

文章目录 简介1、快速入门1.1 准备工作我们先要搭建一个SpringBoot工程① 创建工程 添加依赖② 创建启动类③ 创建Controller1.2 引入SpringSecurity2、 认证2.1 登录校验流程2.2 原理分析2.2.1 SpringSecurity完整流程2.2.2 认证流程详解概念速查:2.3 解决问题2.3.1 思路分析2…

Qt报错QOCI driver not loaded且QOCI available的解决方法

参考 Linux Qt 6安装Oracle QOCI SQL Driver插件(适用WSL) 安装 QOCI 插件完成后运行 Qt 项目报错: qt.sql.qsqldatabase: QSqlDatabase: QOCI driver not loaded qt.sql.qsqldatabase: QSqlDatabase: available drivers: QMIMER QPSQL QODBC…

【AI工作流】FastGPT - 深入解析FastGPT工作流编排:从基础到高级应用的全面指南

文章目录 一、工作流编排概述二、FastGPT的节点类型1. 基础功能插件(1) 文本输出(2) 功能调用(3) 工具(4) 外部调用(5) 其他 2. 系统插件3. 团队插件 三、工作流中的流向结语 在当今快速发展的人工智能领域,工作流编排的能力已成为提升用户体验和应用效率的关键因素…

SQL 常用语句

目录 我的测试环境 学习文档 进入数据库 基础通关测验 语句-- 查 展示数据库; 进入某个数据库; 展示表: 展示某个表 desc 查询整个表: 查询特定列: 范围查询 等于特定值 不等于 介于 特定字符查询 Li…

python在word的页脚插入页码

1、插入简易页码 import win32com.client as win32 from win32com.client import constants import osdoc_app win32.gencache.EnsureDispatch(Word.Application)#打开word应用程序 doc_app.Visible Truedoc doc_app.Documents.Add() footer doc.Sections(1).Footers(cons…

Centos环境下安装docker

本文演示离线版安装用于没有网络环境的系统 在线版安装可参考以下链接 https://www.runoob.com/docker/centos-docker-install.html 一、docker离线安装 1、下载docker离线安装包 docker下载地址: Docker版本下载 选择版本 下载后上传至服务器 百度网盘下载…

Java 中的 Map 集合及其子类详解:HashMap 和 TreeMap

Java 中的 Map 集合及其子类详解:HashMap 和 TreeMap 在 Java 编程中,Map 是一种用于存储键值对的集合结构。Java 提供了多种 Map 实现类,其中最常用的是 HashMap 和 TreeMap。 双列集合 在Java中,双列集合(也称为映…

CoCode助力志晟信息成功通过CMMI五级复评!

热烈祝贺河北志晟信息技术股份有限公司在近期CMMI(能力成熟度模型集成)评估中,再次以卓越表现顺利通过CMMI成熟度五级的复评。 CoCode助力志晟信息通过CMMI五级 2024年9月1日至10日,CMMI评估组对志晟信息管理体系及其应用运行情况…

AD 授予委派full control权限后,部分用户无法unlock

文章目录 问题描叙根因解決方法: 问题描叙 通過委派方式授予被委派用戶full control 权限后,部分用户unlock是灰色显示: 根因 对比能正常unlock与无法unlock的用户,发现繼承無法unlock的用戶沒有"enable inheritance&quo…

css实现边框双色凹凸半圆

整体效果如下图&#xff1a; 结构代码&#xff1a; <div classline-outside-wrap><div classwrap><img src../img/avatar2x.png/><div classcontent-wrap></div></div></div> 内凹框实现&#xff1a; .content-wrap{width:100%;he…

算法深度剖析:前缀和

文章目录 前言一、一维前缀和模板二、二维前缀和模板三、寻找数组的中心下标四、除自身以外数组的乘积五、和为 K 的子数组六、和可被 K 整除的子数组七、连续数组八、矩阵区域和 前言 本章将深度剖析前缀和&#xff0c;以及总结前缀和模板。 前缀和是一种在算法和数据处理中…

关于我、重生到500年前凭借C语言改变世界科技vlog.14——常见C语言算法

文章目录 1.冒泡排序2.二分查找3.转移表希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 根据当前所学C语言知识&#xff0c;对前面知识进行及时的总结巩固&#xff0c;出了这么一篇 vlog 介绍当前所学知识能遇到的常见算法&#xff0c;这些算法是…

特定领域的Embeddings模型微调全面指南

假设你正在为医学领域构建一个问答系统。你希望确保当用户提出问题时&#xff0c;系统能够准确地检索相关的医学文章。但是通用的嵌入模型可能在处理医学术语的高度专业化词汇和细微差别时会遇到困难。 这时候&#xff0c;微调就能派上用场了&#xff01;&#xff01;&#xf…

视频推荐的算法(字节青训)

题目&#xff1a; 西瓜视频 正在开发一个新功能&#xff0c;旨在将访问量达到80百分位数以上的视频展示在首页的推荐列表中。实现一个程序&#xff0c;计算给定数据中的80百分位数。 例如&#xff1a;假设有一个包含从1到100的整数数组&#xff0c;80百分位数的值为80&#…

安卓13默认连接wifi热点 android13默认连接wifi

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 有时候我们需要让固件里面内置好,相关的wifi的ssid和密码,让固件起来就可以连接wifi,不用在手动操作。 2.问题分析 这个功能,使用普通的安卓代码就可以实现了。 3.代…

详解RabbitMQ三种队列类型

RabbitMQ 是一个强大的消息队列系统&#xff0c;它提供了多种队列类型以满足不同的使用需求。本文将探讨三种主要队列类型&#xff1a;经典队列、仲裁队列和流式队列&#xff0c;并讨论它们的区别和选型建议。 经典队列&#xff08;Classic Queues&#xff09; 简介&#xff…