晉曉飛,王浩,陳媛,王鵬程
(1.南京航空航天大學(xué)航天學(xué)院仿生結(jié)構(gòu)與材料防護(hù)研究所,南京210016;2.南京航空航天大學(xué)自動(dòng)化學(xué)院生物醫(yī)學(xué)工程系,南京210016)
表面肌電信號(hào)(surface electromyogram,SEMG)是人體骨骼肌表面通過(guò)電極記錄下來(lái)的神經(jīng)肌肉活動(dòng)產(chǎn)生的生物電信號(hào)[1],是人體神經(jīng)、肌肉等運(yùn)動(dòng)組織功能狀況的一種直接反映。表面肌電信號(hào)由于無(wú)創(chuàng)性以及信號(hào)處理方法靈活,已廣泛應(yīng)用于臨床醫(yī)學(xué)、人工智能、康復(fù)醫(yī)學(xué)治療等方面[2],尤其是在假肢等智能康復(fù)輔具方面的應(yīng)用,成為假肢控制的理想信號(hào)源[3]。國(guó)外對(duì)肌電信號(hào)的研究逐步從實(shí)驗(yàn)室研究階段走向臨床應(yīng)用階段。一些商業(yè)化假肢產(chǎn)品,如德國(guó)Otto Bock公司研發(fā)的Sensor Hand,英國(guó)Touch Bionics公司研發(fā)的i-Limb手也都陸續(xù)投入市場(chǎng),i-Limb手具有5個(gè)獨(dú)立控制的手指,能完成開(kāi)鎖、開(kāi)易拉罐等精細(xì)動(dòng)作[4-5]。但是在機(jī)械操作和實(shí)際生活中,將肌電信號(hào)用來(lái)控制終端設(shè)備的應(yīng)用研究還相對(duì)較少[6]。如果可以通過(guò)表面肌電信號(hào)來(lái)控制機(jī)械設(shè)備,讓有運(yùn)動(dòng)功能障礙的人通過(guò)手臂來(lái)控制護(hù)理設(shè)備(如輪椅),使人的意識(shí)與機(jī)械設(shè)備統(tǒng)一,實(shí)現(xiàn)人機(jī)一體化。
本研究設(shè)計(jì)一種基于手臂表面肌電信號(hào)的智能小車(chē)控制系統(tǒng)。提取手臂表面肌電信號(hào)并分類識(shí)別,編碼形成控制指令;受控端安裝于智能小車(chē),可無(wú)線接收并解碼控制指令,實(shí)現(xiàn)對(duì)小車(chē)運(yùn)動(dòng)狀態(tài)的實(shí)時(shí)調(diào)控。本設(shè)計(jì)將為生理電信號(hào)控制更復(fù)雜終端設(shè)備的應(yīng)用研究打下基礎(chǔ)。
智能小車(chē)整體控制系統(tǒng)分為三部分,見(jiàn)圖1。分別是:手臂表面肌電信號(hào)采集處理層、信號(hào)識(shí)別與指令編碼層、智能小車(chē)控制層[7]。
手臂表面肌電信號(hào)采集處理層:選取人體左臂表面的三個(gè)肌肉部位,采集左臂四種動(dòng)作下這三個(gè)肌肉部位的表面肌電信號(hào)并進(jìn)行預(yù)處理。
信號(hào)識(shí)別與指令編碼層:對(duì)預(yù)處理后的肌電信號(hào)進(jìn)行特征提取、分類識(shí)別,并進(jìn)行控制指令的編碼和無(wú)線傳輸。
智能小車(chē)控制層:小車(chē)主控芯片接收到控制指令,根據(jù)提前制定好的通訊協(xié)議執(zhí)行指令,調(diào)控電機(jī)驅(qū)動(dòng)模塊的PWM占空比,從而驅(qū)動(dòng)電機(jī)運(yùn)動(dòng),最終使小車(chē)完成相應(yīng)的動(dòng)作。
圖1 智能小車(chē)整體控制系統(tǒng)Fig 1 Integrated control system of intelligent vehicle
人的手臂有很多的肌群,比如肱肌肌群、屈肌肌群、伸肌肌群等,并且在不同的關(guān)節(jié)部位還細(xì)分出許多小的肌群,如伸肌就有橈側(cè)腕伸肌、指伸肌、拇長(zhǎng)伸肌等[8]。在肌群部位選擇實(shí)驗(yàn)中,本研究使用RM6240BD多通道生理信號(hào)采集儀作為肌電采集器,使用915S50型號(hào)的銀/氯化銀貼片電極。經(jīng)過(guò)對(duì)左臂主要肌群的表面肌電信號(hào)采集和對(duì)比分析,可以發(fā)現(xiàn)當(dāng)左臂做出曲臂、左勾、右勾、自然下垂動(dòng)作時(shí),肱二頭肌、掌長(zhǎng)肌、尺側(cè)腕伸肌三個(gè)部位的表面肌電信號(hào)具有各自明顯的特征。人體左臂肌群見(jiàn)圖2,肌電信號(hào)采集實(shí)驗(yàn)見(jiàn)圖3,左臂動(dòng)作演示見(jiàn)圖4。
圖2 左臂肌群圖Fig 2 Left arm muscle group
利用RM6240BD多通道生理信號(hào)采集儀,在左臂做出曲臂、左勾、右勾、自然下垂四種動(dòng)作時(shí),對(duì)左臂尺側(cè)腕伸?。ǖ?通道即紅色波形通道)、掌長(zhǎng)?。ǖ?通道即藍(lán)色波形通道)、肱二頭?。ǖ?通道即紫色波形通道)進(jìn)行肌電信號(hào)采集,采集到的肌電信號(hào)波形見(jiàn)圖5。
圖3 肌電信號(hào)采集實(shí)驗(yàn)Fig 3 EMG signal acquisition experiment
圖4 左臂動(dòng)作演示Fig 4 Left arm action demonstration
圖5 a.曲臂狀態(tài)下的左臂表面肌電信號(hào);b.左勾狀態(tài)下的左臂表面肌電信號(hào);c.右勾狀態(tài)下的左臂表面肌電信號(hào);d.自然下垂?fàn)顟B(tài)下的左臂表面肌電信號(hào)。Fig 5 a.Left arm surface EMG under bending;b.Left arm surface EMG signal under left hooking;c.Left arm surface EMG signal under right hooking;d.Left arm surface EMG under natural drooping
由圖5可知,在左臂做出曲臂動(dòng)作時(shí),三個(gè)部位中只有肱二頭肌部位的肌電信號(hào)出現(xiàn)較大變化,且變化特征明顯;在左臂做出左勾動(dòng)作時(shí),三個(gè)部位中只有尺側(cè)腕伸肌部位的肌電信號(hào)出現(xiàn)較大變化,且變化特征明顯;在左臂做出右勾動(dòng)作時(shí),三個(gè)部位中只有掌長(zhǎng)肌部位的肌電信號(hào)出現(xiàn)較大變化,且變化特征明顯;在左臂自然下垂時(shí),三個(gè)部位的肌電信號(hào)均未出現(xiàn)明顯變化。這樣就容易區(qū)分出左臂的左勾、右勾、曲臂、自然下垂四種動(dòng)作狀態(tài)。這說(shuō)明以幅值為特征對(duì)肌電信號(hào)進(jìn)行分類識(shí)別并加以利用來(lái)控制一些終端設(shè)備是可行的。
由圖5可知,當(dāng)左臂做出曲臂、左勾、右勾動(dòng)作時(shí),三個(gè)肌肉部位的表面肌電信號(hào)的幅值跟自然下垂時(shí)相比會(huì)出現(xiàn)較大的變化?;诖?,本研究提取這三路表面肌電信號(hào)的幅值作為特征值。曲臂時(shí),只有肱二頭肌處的表面肌電信號(hào)出現(xiàn)較大變化,其他兩通道無(wú)明顯變化;左勾時(shí),只有尺側(cè)腕伸肌處的表面肌電信號(hào)出現(xiàn)較大變化,其他兩通道無(wú)明顯變化;右勾時(shí),只有掌長(zhǎng)肌處的表面肌電信號(hào)出現(xiàn)較大變化,其他兩通道無(wú)明顯變化;自然下垂時(shí),三路肌電信號(hào)均未出現(xiàn)明顯變化。且當(dāng)左臂做出其他動(dòng)作時(shí),未能出現(xiàn)如上述四種動(dòng)作時(shí)的表面肌電信號(hào)變化情況?;诖?,設(shè)置三路閾值,分別為myValue[0](肱二頭?。琺yValue[1](掌長(zhǎng)?。?,myValue[2](尺側(cè)腕伸?。?;采集到的三路表面肌電信號(hào)幅值分別用 Value[0](肱二頭肌),Value[1](掌長(zhǎng)肌),Value[2](尺側(cè)腕伸?。┍硎尽?/p>
選取合適的閾值,以閾值構(gòu)建判別組合,作為四種動(dòng)作下肌電信號(hào)的識(shí)別依據(jù),且可排除其他動(dòng)作的影響。曲臂、左勾、右勾、自然下垂四種動(dòng)作識(shí)別結(jié)果見(jiàn)表1。
表1 曲臂、左勾、右勾、自然下垂四種動(dòng)作下肌電信號(hào)識(shí)別結(jié)果Table 1 EMG signal recognition results of four kinds of actions:bend,left hook,right hook and natural droop
本設(shè)計(jì)采用無(wú)錫思知瑞科技有限公司生產(chǎn)的單通道肌電傳感器來(lái)采集上述三個(gè)部位的表面肌電信號(hào),該傳感器放大模塊為AD8221,增益設(shè)置為50 KΩ,采用差分放大,并且含平滑、整流等電路,可以完成對(duì)肌電信號(hào)的預(yù)處理,單通道肌電信號(hào)傳感器見(jiàn)圖6??刂菩酒捎肁rduino UNO開(kāi)發(fā)板,其處理器核心是ATmega328,預(yù)設(shè)采樣頻率為9600 HZ,同時(shí)具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入[9]。三個(gè)單通道肌電傳感器分別采集三個(gè)部位的肌電信號(hào),采集端連接見(jiàn)圖7。利用Arduino的軟件操作環(huán)境Arduino IDE,用Processing設(shè)計(jì)出一個(gè)可視化界面來(lái)選取閾值。首先,肌電信號(hào)經(jīng)AD轉(zhuǎn)換為10位的數(shù)字信號(hào),其范圍為0~1024。采樣頻率為9600 HZ即每秒采樣9600個(gè)點(diǎn),為了更形象的描述肌電信號(hào)的幅值變化情況,設(shè)置6個(gè)采樣點(diǎn)作為一組數(shù)據(jù),這6個(gè)采樣點(diǎn)的肌電信號(hào)幅值可以顯示在經(jīng)Processing編程后產(chǎn)生的可視化界面中。隨著肌肉的收縮或舒張,可視化界面中的6個(gè)幅值也會(huì)隨之變化。幅值可視化界面見(jiàn)圖8。
圖6 單通道肌電傳感器Fig 6 Single channel EMG sensor
圖7 采集端連接示意圖Fig 7 Connection diagram of acquisition side
圖8 幅值可視化界面a,b:肌肉收縮前后肌電信號(hào)幅值變化Fig 8 Amplitude visualization interface a.b:Changes of EMG signal amplitude before and after muscle contraction
利用該可視化界面可以掌握曲臂、左勾、右勾、自然下垂四種動(dòng)作下的肌電信號(hào)幅值變化。以一名成年男性和一名成年女性為實(shí)驗(yàn)對(duì)象,采集多次左臂動(dòng)作下的肌電信號(hào),進(jìn)行測(cè)量對(duì)比,最終確定出三路肌電信號(hào)的閾值,分別是myValue[0]為375,my-Value[1]為325,myValue[2]為325。當(dāng)六個(gè)采樣點(diǎn)的幅值全超過(guò)閾值時(shí)(圖8中黑色線即為設(shè)置的閾值標(biāo)識(shí)),即 Value[i]>myValue[i](i=0、1、2)。
4.2.1 控制指令編碼 選取出三路肌電信號(hào)閾值后,即可完成對(duì)左臂動(dòng)作的識(shí)別,接下來(lái)要進(jìn)行小車(chē)控制指令的編碼。肌電傳感器將三路肌電信號(hào)輸出到Arduino UNO開(kāi)發(fā)板,在此對(duì)左臂動(dòng)作完成識(shí)別后,進(jìn)行指令編碼。智能小車(chē)共有4個(gè)動(dòng)作,分別對(duì)應(yīng)左臂的4個(gè)動(dòng)作:前進(jìn)對(duì)應(yīng)曲臂,左轉(zhuǎn)對(duì)應(yīng)左勾,右轉(zhuǎn)對(duì)應(yīng)右勾,停止對(duì)應(yīng)自然下垂。對(duì)應(yīng)的小車(chē)動(dòng)作的指令見(jiàn)表2。
表2 左臂動(dòng)作、對(duì)應(yīng)指令、小車(chē)動(dòng)作Table 2 Left arm action、corresponding instruction、vehicle action
4.2.2 控制指令的無(wú)線傳輸 無(wú)線傳輸模塊采用nRF24L01。nRF24L01是一款單片射頻收發(fā)器件,工作于2.4~2.5 GHz ISM頻段[10]。進(jìn)行指令編碼的Arduino與一塊nRF24L01連接在一起,作為指令的發(fā)射端;另一塊Arduino連接另一塊nRF24L01作為指令的接收端。預(yù)先制定通訊協(xié)議,發(fā)射表2中對(duì)應(yīng)指令的ASCII碼,在接收端進(jìn)行解碼。通過(guò)主控芯片將無(wú)線模塊初始化之后,使無(wú)線模塊一直處于接收狀態(tài),在接收到指令后,先與無(wú)線通訊協(xié)議進(jìn)行對(duì)比,判斷是否存在相對(duì)指令,有則執(zhí)行并且返回識(shí)別結(jié)果,例如返回“前進(jìn)指令收到”,無(wú)則返回“無(wú)效指令”,通過(guò)無(wú)線應(yīng)答機(jī)制,避免錯(cuò)誤指令的執(zhí)行,使對(duì)小車(chē)的控制更加精確。
在4.2.2中,另一塊Arduino連接另一塊nRF24L01作為指令的接收端。接收端接收到控制指令后,需要調(diào)控小車(chē)完成相應(yīng)的動(dòng)作,這就需要設(shè)計(jì)好小車(chē)動(dòng)作的調(diào)控硬件。小車(chē)整體硬件見(jiàn)圖9。
選擇HC02-48直流減速電機(jī)兩臺(tái),一左一右放置。兩臺(tái)電機(jī)同速向前,小車(chē)就可以實(shí)現(xiàn)前進(jìn);調(diào)整兩臺(tái)電機(jī)的轉(zhuǎn)速,在兩個(gè)車(chē)輪間形成差速,左邊電機(jī)轉(zhuǎn)速大于右邊,小車(chē)右轉(zhuǎn);右邊電機(jī)轉(zhuǎn)速大于左邊,小車(chē)左轉(zhuǎn)。
圖9 小車(chē)整體硬件Fig 9 Overall vehicle hardware
智能小車(chē)有兩個(gè)前輪加一個(gè)萬(wàn)向輪,行駛動(dòng)力來(lái)自于前輪的兩臺(tái)直流減速電機(jī),利用兩個(gè)電機(jī)差速實(shí)現(xiàn)轉(zhuǎn)向。智能小車(chē)控制系統(tǒng)采用L298N電機(jī)驅(qū)動(dòng)模塊調(diào)控電機(jī)。L298N驅(qū)動(dòng)模塊可驅(qū)動(dòng)46 V、2 A以下的電機(jī),啟動(dòng)性能好,啟動(dòng)轉(zhuǎn)矩大,可實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)及調(diào)速,適合應(yīng)用于機(jī)器人設(shè)計(jì)及智能小車(chē)的設(shè)計(jì)[11]。利用Arduino單片機(jī)的PMW輸出功能,通過(guò)調(diào)整電機(jī)驅(qū)動(dòng)電路的PMW占空比來(lái)調(diào)控電機(jī)的轉(zhuǎn)速,從而實(shí)現(xiàn)小車(chē)的轉(zhuǎn)向。
通過(guò)實(shí)驗(yàn)驗(yàn)證整個(gè)智能小車(chē)控制系統(tǒng)的可行性,主要驗(yàn)證肌電信號(hào)動(dòng)作識(shí)別的準(zhǔn)確率。選取實(shí)驗(yàn)室6位同學(xué)為實(shí)驗(yàn)對(duì)象,三男三女,每人每個(gè)動(dòng)作隨機(jī)做10次,每個(gè)動(dòng)作保持3 s,每?jī)纱蝿?dòng)作間隔3 s。經(jīng)驗(yàn)證,肌電信號(hào)動(dòng)作平均識(shí)別率達(dá)到80%以上;其中,曲臂的識(shí)別率達(dá)到了91.67%,左勾的識(shí)別率達(dá)到了80%,右勾的識(shí)別率達(dá)到了85%,自然下垂的識(shí)別率達(dá)到了100%。具體實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表3。且整個(gè)控制系統(tǒng)的實(shí)時(shí)性較好,手臂動(dòng)作與小車(chē)運(yùn)動(dòng)應(yīng)答機(jī)制良好,系統(tǒng)延遲保持在1 s以內(nèi)。
表3 動(dòng)作識(shí)別實(shí)驗(yàn)數(shù)據(jù)Table 3 Experimental data of action recognition
本研究設(shè)計(jì)了一種基于手臂表面肌電信號(hào)的智能小車(chē)控制系統(tǒng),該系統(tǒng)控制方法簡(jiǎn)單,可操作性強(qiáng),實(shí)時(shí)性好。初步完成了肌電信號(hào)控制終端設(shè)備的驗(yàn)證工作,并為生理電信號(hào)控制更加復(fù)雜的終端設(shè)備提供了平臺(tái)與基礎(chǔ)。但本系統(tǒng)也有不足之處,如對(duì)肌肉動(dòng)作強(qiáng)度要求較大,操作久了人會(huì)比較累,且肌肉疲勞會(huì)減小肌電信號(hào)的幅值特征,從而影響系統(tǒng)的穩(wěn)定性,這是以后工作中急需改進(jìn)的問(wèn)題。