基于ARM 的肌电假肢手控制器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第20卷第4期2014年8月
(自然科学版)
JOURNAL OF SHANGHAI UNIVERSITY(NATURAL SCIENCE)
Vol.20No.4
Aug.2014
DOI:10.3969/j.issn.1007-2861.2014.01.042
基于ARM的肌电假肢手控制器
卜峰,李传江,陈佳佳,李欢,郭伟海
(上海师范大学信息与机电工程学院,上海200234)
摘要:由于肌电假肢手大多基于阈值的张、合控制,并存在操作灵活性差等问题,提出一种基于ARM的肌电假肢手控制器设计方案.采用ARM核STM32处理器作为主控芯片,通过2路A/D采集手臂尺侧腕屈肌和桡侧腕屈肌的肌电信号,分别提取时域和频域上的4种特征值,并采用BP神经网络分类算法实现对5种手掌动作模式的在线实时识别.实验结果表明,该控制器对5种动作的整体在线识别率可达97%,且符合实时性要求,很好地满足了残疾人假肢手控制的需求.
关键词:ARM;肌电信号;特征提取;BP神经网络;实时假肢控制
中图分类号:TP273文献标志码:A文章编号:1007-2861(2014)04-0442-08
Design of Electromyography Prosthesis Controller
Based on ARM
BU Feng,LI Chuan-jiang,CHEN Jia-jia,LI Huan,GUO Wei-hai (College of Information,Mechanical and Electrical Engineering,Shanghai Normal University,
Shanghai200234,China)
Abstract:As most electromyography prosthesis controller systems are based on a threshold to control hand’s opening and closing,with poor operationalflexibility,it is proposed to use ARM in the system.A STM32ARM core processor is used as the main chip.It collects theflxor carpi ulnaris andflexor carpi radialis electomyography signals with2A/D signal converters,and extractes4kinds of characteristic values both in the time and frequency domains.By using a BP neural network classification algorithm,the system realizes real-time online identification of5kinds of palm action modes.Experimen-tal results show that the system’s online recognition rate for the5actions is up to97%, meeting the real-time requirements of prosthetic hand control.
Key words:ARM;electromyography;feature extraction;BP neural network;prosthetic real-time control
目前,表面肌电信号(surface electromyography,sEMG)已经被广泛应用于生物医学和运动医学等方面的研究中.通过sEMG信号识别出肢体运动的多种模式,并用于对假肢的控制已成为研究热点.国内外很多学者已开展了针对肌电信号手势动作识别的研究,并取得了一定的成果.文献[1]提出了一种基于肌电信号自适应学习的动作识别方法,同时结合模糊神经网
收稿日期:2014-03-10
通信作者:李传江(1978—),男,副教授,研究方向为计算机自动检测与控制、智能测控仪表、先进控制理论及其应用等.E-mail:licj@
第4期卜峰,等:基于ARM的肌电假肢手控制器443
络PID控制算法实现了肌电信号对假手的控制.文献[2]从6通道表面肌电信号中提取模式信息,通过支持向量机算法对18种手掌姿势进行识别.上述方法虽然效果较好,但是在实际应用中存在以下问题:一是传感器多不易安装,且成本高;二是计算量大,在嵌入式系统中难以实现,实时性受到影响.目前,国内外实用假肢手多为张、合控制,多自由度假肢手的出现为增加假肢手的动作种类提供了条件,但相应的肌电接口控制方面的研究相对滞后.尽管很多学者对多种手势姿势的种类识别进行了研究[1,3-4],但大部分都停留在仿真水平,很少有实用的产品出现.
考虑到实用假肢控制器的成本和安装方便性,本研究提出一种基于ARM的肌电假肢实时控制系统方案,仅采用2个肌电传感器来实现对手势的实时识别.将ARM核的STM32系列处理器作为控制核心,完成2路sEMG信号的采集、预处理、特征提取、模式识别和控制假肢电机等任务.特征提取采用时域和频域的4个特征:绝对平均值(mean absolute value, MAV)、标准差(standard deviation,SD)、中值频率(median frequency,MF)和平均功率频率(mean power frequency,MPF).将采集到的大量特征数据输入Matlab环境中的BP神经网络进行训练,并将训练得到的权值和阈值用于STM32控制器中,实现实时在线识别.
1系统总体结构
本研究设计的肌电假肢控制器硬件部分主要由sEMG信号拾取电极、信号放大电路、信号调理电路、ARM控制器、假肢电机驱动和系统电源组成;软件部分主要包含ADC肌电信号采集、数字滤波、动作起止点判断、信号特征提取和动作模式识别等模块,其中模式识别所需的参数由Matlab中的BP神经网络训练得到,再将训练得到的权系数导入嵌入式系统中用于在线识别.系统总体结构框图如图1所示.
图1系统总体结构框图
Fig.1Overall system structure diagram
1.1系统硬件设计
控制器硬件主要分为4大部分,分别为STM32主控电路、系统电源、信号放大调理电路和假肢驱动电路(见图2).主控电路采用基于ARM核的STM32F103RBT6处理器作为主控制器.该处理器具有运算速度快、功耗低、A/D精度高等优点.在信号采集到分析识别的整个过程中,要求处理器一次运行时间在300ms以内.STM32系列处理器是意法半导体公司专为高性能、低成本、低功耗的嵌入式应用而设计的处理器,其时钟频率达到了72MHz,运算速度快,并具有16路12位ADC,能满足实时识别系统的要求.系统电源主要包含5,3.3,1.5和15V电源,其中用LM7805产生的5V电源供运放使用,用LM1117产生的稳定的3.3V电源供系统使用,用LP3966-ADJ产生的1.5V基准电源供信号调理电路使用,用LM7815产生的
444(自然科学版)第20卷
15V电源供电机驱动使用.信号放大和调理电路中的核心部分为LM324运算放大器.该放大器将信号放大后再加上1.5V基准电源,变成0∼3V的信号,再将其输入处理器A/D采集.通过STM32处理器对采集到的信号进行特征提取和模式识别,然后根据识别结果,通过RS232通信输出假肢驱动器控制信号,以控制假肢动作并接收回馈信息.
图2系统硬件总体结构框图
Fig.2Overall system hardware structure diagram
1.2系统软件设计
系统软件主要由4个模块组成:肌电信号采集和滤波、动作起止点判定、特征值提取和动作模式识别.
在肌电信号采集和滤波模块中,采用STM32的ADC采集2路肌电信号,通过成组数据传送(direct memory access,DMA)方式搬移.由于sEMG信号频率通常在0∼1000Hz之间,且不同肌肉的肌电功率谱最大频率不同,通常在50∼300Hz之间[5],因此本系统A/D采样频率设定在2kHz左右.STM32处理器中主管A/D时钟的APB2时钟PCLK2设置为系统时钟的16分频,即PCLK2=72/16=4.5MHz.再设置A/D模块时钟ADCCLK为PCLK2的8分频,即ADCCLK=4.5/8=0.56MHz,在ADC设置程序中对此继续分频,最终设置A/D 采样的最低频率为2.2MHz.
由于肌电信号复杂并且微弱,在提取过程中极易受到各种环境干扰,势必造成提取信号的不准确,因此本系统采用了数字滤波技术.数字滤波器的功能是对离散化了的信号作滤波处理,从而达到改变信号频谱的目的.按时间域特性,数字滤波器包括无限冲激响应(infinite impulse response,IIR)滤波器和有限冲激响应(finite impulse response,FIR)滤波器两大类. FIR滤波器所要求的阶数要比IIR滤波器高5∼10倍,且成本较高,信号延时也较大.所以本系统采用STM32DSP库中的8阶IIR数字滤波函数void iir biquad stm32(u16*y,u16*x, int16t*IIRCoeff,u16ny)来实现截止频率为10∼1000Hz的带通数字滤波器.
动作起止点判定模块的功能是通过sEMG信号确定动作的起止点,然后获取动作中稳定的信号,为下一步进行特征提取和模式识别做好准备.起止点的判断方法有神经网络法、阈值法、移动平均法等[6].由于本系统对动作起止点的判断要求及时有效,只需对信号进行短时间分析就能够判断,因此本研究采用阈值法,以时域特征绝对平均值作为判断标准,将2路信号的MAV相加,通过设定的门限阈值来判断动作起止点.
MAV是sEMG信号在模式识别中常用的时域特征,对长度为N的信号求绝对值后再求平均幅度值,能有效反映信号的幅值特性,计算公式如下:
MAV=1
N
N
i=1
|x(i)|.(1)
特征值提取模块主要是为了获得sEMG信号时域、频域特征与肌肉活动状态之间的关系.
第4期卜峰,等:基于ARM的肌电假肢手控制器445
sEMG信号特征值提取方法一般有3类:时域、频域和时频域法.
时域分析常用的特征有绝对平均值(MAV)、方差(variance,VAR)/标准差(SD)、过零点(zero-crossing,ZC)率[7]、Willison幅值(Willison amplitude,WAMP)和肌电直方图(histogram of EMG,HEMG)等.频域法主要用来分析肌电信号的频率与对应肌肉力间的关系[8],其中平均功率频率(MPF)和中值频率(MF)是最常用的两种分析方法[9].常用的时频域分析方法有短时傅里叶变换、维格纳分布(Wigner-Ville distribution,WVD)和乔伊-威廉斯分布(Choi-Williams distribution,CWD)[10].考虑到时频域在嵌入式系统中的实现较为复杂,本研究采用时域和频域特征相结合的方法.
通过主成分分析(principal components analysis,PCA)法进行实验,最终确定提取4种特征值作为分类识别的特征向量,分别为绝对平均值(MAV)、标准差(SD)、中值频率(MF)和平均功率频率(MPF).
(1)时域特征:对信号进行时域分析,能够快速直接地了解信号的能量信息.本系统提取的时域特征之一就是绝对平均值(MAV).
(2)标准差(SD):是总体中各单位值与其平均数差的平方的算术平均数的平方根.标准差是反映一组数据离散程度的最常用的一种量化形式,计算公式如下:
SD=
1N
i=1
(x i−x)2.(2)
(3)频域特征:对信号进行频域分析,将sEMG信号幅值随时间变化转变为信号功率随频率变化,这样就能直接观察sEMG信号频段的分布情况.频域分析主要采用功率谱分析,其主要特征有中值频率(MF)和平均功率频率(MPF).中值频率是功率谱中各个点功率的平均值,计算公式如下:
MF=
1
2M
M
j=1
p j,(3)
式中,p j为单片功率谱估计值,M为1/2信号采样点数.
平均功率频率能够反映信号能量集中的频率点,计算公式如下:
MPF=
M
j=1
f j p j
M
j=1
p j.(4)
动作模式识别模块采用BP神经网络算法,其基本思想是如果网络的输出有错,则对网络的权值进行调整,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小[10-11].
本系统采用3层神经网络作为训练和识别的分类器(见图3).网络由输入层、隐含层和输出层组成,其中输入层为8个神经元,对应2路肌电信号的8个特征值;隐含层设置6个神经元;输出层为5个神经元,分别对应5种不同的动作.
进行Matlab训练时,使用traingd函数作为训练函数,tansig函数是层与层之间的传递函数.通过训练,可得到输入层到隐含层的权值矩阵W ji和阈值矩阵θj,以及隐含层到输出层的权值矩阵V kj和阈值矩阵ϕk.
在ARM系统的在线识别设计中,将获得的权值和阈值根据BP神经网络的识别算法写入
446(自然科学版)第20卷系统程序中.首先,根据W ji 和θj 计算获得隐含层第j 个神经元的输入s j :
s j =I
i =1W ji x i −θj ,j =1,2,···,J.(5)
图3BP 神经网络结构模型
Fig.3Structure of BP neural network model
由式(6)获得隐含层第j 个神经元的输出h j :
h j =g (s j )=2j −1,j =1,2,···,J.(6)
然后,根据V kj 和ϕk 计算获得输出层的输入r k :
r k =
J j =1V kj h j −ϕk ,k =1,2,···,K.(7)
由式(8)获得输出层的输出y k :
y k =g (r k )=21+e k −1,k =1,2,···,K.(8)最后,找出识别相似度值y k 中的最大值,即为识别结果.
2
实验及结果2.1动作起止点判定实验
采用2个肌电传感器采集数据来判断5种基本动作(上翻、下翻、握拳、展拳、无动作).将2路信号的MAV 相加,通过多次实验来确定“无动作”和各种动作时的MAV 门限值.
将2路sEMG 信号传感器放置于尺侧腕屈肌和桡侧腕屈肌表皮上,在相同条件下分别做4种动作各20次,记录肌电信号MAV,并与“无动作”进行对比分析,结果如图4所示.可见,“无动作”和其他4种动作的MAV 有明显的区分界限.通过多次实验发现,当设定判断动作起止点的2路MAV 之和的阈值为0.3V 时,判定效果最好.
2.2特征值提取实验
实验中首先提取MAV,SD,均方根(root mean square,RMS),斜率符号变化(slope sign change,SSC),过零点(ZC)这5个时域特征和MFS,MF,功率谱密度(power spectral density,PSD)这3种频域特征.通过对每个特征的分类效果进行比较,选出了分类性能最好的4种特
第4期卜峰,等:基于ARM的肌电假肢手控制器447
征值:MAV,SD,MPF和MF.为验证这4个特征值的分类效果,单独分析每个特征值对5种动作的离散度和聚类性,确定该特征值是否具有较好的区分能力.
图45种动作状态下2路肌电信号MAV之和
Fig.4Sum of2channels of sEMG signal MAVs in5motion state
利用本研究设计的硬件系统,采集2路表面肌电信号,通过时域和频域分析输出4种特征值进行实验,5种动作各做30次,分别记录2路信号的MAV,SD,MF和MPF.为了能够清晰地看出特征值的聚类性,以通道1数据为横坐标,通道2数据为纵坐标,利用数据作散点图.4种特征值的聚类分析如图5所示.
图54种特征值的聚类分析
Fig.5Cluster analysis of4eigenvalues
从图5可以看出,MAV,SD,MF和MPF这4种特征值对5种动作状态都获得了良好的识别效果,类间距离较大,并且数据点比较集中,证明所选的4种特征值的聚类性较好,适合作
448(自然科学版)第20卷
为模式识别的输入特征.
2.3动作模式仿真识别实验
通过本研究设计的STM32肌电假肢控制器,采集5种手掌动作状态下的特征值,每个动作分别做100次.每个动作由2路sEMG信号传感器采集信号,每路信号提取4种特征值,即每个动作共有8维的特征向量.将这些特征向量通过Matlab软件进行仿真,之后输入BP神经网络进行训练和识别.
本研究将采集到的一个人的100组数据中的60组作为训练样本,其余40组作为识别实验样本.5种动作的BP神经网络识别结果如表1所示.
表15种动作BP神经网络仿真识别结果
Table15kinds of action simulation recognition results by BP neural network 动作上翻/次下翻/次握拳/次展拳/次无动作/次识别率/%上翻400000100
下翻040000100
握拳00390197.5
展拳30037092.5无动作000040100
从表1可以看出,5种动作中“展拳”和“握拳”的动作识别有几次错误,其他动作的40次识别结果都正确.这是因为“展拳”和“上翻”动作都是尺侧腕肌发力,桡侧腕肌不发力,当“展拳”动作用力较大时,1,2通道的肌电信号特征和“上翻”动作类似,所以会出现误判现象;“握拳”动作幅度较小,两块肌肉的信号强度较弱,所以容易被错误判定为“无动作”.在40次识别实验中,有3种动作的识别率为100%,1种为97.5%,1种为92.5%,因此Matlab仿真BP神经网络的整体识别率可达98%左右.
2.4动作模式在线识别实验
将仿真得到的BP神经网络的权值和阈值系数写入ARM系统中,实现在线动作识别.本实验中,每个动作各做50次,手势动作稳定后,观察系统识别结果输出(见表2).实验结果表明,系统的总体识别率为97.2%.
表25种动作在线识别结果
Table25kinds of action online recognition results
动作上翻/次下翻/次握拳/次展拳/次无动作/次识别率/%上翻500000100
下翻050000100
握拳00470394
展拳30146092
无动作000050100
以同样的方式,分别采集其余4人的100组数据,进行Matlab训练.将训练得到的权值和阈值重新写入ARM系统中,然后,进行在线识别实验.每种动作各做50次,4人的整体识别率都为97%左右,与第一个人类似.这是因为每个人识别用的权值和阈值都是根据本人sEMG信号训练而来,符合自身sEMG信号特性,所以识别率都较高.若采用一个人的sEMG
第4期卜峰,等:基于ARM的肌电假肢手控制器449
信号训练得到的权值和阈值去识别另一个人的sEMG信号,则识别率会大大降低.因此,每个截肢患者在安装假肢时都需要进行专门训练.
2.5算法实时性分析
通过在线仿真软件Keil的时间计算器可以看出,程序从主程序开始执行,完成一次动作的sEMG信号采集,从分析到识别结束平均需要的时间约为230ms,其中信号A/D采集需150ms左右,符合实时假肢控制领域低于300ms的要求[3].因此,在现有的基础上可以扩展更为复杂的算法,以提高识别精度.
3结束语
本研究设计了一种基于ARM的肌电假肢控制器,采用sEMG信号的4种特征值:MAV, SD,MF和MPF,通过BP神经网络算法实现了对上翻、下翻、握拳、展拳、无动作这5种动作的识别.仿真实验总体识别率达到了98%,实际在线识别率达到了97%,1s内可完成4∼5次识别过程,很好地满足了实时假肢控制的要求.
下一步的工作将针对不同受试者和截肢患者进行实验,验证本系统的动作识别精度和鲁棒性,设计出高精度的实用型肌电假肢控制器.
参考文献:
[1]吴常铖,宋爱国,章华涛.一种肌电假手的自适应模糊控制方法[J].仪器仪表学报,2013,34(6):
1339-1345.
[2]杨大鹏,赵京东,崔平远,等.基于支持向量机的人手姿态肌电模式识别与力检测[J].高技术通讯,
2010(6):618-622.
[3]杨大鹏,赵京东,李楠,等.基于预抓取模式识别的假手肌电控制方法[J].机械工程学报,2012,
48(15):1-8.
[4]H arada A,N akakuki T,H ikita M,et al.Robotfinger design for myoelectric prosthetic hand
and recognition offinger motions via surface EMG[C]//2010IEEE International Conference on Automation and Logistics.2010:273-278.
[5]王星,张莹,赵德春,等.多通道表面肌电无线采集系统设计及实验研究[J].仪器仪表学报,2012,
33(11):2460-2465.
[6]尹少华,杨基海,梁政,等.基于递归量化分析的表面肌电特征提取和分类[J].中国科学技术大学学
报,2006,36(5):550-555.
[7]王喜太,王强,张晓玉,等.基于肌电传感器的下肢残肢康复训练模式识别的研究[J].中国康复理论
与实践,2009,15(1):90-92.
[8]郭明远,张建宏,王惠娟,等.表面肌电在评估偏瘫患者肘关节肌张力中的应用[J].中国康复理论与
实践,2012,18(5):448-450.
[9]张毅,代凌凌,罗元.基于sEMG信号控制的智能轮椅无障碍人机交互系统[J].华中科技大学学报:
自然科学版,2011,39(Z2):264-267.
[10]李媛媛,陈香,张旭,等.基于ART2神经网络的手势动作肌电信号识别[J].中国科学技术大学学
报,2010,40(8):829-834.
[11]黄鹏程,杨庆华,鲍官军,等.基于幅值立方和BP神经网络的表面肌电信号特征提取算法[J].中国
机械工程,2012,23(11):1332-1336.。