基于图像识别的物料分拣系统设计

    管树龙

    

    

    

    The Design of Material Sorting System Based on Image Recognition

    GUAN Shu-long

    (Suzhou Hanlong Intelligent Equipment Co., Ltd., Suzhou 215000, China)

    【摘? 要】论文以四个自由度的机械臂为研究对象,对其进行机械机构的设计,首先利用SolidWorks进行有限元分析,进而验证机械臂的应用可行性,然后采用Arduino开发板来控制舵机,从而使机械臂产生不同的运动,最后基于Proteus软件对舵机进行仿真。分拣的总工作流程就是利用Matlab进行图像识别,检测出该物料的类别,然后输出坐标和数据给Arduino,从而完成机械臂对物料的整个分拣动作。

    【Abstract】The paper takes the manipulator with four degrees of freedom as the research object, and designs its mechanical mechanism. The paper firstly uses SolidWorks to perform finite element analysis to verify the application feasibility of the manipulator, then uses the Arduino development board to control the steering gear, so that the manipulator produces different motions, and finally simulates the steering gear based on the Proteus software. The total work procedure of sorting is to use Matlab for image recognition, detect the category of the material, and then output coordinates and data to Arduino, so as to complete the whole sorting action of the manipulator for the material.

    【關键词】SolidWorks有限元分析;Arduino控制系统;Proteus仿真

    【Keywords】SolidWorks finite element analysis; Arduino control system; Proteus simulation

    【中图分类号】TH122;TP241? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文献标志码】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章编号】1673-1069(2021)05-0178-02

    1 引言

    产品分拣是工业自动化生产中的一项重要生产环节,传统的人工分拣或示教工业机器人分拣无法适应现代工业对劳动生产率和生产过程自动化水平的需求,将机器视觉技术与工业机器人相结合可使分拣作业具有更高的柔性和可靠性。本文设计的是基于Arduino控制的四自由度机械臂,总工作流程是先通过Matlab的图像识别分析出该物料的归属范畴,然后给予机械臂一个坐标,再通过Arduino的普通数字传感器接口产生占空比不同的方波,模拟产生出PWN信号来进行舵机定位,从而实现对机械臂的控制,完成物料分拣的整个任务流程。最后基于Proteus软件对其电气原理图进行仿真,验证Arduino程序的对与错。

    2 机械臂本体的设计

    2.1 机械臂类型方案选择

    本设计采用的是伺服电机驱动的四轴旋转坐标机械臂。此类机械臂又称关节型机械臂,其最大的特点就是工作的空间范围大,只要在机械臂结构设计上多加几个关节,就可以实现多自由度的运动,配合其控制系统,其运动轨迹可以是多种多样的,只要对控制系统的程序进行编辑,就可以控制其关节部位,从而控制机械臂的整个运动。

    2.2 SolidWorks建模与装配

    待所有的机械设计完成之后,利用SolidWorks对其进行建模,并装配,得到物料分拣机械臂三维图示,如图1所示。

    3 机械臂控制系统的设计

    程序的开始先是调用Arduino的Servo库,随后建立几个舵机的Servo对象,设置舵机转角变化的速度,告知Arduino开发板舵机需要接在哪几个引脚上,当然,舵机必须接在模拟端口。这部分就类似于准备工作,准备工作完成后,就正式开始程序主要部分的编写。为了方便查看数据,调用串口通讯命令,在串口监视器编写想要知道的信息。由于分拣物品包含三类,因此,就用到switch case语句,分出三套独立的动作,且分拣动作完成后,舵机会返回到初始状态的位置。

    在Arduino IDE编译正确且完成后,打开串口监视器,可以对其输入A、B、C指令,这会反馈出舵机角度的信息,如图2所示。

    4 基于Proteus的仿真测试

    4.1 Proteus电气原理图的建立

    电气原理图如图3所示,由于设计的机械臂是采用吸盘吸取物料,涉及气泵的驱动和两位三通电磁阀,气泵的作用是抽吸吸盘内部的气体,在此电气原理图采用直流电机来代替,电机开始转动就表示气泵开始工作。

    4.2 Proteus仿真结果分析

    仿真舵机初始位置的波形图如图4所示。从图中可以看出,每一格的长度为1ms,第一条线代表0°位置,脉宽为半格,为0.5ms,第二条线、第三条线和第四条线代表90°位置,脉宽为1格半,为1.5ms。

    4.2.1 输入指令为分拣瓶盖(bottle cap)

    当要分拣的物品是瓶盖时,首先大臂舵机转到34°位置,小臂舵机转到78°位置,末端执行器转到136°位置,这时末端执行器的吸盘已经贴在了瓶盖的表面,驱动气泵工作,抽走吸盘内部的所有空气。然后大臂与小臂的角度转到90°位置,提升重物,腰部舵机转到180°的位置,大、小臂角度分别转到最初的34°和78°位置,放下重物,这时接通电磁阀,如图5所示,开始放走吸盘内的空气,松开重物。在完成重物的搬运后,机械臂各关节就会再次返回到初始状态的位置。

    4.2.2 输入指令为分拣充电器(charger)

    当要分拣的物品是充电器时,首先大臂舵机转到36°位置,小臂舵机转到78°位置,末端执行器转到138°位置,这时末端执行器的吸盘已经贴在了充电器的表面,驱动气泵工作,抽走吸盘内部的所有空气。然后大臂与小臂的角度转到90°位置,提升重物,腰部舵机转到135°的位置,大、小臂角度分别转到最初的36°和78°位置,放下重物,這时接通电磁阀,如图6所示,开始放走吸盘内的空气,松开重物。在完成重物的搬运后,机械臂各关节就会再次返回到初始状态的位置。

    5 结语

    本文设计了机械臂,分为三大部分,机械结构的设计,基于Arduino控制系统的设计,基于Proteus的仿真测试。第一部分机械机构的设计,并进行了SolidWorks建模与装配。第二部分控制系统的设计,利用了Arduino开发板无限性的特点,重点是了解舵机的控制原理。第三部分是基于Proteus的仿真,Proteus软件中有虚拟示波器,在一定程度上解决了舵机运行工作状态的问题。透过示波器,可以很直观地观测到Arduino输出给舵机的PWM信号,得到舵机转轴在不同角度位置下的脉冲宽度,以此来验证程序的对与错。

    【参考文献】

    【1】焦恩璋,杜荣.工业机器人分拣技术的实现[J].组合机床与自动化加工技术,2010(2):84-87.

    【2】范象波.光电分选机[J].矿山机械,1982(6):26-32+37.

    【3】贺雅琴.自动物料分拣机器人系统的关键技术研究[D].广州:华南理工大学,2011.

    【4】杨成文,张铁.基于ADAMS的SCARA机器人运动学仿真研究[J].机床与液压,2011,39(21):118.

    【5】宋召卫.我国自动分拣技术及其应用[J].中国物流与采购,2003(6):46-47.

    【6】谢存禧,张铁.机器人技术及其应用[M].北京:机械工业出版社,1955.