机械臂控制系统的研究与设计
2020-03-03王若愚卢小康陈苏明
王若愚,卢小康,陈苏明
(中国矿业大学徐海学院,江苏 徐州 221008)
1 设计概述
针对目前常用的机械臂控制方式存在的操作复杂、灵活性差、灵敏度低、控制精度低等问题设计了一种通过人体手势来控制机械臂运动的系统。此系统基于图像识别技术,采用卷积神经网络并结合C++语言和Python语言,设备的组成由1个二维RGB摄像头和1个三维深度摄像头组合成视觉运动传感器,并结合机械臂运动控制算法,使机械臂完成相应的人体手势仿生动作。此手势控制机械臂系统的操作简单灵活、可以实现远程控制,经测试结果表明控制精度满足系统稳定性和精确控制的要求。因此可以广泛应用在军事和医学中,如炸弹拆除,即拆弹人员通过远程操控机械手完成拆弹工作,从而保证拆弹人员的安全;对于一些医学手术可以利用手势控制机械手臂远程执行解决偏远地区医学落后问题。
2 方案设计
本手势运动控制数据处理系统的主要特点之一就是用了多信息系统互相融合的数据处理技术,同时采集和提取了有关用户手臂和二维深度手部的运动姿态和三维深度的运动状态变化的数据和信息。1个二维rgb深度运动摄像头和1个三维tof两个深度运动摄像头组成一个独立的视觉运动传感器,采集有关用户机械臂和手部的二维深度图像进行信息处理与三维深度的运动摄像头信息,然后将其发送至一台计算机端口进行数据处理,同时单片机可以准确和持续地追踪用户手部的二维深度运动状态情况,通过串口数据通信将一台计算机端数据处理得到的二维深度手势的控制指令和三维深度的运动摄像头信息分别传送至单片机进行解析和转换,将机械臂手势的控制和运动指令集解析转换成为两个机械臂各自由度的运动指令集,经过单片机发送给相应的机械臂舵机,从而实现通过用户手势的运动来达到控制整个机械臂运动的目的。
此方案采用手势来达到灵活控制机械臂的效果,既可以实现远程控制、又可以使控制指令的方法简单、方便工人操作;此外,还在机械臂爪端搭载了压力传感器,可以及时反馈被抓物体的信息,调整抓取方式。
3 硬件设计
基于图像识别的机械臂手势控制系统包括单片机控制系统、舵机模块、电源模块、视觉传感器模块、串口通信模块等系统模块。
3.1 单片机控制系统
为了能够更好控制机械臂精准地完成工作,本设计的机械臂控制系统采用stm32f103zet6微处理器作为控制芯片,该单片机内置有晶振以及高可靠复位系统,该芯片与目前市场上传统的51单片机相比,具有系统功耗小,运算处理能力大大增强等诸多优点。此外在机械爪端集成压力传感器可以实时检测抓取物体的抓取力量从而及时对抓取方式进行调整。
本系统的基本工作原理:STM32处理器内部本身具有的pwm单元可产生pwm波信号,此种信号驱动电机运动,依据stm32f103zet6微控制器输出的pwm信号和舵机输出信号的的频率和占空比来控制舵机的运动状态,此种控制方式更加简单、准确。
3.2 电源模块
此机械臂手势控制系统主要采用双电源直流稳压供电的工作模式,stm32单片机经过一个AMS1117-3.3 V稳压芯片进行供电,舵机驱动模块选用7.2 V可充电电池经LM2596 dc-dc可调降压模块进行供电。
3.3 视觉传感器模块
采用1个二维采集图像颜色信息的摄像头和三维采集深度的摄像头控制模块组成视觉传感器模块,此模块用来采集用户手部的二维图像颜色信息与三维深度图像颜色信息并将其发送至计算机端进行数据处理。并将这些数据进行整合,从而转换成机械臂运动的指令集,并通过通信子网络传送至机械臂,从而可以实现机械臂与人体手势同步运动的状态。
3.4 舵机模块
可通过STM32处理器内部发出的pwm信号来控制舵机的旋转角度,不同类型的舵机最大可以旋转的角度是不相同的,但是其中间位置的脉冲宽度都是1.5 ms。在选择舵机时主要考虑的因素是扭矩的大小,本设计选用的60 kg超大扭力双轴数字电机,具精度高、虚位小、扭力大的特点,可以很好地保证机械臂的运行。
3.5 串口通信模块
串口只是无线通信的一种方式,它是指外部设备和计算机之间,通过微机数据信号线 、地线和控制纵向线等,按一定位置转换顺序相互进行直接传送数据的一种通用无线通信的通信方式。这种通信方式使用的数据线少并且能够实现远距离通信,所以本设计采用串口与系统中的单片机进行串口通信以此达到控制机械臂的目的。
4 软件设计
4.1 系统软件总体程序组成
本作品由手势位置提取、基于Python的深度学习的样本特征提取、手势信息处理及机械臂舵机指令转换、机械臂控制和压力检测部分等若干子部分组成。
4.2 图像识别程序设计
在机械臂手势识别系统开始运行之前,在网络上采集了大量的手部和臂膀不同姿态和形状下的机械臂图片并对其进行了分类。为了更进一步提高机械臂图片的识别率,从不同运动角度、远近程度和运动方向对机械臂手势特征和运动进行来数据分析,然后通过卷积神经网络自动提取机械臂手势的特征,并为进行下一次的机械臂手势特征识别训练提供了判断的依据,当机械臂的手势特征点识别成功后,系统会自动计算当前机械臂手势在特征点中心的二维深度和坐标,然后计算机利用三维tof深度摄像头自动计算特征点的深度和坐标。最后将上述机械臂手势的特征类型、坐标点等信息进行融合,并将其转换为特征点的机械臂6个自由度舵机的运动位置和控制指令,通过计算机串口发送给特征点的机械臂。如果特征点识别不成功,则重新再发送回到机械臂训练的特征点。
4.3 机械臂控制程序设计
首先在机械臂控制系统上电后,对其进行系统初始化。机械臂的步进电机是由STM32内部处理器具有的pwm信号来控制,因此需要控制stm32f103zet6芯片产生pwm信号,然后不间断地监测串口是否有信息传入。在机械臂手指处添加了压力传感器,因此MCU可以及时检测手指处的压力。通过手指闭合时的压力设置压力阈值,当系统检测到闭合时的压力大于设置的压力阈值时就不再继续闭合,此时机械臂可以夹取相对脆弱的物体。
5 结语
利用图像识别技术采集人体手势运动的基本数据,通过串口传输给控制器进行数据处理,最后控制机械臂进行仿生运动。这种控制机械臂的方式能够更加流畅和简单,且经过测试精确率达到98.5%可以满足系统稳定性和精确度。操控者可凭借此种机械臂控制方式减轻工作强度,进而提高工作效率。并且具有一定的抗外界干扰能力,避免了工作过程中发生碰撞现象,最终实现末端执行精准控制。可在工业控制和服务领域进行推广,具有良好的应用前景。