姚燕,庄泽澍,詹祎,王鹏云
(北京邮电大学人工智能学院,北京 100876)
快速换装接头是一端与机械臂相连,另一端与末端执行器相连的特殊结构[1-2]。机械手可以通过换装接头实现末端执行器的快速更换,以满足不同场景下不同任务的需求[3-4]。快速换装接头的设计思想已广泛应用在了生产制造、水下探索、排爆、应急抢险、破拆等多个领域的机械臂中[3-6]。快速换装接头在空间机械臂上也有非常广泛的应用,而空间机械臂是航天器在轨服务的核心装备[7]。快速换装接头一般搭载有视觉感知系统,以获取工具及其他部件的位姿信息[8]。著名的搭载有快换装置的空间机械臂系统有MSS、ETS-VII[9]、EUROBOT[10]和轨道快车等[11]。
目前的机械臂系统快换装置已具有精度高,适用范围广等优点,视觉技术也大量应用其中,但目前视觉技术一般用于识别和计算物体的位姿信息,而用于识别部件类型并自动更换末端工具方面的研究较少。
针对快换装置智能化程度有待进一步提高的问题,本文设计并实现一个基于深度学习的智能机械臂末端快换装置,从机械结构和控制系统两方面进行了快换机械臂末端工具的设计,研究的重点是控制系统中图像识别子系统的设计与实现,达到依据视觉处理系统自动识别部件进而控制机械手的动作。
智能机械手的机械结构主要由快换装置和末端执行器组成。
(1)快换装置。快换装置的上端(机械臂适配器)与机械臂相连,接头的基体由机械臂适配器、更换模块、固定结合模块、工具端适配器四者组成。机械臂适配器与更换模块通过螺钉连接。工作时,在电动机的驱动下,更换模块中的滑块向下直线运动,从而将4个卡块向外推。滑块在锁紧工作位时,卡块自锁,更换模块与固定结合模块锁紧。快换装置结构如图1所示。
图1 快换装置结构
(2)末端执行器。末端执行器包括剪刀和螺丝刀两种工具。剪刀部分主要由电动机、螺母、滑块、剪刀钳组成。功能是剪切直径约2 mm的导线。电动机驱动螺杆,螺母在螺杆上直线往复运动,螺母上固连一连杆与剪刀柄上的滑块铰接,从而将螺母的直线运动转换为剪刀柄的摆动,实现剪切。剪刀结构如图2 所示。
图2 剪刀结构
电动螺丝刀末端执行器结构分为3 个部分:与中间辅助结构的连接部分、中间连接杆及外六角螺栓批头。中间连接杆上的外螺纹在螺丝刀的旋转下,在固定在外壳上的螺母的作用下,螺丝刀结构即可实现旋转前进,完成拧螺栓的操作。该电动螺丝刀直接使用丝杆螺母机构完成旋转前进的功能,结构简单易实现。螺丝刀结构如图3 所示。
图3 螺丝刀结构
快速换装机械手控制系统主要由两部分组成,即:基于ImageAi的图像识别子系统,由计算机实现;机械手控制子系统,主要由AVR 单片机实现。2 个子系统通过无线串口模块相通信。系统整体结构图如图4所示。
图4 系统整体结构图
(1)图像识别子系统。该子系统主要采用基于Tensorflow软件的ImageAi库实现,构建卷积神经网络对目标工件训练集进行训练,并对工程中实际拍摄的图片进行识别。图像识别子系统通过无线串口模块与单片机通信,根据单片机传来的请求控制摄像头拍摄并将识别结果回传到单片机中。
(2)机械手控制子系统。机械手控制子系统主要由ATMEGA2560 单片机、3 个电动机、无线透传模块、语音输出模块等组成。其主要功能为:①在单片机的控制下,通过各电机的运动,实现快换装置的紧固和松脱以及各工具头的动作;②单片机还负责接收人机交互模块传来的各种控制指令、接收图像识别子系统传来与图像识别有关的讯息,并对各种指令信息做出相应的反馈。
系统主程序将前述各部分综合在一起,共同实现智能快速换装的功能。程序控制过程如下:
(1)主循环中。在主循环的流程中:①进入待机状态;②在检测到启动信号后,机械手在机械臂(或其他运动控制设备)的引导下运动到工件处;③到位后通过无线串口模块通知图像识别子系统拍照和识别,识别结果返回单片机。
(2)收到图像识别子系统发来的识别结果后。单片机收到图像识别结果后的流程:①用户根据识别情况按下正确或错误按钮,告知单片机本次识别正确与否;②机械臂将快换装置引导到相应的末端执行器位置并与末端执行器锁定,待锁定完成后机械臂再次将快换装置及末端执行器带至工件处,执行相应的动作;③快换装置与末端执行器解锁,末端执行器及快换装置归位。
设备在循环的每一步中,都配有相应的语音输出,用以提醒操作者当前设备状态。
本文的图像识别子系统采用PYTHON 语言在计算机上实现,并通过无线串口模块与单片机进行通信。
本文分别用ResNet 和DenseNet 两种当下主流的CNN网络建立了算法模型,并分别进行了训练和性能比较,选取最优模型。
ResNet网络是一种典型的CNN卷积神经网络,其核心思想是引入深度残差框架有效解决了梯度消失问题,如图5 所示ResNet 网络通过残差学习单元,建立前面层与后面层之间的“快捷连接”[12],一定程度上解决了网络退化问题,从而能训练出更深层的CNN网络[13]。
图5 ResNet算法残差学习单元
DenseNet网络是一种具有密集连接的卷积神经网络。它的基本思路与ResNet 一致,与ResNet 的主要不同是该网络中任意两层之间都有直接的连接[14],而该层所学习的特征也会被直接传给其后面所有层作为输入,从而实现特征重用提升效率。
图像识别子系统采用基于TensorFlow软件便捷高效的ImageAi 库搭建了深度学习模型,ImageAi 提供4种不同的算法模型来执行自定义预测模型训练。将其中任意一种算法加载到imageai.Prediction.Custom.CustomImagePrediction类中,即可在任何对象/人的图像集上训练模型[15]。本项目分别选用ResNet网络和DenseNet网络进行了训练并做了性能分析比较。
应用ImageAi库进行自定义预测模型训练,首先需要准备用于训练的图像,本项目共计收集到实际工程应用中的螺丝、电线图片441张,训练、测试集约按4∶1划分。
通过调用训练语句,对模型类别、迭代次数、训练集位置等进行设置,即可快速高效对模型进行训练。ResNet网络所生成的模型共有约2 300 万个可训练参数,网络结构庞大;DenseNet 网络所生成的模型共有约700 万个待训练参数,网络规模小于ResNet。
训练次数设置为100轮,训练程序运行在1 台型号为ThinkPAD T460 的笔记本电脑上,其配置了英特尔i5-6200U,DDR3L8 GB 内存,操作系统为Windows10。训练耗时约为28 h,其中ResNet 的训练每轮时长平均为7 min,而DenseNet 的训练每轮时长平均为10 min,长于ResNet,这是由于DenseNet 训练过程中内存占用更多的原因所导致的,训练所得到的模型文件是图像识别的基础。
通过训练测试模型准确率结果见表1 所列。
表1 模型准确率情况汇总表
(1)ResNet 模型测试。其各指标与训练轮数关系如图6 所示,可见在训练集上的准确率在30 轮训练之后基本保持了稳定上升的趋势,在第40 轮前后损失出现了一个提高,这使得模型参数得到了较好调整,准确率出现了约4%的上升。最终准确率可达99.0%。
图6 ResNet模型准确率变化曲线
而测试集上的准确率在40 轮之前一直很低,在第40 轮模型训练集准确率提高后,测试集准确率有一定上升,但在50轮左右测试集损失大幅增加,而后模型预测水平出现了飞跃,测试集准确率从54%逐步提高并稳定到了90.6%,这说明模型“学习”到了更普遍更准确地分类特征。对于为何测试集准确率会在学习率准确率保持稳定的情况下,出现大幅度的跃升,或许是由于样本采集与分布问题,也有可能是ResNet本身特性所致,值得进一步的探究。
(2)DenseNet模型测试。其各指标与训练轮数关系如图7 所示,可见在训练集上的准确率及损失在60轮训练之后基本达到稳定,准确率可达98.6%左右,而测试集上的准确率与损失在75 轮训练后达到稳定,准确率为85.4%,准确率略逊于ResNet网络。
图7 DenseNet模型准确率变化曲线
由表1 及图6~7 可知,在相同条件下,ResNet 在准确率方面较DenseNet 更优,选择识别性能较好的ResNet模型作为应用在图像识别子系统上的模型。由于时间及条件限制,本文的实验数据集规模较小,仅为441 张图片,未达到ImageAi 推荐的每类500 张训练图片、100 张测试图片的规模,这也是测试集准确率水平未进一步提高的原因。
本文图像识别子系统中使用OPENCV 控制摄像头对真实工件进行拍照,获得的实际图像用于识别。
在图像识别子系统主程序中,首先通过serial 库设置无线透传模块的串口号及波特率,建立起与单片机的通信;然后加载训练好的模型文件,以备识别。当单片机发来请求后,根据不同请求执行拍照、识别等操作,并将结果返回单片机。在实际测试中由于抖动等原因,识别准确率尚不及测试集上的准确率。图像识别子系统程序的流程图如图8 所示。
图8 图像识别子系统程序流程图
本文设计并实现了一个基于Resnet 神经网络的可快速更换末端执行器的机械手系统,并进行了训练、图像拍照及识别实验,实验结果表明,控制系统可以完成预定动作,电动机控制平稳可靠,图像识别效果良好。后续工作将扩展除剪刀和螺丝刀外的其他末端工具,该设备预期将装载到真实机械臂末端进行实际检验,从而为更好地模拟航天器舱外操作工作做好准备。