[发明专利]小包装药袋自动分拣系统及其控制方法有效
| 申请号: | 202111082712.9 | 申请日: | 2021-09-15 |
| 公开(公告)号: | CN113731857B | 公开(公告)日: | 2023-04-25 |
| 发明(设计)人: | 沈志熙;汪知林;陈宇栋;徐赞林;王小清 | 申请(专利权)人: | 重庆大学 |
| 主分类号: | B07C5/34 | 分类号: | B07C5/34;B07C5/36;G06T7/00;G06T7/13;G06T7/136 |
| 代理公司: | 重庆信航知识产权代理有限公司 50218 | 代理人: | 吴彬 |
| 地址: | 400030 *** | 国省代码: | 重庆;50 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 包装 自动 分拣 系统 及其 控制 方法 | ||
1.小包装药袋自动分拣系统,包括XYZ三轴机械臂和用于拍摄药袋图像的工业相机,其特征在于:
所述XYZ三轴机械臂的X轴和Y轴均为同步带直线模组,所述XYZ三轴机械臂的Z轴为活塞杆朝下的气缸;
所述小包装药袋自动分拣系统还包括用于取放药袋的末端执行器系统,所述末端执行器系统包括气流负压吸盘、真空发生器、第一电磁阀、第二电磁阀、正压气源和压力开关,所述气流负压吸盘设置在气缸的活塞杆上,气流负压吸盘、真空发生器、第一电磁阀和正压气源依次串联,所述气缸、第二电磁阀和正压气源依次串联,所述压力开关设置在连接气流负压吸盘和真空发生器的管路上;
所述小包装药袋自动分拣系统还包括与工业相机连接的上位机,所述上位机中装载有图像处理程序;
所述小包装药袋自动分拣系统还包括控制单元,控制单元中编写有控制XYZ三轴机械臂及末端执行器系统的机械手控制程序;
所述图像处理程序和机械手控制程序通信连接,图像处理程序将抓取点坐标发送给机械手控制程序,机械臂执行相应的动作后将结果传送给图像处理程序;
所述图像处理程序在被执行时实现以下步骤:
1)对工业相机输入的图像进行预处理;
2)对预处理后的图像进行轮廓提取;
3)对提取的外轮廓进行拟合得到多边形轮廓;
4)判断多边形轮廓的面积是否大于设定的阈值,若比阈值小则代表分拣平台上无药袋,处理结束;若比阈值大则对多边形轮廓各顶点的凹凸性进行判断;
5)根据多边形轮廓顶点的凹凸性分割药袋,在两相邻凹顶点之间分割出的一个药袋;
6)计算药袋轮廓的边长得到当前最适合抓取的药袋;
7)获取当前最适合抓取药袋的抓取点在像素坐标系中的坐标;
8)将抓取点在像素坐标系中的坐标转换为在机械臂坐标系中的坐标,并将转换后的坐标发送给机械手控制程序;
所述步骤1)对工业相机输入的图像进行预处理包括对工业相机采集的图像依次进行灰度化、中值滤波、二值化处理、闭操作和开操作;
所述步骤2)对预处理后的图像进行轮廓提取包括确定轮廓的边界点和寻找下一个轮廓点;
所述确定轮廓的边界点包括以下步骤:
a)将二值图像中灰度值为0和1的像素分别称为0像素点和1像素点,第i行、j列的像素点记为(i,j),用f[i][j]表示该点的灰度值则有:
b)逐行扫描二值图像,扫描过程中遇到1像素时统计该点在其8连通方向和4连通方向上1像素点的个数,分别用num_8和num_4表示,则有:
c)判断边界点情况:
(1)若1num_8[i][j]4,则该点为边界点,令f[i][j]=1;
(2)若3num_8[i][j]8,继续判断num_4[i][j]的值,若num_4[i][j]≠4则该点为边界点,令f[i][j]=1;
(3)情况(1)和情况(2)外的其它情况,该点不是边界点,令f[i][j]=0;
d)去除步骤c)获得的图像边界点中的干扰点:首先定义以下变量
接着按以下步骤排除干扰点:
Step1:逐行扫描过程遇到num_a[i][j]=4的像素点执行Step2,否则执行Step6;
Step2:若num_b[i][j]=num_down[i][j],则该点的上一行两点是伪边界点,令f[i][j]=0,f[i][j+1]=0;
Step3:若num_b[i][j]=num_up[i][j],则该点的下一行两点是伪边界点,令f[i+1][j]=0,f[i+1][j+1]=0;
Step4:若num_b[i][j]=num_left[i][j],则该点的右侧一行两点是伪边界点,令f[i+1][j]=0,f[i+1][j+1]=0;
Step5:若num_b[i][j]=num_right[i][j],则该点的左侧一行两点是伪边界点,令f[i][j]=0,f[i][j+1]=0;
Step6:该点处理结束,继续处理下一个点;
所述寻找下一个轮廓点包括以下步骤:
Step1:按逐行扫描方式对图像进行扫描,将找到的第一个轮廓点记为p0,按设定的扫描方向dir在该轮廓点的8邻域中寻找下一个边界点;当f[i][j]=1时记录扫描方向,令pre_dir=dir,f[i][j]=0,并且将该点的位置记作p_next;
Step2:在p_next点处,按照相同的扫描方向dir扫描其8邻域,权重wei为某点8邻域中1像素点的个数,当某点满足f[i][j]=1并且wei[i][j]=2,则该点为下一个选择点,否则继续;当dir=pre_dir并且f[i][j]=1,则该点是下一个选择点,否则选择第一个f[i][j]=1的点,记录该点的位置p_now和方向dir,并且令f[i][j]=0;
Step3:若p_now=p0,轮廓扫描结束,转到Step1,继续扫描另一个区域,将找到的第一个边界点记为p1;
Step4:若p_now≠p0,令p_next=p_now,pre_dir=dir继续执行第二步;
Step5:如果二值图像中找不到任何1像素点,则轮廓跟踪结束;
所述步骤3)对提取的轮廓进行拟合得到多边形轮廓包括以下步骤:
Step1:获取轮廓曲线上曲率最大的点,该点将曲线分成两段,两段都有对应的点序列,分别对每一段进行处理;
Step2:记Li为第一段曲线上的点,下标i=0,1,2,……,n-1,输入第一段曲线上的n点的坐标;
Step3:设A=L0,B=Ln-1,连接AB生成栈S,将B点入栈;
Step4:在AB之间寻找距离两点连线最远的点,记为C,该点到AB连线的距离记为d;
Step5:判断d与阈值的大小关系,若比阈值大,则B=C,并将C加入特征点序列入栈,重新连接AB,回到Step4;反之,则执行Step6;
Step6:判断B是否与栈顶元素Sn-1相等,若不相等,则A=C、B=Sn-1,重新连接AB,回到Step4;反之,则执行Step7;
Step7:判断B的坐标是否与Ln-1相等,若相等,则A=B、B=Sn-2,重新连接AB,S执行一次出栈动作,回到Step4;
Step8:若栈为空,代表第一段曲线处理完成,对第二段线重复以上操作;
所述步骤4)中若比阈值大则对多边形轮廓各顶点的凹凸性进行判断,判断多边形轮廓顶点的凹凸性包括以下步骤:
①判断多边形的方向:
先将多边形轮廓的n个顶点依次记为P1,P2,…,Pn,下标1至n为顶点的顺序号,其中的最左极点记为PL,最右极点记为PR,最上极点记为PU,最下极点记为PD,若某方向上存在多个极点,则按顶点顺序中第一个出现的点作为此方向上的极点,其中下标L、R、U和D分别为对应极点的顺序号;定义沿着顶点顺序行走在多边形轮廓上时,多边形轮廓所围成的有界区域总在左手侧,则称该多边形的方向为逆时针方向;定义沿着顶点顺序行走在多边形轮廓上时,多边形轮廓所围成的有界区域总在右手侧,则称该多边形的方向为顺时针方向;
然后由四个极点的顺序号中大小顺序判断多边形的方向,判断方法如下:
第一种情况,当PL,PR,PU和PD中不存在重叠点时,判断规则为:若LUR或者RDL,则多边形的方向为顺时针;若LDR或者RUL,则多边形的方向为逆时针;
第二种情况,当PL,PR,PU和PD中仅有两个点重叠时,判断规则为:若DLR或者LRD或者LUR,则多边形的方向为顺时针;若LRU或者ULR或者LDR,则多边形的方向也为顺时针;若ULR或者LRU或者LDR,则多边形的方向为逆时针,若LRD或者DLR或者RUL,则多边形的方向也为逆时针;
第三种情况,当PL,PR,PU和PD中仅有两对点重叠时,则去掉多边形的一个极点,并将该极点后的顶点顺序号减1,然后再按照PL,PR,PU和PD中仅有两个点重叠的情况判断多边形的方向;
②定义交于某顶点的相邻两条边所形成的内角为小于180°,则称该顶点为凸顶点;定义交于某顶点的相邻两条边所形成的内角为大于180°,则称该顶点为凹顶点;所述的内角是指位于多边形轮廓所围成的有界区域内的角;
对于一个有n个顶点的多边形,判断其中顶点Pi的凹凸性的方法是:先将顶点Pi与其前一个顶点Pi-1、后一个顶点Pi+1组成一个三角形,再判断该三角形的方向,判断三角形方向的方法为:
当该三角形可视为仅有两个极点重叠时的多边形时,三角形方向的判定方法与判断多边形方向的第二种情况相同;
当该三角形可视为有两对极点重叠时的多边形时,先用直线连接着两对重叠极点,并将直线的中点视为PL或PR,然后再按照判断多边形方向的第二种情况判断该三角形的方向;
如果三角形方向与多边形的方向一致,则顶点Pi为凸顶点,反之则是凹顶点;
所述步骤6)计算药袋轮廓的边长得到当前最适合抓取的药袋包括计算拟合得到多边形轮廓中分割后各药袋的边长和,将边长和最大的药袋视为与其它药袋的重叠面积最小,也就是当前最适合抓取的药袋;
所述步骤7)获取当前最适合抓取药袋的抓取点在像素坐标系中的坐标包括先将当前最适合抓取的药袋还原成矩形,然后再找出药袋在拟合图像中的最长边的中点,再将该中点沿垂直于最长边方向向药袋内平移,平移距离为药袋宽度的五分之二,平移后的点为最终抓取点。
2.根据权利要求1所述的小包装药袋自动分拣系统,其特征在于:所述机械手控制程序在被执行时实现以下步骤:
1)在接收到图像处理程序发送的抓取点坐标时,控制XYZ三轴机械臂的X轴和Y轴将气流负压吸盘移动至抓取点的上方;
2)控制XYZ三轴机械臂的Z轴将气流负压吸盘下降至抓取点坐标上,并控制第一电磁阀接通真空气源;
3)等待设定长度时间段后,控制XYZ三轴机械臂的Z轴将气流负压吸盘上升,并控制X轴和Y轴将气流负压吸盘移动至放药点的上方;
4)通过检测压力开关的状态判断气流负压吸盘上是否吸附有药袋,若有则控制第一电磁阀断开与真空发生器连通的气路,使药包掉落到指定位置,本次分拣任务结束;若经判断气流负压吸盘上没有药袋,则向图像处理程序发送失败信息,等待接收新坐标继续抓取。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆大学,未经重庆大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111082712.9/1.html,转载请声明来源钻瓜专利网。





