韓團(tuán)軍,張晶,黃朝軍,王桂寶
(陜西理工大學(xué)物理與電信工程學(xué)院,陜西漢中 723000)
隨著科學(xué)技術(shù)的進(jìn)步,人們對(duì)機(jī)器設(shè)備的依賴逐漸增多,可以通過(guò)各種指令與機(jī)器完成基本的交互[1-3]。從人體結(jié)構(gòu)上看,雙手是人類最熟悉并且常用的部位,可以靈敏地感知外界的信息并且將觸摸到的信息反饋給上一級(jí)神經(jīng)網(wǎng)絡(luò)中樞,大腦及時(shí)給出精準(zhǔn)的控制信號(hào),手臂通過(guò)大腦給的控制信號(hào)迅速做出反應(yīng)。但是手臂殘疾或缺少的人無(wú)法進(jìn)行復(fù)雜的工作,甚至少數(shù)人連最基本的生活都是問(wèn)題[4]。所以設(shè)計(jì)一款智能假肢或者能人體行為控制的機(jī)械臂顯得尤為重要。
本文作者提出一種基于表面肌電信號(hào)的機(jī)械手控制系統(tǒng)。系統(tǒng)通過(guò)肌電信號(hào)傳感器對(duì)肌電信號(hào)進(jìn)行采集和軟硬濾波,再通過(guò)時(shí)頻域結(jié)合的方法進(jìn)行特征提取,最后通過(guò)BPNN算法進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果通過(guò)無(wú)線模塊發(fā)送指令控制。信號(hào)處理系統(tǒng)發(fā)出控制命令經(jīng)過(guò)無(wú)線傳輸?shù)綑C(jī)械手臂,來(lái)控制6舵機(jī)自由度的機(jī)械手臂,實(shí)現(xiàn)6個(gè)動(dòng)作的展示。
基于sEMG信號(hào)和BPNN算法的機(jī)械臂控制系統(tǒng)可分為兩部分:一部分是Cortex-M4系列的微處理器為主的sEMG信號(hào)處理系統(tǒng),另一部分是Cortex-M3系列的微處理器為主的機(jī)械手臂控制系統(tǒng)。整個(gè)系統(tǒng)用傳感器采集肌電信號(hào),采集的信號(hào)結(jié)合時(shí)頻域特點(diǎn)進(jìn)行特征提取,再分類通過(guò)BPNN算法進(jìn)行訓(xùn)練。整個(gè)設(shè)計(jì)系統(tǒng)設(shè)計(jì)思路如圖1所示。
圖1 整個(gè)系統(tǒng)的設(shè)計(jì)思路
數(shù)據(jù)采集條件:測(cè)試者需要正坐,手臂懸空,用計(jì)算機(jī)進(jìn)行提示,實(shí)驗(yàn)者依據(jù)提示信息來(lái)完成對(duì)應(yīng)的動(dòng)作。實(shí)驗(yàn)每一個(gè)動(dòng)作都分為3個(gè)部分:起始部分是放松半握手狀態(tài),時(shí)間為5 s;執(zhí)行部分是在模仿計(jì)算機(jī)給出的動(dòng)作,保持動(dòng)作持續(xù)時(shí)間為5 s;結(jié)束部分是恢復(fù)到起始狀態(tài),時(shí)間保持5 s。每組有6個(gè)手勢(shì)動(dòng)作,需要采集20組數(shù)據(jù)。實(shí)驗(yàn)中總共選取6種手部動(dòng)作做待采集動(dòng)作,有握拳、伸掌、手腕左轉(zhuǎn)、手腕右轉(zhuǎn)、手掌彎向前、手掌彎向后。這些手部動(dòng)作引起的肌肉運(yùn)動(dòng)比較強(qiáng)烈,使采集到的數(shù)據(jù)更準(zhǔn)確,進(jìn)而可以使分類更準(zhǔn)確。6種動(dòng)作的手勢(shì)如圖2所示。
圖2 6種手勢(shì)動(dòng)作圖
采用貼在皮膚表面的濕電極采集肌電數(shù)據(jù),采集到的數(shù)據(jù)含有較多的雜波,需要進(jìn)行濾波處理。采用硬件和軟件兼容進(jìn)行濾波,濾波降噪處理采用小波變換降噪和巴特沃斯濾波器。從經(jīng)過(guò)預(yù)處理的數(shù)據(jù)里面提取一些時(shí)域特征值和頻域特征值。提取的數(shù)據(jù)可作為BPNN算法訓(xùn)練模型的輸入數(shù)據(jù)。巴特沃斯低通濾波器的設(shè)計(jì)函數(shù)如式(1)所示:
(1)
巴特沃斯濾波器的特點(diǎn)是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒(méi)有起伏,而在阻頻帶則逐漸下降為零[5-7]。在振幅的對(duì)數(shù)對(duì)角頻率的Bode圖上,從某一邊界角頻率開(kāi)始,振幅隨著角頻率的增加而逐漸減少,趨向負(fù)無(wú)窮大。設(shè)計(jì)利用MATLAB對(duì)采集信號(hào)進(jìn)行仿真濾波處理,原始信號(hào)是模擬肌電信號(hào)的一個(gè)數(shù)字信號(hào),通過(guò)低通濾波處理,更加平滑。濾波效果如圖3所示。
圖3 原始信號(hào)(a)和巴特沃斯低通濾波后的信號(hào)(b)
采集到的肌電信號(hào)經(jīng)過(guò)預(yù)處理后信號(hào)比較微弱,所以要對(duì)于肌電信號(hào)進(jìn)行特征提取。由于不同動(dòng)作在時(shí)域和頻域識(shí)別率大小不一樣,設(shè)計(jì)中結(jié)合這兩種方法進(jìn)行處理,左轉(zhuǎn)和握拳動(dòng)作在時(shí)域分析比較明顯同時(shí)計(jì)算簡(jiǎn)單,采用時(shí)域提取方法,其他動(dòng)作在頻域進(jìn)行特征提取較好。時(shí)域提取時(shí),由于sEMG信號(hào)處理中,表面肌電信號(hào)是一種微弱的非線性時(shí)變信號(hào),一般采用時(shí)域特征提取法就是對(duì)信號(hào)進(jìn)行時(shí)域上的統(tǒng)計(jì)處理。表面肌電信號(hào)可以理解成一種類似高斯分布的隨機(jī)信號(hào),將式(2)—(6)處理將所得到的結(jié)果作為信號(hào)的時(shí)域特征[8-12]。
式(2)為平均絕對(duì)值(MAV),反映了信號(hào)曲線函數(shù)偏離的程度。
(2)
式(3)為均方根(RMS),反映了肌肉活動(dòng)產(chǎn)生的肌電信號(hào)能量的強(qiáng)弱。
(3)
式(4)為積分肌電值(IEMG),反映了肌肉運(yùn)動(dòng)時(shí)的活動(dòng)強(qiáng)度。
(4)
式(5)為標(biāo)準(zhǔn)偏差(STD),反映了肌電信號(hào)數(shù)據(jù)間的離散程度。
(5)
式(6)為Willison 振幅(WA),反映了肌肉運(yùn)動(dòng)時(shí)的收縮能力。
(6)
根據(jù)上面的公式可以直接對(duì)肌電信號(hào)進(jìn)行處理,可以提取到肌電信號(hào)對(duì)應(yīng)的時(shí)域特征值。
頻域的特征提取是在頻域上進(jìn)行的,所以需要將采集到的數(shù)據(jù)經(jīng)過(guò)傅里葉變換變成頻域信號(hào)才能進(jìn)行處理。這是為了彌補(bǔ)時(shí)域信號(hào)特征值的不足,頻域里面也有隱藏的肌電信息。
平均功率頻率(MPF)表示功率譜平均值的頻率,反映了肌肉活動(dòng)強(qiáng)度。具體計(jì)算公式見(jiàn)式(7):
(7)
中值頻率(MF)表示sEMG功率譜的中值頻率,反映了肌肉在一定時(shí)間內(nèi)的平均功率。
(8)
模型建立。輸入數(shù)據(jù)為x,輸入層到隱藏層的參數(shù)為w、b1,隱藏層到輸出層的參數(shù)為v、b2,激活函數(shù)為g1、g2。輸入層到隱藏層算法如式(9)所示:
n1=wTx+b1,h=g1(n1)
(9)
隱藏層到輸出層算法如式(10)所示:
(10)
模型函數(shù)如式(11)所示:
(11)
損失函數(shù)如式(12)所示:
(12)
過(guò)程計(jì)算。輸出層的誤差項(xiàng):輸出層的參數(shù)v與損失函數(shù)E沒(méi)有直接的相關(guān)關(guān)系,而是通過(guò)復(fù)數(shù)的方式關(guān)聯(lián),如式(13)所示:
(13)
根據(jù)鏈?zhǔn)椒▌t,輸出層的參數(shù)v與損失函數(shù)E的誤差項(xiàng)見(jiàn)式(14):
(14)
輸出層的誤差項(xiàng)如式(15)所示:
(15)
模型參數(shù)優(yōu)化。隱藏層的誤差項(xiàng),即計(jì)算損失函數(shù)關(guān)于隱藏單元的偏導(dǎo)函數(shù)值和梯度值,見(jiàn)式(16):
(16)
輸出層的誤差項(xiàng),即計(jì)算損失函數(shù)關(guān)于輸出層的梯度值和偏導(dǎo)函數(shù)值見(jiàn)式(17):
(17)
輸出層參數(shù)更新見(jiàn)式(18):
(18)
隱藏層參數(shù)更新見(jiàn)式(19):
(19)
整個(gè)系統(tǒng)建模完成后使用3D打印機(jī)打印出每一部分,把打印的分離模塊進(jìn)行組裝,控制模塊選擇舵機(jī)做牽引動(dòng)力,手臂一共使用了6個(gè)舵機(jī),其中一個(gè)控制手腕左轉(zhuǎn)和右轉(zhuǎn),其余5個(gè)分別獨(dú)立控制一個(gè)手指頭??刂品绞绞峭ㄟ^(guò)舵機(jī)牽引鋼絲繩拉動(dòng)手指完成動(dòng)作,舵機(jī)的左右轉(zhuǎn)會(huì)控制手指的彎曲和伸直,鏈接部分應(yīng)用鋼絲打印。組裝的實(shí)物如圖4所示。
圖4 實(shí)物(a)和內(nèi)部結(jié)構(gòu)(b)
對(duì)系統(tǒng)進(jìn)行了測(cè)試。通過(guò)對(duì)肌電信號(hào)的采集與處理,可以看到在時(shí)域下,各類肌電信號(hào)幅值差異性較小,通過(guò)傅里葉變換將時(shí)域信號(hào)變成頻域信號(hào),在頻域明顯可以看到每種手勢(shì)之間的區(qū)別。為了提高識(shí)別率,需要將時(shí)域信號(hào)和頻域信號(hào)結(jié)合起來(lái)。6種手勢(shì)肌電信號(hào)的時(shí)、頻域圖如圖5所示。
根據(jù)此次肌電信號(hào)特征,為了減少計(jì)算復(fù)雜度,設(shè)計(jì)選擇7個(gè)輸入節(jié)、6個(gè)輸出節(jié)點(diǎn)的三層神經(jīng)網(wǎng)絡(luò)模型。根據(jù)相關(guān)文獻(xiàn)、經(jīng)驗(yàn)得知,隱藏層節(jié)點(diǎn)個(gè)數(shù)從3個(gè)開(kāi)始為最佳,依次加1,最大到8個(gè)節(jié)點(diǎn)。訓(xùn)練識(shí)別結(jié)果如表1所示。
根據(jù)表1的統(tǒng)計(jì)結(jié)果可知,隱藏層節(jié)點(diǎn)的個(gè)數(shù)6個(gè)為最佳,所以這次實(shí)驗(yàn)選擇7個(gè)輸入節(jié)點(diǎn)、6個(gè)隱藏層節(jié)點(diǎn)、6個(gè)輸出層節(jié)點(diǎn)的BP網(wǎng)絡(luò)模型。因?yàn)闀r(shí)域特征和頻域特征合在一起共有7個(gè)特征值,有6種手勢(shì)需要分辨。該模型訓(xùn)練結(jié)果如圖6所示:此次神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練了10 000次,可以明顯看出前期訓(xùn)練次數(shù)較少的時(shí)候,效果比較明顯,到了大概8 000次左右,曲線呈水平狀。經(jīng)修改,最終機(jī)器學(xué)習(xí)次數(shù)為8 000次,一方面可以減少訓(xùn)練時(shí)間,另一方面防止出現(xiàn)過(guò)擬合。
圖6 BP神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練結(jié)果誤差
按照之前的采集數(shù)據(jù)操作過(guò)程進(jìn)行模型驗(yàn)證。圖7所示為6種手勢(shì)所對(duì)應(yīng)的機(jī)械手動(dòng)作。6種手勢(shì)分別對(duì)應(yīng)的機(jī)械手臂的動(dòng)作如表2所示。
表2 手勢(shì)動(dòng)作對(duì)應(yīng)
實(shí)驗(yàn)中通過(guò)手部的動(dòng)作和機(jī)械手的動(dòng)作進(jìn)行對(duì)比,來(lái)判斷識(shí)別是否準(zhǔn)確。如果機(jī)械手的動(dòng)作和對(duì)應(yīng)手部動(dòng)作相同,則認(rèn)為識(shí)別成功,反之則識(shí)別失敗。一共實(shí)驗(yàn)了600次,每個(gè)動(dòng)作識(shí)別100次,表3為每個(gè)動(dòng)作的成功次數(shù)統(tǒng)計(jì)。
表3 實(shí)驗(yàn)結(jié)果
從統(tǒng)計(jì)結(jié)果可以看到:伸掌和握拳這兩種手勢(shì)識(shí)別的準(zhǔn)確率高達(dá)90%多,相對(duì)于其他手勢(shì)來(lái)說(shuō)識(shí)別效果較好,其他手勢(shì)的識(shí)別率平均也達(dá)到了80%。那兩個(gè)手勢(shì)識(shí)別率高的原因應(yīng)該是選取的測(cè)試肌肉區(qū)域?qū)@兩種手勢(shì)反應(yīng)比較強(qiáng)烈,其他的手勢(shì)就沒(méi)有那么大的反應(yīng)。數(shù)據(jù)可以證明設(shè)計(jì)的正確性。
設(shè)計(jì)了基于sEMG信號(hào)和BPNN算法的機(jī)械臂控制系統(tǒng),對(duì)肌電信號(hào)的采集、識(shí)別和機(jī)械手臂的控制等工作進(jìn)行了深入研究。通過(guò)對(duì)實(shí)時(shí)控制機(jī)械手臂的結(jié)果分析,6種手勢(shì)平均識(shí)別率在80%以上,可以證明設(shè)計(jì)的正確性。