基于Leap Motion 的工业智能装配系统设计
2023-02-28牟卿志
牟卿志
(潍坊职业学院,山东 潍坊 262737)
0 引 言
随着科技的发展,机械臂已大量应用在常规生产制造活动中。 传统机械臂依靠手动编程或示教等方式去实现控制和给定动作的加工,缺少外界感知交互,一旦涉及到复杂灵活的装配领域,则在准备阶段需要花费大量时间进行动作规划与调试,不利于效率提升及产线的灵活应用。 如何克服上述缺点,实现装配领域的智能化,一直是业界研究难点和关键性挑战。
随着人机交互的快速发展,以动作捕捉、体感交互为代表的交互方式,开始受到人们广泛关注。 各种类型体感传感器的研发问世,使得捕捉人类原始动作学习并按策略灵活映射到机械臂进行控制的技术研究,成为了前沿课题。 国内外研究者利用MVN惯性运动捕捉套装[1]、VICON 光学运动捕捉套装[2]、Kinect 动作捕捉设备[3]等实现了基本动作的捕捉学习及在机器人与机械臂上的复现映射,有效提升了控制的灵活度与有效性。 但上述设备分隔能力基本以四肢躯干为主,精细度较差,在复杂装配动作的提取指导中指导意义尚显不足。
Leap Motion 是一款较为新颖的手部信息采集传感器,能够以200 帧/s 的速度对手部运动进行追踪,获取当前手指、手掌、手臂的位置姿态信息并指定ID,保存在指定帧中。 Leap Motion 进行手部动作传感识别如图1 所示。 图1 中,通过捕获的手部及臂部运动信息,可以精确提取指尖坐标及方向向量信息,建立六维(位置+姿态)手势识别模型,进而构建手势特征数据,最终识别精度可达0.01 mm。 该传感器提供的信息充实、清晰明确,可对装配层面的复杂动作提供有意义的指导[4]。
图1 Leap Motion 进行手部运动传感识别Fig. 1 Leap Motion for hand motion sensing recognition
Zubrycki 等学者[5]使用单个Leap Motion 传感器实现对三指机械手的操作,通过关节角度映射实现了对机械手关节角度的控制。 沈赫[6]基于3C 装配动作的需求,对基于Leap Motion 的人工装配手部动作轨迹提取方式进行了探究。 张续冲等学者[7]对仿人机械臂自然手势识别进行了实现。 但上述研究基本集中于手部轨迹提取或手势控制两者中的一个,并未实现针对工业装配的“轨迹运动+装配动作映射实现”流程环节。
本文基于前期与沈赫[6]合作的相关成果,在进行Leap Motion 性能测试及确定最佳工作空间的基础上,进一步引入ResNet-50 架构的深度卷积神经网络,对具体装配动作进行映射实现,构建实现了完整的基于Leap Motion 的智能装配系统,对工业装配智能化发展有一定的借鉴指导意义。
1 Leap Motion 性能测试
1.1 空间测量精度测试
2014年,初代Leap Motion 发布,Guna 等学者对该款设备的识别与定位性能进行了全面测试[8]。实验结果表明,Leap Motion 传感器在合理工作空间范围内,静态测试标准偏差小于0.5 mm,但当测试点位接近传感器检测的侧向极限位置或过于远离传感器时,标准差会显著增加。 Guna 同时指出,Leap Motion 是划时代意义的手部传感交互的设备,然而由于其工作空间内检测性能存在不稳定性,以当时配置用作专业的动作捕捉用途尚存在一定困难。
鉴于LeapMotion 近年来一直进行不断迭代更新,本文前期与沈赫等学者[6]合作,结合工业装配实际动作特点,对第三代Leap Motion 运动控制器性能进行了测试,以确定最佳工作空间,验证其在装配动作获取精确手部交互信息的可行性,并对整体“轨迹运动+装配动作映射实现”进行指导。 接着通过选取工作空间内的98 个参考点位进行性能测试,图2 展示了在X - Z投影平面上参考位置点的分布情况,各参考点处标识的数字对应其在Y向布置的测试高度。 通过静态实验参考点位图,可见实验所布置的参考点位已基本涵盖整个Leap Motion 的工作空间范围,可基于上述点位的有效精度表现,确定出适合装配动作检测的最佳工作空间。 实际性能测试时通过UR5 机器人控制模拟手臂移动至测量网格中的参考点,而后进行静止测量,每个点获取4 000帧以上数据,用于Leap Motion 整体定位能力的实验分析。
图2 静态实验参考点位图Fig. 2 Static experiment reference point map
若以所有参考点在各轴方向的标准差及空间欧氏距离标准差为分析对象,表1 给出在各轴方向及空间欧氏距离处的标准差极值,并求出取得标准差极值处的位置。 可见,各坐标轴的标准差最小值为0.031 mm,在(0,15,0)处的X向取得,空间欧氏距离标准差最小值为0.114 mm,在(-5,30,5)处取得。
表1 性能测试标准差统计Tab. 1 STD of performance test
若以X - Z平面为投影平面,给出Y轴不同高度(区间为150 ~300 mm,各段间隔50 mm)各参考位置点的空间标准差分布如图3 所示。 由图3 可以看出,除极个别点位因受干扰或器件因素影响,空间中、尤其是非侧向极限位置处,传感器的定位精度基本可在0.5 mm 以内,完全满足一般的工业装配的实际需求。
图3 参考点位重复定位误差Fig. 3 Position repetitive error of reference point
1.2 最佳工作空间确定
根据静态实验结果,本文选取Leap Motion 的工作空间中的一个内接长方体部分,作为感知装配的最佳工作空间。 该长方体在Leap Motion 坐标系下的长、宽、 高(x、z、y) 分别位于[-150 mm,150 mm]、[-150 mm,150 mm]、[150 mm,350 mm]范围,此范围内Leap Motion 可避免接近侧向极限位置,检测精度较高,且有充足的空间去执行装配运动,可以满足装配动作感知的应用需求。
2 智能装配系统实现
在确定合适的工作空间后,需要对空间内的装配动作进行识别,并按一定规律映射到机械臂的实际运动。 在该部分工作中,本文采用基于视图轨迹的传感器数据处理+基于深度学习的手势识别与定位的方案进行研究[9]。
2.1 传感器数据处理
用户使用Leap Motion 传感器将手势的运动过程采集为深度图像数据集,建立3D 可视化空间,并对其中每帧数据手势的关节点进行识别与划分,投影到特定的2D 视图平面上。 在2D 视图平面上,各关节点执行的移动轨迹将随时间推移进行标识,时间信息用投影点的颜色强度表示,根据时间流逝程度,痕迹将逐渐变淡至等于零的透明度值(α值)。该方法可以最大化浓缩成单幅图像的信息,有助于使深度学习策略进行有效的提取识别,同时在一定程度上保持了人类的可理解性。
本文使用VisPy 库实现手部3D 数据可视化,该方法在训练时能够从属于LMDHG 数据集的文件中获取关节点数据,在实际使用过程中则可通过流行ROS 框架的Leap Motion SDK 模块实时获取关节点数据。 通过利用关于手的每个手指、手掌中心、手腕和肘部位置的跟踪数据来创建3D 手骨架。 如果在某个时间手指的整体或部分不可见,Leap Motion API 允许根据先前的观察结果和手的解剖模型来估计手指位置。 手部3D 数据向2D 投影过程则根据空间几何关系进行计算。 其示意效果如图4 所示。
图4 随时间变化生成的手势2D 视图Fig. 4 2D view of gestures generated over time
2.2 基于深度学习的手势识别定位
在本环节中,采用2D 视图所创建的图像作为输入,通过预先训练的ResNet-50 架构的略微调整版本,对生成的2D 视图进行合理区分,输出将要区分的手势类及其中关键点位置。
2.2.1 模型架构
对ResNet-50 架构进行调整,删除最后一个全连接层,并在末端添加新层,新层具有与所预期分类的手势类数量相同的神经元节点(该过程可以使用Fast. ai 库所提供的API 快速实现)。 考虑装配的过程特点,本文将装配动作划分为抓取、移动、抓取+移动、往复循环加工四大类,则在ResNet-50 架构修改版本中对输入的2D 视图进行这4 类的区分及输出。 常见装配动作、以抓取为例2D 轨迹视图如图5所示。
图5 常见装配动作2D 轨迹视图-以抓取为例Fig. 5 2D trajectory view of common assembly actions - taking grasping as an example
图5 中手势识别的问题以数学描述如下。
设gi是一个动态手势,是一组手势类,其中N标识分类手势的数量。gi随时间的变化可以定义为:
其中,τ∈[1,Ti] 定义了大小为Ti的时间窗口中的某个时刻,表示时间τ时gi的帧。 研究中,手势根据用户需求可以在可变的时间窗口上执行。动态手势分类问题可以定义为找到gi最有可能属于的类Ch,即找到概率分布P(gi,Ch) 具有最大值的类Ch。
设Φ是一个映射,可将与手势gi相关的空间和时间信息转换为单幅图像,定义为:
通过这种表示,无论时间窗口大小Ti如何,每个手势gi都存在一个Ii。 这种新的表示以更紧凑的方式编码每个手势的不同时刻τ,并表征了要识别和分类的新数据。 然后,分类任务可以重新定义为:判断图像Ii是否属于某个手势类Ch,即在任意h中找到概率分布P(Ii,Ch) 具有最大值的对(Ii,Ch)。
2.2.2 模型训练
在现有公开的3D 手部数据集中,存在完美执行记录,没有噪声或缺失部分的测试性数据集[10],该类数据集有良好的手势分类分离作用,有效提升了分类结果表现。 也存在包括噪音与颤抖在内的手势过程记录真实性数据集[11],该类数据集更加贴近实际装配应用场景。
为了尽可能保证在真实场景下的实用性,本文在模型训练过程中,基于呈现1 134 个手势的LMDHG 数据集[10],对其进行筛选,提取其中涉及抓取、移动、往复循环加工类似动作、共计203 个手势,搭配本实验室采集的包含500 个专用手势(抓取、移动、抓取+移动、往复循环加工)的数据集,并对数据在生成2D 视图后采用小样本数据增广算法,共生成3 000 个样本,共同构成训练集,其中,在抓取手势中,考虑到不同的夹取方式,分别引入二指夹取、三指夹取和五指抓取进行训练。
根据本次实验需求对数据集进行了分割,即使用数据集1 至2 433 的序列来训练模型(代表数据集的~81%),使用2 434 至3 000 的图像来测试模型(占数据集的~30%)。 所有的输入数据均为由手部3D 数据生成的2D 投影视图。 根据实验结果显示,分类的总体准确率达到93.83%。
2.2.3 数据映射与输出
执行过手势分类后,就需要确定不同装配手势中的引导性特征位置,以便对智能装配系统进行引导。 若智能装配系统搭配的夹爪自由度与人类手部自由度相同,则可将采集的人类手部特征进行尺寸及点位拟合后直接映射至夹爪进行运动复现,若夹爪自由度与人类手部自由度存在差异,则需要拟定特征规则,用来引导特征位置辅助装配系统完成动作映射。 特征映射规则一般根据实际装配动作来进行确定。
为验证算法,在机械夹爪运动与复现实验中,定义的特征映射规则与部分特征位置见表2。 特征位置根据二指、三指、五指装夹方式进行单独设定。
表2 装配动作数据的映射规则Tab. 2 Mapping rules for assembly action data
3 实验及分析
在V-REP 环境中,本文研究采用UR5 机械臂搭配机械夹爪进行仿真实验,通过采集人类“抓取+移动+释放”动作,采用二指装夹、三指装夹、五指装夹的方案进行装配,将指定手势动作按规则映射至机械夹爪中,指导机械夹爪将夹块从初始位置A、途经中间点Ai、Bi装夹到装配位置B的动作的复现,整体流程如图6、图7 所示。
图6 V-REP 仿真实验平台Fig. 6 V-REP simulation experimental platform
图7 装配轨迹在V-REP 平台的映射与复现Fig. 7 Mapping and reproduction of assembly trajectory on VREP platform
验证装配精度,以装配位置B的理想几何中心作为参考位置,以机械臂运行装配后夹块几何中心作为实际位置,得到不同手势下的理想位置与实际装配位置的平均误差与最大误差,见表3。
表3 不同装配动作精度误差与成功率Tab. 3 Precision error and success rate of different assembly actions
由表3 可知,在二指装夹实验中,平均误差约为0.23 mm,最大误差为0.87 mm,基本符合工业装配的精度要求,总体成功率为94%。 三指装夹映射与五指装夹映射实验平均误差则分别增大至0.41 mm和0.83 mm,且最大误差相较二指装夹映射增加1.86倍与2.94 倍,成功率分别降至82%与64%。
探究原因,主要是由于二指装夹映射实验时,人类装配动作关键部位(拇指+食指)数据采集清晰,冗余信息较少,同时数据映射方案定义明确,故取得较好的装配结果,三指装夹映射实验次之。 而在五指装夹实验中,由于实验目标对象是小型的夹块,五指夹取不符合人类常规的抓取方式,且映射方案为由人类五指映射至二指机械夹爪,部分手指数据成为引起误差的冗余信息,故其成功率与装配精度均有所下降。 若换装与人类手部相同自由度夹爪并优化数据映射方案定义,或者夹取对象为符合五指抓取规律的较大夹块,则可能数据精度将有所提高。
4 结束语
本文基于Leap Motion 手势交互传感器,构建了一种轻巧、非接触式测量的智能装配系统方案,用以指导机械臂装配动作的自动实现。 本方案在确定Leap Motion 性能并采集人工装配数据后,采用基于视图轨迹的传感器数据处理和基于深度学习的手势识别与定位完成装配动作的机械臂复现。 实验结果证明,该种方案可以应用于较复杂的动作,在进行的二指装夹装配实验中,平均误差约为0.23 mm,满足现代工业装配应用需求,大幅提升装配效率。 但实验同时表明,本方案的精度较为依赖特征映射规则与特征位置的定义,若后续针对不同装配动作与装配物料特点,如何对特征映射规则与特征位置的定义进行优化,是需要进一步考虑的研究工作。