news 2026/6/12 15:15:53

自动装盘机中倒瓶检测算法的工程实现:从光电对射到机器视觉的演进

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动装盘机中倒瓶检测算法的工程实现:从光电对射到机器视觉的演进

一、问题定义

在装盘机进瓶段,瓶子经传送带高速通过。倒瓶(瓶身倾斜超过15°或完全倒下)若未被检出并剔除,将导致:

  • 推瓶机构卡死,触发伺服过载报警;

  • 爆瓶风险增加,碎玻璃污染托盘;

  • 整线停机,影响OEE。

因此,倒瓶检测算法需要满足:

  • 实时性:检测周期 ≤ 10ms(传送带线速度0.5m/s,瓶间距80ms);

  • 准确性:漏检率 < 0.1%,误检率 < 0.05%;

  • 鲁棒性:抗环境光、粉尘、瓶身标签反光干扰。


二、传统光电方案的缺陷

典型的双光电对射方案:上下两组对射传感器,瓶身直立时上下同时被遮挡,时间差ΔT稳定在较小范围;倒瓶时上下遮挡时间差ΔT显著增大。

实际测试数据(某药企2ml西林瓶,速度500瓶/分钟)

瓶型直立瓶ΔT均值(ms)倒瓶ΔT均值(ms)误判率漏判率
透明西林瓶3.29.54.7%6.2%
棕色口服液瓶4.112.32.1%3.5%
塑料瓶(带标签)5.08.211.3%9.8%

问题根源:

  1. 透明瓶透光率波动,导致传感器触发电平不稳定;

  2. 标签反光造成误触发;

  3. 不同瓶型高度差异需人工重新校准传感器位置。


三、改进方案:单点激光测距+滑动中值滤波

3.1 硬件选型

将两组对射改为单只激光测距传感器(基恩士LR-Z系列或欧姆龙B5WC),水平安装于传送带一侧,高度为瓶身中位线。测量原理:激光三角法,输出模拟量4-20mA对应距离35-250mm。

直立瓶通过时,传感器测得的距离稳定在D_bottle(标定值);倒瓶时瓶身倾斜,测量点偏移,距离值跳变为D_bottle ± ΔD,ΔD通常 > 10mm。

3.2 信号预处理:滑动中值滤波

原始AD值存在±1~2mm的白噪声。采用滑动中值滤波(窗口长度N=5)效果优于均值滤波,能保留边缘跳变。

伪代码(SCL)

text

FUNCTION MedianFilter : REAL VAR_INPUT raw : REAL; END_VAR VAR_STATIC buf : ARRAY[0..4] OF REAL; idx : INT := 0; i,j : INT; tmp : REAL; END_VAR buf[idx] := raw; idx := (idx + 1) MOD 5; // 冒泡排序 FOR i := 0 TO 3 DO FOR j := i+1 TO 4 DO IF buf[i] > buf[j] THEN tmp := buf[i]; buf[i] := buf[j]; buf[j] := tmp; END_IF; END_FOR; END_FOR; MedianFilter := buf[2]; // 中值 END_FUNCTION
3.3 状态机设计

定义了三个状态:S_IDLE(等待瓶子)、S_BOTTLE_DETECT(瓶子进入检测区)、S_REJECT(剔除动作)。

状态转换逻辑:

text

S_IDLE: IF distance < threshold_near THEN start_timer(T_detect) 进入 S_BOTTLE_DETECT S_BOTTLE_DETECT: IF distance stable in [D_bottle - 2, D_bottle + 2] for 10ms THEN upright_count++; 回到 S_IDLE ELSE IF distance > (D_bottle + 8) OR distance < (D_bottle - 8) THEN 进入 S_REJECT ELSE IF T_detect > 50ms THEN // 超时无瓶子 回到 S_IDLE S_REJECT: // 计算剔除延时:传感器到气吹口距离L / 传送带速度v - 阀门响应时间 delay_time = L / v - 20ms; 延时后置位气阀,持续30ms 回到 S_IDLE
3.4 自适应基准学习

为解决不同瓶型的适配,程序中加入一键标定功能:按住HMI上的“学习”按钮,连续通过20个已知直立瓶,系统自动计算平均距离并更新D_bottle,同时设置阈值TH_H = D_bottle + 8TH_L = D_bottle - 8


四、性能对比测试

在某自动装盘机试验台上,使用2ml西林瓶,线速度0.5m/s,分别运行光电方案与激光方案各2小时(约6万瓶),结果如下:

方案实际倒瓶数正确剔除数漏剔误剔准确率
光电对射(两组)12798294177.2%
激光测距+中值滤波1311301299.2%

激光方案的漏剔主要发生在瓶身倾斜临界值(ΔD ≈ 6mm),通过将阈值收紧到6mm并增加迟滞区间后,漏剔降至0。


五、向机器视觉的扩展思考

对于更复杂的场景(如瓶子带有反光标签、异形瓶、瓶口破损检测),激光测距可能不够用。可升级为工业相机+OpenCV方案:

  • 相机俯拍进瓶段,每帧图像用YOLOv8或传统轮廓分析判断瓶身姿态;

  • 通过串口或以太网将结果传给PLC(Modbus TCP);

  • 帧率需达到100fps以上,对应600瓶/分钟即10瓶/秒,每瓶至少10帧才能稳定检测。

以下是一个简化的Python轮廓检测逻辑:

python

import cv2 import numpy as np def is_bottle_upright(contour): # 计算最小外接矩形 rect = cv2.minAreaRect(contour) angle = rect[2] # 瓶身倾斜角度超过15°视为倒瓶 return abs(angle) < 15 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) _, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: if is_bottle_upright(cnt): # 直立瓶,计数 pass else: # 倒瓶,触发剔除信号(通过I/O或串口) pass

该方案已在实验室环境验证,实际产线应用需解决光照、灰尘、帧率延迟等问题。


六、工程经验总结

  1. 传感器选型:透明瓶必须用CMOS激光传感器,红外对射不可靠。

  2. 安装位置:传感器应安装在传送带直段,距离瓶口至少30mm,且避开前道灯检强光。

  3. 延时计算:剔除延时需精确标定,误差控制在±5ms内,否则会误剔或漏剔。

  4. PLC扫描周期:高速场景建议使用中断或高速计数器模块,不要依赖普通循环扫描。

  5. 数据记录:建议记录每次剔除时的距离值和瓶型信息,便于质量回溯和参数调优。


七、结语

本文从工程角度详细介绍了自动装盘机倒瓶检测算法的演进与优化,给出了光电方案的局限、激光测距方案的实现细节以及机器视觉的扩展思路。所阐述的信号处理方法和状态机设计具有普适性,可供从事包装自动化、PLC编程、视觉检测的工程师参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 15:15:53

深入解析MCF5301x:高度集成SoC在VoIP与POS系统中的核心架构与实战设计

1. 项目概述与核心价值在嵌入式系统开发领域&#xff0c;选对一颗“心脏”——微处理器&#xff0c;往往决定了整个项目的成败。尤其是在那些对实时性、安全性和集成度要求都极高的应用场景里&#xff0c;比如我们日常接触的智能POS机、企业级IP电话或者网络语音网关&#xff0…

作者头像 李华
网站建设 2026/6/12 15:06:51

终极抢票神器DamaiHelper:10分钟轻松搞定演唱会门票

终极抢票神器DamaiHelper&#xff1a;10分钟轻松搞定演唱会门票 【免费下载链接】damaihelper 支持大麦网&#xff0c;淘票票、缤玩岛等多个平台&#xff0c;演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 还在为抢不到心仪的演唱会门票…

作者头像 李华
网站建设 2026/6/12 15:05:51

Mermaid Live Editor:让图表创作从痛苦到愉悦的智能转换指南

Mermaid Live Editor&#xff1a;让图表创作从痛苦到愉悦的智能转换指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-…

作者头像 李华
网站建设 2026/6/12 15:01:52

鸿蒙 App 卡顿分析:定位方法 + 优化代码实战

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

作者头像 李华
网站建设 2026/6/12 15:01:51

鸿蒙 App 图片加载优化:实现原理 + Demo实现

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

作者头像 李华