openpnp - 软件版本的更新记录(机器翻译)

news2024/9/26 1:16:43

文章目录

    • openpnp - 软件版本的更新记录(机器翻译)
    • 概述
    • openpnp更新历史记录
    • 机翻了一个版本, 大概齐参考一下.
    • END

openpnp - 软件版本的更新记录(机器翻译)

概述

卡在底部相机矫正上, 底部相机的硬件安装已经很精确了, 基本能排除是硬件问题.
现在问题定位, 大概率是openpnp软件问题.
准备在调试openpnp软件源码之前, 再用替换法试试哪个openpnp稳定发行版本可以解决我手头的问题.
如果都有这个问题, 那就去单步看看具体啥问题.
如果某个版本之前是可以解决我手头问题, 就说明底部相机矫正不能每次都通过, 是那个版本之后带来的问题.
openpnp稳定发行版本并不多, 都下载回来了.
在这里插入图片描述
去openpnp官网下载了软件主要的更新记录. 大概能知道2021年末到2022年初, openpnp更新了一次底部相机矫正的功能.
在这里插入图片描述

我是准备从openpnp1.0开始, 实验到最新的稳定版, 应该花个几天, 就能确定是软件有问题, 还是我的硬件真有问题. 说不通的.

咱也是程序员, 知道有时改问题, 即使不改那里, 也会影响那里. 只是测试的人, 可能测试不到.
也有可能软件功能确实测试了, 但是由于硬件不同, 没能覆盖我这种类似的硬件.

openpnp更新历史记录

官网的更新记录是一个xml文件 => updates-develop.xml
里面有每个平台(win, linux, mac, 一共有7个平台版本)版本的更新记录, 将文件拆分成7个小文件, 比较了一下, 除了xml头不一样, 其他更新内容都一样.

有效的更新记录2640行.

机翻了一个版本, 大概齐参考一下.

此文件按时间顺序列出 OpenPnP 的主要或重大更改。这不是一个完整的更改列表,只有那些可能直接感兴趣或影响用户的更改列表。

2022-12-02
用户界面翻译改进
用户界面 (UI) 文本字符串在 OpenPnP 的大部分部分中被外部化,以便翻译成其他语言。提供了俄文翻译。感谢VSSavin。

邀请用户/翻译人员以他们的语言提供翻译。😄

另请参阅:https://github.com/openpnp/openpnp/wiki/Getting-Started-with-Eclipse#translations-in-eclipse

2022-07-12
视觉合成 - 多镜头底部视觉
添加视觉合成,即多镜头底部视觉,其中零件的多个角可以单独对齐,然后组合成整个零件对齐。特征:

对齐大于相机视图的包。
对齐船体形状不是矩形的包。
在朝内的角上对齐。
通过在相机中心进行检测来提高精度,避免光学错误。
另请参阅:https://github.com/openpnp/openpnp/wiki/Vision-Compositing

2022-06-10
参考磁带进纸器旋转
胶带中的 ReferenceStripFeeder 旋转已适应 EIA-481 行业标准,其中胶带 0° 方向是链轮孔位于顶部的那个方向。磁带中的部件旋转从该基线确定。其他馈线类已经如此。

以前,ReferenceStripFeeder的胶带方向为0°,链轮孔在左侧。反映EIA-481行业标准的Wiki文档实际上是错误的。 现有供料器会自动更新为新方向。

另请参阅:https://github.com/openpnp/openpnp/wiki/ReferenceStripFeeder#rotation-in-tape

2022-02-23
管道参数
管线现在可以将基本舞台属性公开为参数,可以直接从视觉设置进行控制,而无需转到管线编辑器。可以使用 可自定义的滑块控制这些参数。在调整期间,摄像机视图显示 受影响阶段的预览和/或管道最终结果。这些解决方案使调优管道变得更加 容易。请参阅维基:

https://github.com/openpnp/openpnp/wiki/Exposed-Pipeline-Parameters

2022-02-19
背景校准
可以启用底部相机背景的自动校准,以驱动底部视觉管道中背景的颜色键控去除。在喷嘴尖端校准期间,校准是在喷嘴尖端上没有部件的情况下完成的(用于跳动补偿)。

用于敲除Juki喷嘴尖端(和类似)的绿色键色的MaskHSV平台是 完全受控的。故障排除功能可检测不良背景条件 ,例如缺少阴影、喷嘴尖端反射等。请参阅维基:

https://github.com/openpnp/openpnp/wiki/Nozzle-Tip-Background-Calibration

2022-01-23
高级相机校准
相机设置和校准已得到改进,无需手动设置相机 翻转、旋转、位置、每像素单位缩放和镜头 失真补偿。此外,相机倾斜现在也得到了纠正。请参阅维基:

https://github.com/openpnp/openpnp/wiki/Advanced-Camera-Calibration
https://github.com/openpnp/openpnp/wiki/Advance-Camera-Calibration—Camera-Mounting-Errors
2021-12-30
视觉设置
对齐(底部视觉)和基准定位器视觉设置(包括管线) 现在存储在单独的视觉设置实体中,这些实体可以分配给零件、包和 默认的机器设置视觉预设。

如果未在这些级别中的任何一个上分配设置,则该设置将从更常规的级别继承。 该系统允许更高效、更集中地管理视觉设置。 视觉设置现在也可以在GUI上用于所有这些级别。提供快速专业化 和泛化功能。OpenPnP 库存设置和管道始终 存在于中央列表中,可以分配和复制。

具有旧零件设置的现有配置将自动迁移。恰 好相等的所有设置和管道组合将统一到一个新的视觉设置中。 将建立继承,其中视觉设置在部件或包之间是通用的。

新的表格链接功能(在菜单中)可用于将所选零件链接到其包装、 进纸器和视觉设置。选择一个,会自动跨选项卡选择另一个。

2021-11-07
机器校准与问题和解决方案
问题和解决方案系统已大幅扩展,涵盖自动 机器校准。请参阅维基:

https://github.com/openpnp/openpnp/wiki/Vision-Solutions
https://github.com/openpnp/openpnp/wiki/Calibration-Solutions
旋转模式/支持有限的铰接喷嘴
喷嘴上的新旋转模式可以优化不同机器类型的旋转,包括那些具有有限(< 360°)铰接的机器类型。请参阅维基:

https://github.com/openpnp/openpnp/wiki/Nozzle-Rotation-Mode
百叶窗喂食器 OCR 和二维码
盲式进纸器现在支持 OCR 或 QR 码自动零件发现。作为副作用,ReferencePushPullFeeder现在也支持QR码。请参阅维基:

https://github.com/openpnp/openpnp/wiki/BlindsFeeder#ocr–qr-code
2021-05-03
更好的问题和解决方案
问题和解决方案现在根据分步机器制造过程的里程碑提供指导 。首先是基本配置,稍后 才建议使用高级功能。当回到早期的里程碑进行故障排除或机器重新配置时,甚至会收回有潜在问题的解决方案。

“问题和解决方案”UI 已提升为顶级选项卡。它甚至在选项卡上显示一个 指示器,以提醒用户检测到的问题。解决方案现在可以采用 多项选择和其他输入来增强解决方案。喷嘴设置现在只需点击几下即可完成。

喷嘴尖端更换器 Z 校准、自动对焦、零件高度、进料器、位置感应
这增加了喷嘴尖端更换器 Z 校准。用于校准喷嘴,以便能够 精确接触探头部件高度、进料器高度和位置。还为 启用了底部视觉的零件添加了基于自动对焦的零件高度感应。

手动和自动喷嘴/喷嘴尖端/插槽Z校准,用于精确的多喷嘴调平和喷嘴尖端长度校准。
底部视觉使用自动对焦来确定零件高度(如果未知)。
接触探针喷嘴提供即时零件高度探测/学习、进料器 Z 校准、贴装高度校准。
2021-03-20
(另一个)OpenCV 升级和 Arm7(32 位)
OpenCV 软件包已更新到具有 Arm7 自动构建功能的新版本。这允许OpenPnP与Raspberry Pi 3及更低版本一起工作。请注意,openpnp-capture 尚未移植到 Arm7 中,因此使用 OpenPnPCaptureCamera 将不起作用,但 OpenCvCamera 和其他人应该。支持捆绑在OpenPnP的所有常用Linux下载中。

https://github.com/openpnp/opencv/pull/71

谢谢@falkena!

2021-03-13
深色模式和现代、可自定义的主题
OpenPnP 现在支持 FlatLAF 外观,这为应用程序带来了更现代的外观。有了这个,我们还获得了对黑暗模式的支持,以及许多其他主题。

要更改主题,请访问菜单 -> 窗口 ->自定义外观。

有关主题和自定义的详细信息,请参阅 https://github.com/JFormDesigner/FlatLaf,并 https://github.com/openpnp/openpnp/pull/1151 拉取请求。

谢谢@SG-O的这次很好的升级!

OpenCV 升级和 Arm64 支持
OpenCV 软件包已更新到具有 Arm64 自动构建功能的新版本。这是最后一个与Arm64不兼容的原生库,这意味着OpenPnP现在与Raspberry Pi 4(具有64位操作系统)和Jetson Nano兼容。支持捆绑在OpenPnP的所有常用Linux下载中。

喂料器回收
@doppelgrau的这项新功能在“丢弃”按钮旁边增加了一个回收按钮,如果进纸器支持该操作,则允许您将拾取的零件放回进纸器中。当前支持:条带、托盘、高级松散、松散、百叶窗和旋转托盘进纸器。

https://github.com/openpnp/openpnp/pull/1143

谢谢@doppelgrau!

创建足迹模板图像最小图像
添加了布尔值以禁用零件周围的默认边框。

只需在舞台设置中启用该复选框,边框就会消失。 警告:仅适用于对称部件。身体不在中心的零件,一侧将有边框,另一侧将被切断。

https://github.com/openpnp/openpnp/pull/1152

谢谢@doppelgrau!

2021-03-12
创建足迹模板映像阶段改进
如果未向载物台提供封装,则 CreateFootprintTemplateImage CvPipeline 阶段现在可以从 Nozzle.Part 自动创建封装。

https://github.com/openpnp/openpnp/pull/1140

谢谢@doppelgrau!

定向旋转矩形舞台改进
现在,您可以在 LoosePartsFeeder 和其他高级视觉进纸器中为此载物台指定对齐角度,帮助定位。

https://github.com/openpnp/openpnp/pull/1138

谢谢@MatSpy!

底部视野中的零件尺寸检查选项
在底部相机部件对齐期间检查包装尺寸的选项。将测量尺寸与预期尺寸与预期尺寸与零件可配置公差进行比较。这可用于检测错误拾取、加载错误的零件、墓碑等。

https://github.com/openpnp/openpnp/pull/1135

谢谢@crashmatt!

2021-02-04
新型热敏电阻线性化执行器
添加了一个新的执行器,即热敏电阻到线性传感器执行器。该执行器将经过热敏电阻转换处理的传感器读数(如冰沙洁具)转换为线性读数。如果您使用冰沙并将线性传感器连接到热敏电阻输入端,则可能有助于线性化输出。

有关更多信息,请参阅 https://github.com/openpnp/openpnp/wiki/ThermistorToLinearSensorActuator!

2021-01-14
带配置文件的执行器 / 内置摄像头照明 / 摄像头自动化
可以在OpenPnP中实现能够以各种方式控制摄像机灯的执行器。

执行器可以配置为特定的(写入)值类型(布尔值、双精度值、字符串值、 配置文件)。
非布尔执行器可以配置为特定的类型ON和OFF值,因此可以使用布尔语义触发它们。
当机器状态更改时,执行器可以自动进行状态初始化或启动: 启用、驻留、禁用。
重新设计了 GUI 以适应值类型。
HttpActuator 并 扩展为支持所有值类型。ScriptActuator
新的执行器值类型配置文件引入了“多选”执行器。
轮廓型执行器可以控制多个目标执行器(包括自身)。
每个选择配置文件控制一组要写入目标 执行器的特定值。
为相机添加了灯光执行器。轮廓型致动器是控制 多通道光(如RGB灯或其他选择性/角度光源)的理想选择,或 为标量光强度提供预定义的步长值。
基于执行器的光触发可以通过多种方式进行配置。
管道 阶段可以将光致动器值设置为参数/覆盖。ImageCapture
摄像机实现在广播、预览 FPS 等方面已统一。
完全支持 0 fps,其中仅显示实际的视觉捕获。
改进了切换台摄像机,使其仅广播正确切换的频道。
可选自动相机预览:活动相机在单个预览中自动切换。
各种相关的错误修复。
2020-12-29
重试错误修复和改进
这是改进 OpenPnP 中的重试和错误处理的一系列更新中的第一个。 此更改的目标是修复 OpenPnP 中已有但无法正常工作的功能,并另外恢复(并修复)OpenPnP 1.0 中存在的功能。

Feeder.feedRetryCount 现在可以正常工作:如果由于 feed() 方法引发异常而失败,则源将重试。这最常发生在可以检测到部件不足的进纸器中,例如条形和托盘进纸器。如果馈送器的所有重试都失败,则会禁用它。
已实施 Feeder.pickRetryCount:如果拾取失败后的真空检查,将重试拣选和真空检查,而不执行其他馈送。由于以前根本没有实现,但设置在那里,这可能会破坏使用百叶窗的进料器或喷嘴,因此在此版本的初始加载时,该值将重置为 0。 如果要使用新功能,可以进行设置。
Part.pickRetryCount:此新重试值控制部件的进料拣选序列重试的次数。 默认值为 0。设置此值可以在一个馈送器被禁用时自动尝试其他馈送器。
2020-12-12
高级运动控制
更简单的机床轴、轴转换及其分配给喷嘴、相机等的全 GUI 设置 。(没有更多的机器.xml黑客)。
使轴映射、齿隙补偿、视觉归位、非垂直度补偿等功能可用于 所有类型的驱动程序(以前只是 GcodeDriver)。
允许混合类型的多个驱动程序。
更好地控制速度系数:正确控制平均速度,包括 加速/减速阶段。50%的移动需要两倍的时间,无论移动的短短还是长。
模拟抖动控制,以减少振动,防止零件在喷嘴上打滑等。
实验性:运动混合。
OpenPnP 和(多个)控制器之间的异步通信。解耦和 平行化操作。
运动规划的图形诊断作为基于事实的机器优化的基础。
问题和解决方案系统,用于自动解决特定于机器的设置和迁移 问题,启用高级功能,生成适应固件的Gcode命令和正则 表达式。
2020-06-23
执行器 API 更改(非中断)
添加了 Actuator.actuate(String),以及 GcodeDriver 中的支持。这使得从计算机对象实现发送完全自定义命令变得容易。这是一个可选的非中断性 API 更改。
2020-05-18
相机慢跑恢复
通过单击并拖动任何地方来点动相机的旧方法已恢复。 当添加相机旋转慢跑时,它被删除了,因为新的拖动手柄似乎是必要的,但事实证明这不是必需的,新版本远没有那么方便。
2020-05-17
发起人和关于对话框
“关于”对话框现在包含一个“制作者名单”选项卡,用于感谢项目的发起人。还包括一个 SPONSORS.md 文件,显示在对话框中。
现在,当 MacOS 集成不可用时,“关于”菜单项将正确添加到 MacOS 上的“帮助”菜单中。
安装程序改进
示例文件现在由安装程序安装在用户的 Documents/OpenPnP 目录中,而不是安装在安装目录中。这修复了一个问题 #836,即在 Windows 上加载示例文件的用户会遇到写入错误。
Install4J 已从版本 6 更新到 8。
2020-04-29
高级相机稳定
相机自动建立现在显示在GUI上,它得到了显着扩展,以允许在图像处理和建立量化中使用不同的方法。提供图形诊断 和带有运动“热图”的图像回放。

高级部件开/关检测
真空传感部分打开/部分关闭检测得到了显着扩展,以允许差异真空水平评估和自适应停留时间。提供图形诊断。

2020-04-20
改进了执行器读取错误
执行器读取用于 OpenPnP 中的许多子系统,此功能往往难以配置。以前,错误配置的执行器读取通常会导致难以调试的神秘 NullPointerException。该系统现已得到改进,因此执行器将报告三个最常见的错误:缺少命令、缺少正则表达式和不匹配的响应。

此外,在任何情况下,actuatorRead() 都不会再返回 null。它将返回一个有效的字符串(可能为空)或抛出描述性错误。

Gcode驱动程序测试框架
添加了一个新的GcodeServer类,以及许多基于GcodeDriver的小型测试。 GcodeServer 与测试系统相结合,可以对执行器等复杂功能进行端到端的自动化测试。

2020-04-12
开放简历升级
OpenCV 已升级到 4.3.0-0。这是一个重大更新(针对OpenCV),可能会引入新问题。这是获得 Java 10+ 支持的必要步骤。

请注意,由于维护困难,对 32 位 Linux 的支持已从 OpenCV 包中删除。如果您使用的是 32 位 Linux,请告知它。

2020-04-02
真空和吹扫水平
您现在可以在包装上指定真空度和排污量。这些值用于在拾取(真空度)和放置(吹扫水平)时触发执行器。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/pull/965。

谢谢托马斯!

2020-01-22
相机慢跑更新
已经实施了一种新的相机点动系统,该系统允许旋转和更高的XY精度。有关详细信息,请参阅 https://www.youtube.com/watch?v=0TvqQBkTGP8。

2019-12-03
新供料器:参考杠杆进纸器
这适用于进料器,其中杠杆由执行器(通常是头部)推动以推进零件。它是由ReferenceDragFeeder制成的。添加了“零件间距”字段,并将根据需要执行多个进给操作。

2019-11-24
重大变更:真空阀和泵驱动改造
真空阀和泵驱动现在使用执行器建模,并且
独立于pick()和place()功能以及驱动程序。这些更改完善和统一了机器模型,并简化了新功能的开发。新的 ContactProbeNozzle通过在pick()和place()中添加接触探测来证明这一点,这允许在零件,馈线和PCB的Z高度处理中具有更大的公差和坚固性 。

真空执行器不再仅用于读取真空压力水平,还用于驱动阀门(布尔值)。
喷嘴的 pick() 和 place() 方法将根据需要驱动阀门执行器。
同时,喷嘴的pick()和place()方法现在专用于它们的名称所暗示的内容,使真空切换独立于它们。
因此,Nozzle pick() 或 place() 现在不仅可以驱动真空, 还可以正确子类化/覆盖它们以扩展功能。
反过来,阀门执行器现在独立用于测试零件在放置后是否关闭 。不再使用“空中”pick() 和 place() 循环,避免了 pick() 和 place() 不仅仅是真空切换时的意外行为。
用户还可以使用机器控制的“执行器”选项卡独立测试阀门执行器 ,并模拟和确定零件开/关真空读数。
一个新的泵执行器被添加到头部。它将根据需要驱动泵。
pick() 和 place() 方法依次控制泵执行器,即只要 喷嘴上至少有一个部件,泵就会打开。
用户还可以使用机器控制执行器选项卡来测试泵执行器。
所有拾取()、放置()、泵和阀门驱动都将从驱动程序中删除。
因此,PICK_COMMAND、PLACE_COMMAND、PUMP_ON_COMMAND PUMP_OFF_COMMAND在 GCodeDriver 中被弃用。它们将不再工作,但 GUI 中提供了用于将 G 代码迁移到执行器的片段(这些条目将在 2021 年底删除)。
反过来,新的执行器在适当的ACTUATE_BOOLEAN_COMMAND片段中定义其G代码 。
用户必须添加新的泵执行器并重新访问真空读取执行器并 在那里迁移其 G 代码。
为了简化现在更重要的执行器的即插即用,它们现在可以由 组合框分配,而不是通过松散的名称引用来分配。
作为这些变化的第一个好处,新的ContactProbeNozzle对ReferenceNozzle进行了子分类, 并增加了一个接触式探头,以检测喷嘴尖端何时击中目标,即当pick()与馈线中的部件接触时,或者当place()与喷嘴上的部件撞击PCB时(Liteplacer具有这样的探测喷嘴)。这允许对零件、馈线和 PCB 的 Z 高度差异具有更大的公差和鲁棒性 。用户可以更快(即更粗略地)设置 Z 高度。
更多信息、指南和屏幕截图可以在 PR: https://github.com/openpnp/openpnp/pull/859#issue-290920991
参考条形进纸器视觉错误修复
ReferenceStripFeeder 中一个长期存在的错误已在 https://github.com/openpnp/openpnp/pull/919 年由 @tjanuszewski 修复。如果您过去一直在努力实现 ReferenceStripFeeder 上的愿景,尤其是在较长的条带上,请重新尝试一下,因为此修复程序似乎极大地改善了它的功能。

感谢您@tjanuszewski找到并解决此问题!

2019-06-13
新脚本事件
为选取和放置事件添加了几个新的脚本事件:

喷嘴.拣选前
喷嘴后拾取
喷嘴.之前的地方
喷嘴后置
2019-06-12
切换台摄像机和摄像机接口更改
此更新添加了一个名为切换台摄像机的新摄像机类型。此摄像机是一种虚拟摄像机,允许您让多个虚拟摄像机共享同一物理捕获设备。这是商用桌面拾取和放置计算机上的常见配置,其中单个捕获卡从两个模拟摄像机捕获图像。串行命令用于切换当前正在流式传输的摄像机。

总的来说,相机界面也做了一些小的改动。添加了两种新方法:

Camera.captureForPreview():捕获图像并应用转换,但不执行脚本或照明事件。
Camera.captureRaw():从捕获设备返回原始图像,不进行任何转换。
第一个主要用于未来的扩展 - 在不久的将来,将对摄像机流的工作方式进行更改,以提高性能并使摄像机对上下文更加敏感。

第二个是专门为新的切换台摄像机添加的,以便它可以从源摄像机获取原始图像。这种新方法还用于清理和整合各种相机实现中的相机代码。

通常,如果您没有使用切换台摄像机,则不会注意到此更新的任何差异。如果您发现相机存在新问题,请报告问题。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/SwitcherCamera。

2019-06-10
全球喷嘴尖端更新
喷嘴尖端系统已经过大修,因此喷嘴尖端属于机器,而不是每个喷嘴。这消除了为每个喷嘴重复喷嘴尖端的需要,并且更好地适应喷嘴更换器通常的工作方式。

此外,您现在可以直接从包面板轻松设置包兼容性。

这是一个重大的突破性变化。有关发生此更改的原因的详细信息,请参阅:https://github.com/openpnp/openpnp/issues/183

感谢@markmaker审查并合并他最近的校准更改。他还为迁移提供了一些帮助:

将大的 XML块复制到正确的位置(我以默认的OpenPNP 2.0 为指导)。 <nozzle-tips/>machine.xml
一次又一次地启动 OpenPNP,注意不再支持的元素/属性并删除它们(如果有一个命令行选项让 XML 解析器忽略未知元素和属性,那就太好了,但似乎 OpenPNP 中的解析器没有这样的东西*)
定义喷嘴尖端与喷嘴在喷嘴上的兼容性
了解更改喷嘴尖端的新方法(通过单击列表中的复选框)
定义真空度不要忘记这样一个事实,即isPartOff现在用打开的阀门测量片刻(但请参阅#855)。
2019-06-02
跳动补偿以及底部相机位置和旋转校准
功能更改:

使用跳动校准功能,提供自动底部相机位置和旋转偏移校准 。在多喷嘴机器中,这应该使用第一个/最好的喷嘴来完成。

对于多喷嘴机器中的所有其他喷嘴,提供了新的“模型和相机偏移”校准系统,以补偿当底部相机焦平面与PCB表面平面不匹配 时,通过不完美的Z行程引入的任何偏移。

用户无法设置在跳动校准中允许多少次错过的视觉检测,以提高 作业内的稳健性。

用户可以为每个喷嘴尖端的校准设置Z偏移,以允许视觉检测特征的焦平面进一步位于喷嘴尖端上(例如,杯形喷嘴尖端中后退的气孔)。

如果喷嘴尖端被命名为“未加载”,则在没有加载喷嘴尖端时将其用作替身。 当喷嘴尖端支架本身具有如此大的跳动时非常有用,以至于无需校准即可更换喷嘴尖端也很可怕。再次使用 Z 偏移校准焦平面中的裸喷嘴尖端支架 。

用户可设置的自动重新校准触发器:

在每个喷嘴尖端更换时
在每个喷嘴尖端上,如果在作业中使用,请更换(像以前一样)
归位时/归位后首次更换喷嘴尖端。稍后卸载和重新加载的喷嘴尖端将不会重新校准,从而节省时间。这假设 支架中的喷嘴(即C轴)和喷嘴尖端都将保持已知的旋转(即跳动 相移不会改变)。
仅限手动校准。补偿存储在机器中.xml这对于 具有归位/弹簧加载旋转 C 轴的机器很有用,因此 每次通电时跳动相移都保持不变。
修复:

消除了校准中不必要的启动/停止旋转
将阈值属性更改为可识别单位的长度
修复了“模型”校准系统中缺少的 LengthUnit 转换(它以毫米为单位进行补偿,但其模型基于相机单元)。
修复了当帧尺寸因旋转等变换变化而更改时( 如上述旋转校准后)不更新其宽度/高度的问题。VisionUtils执行了坏像素到位置坐标的转换,直到下一次OpenPNP重新启动。
模型和效用函数的变化:

为所有 HeadMountables 添加了 home() 方法,以在需要时触发重新校准。
添加了一个 Camera.getLocation(工具) 方法,用于针对特定喷嘴/喷嘴尖端调整相机位置。这有助于多喷嘴机器,这些机器的底部相机焦平面位于与PCB表面不同的Z高度。因此,由于 Z 轴彼此不完全一致,不同的喷嘴可能会引入轻微的偏移。
在 VisionUtils 中添加了反向变换(位置到像素)
在视觉载物台 MaskCircle 中添加了“中心”属性,以允许对偏离中心的喷嘴尖端进行识别,以进行相机校准。
有关详细信息,请参阅 https://github.com/openpnp/openpnp/pull/825

2019-06-01
OpenPnP 2.0 持续变化
执行器现在已添加到点动控件的工具下拉列表中,以便您可以选择一个并移动它。这可能是一个临时更改,因为此下拉列表将来会消失,但目前它有助于设置拖动馈线。
交换了“捕获”和“移动”按钮的位置,这些按钮组合在一起,并在两组按钮之间添加了分隔符。这是为了使意外单击捕获按钮变得不那么容易,许多人已经认识到这是一个UX问题。
已将“送纸器”面板上的“进纸”按钮移至列表前面,因为这是最常见的操作。
将参考喷嘴和参考喷嘴尖端配置向导拆分为单独的面板。 这将使重构全局喷嘴变得更加容易。
通过在头部设置执行器名称来添加基本的 Z 探测。
添加了用于在某个位置获取 Z 探针的固定循环。
现在,如果启用,则在捕获相机位置时会自动执行Z探针。这导致完全形成的位置捕获,包括 Z。如果没有可用的Z探针,则Z保持不变。
2019-05-27
OpenPnP 2.0
此更新包括对 OpenPnP 工作方式的大量重大更改,以及一些重大更改。由于更改的严重性,我称之为OpenPnP 2.0。

请在使用前仔细阅读发行说明,并请备份您的配置目录、作业和板文件。某些更改将修改您的文件,如果不恢复备份,您将无法返回到旧版本。

JobProcessor 重写:JobProcessor 已从头开始重写,以解决许多长期存在的错误和问题。新版本允许更精细的步骤粒度、更好的错误处理 - 包括上下文相关错误、更好的拣选和进料故障重试选项、改进的真空检查以及更高的灵活性。

导致“未定义的状态来自…”的 FSM 实现类型错误已完全删除。修复 #695。

现在,每个步骤都在自己的类中,并保持自己的状态。这使每个步骤都可以确定要公开的粒度级别。

步骤现在会在作业处理器完成后引导到下一步,从而非常轻松地添加自定义步骤并在失败时重试。

JobProcessor 接口现在返回包含源的自定义异常类型。通常,这些源将是模型或 SPI 对象的实例,例如喷嘴、进料器、零件、 放置等。这样就可以帮助用户在 UI 中找到错误的源。

未来的更新将包括一个新的“生产”面板,可让您快速跳转到错误源。

在几个长时间运行的步骤中,粒度已大大提高。基准点,主要是选择 。现在,在基准点检查期间单击停止将不会在停止之前继续检查每个板。

真空检查现在在作业处理器中执行,而不是在喷嘴中执行。通过此更改,还添加了额外的真空检查。现在,真空在拾取后、底部视觉后、放置前和放置后进行检查。此外,现在在提起喷嘴后进行拾取后检查以提高准确性,并在打开真空的情况下执行放置后检查。

源重试和拣选重试现在是单独的步骤。

进纸重试允许重试进纸器在进纸时出现错误,例如送纸器上的视觉故障或自动进纸器上的硬件错误。

拣选重试处理整个拣选序列的重试。这主要是使用真空传感时的一个因素。拾取零件后,如果真空传感系统未检测到喷嘴上的零件,则执行丢弃循环并重新启动整个进料/拾取循环。

这些更改修复了 #280。

重大变化:将真空感应电平从逻辑反转、部分电平和部分关电平三重奏更改为低/高和低/高双范围。

中断性变更:从作业处理器中删除了作业自动保存和配置自动安全。 此功能导致严重的性能下降,并使作业处理器混乱。 此功能将在以后使用不影响性能的新实现重新添加。

重大变更:从展示位置面板中删除了“检查 Fids?”,它是作业处理器的功能。此功能最初旨在检查重要展示位置周围的本地 fid,但它没有正确实现,并且通常没有用处。 欢迎 PR 添加真正的本地 FID 检查。

此更改不应破坏任何作业或配置,但我已将其标记为重大更改,以引起使用该功能的任何人的注意以进行进一步讨论。

中断性变更:已完成时停车选项已被删除,完成时停车现在始终执行。 在此版本上运行作业之前,必须设置寄存位置。 这是提高机器运动自动化程度的准备性变化。 机器知道可以安全停车的地方将变得更加重要。

重大变更:从 GcodeDriver 中删除了 isPartOn 和 isPartOff 变量。这最好由主真空系统处理。可以将新的真空变量添加到GcodeDriver,因此,如果有人依赖此功能,请大声说出来。

重大变更:“忽略”展示位置类型已移至已启用展示位置。“类型”字段将仅用于指定“放置”或“基准点”,并且添加了新的“已启用”字段。 这样可以更轻松地禁用作业的展示位置,而不会丢失该展示位置是基准点还是展示位置。

此外,“位置文字”已重命名为“放置”。

此更改向后兼容,但向前不兼容。如果您使用此版本打开并保存作业,您将无法使用旧版本打开它。

重大更改:膏体分配功能已完全删除。此功能被很少的人使用,不能很好地工作,也没有很好地维护。删除该功能使 OpenPnP 能够专注于拾取和放置用户体验,而无需保持与膏体分配的向后兼容性。

带有膏体分配功能的 OpenPnP 版本将被保存,如果用户需要现有设置的功能,则可以下载该版本。该版本将来不会收到任何更新。

添加了一个新的错误处理系统,允许用户在放置位置的基础上指定应如何处理错误。选项为“警报”和“抑制”。

警报将立即引发错误并暂停作业。用户必须先修复问题,然后才能继续。

抑制会将放置标记为错误,并继续而不提醒用户。 作业完成后,将打印错误展示位置的列表。然后,用户可以修复错误并重新运行作业以修复未放置的展示位置。

在不久的将来,将添加一个GUI,在作业结束时显示错误的位置,以便您可以看到需要修复的内容才能完成作业。

从“作业错误”对话框中删除了“跳过”、“忽略并继续”和“重试”。现在显示错误并暂停作业。用户可以对作业进行调整,然后重新启动作业以从错误中恢复。

将真空传感重构为 Nozzle.isPartOn() 和 Nozzle.isPartOff()。修复 #753 和 #102。

已从作业处理器中卸下飞行后喷嘴尖端校准。我不明白为什么这会很有用,因为计划器可能会立即更换喷嘴尖端。现在,在更换任何尚未校准的吸头后,都会执行校准。如果此更改对您的设置有害,请说出来。

添加了作业运行和停止的缺失信号。

提高了演示驱动程序的速度,使演示更有趣。

修复封装板上的工具提示和按钮名称。

将 Feeder.retryCount 重命名为 Feeder.feedRetryCount。

添加了 Feeder.pickRetryCount。

更改了作业处理器中的硬编码拣选重试,以使用 Feeder.pickRetryCount。

即将推出:还有许多其他基于这项工作的功能,这些功能即将推出。

“生产”选项卡:作业控件将从“作业”选项卡移动到新的“生产”选项卡。“生产”选项卡将包含有关正在运行的作业的总状态,以及作业正在处理的每个展示位置的状态。

“生产”标签页还会列出在处理过程中出错的展示位置列表,允许用户快速跳转到错误来源。

“放置状态”和“放置?”列也将移动到此选项卡。此更改后,作业面板将主要用于在启动作业之前进行作业编辑,并且在作业运行期间将大多为只读。

2019-05-10
底部视觉预旋转更新和错误修复
底部视觉预旋转现在将旋转偏移存储在零件对齐偏移中,允许 通过多个喷嘴共享一个 C 轴进行预旋转底部视觉。
角度计算在数学定律(分布模等价)方面是统一和简化的。
预旋转底部视觉在多通道循环中完成,直到获得良好的修复。
X、Y 偏移量与旋转偏移量一起获得,因此通过良好的定位,只需要一次视觉传递 (以前需要两次)。这样,在大多数情况下,预旋转底部视觉变得与旋转后视觉一样快。
可以配置最大允许的线性中心和角偏移以及角度偏移(GUI)。 如果未达到允许的偏移量,则进行额外的补偿和视觉传递。可以配置最大刀路数。
现在可以覆盖每个零件的预旋转使用(默认、始终打开、始终关闭)。
修复了测试对齐中的一个错误,即零件高度未添加到 Z,即零件离相机太近。
有关详细信息,请参阅 https://github.com/openpnp/openpnp/pull/815

2019-04-21
意大利语和法语翻译
感谢Davide和Sebastien添加意大利语和法语翻译!

2019-02-26
新工作规划师
正在测试新的作业规划器。SimplePnpJobPlanner 取代了 StandardPnpJobPlanner 作为新的默认值。新规划器尝试在每个周期填充尽可能多的喷嘴,并试图限制更换喷嘴尖端的次数,但不会像旧规划器那样努力“向前看”。

好处是,新的规划器速度要快得多,并且可以处理任何规模的作业,而当使用多个喷嘴时,旧的规划器在超过几百个位置的工作上会失败。

缺点是新的规划器可能会执行更多的总周期,并且可能会执行更多的喷嘴尖端更换,尽管在迄今为止的测试中,对于许多常见配置,它的性能似乎非常相似。

默认情况下,新计划器处于启用状态。如果您遇到任何问题,请尝试并报告。如果需要切换回旧计划器,可以编辑机器.xml并更改

<planner class=“org.openpnp.machine.reference.ReferencePnpJobProcessor$SimplePnpJobPlanner”/>

<planner class=“org.openpnp.machine.reference.ReferencePnpJobProcessor$StandardPnpJobPlanner”/>

新的作业规划器界面
如上所述,作业计划器界面又回来了,现在可以编写自定义计划器并使用上述方法插入它们。这个接口不是最终的,将来可能会发生一些小的变化,但基本概念应该保持不变。

有关如何编写一个规划器的示例,请参阅上述两个规划器中的任何一个。

2019-02-21
高配置文件错误修复和更新
现在有一些针对长期存在的错误的重要错误修复,以及一些长期存在的功能请求:

“没有定义的从印前检查到初始化的转换”:JobPanel FSM 中存在许多与状态管理相关的错误,这些错误现已得到纠正。此错误的主要原因 是在操作已发生时单击作业按钮。状态现在已正确管理,更重要的是,在发生无法中断的操作时,按钮被禁用 。

这是一个重大变化,在每种条件下都很难测试,因此如果您遇到问题,请告诉我们。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/issues/478。

“停止作业应尽快停止作业”:此问题与按暂停或停止后作业如何继续一段时间有关。一般来说,一旦拾取和放置周期开始,它就不能中断。此外,作业的启动过程将无法中断。这现在是固定的,步骤的粒度增加了。 单击暂停或停止将在当前操作完成后立即停止作业。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/issues/278。

多选表和右键单击菜单:所有主表现在都支持多选和右键单击菜单。例如,这使得一次启用/禁用多个馈线或一次为多个板设置“Check Fids”变得更加容易。

2019-02-18
主要变化:基准系统(仿射变换)
基准系统经历了广泛的变化,以支持补偿板中的水垢和剪切力。当有三个或更多基准点可用时,在基准点检查期间将使用三个基准点,此数据用于计算更好的放置位置。 当使用三个基准点时,这应该会导致整体精度的提高。

此外,两个基准点系统现在使用相同的代码,减去剪切处理,因此在使用两个基准点时,它的精度也应该有所提高。差异不会像使用三个时那样显着。

请注意,执行基准检查时,电路板位置不再更新。基准数据实时用于计算放置位置,而不是依赖于电路板位置。这意味着,如果您执行基准检查,然后移动到电路板位置,电路板可能看起来不完全对齐,但当您移动到某个位置时,它将是正确的。

基准检查仍将在过程结束时将相机定位在定位的电路板原点上,以便可以目视验证成功。

一般来说,除了整体准确性更高之外,用户不应注意到使用新系统的任何差异。

相关问题:

https://github.com/openpnp/openpnp/issues/648
https://github.com/openpnp/openpnp/issues/791
上述更改已完成。还有一些剩余的相关任务是:

为两点板定位器实现转换。
在找到电路板时向用户添加指示。
验证与面板的兼容性。
在计算板放置位置反转中实现反转转换,以便手动训练从转换中受益。
2019-02-14
新的 GcodeDriver 变量
为 MOVE_TO 命令添加了一些新的 GcodeDriver 变量。新变量用于控制器需要知道运动方向以选择正确输出的磁头。

更多信息请访问: https://github.com/openpnp/openpnp/wiki/GcodeDriver:-Command-Reference#move_to_command

2019-02-12
重大变革:公园系统
请重置您的公园位置!

公园系统进行了许多重大更改。它们是:

现在,无论在点动控制下拉列表中选择了哪种工具,XY 始终将头部停放在同一位置。 这可确保在选择一种工具的情况下选择停放位置,然后尝试使用选择的其他工具进行停放,则不会使头部崩溃。这主要是一种安全改进。
Z 和旋转已从停车头配置中删除,因为它们都特定于正在停放的工具。
现在,将所选工具停放在安全 Z 处,而不是在头部配置中输入的 Z。
现在,“停车旋转”将所选工具的旋转锁定为 0,而不是在头部配置中输入的“旋转”。
这些更改的总体目标和结果是确保无论选择哪种工具,公园始终停在完全相同的位置。

有关详细信息, 请参阅 https://github.com/openpnp/openpnp/issues/279。

新功能:XY软限制
现在,您可以在头部配置中为 X 和 Y 移动设置软限制。设置并启用限制后,超出限制的任何尝试移动都将失败,并显示错误。

2019-02-09
即将推出的重大更改
开发/最新分支中即将推出许多重大更改。这些更改可能会破坏配置,并可能需要重新设置和重新校准计算机。

如果您看到此消息,则表示您当前正在运行开发/最新分支。 在接下来的几周内,如果在此分支上自动更新,则可能会收到这些重大更改。

如果您正在运行生产机器并且不希望遵循这些最新发展,请从以下位置下载并安装主/稳定分支:

http://openpnp.org/downloads/

稳定版已从今天开始更新,在这些重大更改经过全面测试和发布之前不会再次更新。

2019-01-18
启用跳动补偿功能

已经解决了拉动请求 #235 中的问题 #804,以修复喷嘴跳动补偿。 这是一种实现的新跳动补偿算法。该算法是新的默认算法,但它与之前OpenPnP代码中已经存在的改进算法共存。

该功能在两台机器上进行了测试,但在其他机器上的情况有所不同。如果遇到任何问题,请提交问题。有关如何使用此功能的信息,您可以在 wiki 中找到 https://github.com/openpnp/openpnp/wiki/Runout-Compensation-Setup

2018-12-08
串行库更改

OpenPnP 用于与串行端口通信的库 jSSC 已经过时且未维护,因此我们正在尝试一个新的库。新库是jSerialComm:https://github.com/Fazecast/jSerialComm。

此更改不会影响现有用户,因此,如果您发现串行端口访问存在新问题,请提交问题或发布到邮件列表。

2018-11-17
OpenCV 3.4.2 已升级

OpenCV库中的错误已得到修复,因此OpenPnP再次升级到OpenCV 3.4.2。

OpenPnP 兼容 Java 9、10、11。

随着OpenCV的升级,OpenPnP现在与8之后的所有Java版本兼容。这包括 Java 8、9、10 和 11。

2018-10-31
OpenCV 3.4.2 升级已恢复

由于在测试期间在 OpenCV 库中发现的问题,OpenCV 升级已暂时恢复:

https://github.com/openpnp/opencv/issues/38

解决此问题后,将重新添加此修补程序。

2018-09-26
连接保持活动状态

感谢您为 PR https://github.com/openpnp/openpnp/pull/767 @markmaker,它为驱动器通信配置添加了“保持活动”选项。此选项默认处于打开状态,可以关闭,以便在单击禁用按钮时关闭 OpenPnP 的串行端口或 TCP 端口。这使得可以从另一个程序连接到串行端口,而无需退出OpenPnP。

再次注意,此选项默认处于打开状态,这是预先存在的行为。 如果需要新行为,可以将其关闭。

2018-09-10
喷嘴偏移设置向导

“喷嘴设置”区域中有一个新的喷嘴偏移设置向导,现在可以非常轻松地设置喷嘴偏移。这是设置 OpenPnP 时最令人困惑的方面之一,新向导使它变得非常容易。非常感谢@pfried提供这项新功能!

有关详细信息,请参阅 https://github.com/openpnp/openpnp/pull/765。

2018-08-18
展示位置注释

展示位置表格(拾取和放置)现在包含一个用户可编辑的注释列,该列保存在每个展示位置的板文件中。

2018-08-04
OpenCV 升级到 3.4.2

OpenCV已升级到3.4.2,这是最新版本。

2018-07-15
GcodeDriver 中的 TCP/IP 支持

由于@PeeJay的努力,GcodeDriver(和OpenBuilds驱动程序)现在除了串行之外还支持通过TCP / IP进行通信。 例如,这使得现在可以通过以太网使用冰沙板。要使用 TCP/IP,请转到驱动程序设置并检查“通信”选项卡以获取新选项。

此更改需要迁移通信设置。这应该自动发生。 如果没有,或者如果您在启动时遇到错误,请告诉我们并将您的计算机.xml发布到 https://groups.google.com/forum/#!forum/openpnp 的讨论组。

2018-07-13
每个喷嘴尖端的停留时间

拾取停留时间和放置停留时间已添加到喷嘴尖端。 这意味着总停留时间现在是喷嘴停留时间加上喷嘴尖端停留时间的总和 。这背后的想法是,较大的喷嘴尖端用于提升更大/更重的切屑,并且通常需要更长的停留时间。

2018-07-08
@aneox提交了一系列很棒的新功能。有些仍在处理中,但以下已合并:

过滤器放置表模型,仅显示活动板侧。请注意,此更改使得如果要编辑板的两面,则必须将其添加到作业中两次并设置侧。
在启用机器后添加了自动主页选项。要激活,需要在机器设置中设置复选框。
Windows 在多窗口模式下保存大小和位置。
保存配置菜单按钮。(从计算机菜单移至文件菜单)
相机窗口可以拆分为垂直或水平样式。
作业在每次放置后自动保存。如果这导致您的计算机出现性能问题,请发布到列表中。
以下项目已合并,但可能仍需要对它们进行一些额外的工作:

为拖动进纸器添加了剥离执行器选项。
拖动进纸器提高了进纸精度,现在可以在启用视觉的情况下自适应拖动距离。
拖动喂纸器可以与 0402 一起使用。
感谢@aneox所做的所有出色工作!

2018-07-04
放置状态指示器和进度条

底部状态栏中添加了一个新面板,其中列出了当前作业的放置总数、已完成的放置数量以及 仅所选板的相同值。进度条会显示 整个作业的已完成展示位置的百分比。每当 编辑任何放置/板或作业运行时,这些指示器都会实时更新。

2018-07-02
机器 -> 保存配置

名为机器 -> 保存配置的新菜单选项强制保存机器.xml、零件.xml和包装.xml。

2018-01-28
OpenPnpCapture New Properties

OpenPnpCaptureCamera现在支持背光补偿,色调,电力线频率和清晰度的新属性。

2017-12-23
感谢@mgrl:

错误修正:丢弃跳过部分上的正确喷嘴

如果在作业运行时引发错误(真空感应/底部对齐失败),则无论多喷嘴设置中的哪个喷嘴出现故障,第一个喷嘴始终被清除。 这现已修复。

请参阅: * https://groups.google.com/d/msg/openpnp/x249mhevB3U/DSJg2fyVBAAJ * https://github.com/openpnp/openpnp/pull/693

错误修复:正确设置放置的标志(修复 #663)

现在有一个修复程序,如果启用了基准点检查,则正确设置了放置的标志。

请参阅: * https://groups.google.com/forum/#!topic/openpnp/4MKg7JaUTAk * https://github.com/openpnp/openpnp/issues/663

增强功能:添加了忽略错误并继续组装的选项

要处理正在运行的作业中的错误,在“重试”、“跳过”和“中止”旁边有一个新选项“忽略并继续”。 它继续运行作业,就好像没有发生错误一样(例如,真空检查/底部视觉失败)。

请参阅: * https://groups.google.com/forum/#!topic/openpnp/x249mhevB3U * https://github.com/openpnp/openpnp/pull/688

错误修复:如果由于缺少部件名称而尝试编辑管道,则未分配部件的馈线馈线不会引发 NullPointerException

请参阅: * https://github.com/openpnp/openpnp/pull/689

2017-11-20
手动喷嘴尖端更换修复

多亏了@netzmark现在修复了手动更换喷嘴尖端的问题。现在,如果您没有打开自动更换,当作业尝试更换喷嘴时,作业将暂停,并且将显示一条指示更改的消息。

请参阅: * https://groups.google.com/d/msgid/openpnp/00ead7a9-e7d5-49e8-856c-2a403208058d%40googlegroups.com?utm_medium=email&utm_source=footer * https://github.com/openpnp/openpnp/issues/118 * https://github.com/openpnp/openpnp/issues/526

2017-10-26
基准定位器重试和平均

多亏了@mgrl,基准定位器的重试计数(以前固定为 3)现在可以在机器设置 -> Vision -> 基准定位器中配置。

此外,还添加了一个新选项,允许对重试的结果求平均值。这有助于缓解随着相机移动而变化的结果时发生的一些抖动。

参考松散部件进纸器改进

有一个新的默认管道,对于非极化的矩形组件(如电阻器和电容器)性能良好。

它试图包括电极和主体,以更好地识别矩形零件,并对结果执行横向定向,以便矩形零件具有确定性方向。

相机反馈现在仅在流程结束时显示,并且显示时间更长。这更好地代表了OpenPnP在选择零件之前“看到”的内容。

馈线在其位置上定义的旋转现在已添加到最终旋转中,以便您可以设置要拾取零件的方向。

新的 CvPipeline 阶段:定向旋转矩形

新舞台可确保旋转矩形的方向设置为横向或纵向。这在上面的管道中使用。

此外,您可以设置一个标志来否定旋转矩形的角度。这 主要用于从 MinAreaRect 的输出转换为 OpenPnP 对位置的期望 。

2017-10-25
CvPipeline 编辑器模型信息

现在,当您在结果窗口中移动鼠标时, 管道编辑器将显示有关它找到的任何已识别模型的一些信息。

例如,如果您正在查看的结果包括一个列表<旋转矩形>并且您将鼠标悬停在图像视图中其中一个的中心上,您将在状态字段中看到该旋转矩形的说明。

这对于详细了解管道中发生的情况非常有用,并且可以轻松调试模型数据。

此功能目前适用于旋转矩形、圆形和关键点模型,以及相同的列表。

此视频显示了实际功能:https://www.youtube.com/watch?v=sHuUPtJNIXw

新的 CvPipeline 阶段:添加

添加了用于管道的新阶段。该阶段称为“添加”,它只是输出前两个图像的总和。这用于即将发布的新的松散部件进料器管道。

CvPipeline 独立编辑器 Pipeline 还原

CvPipeline 独立编辑器现在将保存和恢复您正在处理的最后一个管道,类似于您正在处理的最后一个目录的保存方式。

2017-10-24
CvPipeline 内存使用改进

CvPipeline 现在实现了 AutoClosable,并且使用它的所有代码都已更新为在使用后发布。这应该会大大提高具有许多部件的大型作业的内存使用率。

参考底部视觉改进的错误消息

ReferenceBottomVision 现在将针对常见的管道设置错误(例如命名不正确的结果阶段或无效的结果类型)引发特定的错误消息。

2017-10-21
GcodeDriver 轴预移动命令坐标变量

GcodeDriver Axes 中的预移动命令现在有一个坐标变量,可用于在移动轴之前重置轴的位置。这可用于不支持多个轴的单个变量的控制器固件。特别是,这使得通过使用“移动前”命令将Marlin与多个旋转轴一起使用成为可能,例如
T0G92E{Coordinate:%.4f}

2017-10-18
视觉可用性改进

作为 https://groups.google.com/d/msgid/openpnp/7029bade-fa16-46e5-8c2d-d9e22105c5fe%40googlegroups.com?utm_medium=email&utm_source=footer 讨论的结果,对视觉管道系统进行了一些更改。

ReferenceBottomVision 现在在名为“结果”的阶段中查找其结果,就像其他主要视觉操作一样。它还回退到“结果”以实现向后兼容性。
ReferenceBottomVision 现在改进了当找不到结果或结果格式不正确时出现的错误消息。这应该可以帮助用户尝试新管道。
视觉操作现在都引用一个通用名称,以避免将来出现此类错误。
2017-10-05
OpenPnpCaptureCamera 更新

实现了其余的相机属性。
相机属性现在在更改设备或格式时刷新。
自动禁用状态现在反映是否支持自动。
添加了默认值的显示。
2017-09-30
重大更新:新的相机捕获系统!

OpenPnP 现在拥有自己的自定义编写相机捕获系统,专门用于解决自该项目开始以来困扰相机捕获的所有问题!

openpnp-capture是由Niels Moseley(@trcwm)专门为OpenPnP编写的全新捕获库。使用此库,我们现在终于能够执行诸如在单个端口/集线器上运行多个USB相机,管理相机属性(如曝光,对焦和白平衡)以及选择相机数据格式以根据质量,尺寸, 帧速率等做出智能选择之类的事情。

从一开始就在OpenPnP中拍摄的两个最大困难是无法在单个USB端口/集线器上运行多个相机,以及无法控制手动曝光。第一个很重要,因为许多人将OpenPnP与端口数量有限的笔记本电脑一起使用。第二个很重要,因为大多数商用USB相机默认为自动曝光,这会导致视觉问题,因为相机会调整曝光以补偿图像的差异。

使用新库,您现在可以设置照明并选择最适合您机器的确切曝光,您将知道它不会仅仅因为相机正在看其他东西而改变。

要使用新功能,请使用 OpenPnpCaptureCamera 添加新摄像机,并查看“常规设置”选项卡以选择设备、格式和属性设置。

我想大声疾呼,感谢Niels在过去几个月里为新的捕获库所做的所有令人难以置信的辛勤工作。他在很短的时间内为所有三个主要操作系统编写了一个强大而广泛的视频捕获库,比我将它们集成到 OpenPnP 中的速度更快。这是对该项目的宝贵贡献,并将真正推动OpenPnP的计算机视觉能力向前发展。谢谢尼尔斯!

有关捕获库本身的详细信息,请参阅:https://github.com/openpnp/openpnp-capture

有关捕获库的 Java 和 Maven 绑定的信息,请参阅:https://github.com/openpnp/openpnp-capture-java

最后,请注意存在一些已知问题:

切换所选设备时,向导不会重新加载属性。若要变通解决此问题,只需单击另一个向导,然后单击“返回”。即将修复。
亮度、对比度、饱和度、伽玛属性尚未在 OpenPnP 中实现。这些属性最近已添加到捕获库中,但尚未在 OpenPnp 中实现。
如果您遇到任何其他问题,请提交错误报告或发布到邮件列表。您的反馈将帮助我们改进这项新功能!

2017-09-21
为 Park Z 添加了 Ctrl-Shift-L 热键
2017-09-16
始终启用作业保存

文件 -> 保存作业菜单选项现在始终处于启用状态,以便您可以随时保存作业和任何关联的板。以前,仅当电路板被标记为脏时才会启用此功能,并且它不反映相关电路板的状态,这使得很难按需保存电路板。

图像信息中的相机 FPS

摄像机视图中的图像信息窗格现在显示从摄像机接收的当前 FPS。这是为了测试一些新功能而投入的,但非常有用,我决定将其保留下来,以便用户可以检查他们的相机馈送。

2017-08-31
职位放置状态

展示位置现在有一个“已放置”列,用于指示展示位置是否已放置。 此值与作业一起保存,因此现在可以执行部分组装,退出 OpenPnP,然后从上次中断的位置恢复作业。

您可以右键单击展示位置表格以批量设置或重置“已放置”标志,并且会出现一个新的“作业”菜单项,该菜单项将立即重置整个作业的“已放置”状态。这可用于快速准备作业,以便在完成后再次运行。

相关问题:https://github.com/openpnp/openpnp/issues/205 https://github.com/openpnp/openpnp/issues/258

在公关 https://github.com/openpnp/openpnp/pull/632 中实施

感谢 @sp-apertus 在可用性方面的巨大改进!

2017-08-29
参考条形进纸器改进

在 ReferenceStripFeeder 的默认 CvPipeline 中添加了自动阈值,以更好地检测磁带孔并消除嘈杂相机图像中的误报。用户应将其馈线视觉管道重置为默认值以获取此更改,然后在必要时重新应用任何管道更改。
ReferenceStripFeeder 的自动设置现在更智能、更准确,并且能够捕获常见的设置问题。
修复了零件间距为 2mm 的条带可能导致检测到参考孔翻转的问题,具体取决于用户单击的两个零件的位置。
修复了零件间距以相机单位计算的问题,不一定是毫米。
如果用户以错误的顺序选择了带材方向的零件,则会通知用户。
收紧了从组件中心到进料孔中心的最大距离,以准确反映EIA-481标准中定义的间距,从而减少相邻条带的误报。
检测多条完整的带材孔线并对其进行适当分组,并且仅对选定的零件/带材使用正确的带材线(相邻带材之间仍需要一些间距,但要小得多且更可靠)。
在公关 https://github.com/openpnp/openpnp/pull/628 中实施

感谢 @richard-sim 的这些改进!

头部移动速度限制

头部运动现在被限制在任何时候头部最慢部分的速度。这意味着,如果您有多个喷嘴,并且您选择了多个零件,如果一个零件的速度设置比另一个慢,则较慢的喷嘴将决定头部的速度。由摄像头和执行器在同一头部启动的运动将以相同的方式受到限制。

在公关 https://github.com/openpnp/openpnp/pull/630 中实施

原始问题 https://github.com/openpnp/openpnp/issues/576

感谢您@johngrabner这个不错的改进!

2017-08-28
参考条形进纸器改进

在 ReferenceStripFeeder 的默认 CvPipeline 中添加了自动阈值,以更好地检测磁带孔并消除嘈杂相机图像中的误报。用户应将其馈线视觉管道重置为默认值以获取此更改,然后在必要时重新应用任何管道更改。
ReferenceStripFeeder 的自动设置现在更智能、更准确,并且能够捕获常见的设置问题。
修复了零件间距为 2mm 的条带可能导致检测到参考孔翻转的问题,具体取决于用户单击的两个零件的位置。
修复了零件间距以相机单位计算的问题,不一定是毫米。
如果用户以错误的顺序选择了带材方向的零件,则会通知用户。
收紧了从组件中心到进料孔中心的最大距离,以准确反映EIA-481标准中定义的间距,从而减少相邻条带的误报。
检测多条完整的带材孔线并对其进行适当分组,并且仅对选定的零件/带材使用正确的带材线(相邻带材之间仍需要一些间距,但要小得多且更可靠)。
在公关 https://github.com/openpnp/openpnp/pull/628 中实施

感谢 @richard-sim 的这些改进!

2017-08-19
新脚本事件:作业.放置.完成

新脚本事件在放置完成时触发,即部件已放置。

有关 用法,请参阅 https://github.com/openpnp/openpnp/wiki/Scripting#jobplacementcomplete。

2017-08-16
ReferenceStripFeeder 转换为 CvPipeline

ReferenceStripFeeder 的视觉操作已从硬编码算法转换为使用 CvPipeline 系统,就像底部视觉和基准查找一样。这使您可以轻松自定义用于馈线视觉的管道,以更好地匹配系统上的条件。

在公关 https://github.com/openpnp/openpnp/pull/610 中实施

非常感谢 @richard-sim 承担了这个复杂而重要的转换!

2017-08-15
电路板点动碰撞保护

添加了一个名为“安全”的新选项卡,其中包含一个允许您启用/禁用板碰撞保护的复选框。如果您尝试将喷嘴点动到电路板中,此功能将引发错误。

在公关 https://github.com/openpnp/openpnp/pull/598 中实施

感谢您@machinekoder提供此有用的改进!

Kicad 导入器改进了零件创建

Kicad 导入器中的新复选框允许您指定在创建零件名称时仅应使用该值。

在公关 https://github.com/openpnp/openpnp/pull/620 中实施

感谢您@KarlZeilhofer提供此新功能!

2017-07-30
其他键盘快捷键支持

添加了几个新的键盘快捷键,以支持 OpenPnP 的外部控制。新的热键允许您启动、步进和停止作业、调整点动增量和其他几个有用的功能。有关完整详细信息,请参阅用户手册:

https://github.com/openpnp/openpnp/wiki/User-Manual#keyboard-shortcuts

在公关 https://github.com/openpnp/openpnp/pull/609 中实施

感谢您@yaddatrance提供此有用的改进!

CvPipeline 编辑器结果固定

管道编辑器现在支持固定阶段的输出,以便查看其他阶段中的更改如何影响固定阶段。选择任何阶段,然后单击结果面板中的“固定”图标以固定该阶段。选择任何其他阶段将允许您编辑该阶段,同时查看您固定的阶段的结果。再次单击图钉图标将其关闭。

在公关 https://github.com/openpnp/openpnp/pull/612 中实施

感谢 @richard-sim 的这一令人敬畏的改进!

CvPipeline 编辑器空值修复

修复了导致管道编辑器在更改阶段时有时将值设置为 null 的问题 #597。此错误通常会导致阶段数据损坏,并且无法保存阶段。

在公关 https://github.com/openpnp/openpnp/pull/611 中修复

非常感谢 @richard-sim 跟踪并修复此错误!

2017-07-15
代码清理:潜在的中断性变更

作为计划代码清理的一部分,已删除几个旧的配置设置。 如果您在过去几个月内进行了升级,则不应看到任何更改,但是如果您的配置非常旧,则可能无法使用此版本加载。如果在升级到此版本后启动 OpenPnP 时出错,请查找并从计算机中删除以下行.xml:

glue-dispense-job-processor
vacuum-request-command 见 https://www.youtube.com/watch?v=FsZ5dy7n1Ag
vacuum-report-regex 见 https://www.youtube.com/watch?v=FsZ5dy7n1Ag
在电路板文件中: 属性。glue
如果您对此有任何疑问,请发布到邮件列表寻求帮助。

2017-07-02
改进的喷嘴更换器速度支持

多亏了@lilltroll77我们现在改进了喷嘴更换器的速度控制。 最近添加的速度控制有一个限制,即不同的速度将用于机芯的不同部分。现在,您可以定义在四个运动之间使用的三个速度,并在这些过渡期间应用它们,无论是用于加载还是卸载。

请注意,由于此功能的配置略有变化,因此在使用此新版本运行喷嘴更改之前,您应该检查速度设置。设置应自动迁移,但谨慎的做法是在使用前检查它们。

有关此更改的详细信息,请访问:https://github.com/openpnp/openpnp/issues/584

基准愿景转换为 CvPipeline

基准视觉系统已根据 https://github.com/openpnp/openpnp/issues/329 转换为使用CvPipeline系统。

这使用户可以轻松编辑基准点的视觉管道,从而轻松针对不同的电路板和照明场景进行定制。管线编辑的工作方式与在底部视觉中相同;您可以逐个部件或全局默认设置编辑管线。

OpenPnP 中包含的默认管道与以前在内部使用的代码完全相同 - 它刚刚转换为管道形式以使其可编辑。

如果您发现基准性能下降,请将消息发送到邮件列表 http://groups.google.com/group/openpnp

2017-06-30
开机,无家庭行为

现在,当您点击开机按钮时,主页按钮会突出显示,以指示您应该将机器归宿。以前,电源按钮会改变颜色,这令人困惑。

模拟上摄像机重写

SimulatedUpCamera已被重写,可以更好地工作。它现在包含在默认配置中,以便您可以在拥有机器之前测试底部视觉。它也已被测试,因此现在有基本的底部视觉操作的测试覆盖率。

2017-06-28
Cv管道属性(中断性变更)

为了使开发人员能够更轻松地在 CvPipelines 中集成自定义功能,管道现在具有可设置为调用方的属性映射。这允许管道的调用方输入值供管道使用。这可以是相机、馈线、零件、喷嘴等。

此功能取代了之前添加的 setFeeder 和 setNozzle 调用。这些调用对于某些管道来说过于具体,并不代表管道的良好开发方向,因为它最终会变得混乱,而这些变量对整个管道没有意义。

中断性变更:所有现有阶段都已迁移到属性系统。如果您有使用 getNozzle 或 getFeeder 的自定义阶段,则需要进行少量更新以将这些阶段切换为使用属性。

getNozzle() 变为 (Nozzle) getProperty(“nozzle”)
getFeeder() 变为 (Feeder) getProperty(“feeder”)
最后,此更改是在 CvPipeline 中支持变量的第一步。最终,您将能够在分阶段设置参数时引用属性和其他对象。

高级松散零件送料器

ReferenceLoosePartFeeder由于@dzach而获得了很大的升级。 新的AdvancedLoosePartFeeder能够经过训练来识别松散零件的方向,从而可以完美地放置极化和非极化零件的松散箱。这提供了一个完整的喂料解决方案,完全没有喂料器!

这个功能已经进行了大量的工作和讨论。有关更多详细信息,请参阅:https://github.com/openpnp/openpnp/issues/573#issuecomment-311633280 https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/openpnp/zqeeh6mGqtk/Ix9MgDbvCAAJ

预计随着我们对这个新系统的更多经验,默认管道将需要调整和更新。请将您对此馈送器的反馈发布到邮件列表。

谢谢@dzach!

2017-06-17
喷嘴尖端更换器速度设置

喷嘴尖端更换器现在为每个运动提供独立的速度设置。速度是一个 乘数,类似于它在系统其他部分的使用方式。该值乘以系统速度滑块以确定最终速度。1.0是“全速”。

2017-05-18
新脚本事件

添加了两个新的脚本事件:Job.Start 和 Job.Done。这些在作业启动时和完成后调用。它们旨在帮助使用输送系统自动装载和卸载 PCB.

有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/Scripting#jobstarting。

2017-05-15
添加了新的托盘进纸器:旋转托盘进纸器

该托盘进纸器需要 3 个点(第一个组件、第一行最后一个组件、最后一行最后一个组件)来 测量组件网格,并且与旋转无关。欢迎反馈和经验报告。

2017-05-07
配置向导性能改进

由于 OpenPnP 中的配置向导中广泛使用的第三方库中的错误,许多用户打开向导时的性能通常非常差。这在单击各种馈送器时最为明显,其中一些用户在打开向导时会遇到长达 10 秒的延迟。

不幸的是,该库已被废弃,因此即使有可用的修复程序,也可能永远不会发布。相反,我们现在在运行时“猴子修补”修复程序,这解决了问题。

感谢 IRC 上的@SadMan让我走上修复之路。

2017-05-06
新的底部视觉脚本事件

添加了两个新的脚本事件,以帮助底部视觉照明。它们是 Vision.PartAlignment.Before 和 Vision.PartAlignment.After。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/Scripting#visionpartalignmentbefore。

2017-04-16
脚本目录忽略

现在,您可以将空的 .ignore 文件添加到脚本目录下的任何目录,以便在填充“脚本”菜单时忽略该目录。这是为了支持 @cri-s 的一项功能,以提高生产机器的可用性。

更多信息请访问 https://github.com/openpnp/openpnp/pull/521。

主页状态

现在,当您首次启用计算机时,“开机”按钮将变为黄色,并且在计算机归位之前不会变为绿色。这有助于您注意到尚未将计算机归位。感谢@ldpgh提供这个有用的功能!

更多信息请见 https://github.com/openpnp/openpnp/issues/379。

添加了 Python 脚本示例

@ldpgh 在内置脚本示例套件中添加了一些有用的 Python 示例。

更多信息请访问 https://github.com/openpnp/openpnp/pull/520。

2017-04-14
导航视图已删除

导航视图已作为清理工作的一部分被删除。此功能尚未完成,不太可能在此 UI 迭代中完成。删除它可以缩短启动时间,消除对 JavaFX 的依赖并解决一些错误。

如果您正在使用此功能并且错过了它,请在 http://groups.google.com/group/openpnp 的邮件列表中告知它 。

2017-04-13
重大变更:删除了过时的驱动程序

几个过时的驱动程序已被删除。它们是:GrblDriver,MarlinDriver,SprinterDriver和TinygDriver。所有这些驱动程序都已替换为支持更好的GcodeDriver。如果您当前正在使用这些驱动程序之一,则此版本将破坏您的配置。如果您在迁移方面需要帮助,请将问题发布到邮件列表:

http://groups.google.com/group/openpnp

有关此更改及其原因的更多信息,请访问:

https://github.com/openpnp/openpnp/issues/415

2017-04-09
过滤器旋转矩形 CvStage

@dzach添加了一个名为 FilterRects 的新管道阶段。它允许您根据给定的宽度、长度和纵横比限制过滤旋转的矩形。这对于确保识别的零件在可接受的尺寸限制内非常有帮助。

2017-04-06
相机工具选择

多亏了@BendRocks旧功能才恢复了生机。现在,您可以从机器控制工具下拉框中选择头戴式摄像机。这会导致 DRO 显示摄像机的坐标,并允许您从摄像机的角度(而不仅仅是喷嘴的角度)点动。这也使得当该功能恢复时(尽管尚未实现)为膏体分配器做同样的事情成为可能。

此功能的工作在以下位置执行: https://github.com/openpnp/openpnp/pull/507

2017-04-01
自动面板化

多亏了@BendRocks我们现在在OpenPnP中拥有了强大的面板化解决方案!面板允许您在阵列中快速设置电路板的多个副本,并允许您在电路板基准点之外拥有面板基准点。还有一个快速 X out 功能,可以轻松标记阵列中损坏且不应放置的板。

此功能正在进行中。有一些已知的问题和一些限制,但它已经足够成熟,可以让人们开始尝试它。

此功能的完整文档即将推出,可在以下网址获得:https://github.com/openpnp/openpnp/wiki/Panelization

有关此功能的更多信息,请参阅以下链接: https://github.com/openpnp/openpnp/issues/128 https://github.com/openpnp/openpnp/pull/456 https://groups.google.com/forum/#!msg/openpnp/_ni0LK8LR8g/5u-0-P-1EwAJ;context-place=forum/openpnp

2017-03-31
工作安置状态

非常感谢@iAmRoland我们现在在运行作业时有一个很好的展示位置状态显示。他们在拉取请求中的描述很好地描述了该功能:

按下开始按钮后,它将用黄色标记所有待处理的展示位置。 > 处理展示位置时,它将在 ID 单元格上显示蓝色。 完成对所有具有相同 ID 的展示位置进行>后,它会用绿色标记该单元格。如果没有>放置,则单元格将留白。

@iAmRoland甚至包括了一个不错的GIF,显示了它的外观:https://camo.githubusercontent.com/954ded479f650507bece8c199c7b73233708097e/687474703a2f2f692e696d6775722e636f6d2f6d6c4130716d6b2e6a7067

这项工作是在 PR https://github.com/openpnp/openpnp/pull/493 中执行 的,部分解决了问题 https://github.com/openpnp/openpnp/issues/205 和 https://github.com/openpnp/openpnp/issues/280 中描述的功能。

2017-03-26
自动更新修复,版本号改进

已修复导致自动更新程序无法正常工作的错误。在此过程中,OpenPnP 版本编号方案已更改和改进。版本号以前只是一个难以理解的 Git 哈希。它们现在采用 2017-03-26_18-56-32.0be8a03 的格式,句点前的部分表示构建日期,句点之后的部分表示 Git 哈希。这使得识别代码的构建时间和年龄变得容易,并且 Git 哈希可用于识别特定的提交。

删除了粘附功能

“点胶”功能已被弃用并删除。此功能未被使用,它导致了可维护性问题。如果将来对该功能感兴趣,它将被重写。有关此决定的更多信息,请访问 https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/openpnp/1-CSpnoPQGY/k6qUT9VZAQAJ

2017-03-21
提交诊断

您现在可以直接从OpenPnP本身提交有关OpenPnP的非常详细的诊断包! 在“帮助”菜单中,只需单击“提交诊断”,然后按照说明进行操作。结果将是指向 Github上的Gist的链接,其中包含来自OpenPnP的信息和图像。您可以在邮件列表或其他地方共享链接,以帮助人们解决您可能遇到的任何问题。

2017-03-16
命名 CSV 导入程序改进

由于@Misfittech指定CSV导入器现在可以处理Altium R14文件,并且现在可以选择在可用时设置零件高度。它还支持导入包含密耳值的数据的功能。

日志记录改进

非常感谢@pfried日志选项卡和日志记录系统已经看到了一些改进:

日志面板现在可搜索。
从日志中选择并复制行。
启用/禁用系统输出。
是否自动滚动的选项。
有关此功能的更多信息,请访问:https://github.com/openpnp/openpnp/issues/288

2017-03-05
在 gcode 驱动程序控制台中强制大写

现在有一个选项,默认情况下是启用的,强制从 Gcode 控制台发送的命令为大写。以前大写是强制没有选项的,但现在您可以根据需要将其关闭。

2017-03-04
定位相机并继续

感谢@BendRocks“作业和放置”面板中的两个新按钮。看起来像添加了向右箭头的“定位相机”按钮的按钮允许您定位相机,然后选择下一个板或位置。这样,您就可以非常轻松快速地浏览作业,并查看所有展示位置是否已正确配置。

日志面板中的控制台输出

多亏了@pfried,控制台输出(System.out,System.err)现在分别包含在“日志”面板中的“信息”和“错误”级别。这样做的一个主要好处是脚本输出现在将在“日志”面板中可见。

2017-02-27
参考拖动进料器配置执行器定位

修复了 ReferenceDragFeeder 配置面板中导致执行器定位按钮无法显示的错误。现在,当您设置执行器名称时,这些字段上的位置喷嘴按钮将像以前一样变成位置执行器按钮。

GcodeDriver 子驱动程序删除 UI

现在,您可以通过选择一个子驱动程序并单击上方工具栏中的红色 X 按钮,从 UI 中删除子驱动程序。

2017-02-24
HTTP 执行器

一个新的布尔执行器,它调用 ON 和 OFF 事件的预定义 URL。它是为控制气动喂料器而开发的,这些喂料器通过带有IO屏蔽的Raspberry Pi进行控制,但也许也有完全不同的应用。

GCode 反冲补偿

GCode 驱动程序现在具有一些附加参数来解决反冲问题。 这允许始终从 X/Y 轴上的特定方向接近目标位置。 可选择以较低的速度执行最终方法。 详细信息:https://github.com/openpnp/openpnp/wiki/GcodeDriver#user-content-backlash-compensation

GCode 控制台

GCode 驱动程序现在具有一个新选项卡,用于在控制台中手动发送 GCode 命令。

GCode 非垂直度补偿

GCode 驱动程序现在也适用于不完全方形的机器。有关如何测量和补偿此非垂直度补偿的详细信息,请参见此处:https://github.com/openpnp/openpnp/wiki/GcodeDriver#user-content-non-squareness-compensation

2017-02-12
广义真空传感(重大变化)

真空传感以前是GcodeDriver独有的功能。随着最近的执行器改进,可以将此功能扩展到所有驱动程序。真空感应功能现在使用执行器从压力传感器读取值,而不是专门的 GcodeDriver 命令。

配置仍然相似。您无需定义VACUUM_REQUEST_COMMAND和VACUUM_REPORT_REGEX只需创建一个使用相同的值的执行器,并在喷嘴上设置执行器名称。

由于此配置更改,这是一个重大更改。在进行手动更改之前,您的真空感应将不起作用。您可以在以下位置观看演示如何进行所需更改的简短视频教程:https://www.youtube.com/watch?v=FsZ5dy7n1Ag

2017-02-05
执行器改进

执行器现在可以以通用方式读取字符串值。这样就可以将各种传感器集成到您的系统中,并以您喜欢的任何方式使用输出,尤其是使用脚本。GcodeDriver 已更新,可使用此新功能。有关详细信息,请参阅:
https://github.com/openpnp/openpnp/wiki/GcodeDriver#actuator_read_regex

https://github.com/openpnp/openpnp/wiki/GcodeDriver:-Command-Reference#actuator_read_command

点动控制中的“执行器”面板现在提供了更多用于控制和测试执行器的选项。您可以发送真/假布尔值,发送双精度值并读取每个执行器的响应。
2017-01-27
图标改进

非常感谢@dzach我们现在在OpenPnP的许多部分都有了一些改进的图标。 @dzach花了几天时间研究和完善图标,以更好地展示它们的意图,并提高色盲患者的可用性。结果,过去需要您思考片刻以记住它们的几个图标被重新设计为非常清晰且易于理解。

参考资料:https://github.com/openpnp/openpnp/pull/429 https://github.com/openpnp/openpnp/pull/426 https://github.com/openpnp/openpnp/issues/421

谢谢@dzach!

2017-01-15
参考插槽自动进纸器

添加了一个名为 ReferenceSlotAutoFeeder 的新进纸器,它提供了可移动自动进纸器的功能。

ReferenceSlot自动进纸器允许您在机器上定义任意数量的进纸器插槽,每个插槽都可以包含一个进纸器。通过更改插槽中的进纸器,您可以将其设置从一个插槽移动到另一个插槽,而无需重新配置其位置、部件或其他设置。

该供料器的主要用途是用于具有自动供料器的机器,这些自动供料器可以很容易地从一个位置移动到另一个位置。

更多信息请见 https://github.com/openpnp/openpnp/wiki/ReferenceSlotAutoFeeder。

这项工作是在 https://github.com/openpnp/openpnp/issues/399 年完成的。

2017-01-09
基于 QR 码的 X 输出示例脚本

一个名为QrCodeXout.js的新示例脚本现在包含在OpenPnP中。它将扫描作业中的每个板以获取QR码,如果找到QR码,该板将被禁用。 这是一种在开始作业之前在面板中标记坏板的简单方法。

示例脚本的目的是展示如何使用 QR 码阅读器执行复杂任务。可以轻松修改它以搜索其他标记或其他类型的代码。

2017-01-06
脚本运行 cvPipeline 阶段

添加了一个名为 ScriptRun 的新 CvPipeline 阶段。此阶段获取一个文件,并使用受支持的内置脚本引擎之一将其作为脚本运行。这使得人们可以轻松地将自己的视觉逻辑添加到管道中,而无需编写阶段。

该脚本提供 和 的全局变量 。pipelinestage

示例脚本如下所示。它将输入图像的所有像素设置为绿色。

pipeline.workingImage.setTo(new Packages.org.opencv.core.Scalar(0, 255, 0));
通过将上述内容保存到扩展名为.js的文件中并在阶段中选择它,脚本将在每次评估阶段时运行。

2016-12-30
OpenCvCamera 捕获属性

您现在可以在OpenCvCamera上设置许多捕获属性。并非每个系统或每个相机都支持所有属性。此功能是实验性的,主要用于允许用户尝试曝光和格式控制。

要设置属性,请打开摄像机的配置,选择“摄像机特定”选项卡,然后查找底部的“属性”部分。

更多信息请访问:https://github.com/openpnp/openpnp/issues/328

2016-12-29
自动进纸器改进

ReferenceAutoFeeder 现在可以在布尔或双精度模式下使用执行器,并且配置面板已更新以支持每个执行器。

ReferenceAutoFeeder 现在还支持后拾取执行器,这有助于支持需要两次进纸操作的进纸器。这在越来越流行的雅马哈 CL 喂食器中很常见。进纸执行器用于缩回防护装置,后拾取执行器用于在拾取后推进胶带。

现有馈线不应要求进行任何更改来支持这些新功能。默认值已保留。

进纸器面板中支持的后拾取

现在,当您运行拾取操作时,将从“馈送器”选项卡调用“拣选后操作。这在测试使用此功能的馈送器时很有用。在此添加之前,仅在作业运行时调用后选取操作。

帮助菜单

现在有一个新的帮助菜单,其中包含指向重要文档的快速链接,以及一个新选项,可让您检查 OpenPnP 的更新。仅当使用安装程序安装了 OpenPnP 时,才会启用此选项。如果您从源代码构建它,它将不可用。

相机改进

ReferenceCamera 现在在处理无效图像问题方面更加智能,当相机配置不正确时,它应该不再会导致高 CPU 使用率。此外,当它收到空映像时,它将重试多达 10 次,然后失败。这对于有时会返回不良图像的相机很有帮助;ELP 系列 USB 相机很常见。

DipTrace 本机导入

非常感谢@BendRocks,我们现在有了原生的DipTrace导入支持。 在“文件”-“导入”菜单下找到新的导入程序>。

2016-12-20
用户界面改进

此更改引入了新的布局和对主用户界面的一些更改。 此更改的目的是改善人们花费最多时间与之交互的事物的屏幕空间的使用。

主要变化是屏幕现在垂直而不是水平拆分。摄像机已移至左上角,点动控件已移至左下角。选项卡和表格已移动到屏幕右侧,现在堆叠而不是并排放置。

这种变化的主要好处是它更好地利用了屏幕更宽的趋势。以前,由于几个组件的固定尺寸,具有宽(但短)屏幕的用户的工作空间非常有限。现在,屏幕垂直分割后,可以使用屏幕的整个高度来查看作业、展示位置和配置信息。

其他小变化是:

如果您更喜欢使用键盘快捷键或相机慢跑,您现在可以折叠点动控件以使其不碍事。
DRO 已从“机器控制”部分移至状态栏的右下角。长期以来,DRO 占用了大量的屏幕空间,用于真正没有那么有用的东西。您仍然可以通过单击它们在相对模式和绝对模式之间切换。
以下是一些屏幕截图,以显示主要差异。第一个显示更改前的界面,下一个显示展开了角拐控件的新用户界面,第三个显示缓动控件折叠的新界面。

屏幕截图 2016-12-20 在 5 53 55 下午

屏幕截图 2016-12-20 在 5 37 16 下午

屏幕截图 2016-12-20 在 5 40 57 下午

最后,我要特别感谢@FinalPhoenix,他慷慨地自愿帮助改进OpenPnP的用户界面和整体用户体验!

其中许多更改都是由@FinalPhoenix提出的,在她的帮助下,我希望使OpenPnP比以往任何时候都更加有趣和易于使用。

2016-12-19
导航面板介绍

导航面板是一项新功能,可显示机器和作业的 2D 渲染视图,并允许在各个组件周围快速导航。您可以快速慢跑到机器上的任何位置,并可以看到相机、喷嘴、进料器、电路板和位置的实时视图。此外,只需单击面板中的其中一个对象,即可非常轻松地在下表中快速找到这些对象。

此功能仍在大量开发中。有一些已知的错误和限制:

选择项目时,选择边框呈现有时会从拖动角拐线获取伪影。
板底未正确呈现。
有关此功能的详细信息,请参阅 https://github.com/openpnp/openpnp/issues/99。

可以尝试的一些方法是:

加载作业以查看看板和展示位置的可视化表示。
使用鼠标滚轮放大和缩小。
将鼠标悬停在对象上以查看其名称。
单击各种对象以选择它们,并立即在下表中导航到它们。
单击并拖动以点动相机。
单击相机将其变为透明,以便您可以看到其下方的内容。
2016-12-18
在机器设置选项卡中添加和移除摄像头、喷嘴、喷嘴尖端和执行器。

现在,您可以在机器设置选项卡中添加和移除摄像机、喷嘴和执行器。要添加,请单击要创建的内容的标题,然后单击上面的添加按钮。要删除,请单击要删除的那个,然后单击上面的“删除”按钮。

已删除“摄像机”选项卡

相机选项卡已被删除,其所有功能都已移至计算机设置。这是将所有设置任务移动到计算机设置的长期更改的一部分,这是最后一个更改。

更多信息请访问: https://github.com/openpnp/openpnp/issues/103

2016-12-11
相机拖动慢跑

现在,您可以在摄像机视图中单击并拖动以移动摄像机。当您单击并开始拖动时,从相机的当前中心到释放按钮时相机将要去的位置会显示一条白线。这是对现有的 Shift-Click to 点动系统的补充。它旨在最终取代该系统。

导航视图更新

导航视图是一项已经开发一段时间但在代码中被禁用的功能。它从上到下呈现机器的 2D 渲染视图,并允许您在机器周围快速移动并获取有关对象(如板、放置位置、进料器等)的信息。此功能仍在开发中,尚未准备好迎接黄金时段,但它已经变得足够有趣,以至于有些人可能想尝试一下。要启用它,您需要将 -DenableNav=true 添加到命令行中。

启用后,将出现一个新选项卡,其中包含摄像机呼叫导航。尝试加载作业以查看视图显示的内容。您应该会看到电路板、放置位置、进纸器、相机和喷嘴的红点。您可以使用鼠标滚轮放大和缩小,将鼠标悬停在对象上以获取信息,单击并拖动以点动机器,单击相机以将其变为透明。摄像机实时移动和更新。

此功能将在未来几个月内增长很多。这只是一个预览。

事件总线(开发人员)

在 Configuration.getBus() 中添加了一个简单的事件总线。目前正在使用上面的导航视图对此进行测试,旨在进一步分离 UI。此新增功能正在测试中,以便进一步使用。有关详细信息,请参阅:

https://github.com/google/guava/wiki/EventBusExplained

2016-11-26
脚本事件

脚本事件是一项新功能,将来会得到大量使用。这允许在 OpenPnP 中发生某些事情时运行脚本。脚本按名称引用,可以是任何受支持的脚本扩展。它们位于脚本/事件目录中。

通过调用 来使用该功能。 Scripting.on(String eventName, Map<String, Object> globals)

作为此功能的一部分,脚本已移至配置而不是大型机,以便可以在 UI 外部使用。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/Scripting#scripting-events。

相机.捕获之前和相机捕获后脚本事件

上述新功能的首次使用是两个可用于控制照明和其他复杂摄像机操作的事件。Camera.BeforeCapture 在捕获图像之前触发,Camera.AfterCapture 在捕获完成后触发。

通过将脚本事件与命名执行器结合使用,您可以控制计算机上的任何设备。

有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/Scripting#camerabeforecapture 和 https://github.com/openpnp/openpnp/wiki/Scripting#cameraaftercapture

删除了已弃用的 LtiCivilCamera 和 VfwCamera

LtiCivilCamera和VfwCamera是Mac和Windows的相机实现。这些需要的本地库已经过时,据我所知,不再使用。这些已被删除,以努力从项目中删除死代码。

如果您依赖于这些,请尝试切换到OpencvCamera或WebcamCamera。有关详细信息,请参阅 https://groups.google.com/forum/#!msg/openpnp/JnOMjZWi9C8。

2016-11-17
注意:中断性变更
拾取和放置真空传感功能最初以不同的配置变量名称发布。如果您安装了昨天发布的此版本,则在安装此版本时将无法加载您的配置。要修复此问题,请编辑您的计算机.xml并删除包含 和 的行。vacuum-level-minvacuum-level-max

变化
拾取和放置真空传感

现在,您可以在喷嘴尖端上设置“部分打开”和“部分关闭”真空度。这些值将在拾取和放置操作期间进行检查。目前仅在 GcodeDriver 中受支持。 有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/GcodeDriver#vacuum_report_regex 和 https://github.com/openpnp/openpnp/wiki/GcodeDriver%3A-Command-Reference#vacuum_request_command。

感谢Matt Brocklehurst提供此功能。

相机视图变焦

现在,您可以使用鼠标滚轮放大相机视图。缩放级别不会影响软件在拍照时看到的内容,它只会影响您看到的内容。这可用于在进行设置工作时更轻松地确定位置。

馈线后拣选事件

供料器现在支持后拣选事件,该事件允许在拣选完成后启动。 此功能主要用于自定义供料器,当前未在默认供料器中使用。

感谢Matt Brocklehurst提供此功能。

Gcode驱动程序控制器错误检测

GcodeDriver 现在可以使用 . 有关更多详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/GcodeDriver#command_error_regex。COMMAND_ERROR_REGEX

感谢Matt Brocklehurst提供此功能。

2016-10-28
增加了喷嘴尖端更换器第四步

喷嘴尖端更换器中添加了第四个移动选项,以支持类似 LitePlacer 的硬件配置。默认情况下,第四次移动是在配置加载时从前一个第二次移动克隆的,因此更改不会导致现有配置的任何新移动。

https://github.com/openpnp/openpnp/issues/354

记录更改

OpenPnP现在使用TinyLog进行日志记录,而不是SLF和Log4J。 TinyLog的配置要简单得多,使用起来也简单得多。它的功能要少得多,但根据 https://github.com/openpnp/openpnp/issues/333 的反馈,这是首选。

日志记录现在默认为 INFO 级别。
可以从日志选项卡中更改级别,并将其保存。
无需重新启动 OpenPnP 即可即时更改日志级别。
仍会创建轮换日志文件。命名略有变化。文件现在在每次启动后轮换,而不是每天轮换。
相机视图标线现在跟踪工具旋转

在此更改之前,相机视图标线/十字准线始终跟踪相机的旋转。由于大多数相机不旋转,这没有多大意义。视图现在跟踪当前所选工具的旋转,该工具几乎总是喷嘴。

https://github.com/openpnp/openpnp/issues/347

条带进料机改进

现在,带状进纸器在第一次进纸之前移动到正确的拾取位置,即进纸计数为 0 时。这只是一点用户友好性,并没有真正改变任何功能。 https://github.com/openpnp/openpnp/issues/352
送条器自动设置不再捕获或覆盖 Z 值。 https://github.com/openpnp/openpnp/issues/353
2016-10-17
GcodeDriver CamTransform

GcodeDriver 现在支持基于 Cam 的 Z 轴,例如 OpenBuilds 参考设计、RobotDigg 头部和其他几种常见头部设计中使用的轴。

要使用新转换,请参阅下面的示例配置。

<axis name=“z” type=“Z” home-coordinate=“0.0”>
<head-mountable-ids class=“java.util.HashSet”>
<string>69edd567-df6c-495a-9b30-2fcbf5c9742f</string>
<string>169edd567-df6c-495a-9b30-2fcbf5c9742f</string>
</head-mountable-ids>
<transform class=“org.openpnp.machine.reference.driver.GcodeDriver$CamTransform” cam-radius=“24.0” cam-wheel-radius=“9.5” cam-wheel-gap=“2.0”>
<negated-head-mountable-id>169edd567-df6c-495a-9b30-2fcbf5c9742f</negated-head-mountable-id>
</transform>
</axis>
特别是,必须为两个喷嘴定义 Z 轴头安装内径,并且必须将否定的头安装内径设置为辅助喷嘴。用于定义凸轮的参数包括:

凸轮半径:凸轮本身的半径。
凸轮-轮-半径:凸轮末端实际向下推动轴的轴承或车轮的半径。
凸轮-轮-间隙:凸轮车轮与它们向下推动的轴顶部之间的间隙(如果有)。
2016-09-07
成功和错误声音,信号器接口

OpenPnP 现在可以在作业完成或因错误而失败时播放声音。此功能还引入了一个 Signaler 接口,该接口将在将来用于允许为相同事件触发外部硬件。

有关此新功能的详细信息,请参阅:https://github.com/openpnp/openpnp/wiki/Signalers

感谢@pfried贡献此功能!

2016-08-27
GcodeDriver Gcode Configuration UI

现在,您可以通过计算机设置 -> 驱动程序 -> Gcode驱动程序中找到的驱动程序配置向导配置所有 Gcode 命令和正则表达式。该向导有两个选项卡:“串行”和“Gcode”。在 Gcode 选项卡中,您可以选择要配置的工具以及该工具的命令。通过选择默认工具,您可以配置默认命令集,这些命令集用于在找不到工具特定命令时进行回退。

GcodeDriver 命令现在在 CDATA 中

GcodeDriver 命令现在切换为使用 CDATA,而不是转义的 XML。这样可以更轻松地包含可能包含 XML 字符的复杂正则表达式。通常,您不必更改任何内容。OpenPnP 将在您首次运行时更新您的配置。生成的命令如下所示:

<command type=“CONNECT_COMMAND”>
<text><![CDATA[G21]]></text>
<text><![CDATA[G90]]></text>
<text><![CDATA[M82]]></text>
</command>
只有 [] 之间的数据被视为命令的一部分。

Gcode驱动程序位置报告

GcodeDriver 现在将从控制器读取位置报告。这可用于在移动期间提供反馈,或为可能从外部移动到 OpenPnP 的控制器提供反馈。这是一个非常新的功能,预计需要一些迭代才能完美。如果您遇到问题,请报告。

要添加位置报告,请按以下格式定义一个新的正则表达式:

<command type=“POSITION_REPORT_REGEX”>
<text><![CDATA[<Idle,MPos:(?<x>-?\d+.\d+),(?<y>-?\d+.\d+),(?<z>-?\d+.\d+),(?<rotation>-?\d+.\d+)>]]></text>
</command>
请注意,正则表达式包含命名组。命名组用于标识已定义的每个轴的坐标。您应该在轴部分中使用相同的名称命名组。在上面的命令中,组/轴被命名为 x、y、z 和旋转。

2016-08-08
GcodeDriver Tool 特定命令

GcodeDriver 现在能够根据发送命令的工具发送不同的命令。这意味着您可以对头上的每个对象使用不同的命令 ,例如喷嘴、相机、执行器等。最重要的是,您现在可以为每个喷嘴设置单独的拾取和放置命令。

首次使用此版本启动 OpenPnP 时,它将自动更新您的配置并将现有命令移动到默认命令集中。关闭 OpenPnP 后,请检查您的机器.xml以查看更改。

若要为命令指定特定工具,请使用以下语法:

<command head-mountable-id=“269edd567-df6c-495a-9b30-2fcbf5c9742f” type=“PICK_COMMAND”>
<text>M808</text>
<text>M800</text>
</command>
<command head-mountable-id=“69edd567-df6c-495a-9b30-2fcbf5c9742f” type=“PICK_COMMAND”>
<text>M808</text>
<text>M802–</text>
</command>
请注意,PICK_COMMAND指定了两次。每个喷嘴一个。头戴式 ID 指定命令适用于哪个喷嘴。

OpenPnP 将首先搜索与指定工具匹配的命令,如果找不到该工具的命令,则默认为定义的没有头戴式 ID 的命令。

支持工具特定代码的命令包括:

MOVE_TO_COMMAND
PICK_COMMAND
PLACE_COMMAND
ACTUATE_BOOLEAN_COMMAND
ACTUATE_DOUBLE_COMMAND
2016-06-22
Python 脚本支持

现在默认包含 Python 支持,而不需要外部安装。

GcodeDriver 泵打开,泵关闭

GcodeDriver 现在具有按命令抽油和按命令抽水命令的命令,这些命令将根据当前是否有任何喷嘴拾取而智能触发。

2016-06-21
GcodeDriver 轴映射

GcodeDriver 现在有一个用于将轴映射到头部物体的系统,以及一个用于转换每个轴上的坐标的系统。这允许比基本的单喷嘴、四轴设置更复杂的头部设置。特别是,该系统允许单个 Z 电机在凸轮、皮带或齿条和小齿轮配置中为两个 Z 轴提供动力的情况,方法是指定单个 Z 轴,并在其上映射两个喷嘴,以及适当的转换。有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/GcodeDriver#axis-mapping。

2016-06-20
脚本引擎

OpenPnP 现在能够运行用户提供的脚本,这些脚本可以完全访问 OpenPnP API 和 GUI。这样可以轻松地将新的实用程序和功能添加到 OpenPnP 的安装中,而无需修改代码。

有关详细信息,请参阅:https://github.com/openpnp/openpnp/wiki/Scripting

2016-06-19
ONVIF相机支持

多亏了@richard-sim,我们现在支持使用ONVIF标准的IP摄像机。许多IP摄像机都使用此标准,尤其是在安全摄像机领域。这为OpenPnP带来了廉价的IP摄像机支持,并为摄像机提供了比以前更广泛的选择。

2016-06-16
“日志”选项卡

有一个名为“日志”的新主窗口选项卡,用于显示日志记录输出。这使您可以更轻松地查看 OpenPnP 中各种命令的输出。它具有限制显示的日志长度和日志级别的选项。这是该功能的第一个版本,不包括计划的所有功能。更多信息请访问:https://github.com/openpnp/openpnp/issues/288

2016-06-03
GcodeDriver Move To Complete Regex

您现在可以在 GcodeDriver 配置中包含,以指定 move-to 命令在完成之前将等待的正则表达式。这用于在移动完成之前返回命令确认的运动控制器 - 特别是TinyG。有关详细信息,请参阅 https://github.com/openpnp/openpnp/wiki/GcodeDriver#move-to-complete-regex。

2016-05-25
OpenBuild驱动程序轮换改进

OpenBuilds驱动程序现在将旋转轴视为旋转轴,而不是线性轴。这意味着如果这是到达给定位置的更快方式,它将选择转向相反的方向。换句话说,如果您尝试从 355 度移动到 10 度,它将逆时针移动 15 度,通过 360 度而不是顺时针 345 度通过 180 度。

这大大提高了与最近将所有旋转移动视为独奏的更改相关的性能。

2016-05-16
喷嘴公园

https://github.com/openpnp/openpnp/issues/76

现在有一个每人公园的位置。您可以在机器设置 -> 磁头中设置位置。
点动控制面板中的零按钮已替换为停车按钮。每个都将选定的喷嘴移动到公园位置。
作业处理器现在可以选择在作业完成后停放喷嘴,而不是重新归位。您可以在计算机设置 ->作业处理器中打开此选项。
2016-05-15
在零件和包面板上进行多选

现在,您可以在“零件”和“包”面板中选择要删除的多个条目。

2016-05-14
作业处理器重构

https://github.com/openpnp/openpnp/issues/265

这是对 JobProcessor 的重大重写,JobProcessor 是处理作业实际运行的代码。此重写的目的是解决多年来在 JobProcessor 中出现的许多问题,主要是围绕错误处理和重试。 包括以下更改:

馈送器重试:您可以在馈送器配置中指定重试计数(默认为 3),如果给定馈送器上的馈送操作失败,该操作将在禁用馈送器并前进到下一个可用馈送器之前重试多次。如果没有更多供料器可用于该部件,则进纸操作将失败,并通知用户。 https://github.com/openpnp/openpnp/issues/206
作业错误恢复:如果作业的任何部分失败,现在会显示一个对话框,提供重试、跳过、暂停选项以解决它。不再有“作业将暂停”使系统损坏。重试将尝试重新运行上一个任务。跳过将跳过处理当前展示位置。暂停将暂停作业并隐藏对话框,以便用户可以进行配置更改以尝试解决错误。可以使用“运行”或“步骤”按钮继续作业。
作业完成后的家:当作业正常完成时,机器将返回主目录。 https://github.com/openpnp/openpnp/issues/76
作业前和作业后机器清理:作业开始之前以及作业完成或中止后,如果有任何喷嘴固定零件,则该零件将被丢弃。 https://github.com/openpnp/openpnp/issues/102
开发人员注意:此功能的代码和 API 被视为 alpha 质量,预计会发生变化。我对该功能的代码质量不满意,但我对功能非常满意,所以我发布了它。我打算重新审视这一点,并对代码和 API 进行重大更改。

锡膏分配暂时禁用

由于上述作业处理器重构,锡膏分配暂时禁用。有关详细信息,请参阅 https://github.com/openpnp/openpnp/issues/271。

2016-05-12
在所有摄像机视图中显示摄像机名称

选择“所有摄像机”视图后,每个摄像机的名称将显示在视图左下角的小框中。这样,当您有多个摄像机在运行时,可以更轻松地了解您在看什么。

OpenCvCamera 中的 FPS 限制选项

您现在可以在 OpenCvCamera 向导中设置 FPS 限制。默认值为 24。这有助于限制具有高分辨率相机的计算机上的 CPU 使用率。

从 VisionProvider 中删除了 Bottom Vision API

在Bottom Vision功能完成之前,它已被存根到VisionProvider API中。由于底部视觉是它自己的第一级对象,现在不再需要它,因此它已被删除。现有的实现应该移动到ReferenceBottomVision或他们自己的PartAlignment的特定实现。

相机裁剪

https://github.com/openpnp/openpnp/issues/171

您现在可以在相机上设置裁剪宽度和高度。裁剪是从中心应用的,因此将裁剪设置为 200x200 将使相机的输出仅中心为 200x200 像素。当您拥有高分辨率相机但只关心其中的一小部分时,这很有用。裁剪可减少需要处理的数据量,并减少 CPU 和内存使用量。

2016-04-27
速度值归一化

UI 中提及速度的任何位置现在都以百分比表示。这包括新的限速滑块、零件速度和拖动进料器速度。

全球限速

现在,点动控件中有一个滑块,可将机器的整体速度控制在 0 - 100% 之间。速度应用于系统中的所有其他速度。具体而言,如果您有特定于零件的速度,则应用于该零件的速度将是全局速度乘以零件速度。

2016-04-24
底眼!

这是底部视觉功能的第一个版本。这是一个已经开发了很长时间的功能,并且在此过程中已经获得了许多小而重要的功能来配合它。

有关底部视力的更多信息,请访问:https://github.com/openpnp/openpnp/wiki/Bottom-Vision

2016-04-23
将角拐控件从其对话框移动到主窗口。

点动控件现在始终可用,并且已修改为占用更少的垂直空间。点动控件中的大启动/停止按钮已替换为较小的“电源”按钮,点动增量滑块已更改为垂直而不是水平,并且还集成到点动控件中。

最终结果是,点动控件现在占用的空间量与过去的大“开始”按钮+增量滑块大致相同,但现在它们始终可见。

将 Nozzle.pick() 更改为 Nozzle.pick(Part) 并添加了 Nozzle.getPart()

此更改允许喷嘴知道它选择了哪个部件,还允许调用方找出相同的部件。这在模拟UpCamera中用于渲染零件,将在导航视图中用于渲染零件,用于根据零件速度控制移动速度,并将用于将来对零件丢弃箱的改进。

零件速度现在在Nozzle.moveTo中强制执行,而不是在整个程序中随机执行。

这是可能的,因为上面的 Nozzle.pick(Part) 更改并提高了与零件速度相关的整体代码质量。

将丢弃位置添加到计算机。

可以在计算机设置 -> 计算机中配置丢弃位置。发生错误时,丢弃位置用作零件的倾倒区域。

将丢弃按钮添加到特殊命令窗口。

允许您手动丢弃当前在选定喷嘴上拾取的任何零件。

将“拾取”按钮添加到“零件”面板。

拾取按钮允许您从第一个可用的进纸器中选取所选零件。

从“特殊命令”窗口中删除“拾取和放置”按钮。

此功能的名称不正确,因为它实际上并没有拾取或放置零件,它只是用于打开和关闭真空。 拾取功能现在由“零件”和“进纸器”面板上的“拾取”按钮处理,“放置”功能由“丢弃”按钮处理。

END

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

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

相关文章

g++ -v 若显示g++不是内部或外部命令`

MinGW - Minimalist GNU for Windows Files下载地址 下载地址点这里https://sourceforge.net/projects/mingw/files/ . exe文件下载后建议安装在D盘下tools文件夹下&#xff08;个人习惯&#xff09; 此次安装在默认路径下&#xff0c;直接傻瓜式安装 安装&#xff1a; 1.…

2023年网络安全竞赛——网络安全应急响应Server2228

网络安全应急响应 任务环境说明&#xff1a; 服务器场景&#xff1a;Server2228&#xff08;开放链接&#xff09; 用户名&#xff1a;root&#xff0c;密码&#xff1a;pssw0rd123 1. 找出被黑客修改的系统别名&#xff0c;并将倒数第二个别名作为Flag值提交&#xff1b…

CTFshow-pwn入门-前置基础pwn13-pwn19

pwn13 题目说编译运行这个flag.c文件即可获得flag。那我们先把flag.c文件下载下来&#xff0c;然后托到虚拟机里使用gcc编译一下&#xff0c;运行看看是否能够拿到flag。 gcc -o flag -flag.c ./flagok&#xff0c;果然拿到了flag。flag为&#xff1a;ctfshow{hOw_t0_us3_GCC?…

前端小练-平台首页介绍+动画

文章目录 前言结构头部外部容器文字 主体小球动画打字机动画特效实现监控 完整代码总结 前言 时间飞逝&#xff0c;快大四了&#xff0c;刚好最近看不下去考研的&#xff0c;而且要准备这个毕设选题了&#xff0c;然后就想着怎么能够把自己所学的东西都用上&#xff0c;一开始…

Vue H5项目如何在PC端时布局居中展示,而不全屏拉伸

目录 1、场景再现&#xff1a;在PC端时 H5项目布局被拉伸2、代码实现3、最终效果图4、疑惑 1、场景再现&#xff1a;在PC端时 H5项目布局被拉伸 2、代码实现 在App.vue中的写入&#xff0c;vue2 的在mounted中写入&#xff0c;vue3的写在onMounted写入。 逻辑讲解&#xff1a…

Android 全局黑白化-模拟颜色空间

概述 平台&#xff1a; RK3568 Android 11在一些特殊的日子&#xff0c;如默哀日、灾难日&#xff0c;纪念日&#xff0c;哀悼日等&#xff0c;许多的APP、网页、海报等都开始使用黑白色主题。Android 的全局黑白实现方案&#xff0c;可以考虑使用模拟颜色空间的方法。 借助硬…

RabbitMQ高阶使用消息推送

目录 1 从打车开始说起1.1 需要解决的问题1.2 消息推送 2 消息推送2.1 什么是消息推送2.2 方案介绍2.2.1 ajax短轮询2.2.2 长轮询2.2.3 WebSocket 2.3 WS实现消息推送2.3.1 架构介绍2.3.2 暂存数据2.3.2.1 什么是MongoDB2.3.2.2 插入数据2.3.2.3 查询数据 2.4.1 轮询任务2.4.1.…

学生党暑假在家赚钱得方法,足不出户轻松赚取买鞋钱

很多学生党都想在暑假期间赚点零花钱&#xff0c;最好是能在家就赚钱。在家里赚零花钱有许多途径&#xff0c;今天我来和大家分享一些方法。 1、问答在各大平台上非常普遍。 我们可以在各大平台上找到各种各样的问答。 如今&#xff0c;问答平台越来越多&#xff0c;提供的奖…

平凯星辰重磅支持 2023 开放原子全球开源峰会,开源数据库分论坛成功召开

2023 年 6 月 11 日至 13 日&#xff0c;以“开源赋能&#xff0c;普惠未来”为主题的 2023 开放原子全球开源峰会开幕式暨高峰论坛在北京成功举办。企业级开源分布式数据库厂商平凯星辰联合创始人兼 CTO 黄东旭受邀出席峰会参与开源论道圆桌&#xff0c;担任开源数据库分论坛出…

吴恩达ChatGPT课爆火

点上方计算机视觉联盟获取更多干货 没想到时至今日&#xff0c;ChatGPT竟还会犯低级错误&#xff1f; 吴恩达大神最新开课就指出来了&#xff1a; ChatGPT不会反转单词&#xff01; 比如让它反转下lollipop这个词&#xff0c;输出是pilollol&#xff0c;完全混乱。 哦豁&#…

C++14中返回类型推导的使用

使用C14中的auto返回类型&#xff0c;编译器将尝试自动推导(deduce)返回类型: namespace {int xx 1; auto f() { return xx; } // return type is int const auto& f3() { return xx; } // return type is const int&auto multiply(int a, int b) { return (a * b); …

【阅读论文】时间序列数据清洗:一项调查

文章目录 摘要一、引言A.问题陈述B.问题挑战C. 组织 二、基于平滑的清洗算法A.移动平均B.自动注册C.卡尔曼滤波模型D.总结和讨论 三、基于约束的混合算法A. 顺序依赖 (OD)B.序列相关性C.速度约束D.总结和讨论 四、基于统计的CLEANING算法A.最大似然B.马尔可夫模型C.二项抽样D.时…

基于51单片机设计的井下瓦斯监控系统

一、项目介绍 井下瓦斯监控系统是煤矿安全生产中非常重要的一部分,防止井下瓦斯爆炸事故的发生,保障煤矿工人的人身安全。由于地下环境特殊,需要特殊的监测系统来实时监测瓦斯浓度等关键指标,并及时报警以便采取措施进行处理。 瓦斯气体,又称沼气,是一种轻质烃类气体,…

基于的滤波器设计

一,带通滤波器设计指标。 1&#xff0c;中心频率。中心频率:通常定义为带通滤波器&#xff08;或带阻滤波器&#xff09;频率的几何平均值&#xff0c;在对数坐标下&#xff0c;即为两个3dB点之间的中点&#xff0c;一般用两个3dB点的算术平均来表示。滤波器通频带中间的频率&…

网工大题题型总结(1)-------网络安全方面考察

&#xff08;1&#xff09;2018年上半年 试题二 &#xff08;3&#xff09;常见的无线网络安全隐患有 IP 地址欺骗、数据泄露、(8)、(9)、双络通信被窃听等; 为保护核心业务数据区域的安全&#xff0c;网络管理员在设备①处部署(10)实现核心业务区域边界 防护;在设备②处部署…

C++11特性之左值引用和右值引用

3.1二者的对比之内置类型 内置类型的无名对象&#xff08;右值&#xff09;为纯右值&#xff0c;其值本身不可改变 int main() {int a10;const int b20;int& raa;//ok,左值引用const int& rbb;//ok&#xff0c;常性左值引用const int& crv30;//ok,也叫万能引用&a…

网络安全竞赛——综合靶机渗透测试ZHCS-2全过程解析教程

任务一:综合靶机渗透测试 任务环境说明: 服务器场景:ZHCS-2(关闭连接)服务器场景操作系统:版本不详扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23) FLAG:22,80 扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4) FLAG: ligh…

Vue3 Hooks函数使用及封装思想

目录 一. 什么是hooks函数&#xff1f; 二、如何封装一个hooks函数 三、Hooks 常用 Demo &#xff08;1&#xff09;验证码倒计时 &#xff08;2&#xff09;防抖 &#xff08;3&#xff09;节流 一. 什么是hooks函数&#xff1f; 专业解释&#xff1a;Vue 3中的Hooks函数…

Nucleo-F411RE (STM32F411)LL库体验 8 - PWM的使用

Nucleo-F411RE &#xff08;STM32F411&#xff09;LL库体验 8 - PWM的使用 1、简述 LD2连接PA5&#xff0c;而PA5可以映射TIM2_CH1&#xff0c;配合TIM2&#xff0c;可以输出PWM。 本片文章大量工作是添加了shell命令&#xff0c;可以通过pwm命令开关pwm以及设置pwm的频率&am…

数字图像处理期末考点整理(全)

计算&#xff1a;傅里叶变换&#xff0c;双线性插值&#xff0c;直方图均衡化&#xff0c;灰度共生矩阵&#xff0c;霍夫曼编码&#xff0c;区域增长/合并&#xff0c;中值滤波 简答&#xff1a;窗口/模板处理&#xff0c;BMP文件存储格式&#xff0c;滤波器和平滑算子的特点&…