刘诺石,邹 方,何昭岩,穆欣伟
(中国航空制造技术研究院工业网络与自动化实验室,北京 100024)
在航空制造业生产装配过程中,并非都是全自动生产线,还有半自动化生产线、人工操作、手动装配等情况,这些需要人来进行装配操作的过程具有步骤多、工序复杂、产品品质要求高等特点,因此对工人装配作业步骤的监督检查及操作培训就变得极为重要[1]。相较于汽车制造业等传统制造业,航空制造业的生产装配对于装配人员的技术要求和装配产品的技术指标要求更加严格。在实际的生产装配过程中,往往需要依赖熟练装配人员自身的丰富经验。这样的装配过程往往效率较低,而且产品的品质受个人因素影响较大,同时装配人员也可能在装配过程中出现一些错误操作。
目前的手工装配领域面临着多种问题,其中包括手工装配效率低,劳动强度大,在特种环境下可能对装配工人产生危害,不适应当今制造业多品种、小批量的敏捷生产模式等。面对手工装配的缺点,各行业内都提出了多种解决方案。赵伟博[2]将基于机器视觉的轴孔机器人与PLC主控系统相结合,设计一种人际协同工作站,实现了机器人对工件的自动分解并进行人机协同装配。魏中雨等[3]采用Mask–RCNN深度神经网络对工件进行分类及定位,并通过图像处理结果判断装配是否正确,代替人工进行装配过程中的漏装判断与质量检测。陆晗秀等[4]设计了一套标准作业指导系统,实现了引导取料、软硬件结合、数据收集等功能。郭冬阳[5]建立了装配车间自动排产模型,设计出尽可能相对合理的生产计划,针对多品种小批量的装配环境进行合理的调度排产。张静等[6]提出了一种基于YOLO v3算法对形状多样的工件识别方法,解决了工厂中光线不稳定等因素,也避免浪费人工和时间。崔道阔[7]讨论了自动拧紧技术在发动机装配方面的应用,希望通过“自动化+柔性化”的装配模式来代替“人工装配+刚性工装”的装配模式。刘亚文等[8]构建了一种基于PLC的工业雷管智能并行装配系统,解决了人工装配工业雷管所产生的危险系数高、生产效率低、安全事故频发等问题。
辅助人工作业系统的目的是用于对零部件装配操作进行辅助指导和监督,对装配工人的错误操作进行提醒和纠正[9]。该系统通过应用可视化显示、智能引导、智能防错等技术手段,实现装配过程中对装配人员的引导与防错以及关键数据的自动记录,可以大幅度提高人工装配的质量和效率,满足多品种小批量精益生产需求,也适用于新产品或新员工装配培训[10]。
针对飞机机载机电设备的手工装配,中国航空制造技术研究院工业网络与自动化实验室开发了一套智能辅助人工作业系统。该系统是一个具有模块化、网络化、交互式特点的人工作业系统,符合人体工程学和精益生产原理。该作业系统由投影指示/体感摄像、触摸显示、物料存取、工具作业等功能区组成,形成一套完整的智能人工作业系统。该系统有一个可自由配置的系统操作软件,将物理工作站与虚拟模块连接起来,实现了全面联网、模块扩展、简易集成、活学活用等优点。该作业系统可为员工提供多种产品装配的技术指导。工作计划直观呈现在触摸屏上,作业过程逐步说明显示给员工,或通过投影仪和按灯取货来引导作业步骤。员工按照提示完成相应的作业,并可以通过触摸显示器或使用输入单元按钮手动确认处理步骤,也可以通过体感摄像机和工具扭矩来监控确认。该系统可以应用到航空机载设备的机电、光电等组件产品的人工装配和检测测试过程。
在具体的装配引导过程中,工艺文件被分为一步一步的具体装配步骤,装配工人只需要根据每一步骤的文字和图像指示即可完成零部件的装配。不同零部件根据其不同的工艺文件,在系统中成为不同的产品任务。根据产品任务可以创建对应的工作订单,装配人员通过完成工作订单来实现零部件的装配。同时装配过程中产生的工作数据,例如螺钉的角度和扭矩,都会存储下来,以供后续查询。
智能人工作业系统组成如图1所示,脚踏开关用于在装配过程中踩下后进行工艺流程的下一步;蜂鸣器用于装配出错时鸣响警报;三色按钮用于按下按钮进行工艺步骤的切换;气动夹具用于固定装配工件;夹具按钮用于控制气动夹具的开闭;扫码枪用于扫描产品对应的二维码,读取产品号;一体机用于辅助人工作业系统操作软件使用平台;电子秤用于用于完成装配后对产品进行称重;LED灯带用于指示零件料盒的位置;零件料盒用于盛放装配所需零件;拧紧器为螺钉拧紧的工具;三色信号灯用于显示工艺步骤的完成结果;深度相机为手部识别的深度相机;投影仪用于投影显示作业引导内容。
在使用辅助人工作业系统时,装配人员通过显示器的提示步骤和投影仪投屏下来的详细操作说明进行装配。工作站一方面通过3D体感相机采集工作区作业图像,另一方面通过物联模块采集USB外设信号和GPIO输入输出信号,将数据信号传送给物联网服务器,反馈装配人员的工作状态,从而实现装配过程中的人机交互和智能化。
智能人工作业系统依据多种外设的数据采集和信息通讯,辅助指导操作人员进行装配。通过GPIO和USB接口连接到边缘控制器的外设有彩色灯带、扫码枪、脚踏开关、三色灯、三位按钮、电子秤和马头拧紧器。3D体感相机用来采集作业人员工作时手的位置信息,判断操作人员装配拿取零件是否正确,将结果通过MQTT协议传输给边缘控制器,边缘控制器对外设下达指令,通过声(蜂鸣器)、光(三色灯、光带指示)、文字(投屏图文)等形式,给予操作人员提示。图2为作业系统外设连接图。
图1 智能人工作业系统组成Fig.1 Intelligent manual operating system composition
辅助人工作业系统软件是使用Java语言进行开发,基于Spring框架的软件,同时以MySQL作为数据库。整个智能人工作业系统具有6种主要功能:用户管理、订单管理、系统配置、作业编制、作业指导、系统日志。
(1)用户管理。
用户通过输入正确的用户名和用户密码,系统将根据用户对应的身份与权限,让用户进入相应的系统操作模块。用户定义了操作人员、生产计划员和系统管理员三种角色。系统管理员可以进行订单管理、系统配置、查看系统日志;生产计划员可以进行作业编制;操作人员可以进行作业指导。
(2)订单管理。
通过扫描产品对应的二维码,可以关联产品的订单状态。订单包括订单名称、产品类型序号、产品数量,事先订单状态等信息[11],如表1所示。
(3)系统配置。
在使用作业系统时,系统管理员可以根据实际的生产情况,进行模块单元的参数设置,其中包括物料存取、深度相机识别模块。在物料存取模块的配置中,系统管理员可以对每一个物料盒中的零件数量进行配置,并且可以添加新的物料盒,或者删除已有的物料盒。系统管理员也可以随时对物料盒中的剩余零件数量进行更新。在深度相机识别模块的配置中,系统管理员可以对每一块识别区域的名称以及具体坐标进行配置,可以随时进行增加、删除以及更改识别区域,根据生产需求柔性更改。
(4)作业编制。
按照产品的工艺文件、产品说明书、作业规程等文件,按步引导编制作业步骤。输入相应图片、文字。系统根据投影仪距桌面的距离和工作台面显示区的尺寸,设计显示页面模板,页面将划分成指导文字、图片/视频、正确/错误图标、提示信息、数据显示等功能区(图3)。涉及机器视觉部分需要针对待检测的物件进行相应的编程,并存入相应的功能模块中。可编制多种型号的工艺文件,通过装配前扫描二维码实现快速换型装配,具备动态可配置的特点。
表1 作业订单Table 1 Work orders
(5)作业指导。
系统感知员工的作业状态,及时准确调用生产计划员事先编制好的产品作业多媒体指导文件,提供相应工序的作业指导和提示,指导的内容包括作业图片、作业视频以及工艺说明。直接控制投影指示模块给出相应的提示,同时接收各个模块信息并动态调整提示内容。在引导过程中,系统还会通过灯光与警笛提醒来引导装配过程和防止出现装配错误。
(6)系统日志。
记录用户所有操作和作业过程中所有重要数据。系统管理员可在系统中查看所有用户最近50条操作记录。操作人员可在系统中查看已完成拼装的产品的作业数据,其中包括每颗螺钉拧紧时的扭矩和角度。
图2 作业系统外设连接图Fig.2 Peripheral connection diagram of operating system
在航空装配的过程中,由于装配工艺的复杂性,不同零部件的装配流程具有较大的区别。对于装配人员而言,学习新的零部件装配需要花费不少的时间成本,装配成品的品质也很难达标。由于航空制造业对于制造品质的高要求,相应的对于装配人员的技术要求也较高。例如装配过程中每一颗螺钉的拧紧过程,对于螺钉的扭矩和角度都有严格的要求。同时,在装配过程中装配人员可能会出现诸如错误抓取零件,零件用完等情况。辅助人工作业系统中的智能防错部分就是为了解决装配过程中可能出现的各类问题。
在辅助人工作业系统中,设计了5个模块来解决这些问题,这些模块为多设备接入模块、作业引导模块、手部识别模块、螺钉拧紧模块和零件耗尽提示模块。这5个模块共同组成了辅助人工作业系统的智能防错核心。辅助人工作业系统通过多设备接入模块实现与多个外部设备互联互通,再通过对这些外部设备的使用来实现其他智能防错模块的功能。图4为辅助人工作业系统的智能防错功能模块结构图。
在实际的装配过程中,装配人员会遇到多品种复杂手工装配流程、零件选取错误、螺钉拧紧的扭矩和角度不合格、待装零件耗尽等问题,这些问题的解决方案如下。
图3 系统投影指示Fig.3 System projection indication
图4 辅助人工作业系统智能防错核心功能模块Fig.4 Core function module of intelligent error proofing of auxiliary manual operating system
(1)多品种复杂手工装配流程。
在航空设备的装配过程中,所用到的部件的种类是十分庞大的,装配人员很难对所有的部件装配都十分熟悉。对于这些部件的工艺流程,装配人员很难做到高效、准确地拼装,也很容易在装配过程中出错。
对于这个问题,辅助人工作业系统通过作业引导模块进行解决。生产计划员将零部件的工艺流程转变为工艺文件输入进辅助人工作业系统中。整个工艺流程被分解为多个步骤,在装配过程中自动显示在触摸屏一体机上,同时投影仪也会将步骤的具体内容投影到工作台的台面上。步骤内容的形式以文字,图片,视频为主。这样将复杂的工艺流程分解为简单的工艺步骤,装配人员可以简单快速地完成装配。
(2)零件选取错误。
一个部件的装配,往往需要用到多种零件。由于很多零件的外形、用途较为类似,区别较小,在实际装配中很容易产生误选。
辅助人工作业系统通过手部识别模块来防止装配人员对于零件的误选。生产计划员将零件分门别类放于不同的零件料盒中,位于工作台上方的深度相机实时拍摄工作台的俯视画面。通过SSD算法对于画面中出现的手部进行识别和定位,并计算出手部的三维坐标,通过手部的三维坐标以及零件料盒的三维坐标来进行判断装配人员是否正确地拿取了零件。
(3)螺钉拧紧的扭矩和角度不合格。
对于航空装配而言,螺钉拧紧的扭矩和角度有着严格的要求。螺钉的扭矩和角度如果超出范围,可能对部件的寿命造成不好的影响,严重的可能会引发事故。在装配流程中,装配人员一般通过丰富的经验来把握拧紧程度。这种做法既不稳定,对于装配人员的要求也较高。
辅助人工作业系统通过拧紧器来防止螺钉的拧紧程度超出范围。拧紧器可以设定扭矩与角度的范围,在符合和超出这个范围时会有不同的提示,同时操作简单迅速。
(4)待装零件耗尽。
在进行某部件手工装时,时常会出现待装零件耗尽,必须及时补充,以免影响后续的装配工作。通常需要联系库管员进行零件的添加与更换,库管员也需要时常检查工作站的零件情况。这样做既不方便,也费时费力。
在辅助人工作业系统中采用智能穿戴设备来解决该问题。管理人员佩戴了一块智能手表,当零件料盒中的零件数量低于设定值时,辅助人工作业系统将会向手表发送信息,使手表点亮以及震动,及时通知库管员进行零件补充。
辅助人工作业系统在引导装配人员以及防错的过程中会使用大量的外部设备,例如扫码枪、投影仪、脚踏开关、拧紧器等。这些外部设备的种类、接入方式、信息接口,数据格式以及输入输出的接口都各不相同。因此辅助人工作业系统采用了多设备接入模块来统一接入和管理这些设备。图5为多设备接入软件的功能结构图。
受到硬件平台输出电压电流的显示,系统共有两个物联模块,共同实现智能人工作业系统外设集成通讯功能。在物联模块1中编写的软件用于数据采集,在物联模块2中编写的软件用于在控制台显示引导视图和说明文字。两个软件程序共同完成系统下位机功能,为系统提供必要的辅助支撑。表2为接入外部设备统计。
在物联模块1中运行的软件通过MQTT协议与服务器通讯,其功能有串口通讯功能、I/O通讯功能等。同时由于多种外部设备的输入信号是并行输入,不同外设有其对应的功能函数,这些函数需要循环扫描,当接收到外设信号或服务器指令时,执行相应的命令。在物联模块2中运行的软件同样通过MQTT协议与服务器通讯,其功能主要是接收服务器发来的信号或数据,进行Base64解码,最后进行图文显示。图6为多设备接入程序流程图。
图5 多设备接入软件功能结构图Fig.5 Multi-device access software function structure
图6 多设备接入程序流程图Fig.6 Flow chart of multi-device access program
装配人员在使用辅助人工作业系统时,会通过使用扫码枪扫描产品对应的二维码来查询对应的工作订单,再选择工作订单开始进行装配工作。产品对应的整个工艺流程被转变为由多个工艺步骤组成的工艺文件,装配人员根据工艺步骤进行操作即可完成产品装配。
工艺步骤一般是由文字、图片或者视频来进行描述,显示在触摸屏一体机和投影仪的画面上。在开始进行装配后,装配人员完成工艺步骤,当前步骤完成后通过踩下脚踏开关或者按下三色按钮进行下一步。完成所有步骤后,需要对产品进行称重并记录数据,此时一个产品的装配过程结束。在装配过程中,如果出现零件抓取错误或螺钉拧紧错误,则指示灯会亮红灯,同时蜂鸣器鸣响,同时在触摸屏一体机和投影仪的画面上也会有所显示。
工艺步骤信息存储在服务器的MySql数据库中,工艺步骤的相关图片和视频也存储在服务器的固定路径下。工艺步骤的信息包括产品号、步骤序号、步骤内容、图片/视频名、步骤类型,具体信息如表3所示。
在当前工艺步骤完成后进行下一步骤时,服务器会使用MQTT协议将下一步对应的步骤信息发送给投影图像显示的物联模块。同时,工艺步骤对应的图片以及视频也会通过Base64编码方式进行编码,转换成字符串形式,和步骤信息一同发送出去。在物联模块接受到信息之后,会将信息进行Base64解码,并更新显示画面,完成对投影仪显示画面的更新。
表2 外部设备统计Table 2 External equipment statistics
辅助人工作业系统在对装配人员进行引导时,将传统的纸质工艺文件转化为触摸屏一体机与投影仪显示的文字、图像与视频,降低了装配人员对于传统工艺文件的学习成本。但在装配人员与系统的交互方面,使用按钮、脚踏开关等硬件的交互方式仍然具有改进空间,可以采用手势识别或者语音与系统进行交互。目前系统中已有手势识别模块,可以在投影仪投射画面中划定特定区域作为“互动区”。当装配人员完成装配流程中的工艺步骤时,显示互动区,手部识别模块识别到装配人员的手部进入互动区时,当前工艺步骤结束,进行下一步骤,同时互动区取消显示。通过该过程可以实现手势识别代替按钮、脚踏开关等硬件,同时也能防止误触。在语音方面,可以为辅助人工作业系统配备可穿戴式麦克风,通过特定语句与系统进行交互,交互语句可以通过投影仪投射到工作台面上进行提示。
同时,增强现实技术在虚拟模型可视化、信息传递效率方面也具有独特优势,未来可以对辅助人工作业系统应用增强现实技术。相比于文字、图片、视频等方式,采用AR技术会让信息更加清楚直接地传递给装配人员。在辅助人工作业系统中,工件通常会被固定在气动夹具上进行装配,配合深度相机对工件拍摄的深度图像,可以识别出工件的位置与形态,再利用AR眼镜显示虚拟引导信息,让AR影响与实际工件相结合,实现精确直接的引导装配。
为了防止装配人员错误地选取零件,本文采取了手部识别的方法。零件被管理人员分好放置于不同的零件料盒中,通过手部识别可以判断装配人员是否到正确的零件料盒中选取零件。
手部识别模块通过深度相机对装配人员的手部进行识别,计算出装配人员的手部所在位置的三维坐标,发送至服务器。该模块由GPU模块与三维深度相机组成(图7)。
表3 工艺步骤信息Table 3 Process step information
该模块采用SSD深度学习目标检测算法对装配人员的手部进行识别,并在TensorFlow框架下进行实现[12]。SSD算法是基于卷积神经网络的神经网络算法。图8为以VGG–16卷积神经网络为基础的SSD算法网络结构。
在SSD算法中,特征图需要预设一组DefaultBox,再通过对每一个像素点的每一个DefaultBox进行预测评分,最终得到该物体的分类类别以及所在位置。SSD算法并不会只取其中1个特征图,SSD算法选取多个特征图可以保证对于同一张图像可以进行多尺度的识别分类。对于一张图像,经过卷积神经网络后,提取多个尺度的特征图,对于所有特征图的每一个像素点,对预设的一组defaultbox进行预测评分。对于分类类别为C类的识别问题,每一个defaultbox将计算得到C+5个参数,其中包括C+1个分类类别(包括背景类)和4个偏移量(预测边界框的中心坐标以及宽高),最后经过非极大值抑制(NMS)操作,最终得到结果[13]。图9为DefaultBox的生成过程。
手部识别模块在工作时,会实时监控工作台的俯视画面,并对每帧画面中手的位置进行识别,并将三维坐标通过MQTT协议发送至服务器,经由服务器对坐标进行计算后,再判断装配人员是否有错误操作。其工作流程图如图10所示,实际装配过程中手部识别图如图11所示。
辅助人工作业系统采用拧紧器来防止出现螺钉拧紧超出正确范围的错误。辅助人工作业系统选取了Desoutter马头高级拧紧系统(图12),该拧紧系统由CIV3控制器和有线工具枪组成,控制器具有8个I/O输入接口,8个I/O输出接口,RS232串口、以太网接口和USB接口,拧紧器通过USB转RS232串口与物联模块连接,将采集的扭矩、角度通过USB传输给物联模块,物联模块再通过MQTT将数据传输给服务器。
图7 GPU模块和三维深度相机Fig.7 GPU module and 3D depth camera
图8 以VGG–16为基础的SSD算法Fig.8 SSD algorithm based on VGG-16
在使用拧紧器时,根据工艺文件的参数,可以对拧紧器的扭矩和角度范围进行设定。在拧紧螺钉时,拧紧器会测量计算出螺钉拧紧时的角度和扭矩,如果符合设定范围,则正确,并将扭矩和角度数据发送给服务器,如果超出范围,则会发送错误信息给服务器。
拧紧过程具体流程图如图13所示。
扭矩和角度数据会被发送到服务器并存储在数据库中,以方便后续查看以及计算分析,具体存储形式如表4所示。
为了防止零件耗尽的情况出现,辅助人工作业系统通过采用可穿戴智能手表来通知库管员。辅助人工作业系统采用了Hexiwear可穿戴设备开发套件(图14),该套件结合手表外壳和手表腕带后,可以作为智能手表使用。该手表具有蓝牙通信功能,通过蓝牙与物联模块进行连接。
在辅助人工作业系统中,零件被分门别类地放在零件料盒中,每次库管员更换零件料盒时,需要对每个零件料盒中的零件信息进行更新,其中包括零件名和剩余零件数量。在装配人员完成工作订单的过程中,当一个产品完成时,系统会根据该产品的装配工艺流程来更新数据库,将数据库中对应零件的剩余数量减去该产品所需的零件数量。当剩余零件数量低于一个阈值时,服务器会通过MQTT发送提示信息,物联模块接受后通过蓝牙给智能手表发送信号,让智能手表点亮屏幕并发生震动,以此来通知库管员及时更新零件。其具体流程如图15所示。
图9 Defaultbox的生成过程Fig.9 DefaultBox generation process
图10 手部识别模块工作流程图Fig.10 Work flow chart of hand recognition module
图11 实际装配中手部识别图Fig.11 Hand recognition diagram in actual assembly
图12 Desoutter马头拧紧控制器和拧紧器Fig.12 Desoutter tighten controller and tightening device
图13 拧紧过程流程图Fig.13 Flow chart of tightening process
表4 扭矩和角度数据Table 4 Torque and angle data
在使用辅助人工作业系统时,需要操作人员、生产计划员和系统管理员3类用户的相互配合,完成系统配置、订单创建、作业工艺编制、辅助装配等一系列功能,最终实现从生产准备到辅助装配完成的整个流程,总体流程示意图如图16所示。
以航空机载设备机电组件装配为例,在装配航空机载设备机电组件前,先编制作业工艺,将装配的每一步骤对应的图片和文字导入到系统中,生成作业编号,在装配过程中,通过作业编号找寻对应的作业工艺和装配步骤。
在装配前,检查智能人工作业系统各设备是否缺失、供电情况是否良好,路由器和交换机是否打开、网络是否正常。若一切正常,先打开投影仪、称重模块、马头拧紧器的电源,待其开机正常后,为边缘控制器上电,准备过程完毕,等待操作人员进行生产装配。
在具体的生产准备过程中,生产计划员需要确定该组件的产品号和产品名,再对作业工艺进行编制。工艺步骤分为3类:零件抓取、零件组装和螺钉拧紧,在选择完步骤类别后,输入步骤对应的文字并上传相关图片。如果步骤为零件抓取,则还需要选择抓取位置。按照步骤进行作业工艺编制,最终完成由多个步骤组成的作业工艺,具体作业工艺编制界面如图17所示。
在装配过程中,每一步操作的结果都会记录到数据表中,若每一步装配操作正确,则装配平台会显示装配正确的图文,并伴随三色灯的绿灯亮起;若装配操作错误,则平台显示装配错误的图文,三色灯的红灯亮起,并伴有短暂的蜂鸣器报警提醒,图18为作业引导过程中的界面。
通过使用辅助人工作业系统对航空机载设备机电组件进行试验装配,对比纯手工装配的方式,发现使用智能防错装配的方式在效率、成本、质量3个方面都具有优势,具体信息如表5所示。
图14 Hexiwear可穿戴开发套件Fig.14 Hexiwear wearable development kit
图15 零件耗尽提示流程图Fig.15 Flow chart of part exhaustion prompt
图16 总体流程示意图Fig.16 General flow diagram
辅助人工作业系统通过触摸指示,投影显示,体感摄影等方式实现了对于装配过程的辅助引导和监督,并针对错误选取零件、螺钉拧紧的扭矩和角度不合要求、待装零件耗尽等可能出现的问题进行了智能防错设计。成功完成了辅助人工作业系统对于航空机载设备机电组件装配的工程应用。工程应用表明了辅助人工作业系统可以成功应对人工装配出错、效率低、质量不稳定等问题,具有良好的应用前景和推广价值。
图17 作业工艺编制界面Fig.17 Work process preparation interface
图18 作业引导界面Fig.18 Work guidance interface
表5 纯手工装配与智能防错装配对比Table 5 Comparison of pure manual assembly with intelligent mistake proofing assembly