石小仕,姚娅川,董林鹭,田万春,吴昊翰
(四川轻化工大学 人工智能四川省重点实验室,四川 宜宾 644004)
在工业生产中螺丝被广泛使用。根据家具和电子行业的统计,在装配线上投入的螺丝锁付人数占据装配总人数的比例达25%左右。在工业生产中螺丝锁付效率低下的问题受到了一些学者的关注,并开发出了各式的螺丝锁付机器人。例如,有研究人员通过控制1.5 MPa~2 MPa的气压,将螺钉从供钉机吹至电批口,但吹气式送钉的方案通常只适用于大长径比的螺钉[1];一些设计采用了PLC作为主控制器,但PLC体系结构封闭,且数据处理能力较差,难以处理复杂信息[2-3];有学者通过对采集到的图像进行霍夫变换识别出了螺孔区域,用连通域分析的方法识别出图像上的螺孔中心,但机器视觉技术算法复杂,系统响应速度慢[4]。
现有的螺丝锁付机器人大多采用较为昂贵的PLC,而引入STM32作为主控制器,既能降低成本,又能灵活地进行软件设计。对于螺孔定位,目前普遍采用两种方案,即人工手动示教和机器视觉定位。前者生产效率低,后者算法复杂。WIBOWO D B等人[5]应用DXF文件计算足迹面积,实现了通过足形进行医学评估;熊思颖等人[6]利用布尔运算组合,基于AutoCAD平台完成了工程图纸三维重建。
受上述学者启发,本研究提出一种基于工件DXF图纸文件获取螺孔坐标的方法;并在电机控制时,在樊留强[7]等人提出的五段S型曲线基础上,将电机速度控制改进为七段S型曲控制。
本研究提出的改进型双工位螺丝锁付机器人实物图如图1所示。
图1 双工位螺丝锁付机器人结构简图1—龙门架;2—Z轴给进装置;3—电批;4—托盘;5—工作平台;6—供钉机;7—吸盘组;8—磁性无杆气缸
图1中,主控制器是内部3.3 V供电,具有72 MHz晶振频率的STM32F103VET6。硬件系统主要由坐标数据提取与存储模块、HMI模块、电机驱动模块、气路、传感器阵列5部分组成[8]。其中,气路又由气缸、电磁阀、汇流板、真空发生器、吸盘组等气动元件构成,主要完成工件夹紧、螺钉吸取以及成品送出功能。
本文的设计主要用于手机背壳螺丝锁付。螺丝长径比计算公式为:
(1)
式中:Ks—长径比;Ls—螺丝总长,mm;Dn—螺帽直径,mm。
某些手机背壳螺丝长径比Ks≤1.2,属于小长径比的螺丝。若采用吹气式方案进行螺丝输送,小长径比的螺丝容易在气管内产生翻转现象,导致输送失败。为提高螺丝锁付的通用性,本研究采用吸气方式作为送钉方案,以满足不同长径比螺丝。
当用户开机后,机器会进行机械零点回归,然后用户在触摸屏上选择所需的DXF图纸文件,系统会自动从文件中提取螺孔坐标,再将待锁手机放到Y轴的托盘上,触发EX-14A型超薄光电传感器,开始螺丝锁付环节,最后在气动元件的协同作用下,成品进入送料环节。为防止意外发生,本研究在工件加工过程中加入了报警、急停处理。
2.1.1 DXF文件及图元查找
DXF文件是Autodesk公司开发的一种标准的开放性矢量数据交换文件格式。本研究中的DXF文件采用ASCLL类型,由6个段和1个文件结尾标志构成。
在本研究中,主要关注DXF文件的实体段,因为该段内包含了圆弧、直线、圆形等重要图元信息。实体段内各组组码和组值所表示的含义如表1所示。
表1 实体段组码组值含义对照表
本文给出了逐一字节检查附加字符串匹配整句的算法进行图元查找。该算法根据DXF文件的组码、组值,当CH376以字节为单位读取DXF文件数据时,每读出一个字节数据就会立即将此存入控制器SRAM中,如果读到了字节“ ”即回车符,则证明读取到了完整的一行数据。再通过C语言的strstr字符串匹配函数与所需图元关键字进行对比,判别出所需的图元标题。又由于DXF文件的组码与组值是成对出现的,能够成功得到所需图元的相关参数。
本文设变量str1和str2为字符数组,分别用于存储组值和组码的字符串。图元查找算法流程如图2所示。
图2 图元查找算法流程
2.1.2 螺孔相关图元分析
从DXF文件中查找出的所有图元信息,并不一定都是能够利用的数据。因此,要分析出工件螺孔的具体坐标数据,还要根据工件螺孔特征,找出判别螺孔的规律。
本文以手机封装背壳为例,分析螺孔相关图元的过程,如图3所示。
图3 手机封装背壳CAD图
图3中,工件螺孔均为圆形,但是仅依靠这一特征仍然无法准确分析出正确螺孔,所以,本文还需要分析图形之间的依附关系。螺钉是由螺帽和螺杆组成,螺帽的直径大于螺杆直径,因此在CAD绘制时,螺孔在图形上即为嵌套了一大一小圆形的同心圆。但由于干扰数据的存在,增加筛选同心圆的方式还不能完全分析出工件中的螺孔。最后,还应该增加螺钉的国标规格参数用作判定条件,过滤出符合条件的同心圆。
本文中,手机封装背壳螺钉主要规格为国标M1.4、M1.7和M2等,所用螺钉具体参数如表2所示。
表2 所用螺钉参数表
总结螺孔相关图元分析步骤,本文首先从提取出的所有图元信息中,筛选出圆形CIRCLE图元,然后通过圆心对比的方式查找出同心圆,最后引入所用螺钉参数作为参考值,选出最小半径符合要求的同心圆,并将其圆心存为螺孔坐标。
2.2.1 电机速度控制算法
为克服电机失步、过冲问题,本文采用S型电机速度控制算法,其模型如图4所示。
图4 S型速度控制法模型
各段变加速度j、加速度a和速度v的计算式为:
(2)
(3)
(4)
为了对步进电机进行速度控制,本文首先对各阶段速度进行离散化,求出第k个采样台阶处的脉冲频率fk:
(5)
式中:fk—第k个采样台阶处的脉冲频率;θ—步进角;N—驱动器分频数。
然后笔者设置定时器的TIM_CCMR和TIM_CR1寄存器,开启定时器PWM模式,占空比设为50%;通过对ARR寄存器中的装载值进行更新,来决定输出脉冲频率。ARR寄存器中的装载值为:
(6)
式中:fin—定时器内部时钟频率;PSC—定时器预分频系数。
为减少占用CPU的运算时间,事先计算出各个采样点处的定时器装载值,建立数组存储起来,采用查表的方式获取装载值。
2.2.2 位移控制及锁付路径优化
本研究采用的步进电机步距角为1.8°,驱动器脉冲细分数为4,同步轮周长为83.96 mm。各参数计算公式为:
(7)
(8)
(9)
式中:Sd—单脉冲步进距离;Cw—同步轮周长;NUM—匀速段脉冲数;M—单位时间内速度的采样点数;fi—第i个采样台阶处对应的脉冲频率;K—加速段中的三档速度阶段。
将以上数据代入公式,可求得单脉冲的步进距离约为0.105 mm。将所需的位移距离转化为脉冲数目,再乘以Sd,便可使得三轴精确运动到指定位置。
同时,必须在托盘和工件上选取一点作为参考点(程序零点),使得电机带动电批准确位移到待锁螺孔处。绝对零点的校准与否直接影响着螺孔的定位精度。螺孔之间的位移距离应相对于绝对零点进行计算,得出每个待锁螺孔所需的位移距离后,将其转换成脉冲数。根据实际生产中得出的经验,本文进行锁付路径优化,首先将工件四角的螺孔锁付,保证托盘上的工件在锁付过程中平稳而不翘角,然后再将剩余的待锁螺孔按照逆时针依次锁付完成。
为提高螺丝机HMI系统的可移植性,本研究采用Modbus协议作为工业触摸屏与控制器之间的通信协议[10]。HMI系统界面中每个子模块对应一个子界面,每一级界面又包含若干个功能二级界面[11]。在接收触摸按键值后,主设备进行相应的界面跳转,并向从设备发送请求;当从设备收到请求后,先对信息帧进行CRC校验,然后进行功能码判断[12];一切无误后,设备会给予主设备回应,主设备分析回应信息帧,最后对界面内容进行刷新,进入正常的人机交互状态。
本研究将设计完成的双工位螺丝锁付机器人投放到工厂实际生产线中,安排测试人员对机器进行12 h不间断打螺测试,每间隔1 h对测试结果进行记录,结果如表3所示。
表3 实验记录表
同时,本研究在测试时间段内安排4位工人每隔3 h轮班替换进行人工锁付,记录人工锁付工件成功数量。
人、机锁付工件成功数对比如图5所示。
图5 人、机锁付工件成功数对比
由图5可以看出:在相同锁付时间内,机器锁付工件数量远大于人工锁付数量;人工锁付的折线波动较大,在人员轮班时出现了4次高峰,说明人工锁付存在一定的疲劳性,而机器锁付折线较为平整,表明机器锁付螺丝具有更好的稳定性。
由表3可得:机器锁螺丝效率约为95.3%,成功率约为99.2%;由此证明:改进型双工位螺丝锁付机器人稳定性好、效率高、成功率高。
本研究提出了一种改进的双工位螺丝锁付机器人,给出了一种自动提取DXF文件中孔坐标的方法;运用了S型速度控制算法改进了电机带动负载运动的平滑性;优化了锁付路径,解决了实际生产中工件受力不平衡的问题。
现场测试结果表明,该机器可以提高生产效率、降低人力成本。