張磊, 王文東, 史儀凱, 劉佳豪, 褚陽, 明杏
(西北工業(yè)大學(xué) 機(jī)電學(xué)院, 陜西 西安 710072)
因肌電信號(hào)表征著人體的運(yùn)動(dòng)狀態(tài)和意圖,所以可以利用肌電信號(hào)作為外骨骼機(jī)械臂的控制信號(hào)。雖然對(duì)肌電信號(hào)和外骨骼機(jī)械臂的研究很早就已經(jīng)開展,但是至今為止,現(xiàn)在的外骨骼機(jī)械臂的結(jié)構(gòu)和控制算法的適應(yīng)性都仍有一定的缺陷。因此不斷完善外骨骼機(jī)械臂的控制策略以保證較好的運(yùn)動(dòng)特性對(duì)于完善患者進(jìn)行康復(fù)訓(xùn)練的體系具有十分重要的作用和意義。另外在一些康復(fù)訓(xùn)練中心,主要依靠一些簡單外骨骼來幫助患者進(jìn)行康復(fù)訓(xùn)練。但是目前的康復(fù)運(yùn)動(dòng)不能反映患者的真實(shí)意圖。
人體的肌電信號(hào)中含有大量的與人體運(yùn)動(dòng)相關(guān)的信息,從肌電信號(hào)中識(shí)別患者的運(yùn)動(dòng)意圖是控制機(jī)械臂輔助人體運(yùn)動(dòng)的關(guān)鍵。Cavallaro等[1]設(shè)計(jì)了一套上肢七自由度外骨骼。運(yùn)動(dòng)預(yù)測采用的是改進(jìn)的Hill肌肉模型。利用28導(dǎo)的肌電信號(hào)采集儀采集肌電信號(hào),并用遺傳算法進(jìn)行模式識(shí)別,進(jìn)而估計(jì)上肢3個(gè)自由度的角度變化,但是該實(shí)驗(yàn)需要的肌電傳感器較多,并且正確率也不高。張峰等[2]采集人體下肢肌電信號(hào),并將肌電信號(hào)導(dǎo)入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實(shí)現(xiàn)對(duì)下肢運(yùn)動(dòng)意圖的分析,進(jìn)而估計(jì)出下肢踝關(guān)節(jié)、膝關(guān)節(jié)和臀關(guān)節(jié)角度的變化。結(jié)果表明通過人體肌電信號(hào)值能很好地預(yù)測人體下肢角度變化。張琴等[3]利用獲得的下肢肌電信號(hào),通過支持向量機(jī)對(duì)肌電-運(yùn)動(dòng)的映射關(guān)系進(jìn)行訓(xùn)練,實(shí)現(xiàn)對(duì)下肢髖關(guān)節(jié)、踝關(guān)節(jié)以及膝關(guān)節(jié)的矢狀面進(jìn)行連續(xù)運(yùn)動(dòng)預(yù)測,結(jié)果表明,基于肌電信號(hào)的下肢多關(guān)節(jié)連續(xù)運(yùn)動(dòng)預(yù)測在行走時(shí)控制適當(dāng)?shù)乃俣仁强尚械?。丁其川等[4]對(duì)肌電信號(hào)的離散控制和連續(xù)運(yùn)動(dòng)估計(jì)進(jìn)行了綜合討論。離散控制較為簡單,通過不同的離散控制量直接驅(qū)動(dòng)不同的運(yùn)動(dòng)模塊,以實(shí)現(xiàn)肌電信號(hào)的離散控制。目前國內(nèi)的研究主要集中在下肢關(guān)節(jié)的運(yùn)動(dòng)跟隨,對(duì)上肢的離散模式估計(jì)研究較少。
本文建立了基于BP神經(jīng)網(wǎng)絡(luò)的離散運(yùn)動(dòng)控制模型,利用肌電信號(hào)對(duì)患者的離散運(yùn)動(dòng)模式進(jìn)行識(shí)別,通過模式識(shí)別的正確率評(píng)價(jià)模型性能。本文對(duì)建立的離散運(yùn)動(dòng)模型進(jìn)行了實(shí)驗(yàn),結(jié)果表明離散運(yùn)動(dòng)控制模型具有較高的正確率。
人體的上肢有許多自由度,要實(shí)現(xiàn)對(duì)人體上肢所有自由度的運(yùn)動(dòng)預(yù)測是十分困難的。本文設(shè)計(jì)了一款便攜式的外骨骼機(jī)械臂,主要使用對(duì)象是康復(fù)訓(xùn)練的患者,患者在使用時(shí)要將外骨骼戴在身上進(jìn)行訓(xùn)練,故要求此外骨骼機(jī)械臂要體積小、強(qiáng)度高、質(zhì)量輕。另外,要保證此外骨骼機(jī)械臂的安全性,所以在設(shè)計(jì)時(shí)要綜合考慮人體工程學(xué)理論。
在對(duì)外骨骼機(jī)械臂進(jìn)行結(jié)構(gòu)設(shè)計(jì)前,應(yīng)首先對(duì)人體的生理結(jié)構(gòu)進(jìn)行研究。通過對(duì)人體的上肢進(jìn)行觀察,發(fā)現(xiàn)人體上肢是由多個(gè)關(guān)節(jié)組合,為了設(shè)計(jì)一種便攜式的外骨骼機(jī)械臂,本文選取了手掌腕部擺動(dòng)、前臂側(cè)向運(yùn)動(dòng)和肘關(guān)節(jié)轉(zhuǎn)動(dòng)3個(gè)自由度進(jìn)行設(shè)計(jì),各關(guān)節(jié)自由度選擇位置如圖1所示。
圖1 人體上肢自由度
為了保證患者康復(fù)訓(xùn)練時(shí)的安全性,經(jīng)查閱與人體工程學(xué)理論和醫(yī)學(xué)康復(fù)理論的相關(guān)文獻(xiàn),結(jié)合李慶玲等[5]對(duì)人體上肢極限運(yùn)動(dòng)范圍的研究和本人對(duì)成年人體工程學(xué)的研究,得知人體手掌擺動(dòng)時(shí)在腕部處的運(yùn)動(dòng)范圍極限位置為-90°~90°(取伸掌時(shí)手心朝后為-90°,手心朝前為90°,手掌與小臂同共面定義為0°),為了保持患者安全,此范圍取為-45°~45°;人體前臂向側(cè)向旋轉(zhuǎn)時(shí)的運(yùn)動(dòng)范圍為-90°~90°(取小臂內(nèi)側(cè)面向大臂內(nèi)側(cè)為-90°,小臂內(nèi)側(cè)背向大臂內(nèi)側(cè)時(shí)為90°);人體肘關(guān)節(jié)的運(yùn)動(dòng)范圍為0°~180°(取小臂與大臂共線時(shí)為0°),考慮到不同患者的上肢粗細(xì)不同,為保障患者康復(fù)訓(xùn)練時(shí)的安全性,選定上肢外骨骼機(jī)械臂的肘關(guān)節(jié)運(yùn)動(dòng)角度范圍為0°~90°(取上肢自然下垂為0°,小臂水平為90°),各個(gè)自由度的角度定義如圖2所示。
圖2 各自由度的運(yùn)動(dòng)角度定義
綜合考慮以上的設(shè)計(jì)要求,通過對(duì)不同的成年人進(jìn)行實(shí)際測量,最終選擇較為合適的尺寸,具體的上肢外骨骼機(jī)械臂三維模型如圖3所示。
圖3 外骨骼機(jī)械臂三維模型
雖然肌電信號(hào)蘊(yùn)藏著大量的信息,但是其非常弱且易受到外界干擾,因此對(duì)信號(hào)的采集和處理提出了苛刻的要求。采集到的肌電信號(hào)必須經(jīng)過進(jìn)一步的信號(hào)處理才能提取到有用的信息,在信號(hào)處理前一般需要經(jīng)過預(yù)處理。預(yù)處理的方式通常有:信號(hào)放大、濾波去噪、信號(hào)的偏置和歸一化等。
1) 表面肌電信號(hào)放大
肌電信號(hào)的幅值一般在0~5 mV之間,必須對(duì)信號(hào)進(jìn)行放大處理。若沒有經(jīng)過放大則會(huì)導(dǎo)致信號(hào)失真等問題。信號(hào)的放大可以采用放大電路來實(shí)現(xiàn),本文采用的肌電信號(hào)傳感器內(nèi)置有1 000倍的信號(hào)放大電路,輸出的信號(hào)幅值在0~5 V之間。
2) 表面肌電信號(hào)去噪
本文的采樣率為1 000 Hz,肌電信號(hào)采集傳感器內(nèi)置有10~1 000 Hz的帶通濾波電路,可以濾除部分的低頻干擾和高頻干擾,之后為了使信號(hào)變得更加平滑,再利用卡爾曼濾波對(duì)信號(hào)進(jìn)行處理。
肌電信號(hào)經(jīng)過傳感器帶通濾波后,仍含有高頻干擾,肌電信號(hào)有用頻率主要集中在20~200 Hz,為了去除200 Hz以上的高頻干擾,本文加入了一種數(shù)字濾波器以實(shí)現(xiàn)此處的濾波。利用Matlab中的FDATOOL插件設(shè)計(jì)了一種濾除200 Hz以上高頻干擾的64階FIR低通數(shù)字濾波器。
3) 肌電信號(hào)的歸一化和去偏置
在采集肌電信號(hào)的過程中,不可避免地會(huì)使肌電傳感器電極的放置位置和所受的預(yù)緊力發(fā)生輕微改變。由于電極位置的輕微變動(dòng)或者其他原因,往往會(huì)導(dǎo)致采集信號(hào)幅值發(fā)生變化。為了避免幅值變化所引起的干擾,在信號(hào)處理時(shí),往往需要對(duì)信號(hào)進(jìn)行歸一化處理,將信號(hào)歸一化到[-1,1]。
由于STM32單片機(jī)的ADC只能采集正電壓,而肌電原始信號(hào)有正電壓也有負(fù)電壓,所以在傳感器內(nèi)部設(shè)置有一個(gè)2.5 V的偏置電路,使原始的肌電信號(hào)整體增加了一個(gè)直流分量,滿足了STM32的采集條件。由于肌電傳感器能夠輸出的肌電信號(hào)幅值是5 V,而STM32單片機(jī)的ADC最高允許輸入電壓是3.3 V,所以需要對(duì)傳感器輸出的肌電信號(hào)進(jìn)行分壓處理。
肌電傳感器采集到的肌電信號(hào)如圖4所示,將信號(hào)進(jìn)行FIR數(shù)字濾波、卡爾曼濾波、偏置、歸一化和放大等預(yù)處理后,肌電信號(hào)如圖5所示。
圖4 肌電傳感器采集到的肌電信號(hào)
圖5 預(yù)處理后的肌電信號(hào)
如何從所采集到的信號(hào)中提取出有用信息是肌電信號(hào)處理的關(guān)鍵。肌電信號(hào)的特征值是從肌電信號(hào)中提取出來能夠表征肌電信號(hào)特征的一類值。特征值的提取方法多種多樣,Purushothaman等[6]采用小波系數(shù)作為特征值。Chen等[7]利用了改進(jìn)的近似熵來表征表面肌電信號(hào)。肌電信號(hào)的特征值的提取主要包括3個(gè)大方面:時(shí)域、頻域和時(shí)頻域特征值的提取。
1) 時(shí)域特征值提取
時(shí)域特征值提取方法:絕對(duì)值積分
(2)
式中,N為采樣點(diǎn)數(shù);xi為信號(hào)的幅值。
2) 頻域特征值提取
頻域幅值標(biāo)準(zhǔn)差:傅里葉變換可以將信號(hào)從時(shí)域轉(zhuǎn)換到頻域來觀察,通過對(duì)轉(zhuǎn)換之后的頻譜進(jìn)行分析,可以觀察到時(shí)域所觀察不到的信息。同時(shí)可以觀察各個(gè)頻率分量的幅值,以及整個(gè)肌電信號(hào)的主要頻率分布。進(jìn)行傅里葉變換也便于對(duì)噪音信號(hào)進(jìn)行觀察,從而利用濾波器去除噪音。
傅里葉變換之后的平均幅值和幅值方差能夠在一定程度上表征信號(hào)的特征,都可以作為肌電信號(hào)的特征值來判定肌肉纖維的活躍程度,本文采用傅里葉變換之后的平均幅值作為特征值。
3) 小波變換系數(shù)
小波變換又稱為“數(shù)字顯微鏡”,可以對(duì)采集到的肌電信號(hào)從不同的角度和尺度進(jìn)行觀察和分析,小波變換類似于加窗傅里葉變換,其可以將信號(hào)在不同頻率上進(jìn)行分解。因?yàn)樾〔ㄏ禂?shù)能夠在一定程度上反映肌電信號(hào)的特征,且具有很好的分辨性,所以經(jīng)常作為肌電信號(hào)的特征值使用。
由于肌電信號(hào)中含有表征肌電機(jī)體運(yùn)動(dòng)趨勢的信息,Batzianoulis等[8]提出了一種新的學(xué)習(xí)方法,可以實(shí)現(xiàn)對(duì)手部的抓取意圖進(jìn)行解碼。從肌電信號(hào)提取的特征值就直接體現(xiàn)了人體的運(yùn)動(dòng)意圖,將提取的肌電信號(hào)特征值輸入到訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)中,BP神經(jīng)網(wǎng)絡(luò)就會(huì)輸出對(duì)應(yīng)的模式,以此實(shí)現(xiàn)模式識(shí)別。再根據(jù)不同的模式驅(qū)動(dòng)不同的控制模塊,這樣就可以實(shí)現(xiàn)利用肌電信號(hào)對(duì)外骨骼機(jī)械臂的控制。
圖6 肌電信號(hào)離散運(yùn)動(dòng)控制模型
通過丁其川等[4]對(duì)肌電信號(hào)的離散控制和連續(xù)運(yùn)動(dòng)估計(jì)進(jìn)行了綜合的討論可知,肌電信號(hào)的控制分為離散控制和連續(xù)控制。通過不同的離散控制量直接驅(qū)動(dòng)不同的運(yùn)動(dòng)模塊,以實(shí)現(xiàn)肌電信號(hào)的離散控制,離散運(yùn)動(dòng)控制的具體過程如圖6所示。本文利用肌電信號(hào)的離散控制模型驅(qū)動(dòng)外骨骼機(jī)械臂運(yùn)動(dòng)。首先采集肱二頭肌和肱三頭肌處的肌電信號(hào),然后對(duì)肌電信號(hào)分別提取時(shí)域信號(hào)的標(biāo)準(zhǔn)差、頻域幅值的標(biāo)準(zhǔn)差以及小波系數(shù)標(biāo)準(zhǔn)差3個(gè)特征值。為了減小外界干擾引起特征值的突變和肌電信號(hào)特征值漂移帶來的影響,可以將3個(gè)特征值進(jìn)行加權(quán)求和作為最終特征值。3個(gè)特征值的“權(quán)”均為33.3%。有時(shí)計(jì)算的最終特征值波動(dòng)較強(qiáng),可以利用卡爾曼濾波進(jìn)行一次消抖處理,最后將其特征值作為BP神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù)。從時(shí)域、頻域和時(shí)頻域提取的特征值轉(zhuǎn)化為最終特征值的具體過程如圖7所示。
圖7 特征值提取模型
實(shí)驗(yàn)數(shù)據(jù)采集過程為:首先讓肌肉自然放松,之后將小臂放松10 s,然后有意識(shí)將小臂往下壓使肱三頭肌收縮并持續(xù)10 s;然后再將小臂放松10 s,之后再將小臂往上抬起使肱二頭肌收縮并持續(xù)20 s;最后將小臂再放松10 s后停止采集。分別對(duì)從肱二頭肌和肱三頭肌的肌電信號(hào)中提取出的特征值進(jìn)行進(jìn)一步處理和變換,對(duì)從時(shí)域、頻域和時(shí)頻域得到的特征值進(jìn)行加權(quán)求和,利用卡爾曼濾波進(jìn)行消抖平滑處理可得到最終的特征值分別如圖8和圖9所示。
圖8 肱二頭肌處得到的最終特征值
圖9 肱三頭肌處得到的最終特征值
同單隱含層相比,多隱含層泛化能力強(qiáng),預(yù)測精度高,但是訓(xùn)練時(shí)間較久,對(duì)于簡單的映射關(guān)系,在網(wǎng)絡(luò)精度達(dá)到要求的情況下可以選擇單隱含層。本文要求的實(shí)驗(yàn)是實(shí)時(shí)性的,因此選擇單隱含層。對(duì)于復(fù)雜的非線性模型,網(wǎng)絡(luò)預(yù)測誤差隨著節(jié)點(diǎn)數(shù)增加會(huì)出現(xiàn)先減少后增加的趨勢,對(duì)于簡單的非線性模型,會(huì)隨著隱含層節(jié)點(diǎn)數(shù)的增加誤差逐漸減少。但是隱含層節(jié)點(diǎn)越多所消耗的時(shí)間越長。本文選定的非線性模型僅有2個(gè)輸入1個(gè)輸出,相對(duì)簡單,同時(shí)又要求實(shí)時(shí)性,因此經(jīng)過對(duì)比選擇了6個(gè)節(jié)點(diǎn)。在保證誤差的范圍下,為了方便運(yùn)算,采用的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為:輸入層有2個(gè)節(jié)點(diǎn),分別作為在肱二頭肌和肱三頭肌特征值的輸入節(jié)點(diǎn)。隱含層采用tansig傳遞函數(shù)。輸出層有1個(gè)神經(jīng)元,采用purelin傳遞函數(shù)。BP神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果為識(shí)別出的模式,代表著人體的運(yùn)動(dòng)意圖。通過識(shí)別出小臂放松、小臂抬升、小臂下降的運(yùn)動(dòng)意圖,實(shí)時(shí)控制電機(jī)的停止、正轉(zhuǎn)和逆轉(zhuǎn),以實(shí)現(xiàn)外骨骼機(jī)械臂輔助患者運(yùn)動(dòng)。
1) 肌電信號(hào)離散控制外骨骼機(jī)械臂的實(shí)驗(yàn)中所用到的實(shí)驗(yàn)設(shè)備主要有:肌電傳感器、STM32單片機(jī)開發(fā)板、外骨骼機(jī)械臂、恒壓源,如圖10所示。
2) 在進(jìn)行離散運(yùn)動(dòng)控制實(shí)驗(yàn)時(shí),要將外骨骼機(jī)械臂穿在測試者身上,要求將六軸陀螺儀傳感器固定在測試者的手心中,如圖10所示。要保證六軸陀螺儀傳感器JY61的x軸與小臂共線,實(shí)驗(yàn)時(shí)通過測量x軸或z軸的角度變化量就可以計(jì)算出人體肘關(guān)節(jié)所轉(zhuǎn)過的角度。
圖10 實(shí)驗(yàn)設(shè)備
本文通過模式識(shí)別結(jié)果的正確率來分析系統(tǒng)性能。為了更好地測試出本文所設(shè)計(jì)的基于肌電信號(hào)離散運(yùn)動(dòng)控制模型的性能,選取了8位身體指標(biāo)不同的人員進(jìn)行實(shí)驗(yàn)測試,測試人員的身體指標(biāo)如表1所示。對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的特征值取自于測試者A。
表1 測試人員身體指標(biāo)
根據(jù)以上的理論分析,本實(shí)驗(yàn)通過采集人體肱二頭肌和肱三頭肌的肌電信號(hào)提取特征值,設(shè)定訓(xùn)練次數(shù)為10 000,學(xué)習(xí)率為0.01,目標(biāo)誤差為0.000 1,將提取的肌電信號(hào)特征值進(jìn)行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練。當(dāng)BP訓(xùn)練好以后,將被試者的肌電信號(hào)導(dǎo)入到BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模式識(shí)別,通過識(shí)別的模式實(shí)時(shí)控制機(jī)械臂的運(yùn)動(dòng)。
為了檢測此控制系統(tǒng)的對(duì)不同個(gè)體的適應(yīng)能力,本實(shí)驗(yàn)對(duì)8位不同測試者個(gè)體進(jìn)行了測試。實(shí)驗(yàn)中對(duì)每個(gè)測試者進(jìn)行小臂放松、小臂抬升和小臂下降3種模式的識(shí)別,每個(gè)運(yùn)動(dòng)意圖進(jìn)行了100次的識(shí)別,計(jì)算其模式識(shí)別的正確率,測試結(jié)果如表3所示。從表2可以看出3種模式的平均識(shí)別正確率都達(dá)到90%以上。
表3 離散運(yùn)動(dòng)意圖模式識(shí)別正確率
本文設(shè)計(jì)了一套三自由度的上肢外骨骼機(jī)械臂。并對(duì)肌電信號(hào)進(jìn)行了預(yù)處理和提取特征值,利用BP神經(jīng)網(wǎng)絡(luò)建立了外骨骼離散控制模型。對(duì)3種離散模式進(jìn)行了實(shí)驗(yàn)驗(yàn)證,結(jié)果表明3種模式的正確率都能達(dá)到90%以上。
西北工業(yè)大學(xué)學(xué)報(bào)2019年3期