APP下载

基于sEMG信号和BPNN算法的机械臂控制系统设计

2023-11-09韩团军张晶黄朝军王桂宝

机床与液压 2023年19期
关键词:电信号手势频域

韩团军,张晶,黄朝军,王桂宝

(陕西理工大学物理与电信工程学院,陕西汉中 723000)

0 前言

随着科学技术的进步,人们对机器设备的依赖逐渐增多,可以通过各种指令与机器完成基本的交互[1-3]。从人体结构上看,双手是人类最熟悉并且常用的部位,可以灵敏地感知外界的信息并且将触摸到的信息反馈给上一级神经网络中枢,大脑及时给出精准的控制信号,手臂通过大脑给的控制信号迅速做出反应。但是手臂残疾或缺少的人无法进行复杂的工作,甚至少数人连最基本的生活都是问题[4]。所以设计一款智能假肢或者能人体行为控制的机械臂显得尤为重要。

本文作者提出一种基于表面肌电信号的机械手控制系统。系统通过肌电信号传感器对肌电信号进行采集和软硬滤波,再通过时频域结合的方法进行特征提取,最后通过BPNN算法进行训练,训练结果通过无线模块发送指令控制。信号处理系统发出控制命令经过无线传输到机械手臂,来控制6舵机自由度的机械手臂,实现6个动作的展示。

1 系统的硬件模型

基于sEMG信号和BPNN算法的机械臂控制系统可分为两部分:一部分是Cortex-M4系列的微处理器为主的sEMG信号处理系统,另一部分是Cortex-M3系列的微处理器为主的机械手臂控制系统。整个系统用传感器采集肌电信号,采集的信号结合时频域特点进行特征提取,再分类通过BPNN算法进行训练。整个设计系统设计思路如图1所示。

图1 整个系统的设计思路

2 实验条件设计及数据采集

数据采集条件:测试者需要正坐,手臂悬空,用计算机进行提示,实验者依据提示信息来完成对应的动作。实验每一个动作都分为3个部分:起始部分是放松半握手状态,时间为5 s;执行部分是在模仿计算机给出的动作,保持动作持续时间为5 s;结束部分是恢复到起始状态,时间保持5 s。每组有6个手势动作,需要采集20组数据。实验中总共选取6种手部动作做待采集动作,有握拳、伸掌、手腕左转、手腕右转、手掌弯向前、手掌弯向后。这些手部动作引起的肌肉运动比较强烈,使采集到的数据更准确,进而可以使分类更准确。6种动作的手势如图2所示。

图2 6种手势动作图

采用贴在皮肤表面的湿电极采集肌电数据,采集到的数据含有较多的杂波,需要进行滤波处理。采用硬件和软件兼容进行滤波,滤波降噪处理采用小波变换降噪和巴特沃斯滤波器。从经过预处理的数据里面提取一些时域特征值和频域特征值。提取的数据可作为BPNN算法训练模型的输入数据。巴特沃斯低通滤波器的设计函数如式(1)所示:

(1)

巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零[5-7]。在振幅的对数对角频率的Bode图上,从某一边界角频率开始,振幅随着角频率的增加而逐渐减少,趋向负无穷大。设计利用MATLAB对采集信号进行仿真滤波处理,原始信号是模拟肌电信号的一个数字信号,通过低通滤波处理,更加平滑。滤波效果如图3所示。

图3 原始信号(a)和巴特沃斯低通滤波后的信号(b)

3 数据特征提取

采集到的肌电信号经过预处理后信号比较微弱,所以要对于肌电信号进行特征提取。由于不同动作在时域和频域识别率大小不一样,设计中结合这两种方法进行处理,左转和握拳动作在时域分析比较明显同时计算简单,采用时域提取方法,其他动作在频域进行特征提取较好。时域提取时,由于sEMG信号处理中,表面肌电信号是一种微弱的非线性时变信号,一般采用时域特征提取法就是对信号进行时域上的统计处理。表面肌电信号可以理解成一种类似高斯分布的随机信号,将式(2)—(6)处理将所得到的结果作为信号的时域特征[8-12]。

式(2)为平均绝对值(MAV),反映了信号曲线函数偏离的程度。

(2)

式(3)为均方根(RMS),反映了肌肉活动产生的肌电信号能量的强弱。

(3)

式(4)为积分肌电值(IEMG),反映了肌肉运动时的活动强度。

(4)

式(5)为标准偏差(STD),反映了肌电信号数据间的离散程度。

(5)

式(6)为Willison 振幅(WA),反映了肌肉运动时的收缩能力。

(6)

根据上面的公式可以直接对肌电信号进行处理,可以提取到肌电信号对应的时域特征值。

频域的特征提取是在频域上进行的,所以需要将采集到的数据经过傅里叶变换变成频域信号才能进行处理。这是为了弥补时域信号特征值的不足,频域里面也有隐藏的肌电信息。

平均功率频率(MPF)表示功率谱平均值的频率,反映了肌肉活动强度。具体计算公式见式(7):

(7)

中值频率(MF)表示sEMG功率谱的中值频率,反映了肌肉在一定时间内的平均功率。

(8)

4 训练模型BPNN算法及优化

模型建立。输入数据为x,输入层到隐藏层的参数为w、b1,隐藏层到输出层的参数为v、b2,激活函数为g1、g2。输入层到隐藏层算法如式(9)所示:

n1=wTx+b1,h=g1(n1)

(9)

隐藏层到输出层算法如式(10)所示:

(10)

模型函数如式(11)所示:

(11)

损失函数如式(12)所示:

(12)

过程计算。输出层的误差项:输出层的参数v与损失函数E没有直接的相关关系,而是通过复数的方式关联,如式(13)所示:

(13)

根据链式法则,输出层的参数v与损失函数E的误差项见式(14):

(14)

输出层的误差项如式(15)所示:

(15)

模型参数优化。隐藏层的误差项,即计算损失函数关于隐藏单元的偏导函数值和梯度值,见式(16):

(16)

输出层的误差项,即计算损失函数关于输出层的梯度值和偏导函数值见式(17):

(17)

输出层参数更新见式(18):

(18)

隐藏层参数更新见式(19):

(19)

5 实验结果及分析

整个系统建模完成后使用3D打印机打印出每一部分,把打印的分离模块进行组装,控制模块选择舵机做牵引动力,手臂一共使用了6个舵机,其中一个控制手腕左转和右转,其余5个分别独立控制一个手指头。控制方式是通过舵机牵引钢丝绳拉动手指完成动作,舵机的左右转会控制手指的弯曲和伸直,链接部分应用钢丝打印。组装的实物如图4所示。

图4 实物(a)和内部结构(b)

对系统进行了测试。通过对肌电信号的采集与处理,可以看到在时域下,各类肌电信号幅值差异性较小,通过傅里叶变换将时域信号变成频域信号,在频域明显可以看到每种手势之间的区别。为了提高识别率,需要将时域信号和频域信号结合起来。6种手势肌电信号的时、频域图如图5所示。

根据此次肌电信号特征,为了减少计算复杂度,设计选择7个输入节、6个输出节点的三层神经网络模型。根据相关文献、经验得知,隐藏层节点个数从3个开始为最佳,依次加1,最大到8个节点。训练识别结果如表1所示。

根据表1的统计结果可知,隐藏层节点的个数6个为最佳,所以这次实验选择7个输入节点、6个隐藏层节点、6个输出层节点的BP网络模型。因为时域特征和频域特征合在一起共有7个特征值,有6种手势需要分辨。该模型训练结果如图6所示:此次神经网络学习训练了10 000次,可以明显看出前期训练次数较少的时候,效果比较明显,到了大概8 000次左右,曲线呈水平状。经修改,最终机器学习次数为8 000次,一方面可以减少训练时间,另一方面防止出现过拟合。

图6 BP神经网络模型训练结果误差

按照之前的采集数据操作过程进行模型验证。图7所示为6种手势所对应的机械手动作。6种手势分别对应的机械手臂的动作如表2所示。

表2 手势动作对应

实验中通过手部的动作和机械手的动作进行对比,来判断识别是否准确。如果机械手的动作和对应手部动作相同,则认为识别成功,反之则识别失败。一共实验了600次,每个动作识别100次,表3为每个动作的成功次数统计。

表3 实验结果

从统计结果可以看到:伸掌和握拳这两种手势识别的准确率高达90%多,相对于其他手势来说识别效果较好,其他手势的识别率平均也达到了80%。那两个手势识别率高的原因应该是选取的测试肌肉区域对这两种手势反应比较强烈,其他的手势就没有那么大的反应。数据可以证明设计的正确性。

6 结论

设计了基于sEMG信号和BPNN算法的机械臂控制系统,对肌电信号的采集、识别和机械手臂的控制等工作进行了深入研究。通过对实时控制机械手臂的结果分析,6种手势平均识别率在80%以上,可以证明设计的正确性。

猜你喜欢

电信号手势频域
大型起重船在规则波中的频域响应分析
基于联合聚类分析的单通道腹部心电信号的胎心率提取
挑战!神秘手势
基于Code Composer Studio3.3完成对心电信号的去噪
V字手势的由来
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
基于随机森林的航天器电信号多分类识别方法
胜利的手势
基于改进Radon-Wigner变换的目标和拖曳式诱饵频域分离
基于频域伸缩的改进DFT算法