晉曉飛,王浩,陳媛,王鵬程
(1.南京航空航天大學航天學院仿生結構與材料防護研究所,南京210016;2.南京航空航天大學自動化學院生物醫學工程系,南京210016)
表面肌電信號(surface electromyogram,SEMG)是人體骨骼肌表面通過電極記錄下來的神經肌肉活動產生的生物電信號[1],是人體神經、肌肉等運動組織功能狀況的一種直接反映。表面肌電信號由于無創性以及信號處理方法靈活,已廣泛應用于臨床醫學、人工智能、康復醫學治療等方面[2],尤其是在假肢等智能康復輔具方面的應用,成為假肢控制的理想信號源[3]。國外對肌電信號的研究逐步從實驗室研究階段走向臨床應用階段。一些商業化假肢產品,如德國Otto Bock公司研發的Sensor Hand,英國Touch Bionics公司研發的i-Limb手也都陸續投入市場,i-Limb手具有5個獨立控制的手指,能完成開鎖、開易拉罐等精細動作[4-5]。但是在機械操作和實際生活中,將肌電信號用來控制終端設備的應用研究還相對較少[6]。如果可以通過表面肌電信號來控制機械設備,讓有運動功能障礙的人通過手臂來控制護理設備(如輪椅),使人的意識與機械設備統一,實現人機一體化。
本研究設計一種基于手臂表面肌電信號的智能小車控制系統。提取手臂表面肌電信號并分類識別,編碼形成控制指令;受控端安裝于智能小車,可無線接收并解碼控制指令,實現對小車運動狀態的實時調控。本設計將為生理電信號控制更復雜終端設備的應用研究打下基礎。
智能小車整體控制系統分為三部分,見圖1。分別是:手臂表面肌電信號采集處理層、信號識別與指令編碼層、智能小車控制層[7]。
手臂表面肌電信號采集處理層:選取人體左臂表面的三個肌肉部位,采集左臂四種動作下這三個肌肉部位的表面肌電信號并進行預處理。
信號識別與指令編碼層:對預處理后的肌電信號進行特征提取、分類識別,并進行控制指令的編碼和無線傳輸。
智能小車控制層:小車主控芯片接收到控制指令,根據提前制定好的通訊協議執行指令,調控電機驅動模塊的PWM占空比,從而驅動電機運動,最終使小車完成相應的動作。

圖1 智能小車整體控制系統Fig 1 Integrated control system of intelligent vehicle
人的手臂有很多的肌群,比如肱肌肌群、屈肌肌群、伸肌肌群等,并且在不同的關節部位還細分出許多小的肌群,如伸肌就有橈側腕伸肌、指伸肌、拇長伸肌等[8]。在肌群部位選擇實驗中,本研究使用RM6240BD多通道生理信號采集儀作為肌電采集器,使用915S50型號的銀/氯化銀貼片電極。經過對左臂主要肌群的表面肌電信號采集和對比分析,可以發現當左臂做出曲臂、左勾、右勾、自然下垂動作時,肱二頭肌、掌長肌、尺側腕伸肌三個部位的表面肌電信號具有各自明顯的特征。人體左臂肌群見圖2,肌電信號采集實驗見圖3,左臂動作演示見圖4。

圖2 左臂肌群圖Fig 2 Left arm muscle group
利用RM6240BD多通道生理信號采集儀,在左臂做出曲臂、左勾、右勾、自然下垂四種動作時,對左臂尺側腕伸肌(第1通道即紅色波形通道)、掌長肌(第3通道即藍色波形通道)、肱二頭肌(第4通道即紫色波形通道)進行肌電信號采集,采集到的肌電信號波形見圖5。

圖3 肌電信號采集實驗Fig 3 EMG signal acquisition experiment

圖4 左臂動作演示Fig 4 Left arm action demonstration


圖5 a.曲臂狀態下的左臂表面肌電信號;b.左勾狀態下的左臂表面肌電信號;c.右勾狀態下的左臂表面肌電信號;d.自然下垂狀態下的左臂表面肌電信號。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可知,在左臂做出曲臂動作時,三個部位中只有肱二頭肌部位的肌電信號出現較大變化,且變化特征明顯;在左臂做出左勾動作時,三個部位中只有尺側腕伸肌部位的肌電信號出現較大變化,且變化特征明顯;在左臂做出右勾動作時,三個部位中只有掌長肌部位的肌電信號出現較大變化,且變化特征明顯;在左臂自然下垂時,三個部位的肌電信號均未出現明顯變化。這樣就容易區分出左臂的左勾、右勾、曲臂、自然下垂四種動作狀態。這說明以幅值為特征對肌電信號進行分類識別并加以利用來控制一些終端設備是可行的。
由圖5可知,當左臂做出曲臂、左勾、右勾動作時,三個肌肉部位的表面肌電信號的幅值跟自然下垂時相比會出現較大的變化。基于此,本研究提取這三路表面肌電信號的幅值作為特征值。曲臂時,只有肱二頭肌處的表面肌電信號出現較大變化,其他兩通道無明顯變化;左勾時,只有尺側腕伸肌處的表面肌電信號出現較大變化,其他兩通道無明顯變化;右勾時,只有掌長肌處的表面肌電信號出現較大變化,其他兩通道無明顯變化;自然下垂時,三路肌電信號均未出現明顯變化。且當左臂做出其他動作時,未能出現如上述四種動作時的表面肌電信號變化情況。基于此,設置三路閾值,分別為myValue[0](肱二頭肌),myValue[1](掌長肌),myValue[2](尺側腕伸肌);采集到的三路表面肌電信號幅值分別用 Value[0](肱二頭肌),Value[1](掌長肌),Value[2](尺側腕伸肌)表示。
選取合適的閾值,以閾值構建判別組合,作為四種動作下肌電信號的識別依據,且可排除其他動作的影響。曲臂、左勾、右勾、自然下垂四種動作識別結果見表1。

表1 曲臂、左勾、右勾、自然下垂四種動作下肌電信號識別結果Table 1 EMG signal recognition results of four kinds of actions:bend,left hook,right hook and natural droop
本設計采用無錫思知瑞科技有限公司生產的單通道肌電傳感器來采集上述三個部位的表面肌電信號,該傳感器放大模塊為AD8221,增益設置為50 KΩ,采用差分放大,并且含平滑、整流等電路,可以完成對肌電信號的預處理,單通道肌電信號傳感器見圖6。控制芯片采用Arduino UNO開發板,其處理器核心是ATmega328,預設采樣頻率為9600 HZ,同時具有14路數字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入[9]。三個單通道肌電傳感器分別采集三個部位的肌電信號,采集端連接見圖7。利用Arduino的軟件操作環境Arduino IDE,用Processing設計出一個可視化界面來選取閾值。首先,肌電信號經AD轉換為10位的數字信號,其范圍為0~1024。采樣頻率為9600 HZ即每秒采樣9600個點,為了更形象的描述肌電信號的幅值變化情況,設置6個采樣點作為一組數據,這6個采樣點的肌電信號幅值可以顯示在經Processing編程后產生的可視化界面中。隨著肌肉的收縮或舒張,可視化界面中的6個幅值也會隨之變化。幅值可視化界面見圖8。

圖6 單通道肌電傳感器Fig 6 Single channel EMG sensor

圖7 采集端連接示意圖Fig 7 Connection diagram of acquisition side

圖8 幅值可視化界面a,b:肌肉收縮前后肌電信號幅值變化Fig 8 Amplitude visualization interface a.b:Changes of EMG signal amplitude before and after muscle contraction
利用該可視化界面可以掌握曲臂、左勾、右勾、自然下垂四種動作下的肌電信號幅值變化。以一名成年男性和一名成年女性為實驗對象,采集多次左臂動作下的肌電信號,進行測量對比,最終確定出三路肌電信號的閾值,分別是myValue[0]為375,my-Value[1]為325,myValue[2]為325。當六個采樣點的幅值全超過閾值時(圖8中黑色線即為設置的閾值標識),即 Value[i]>myValue[i](i=0、1、2)。
4.2.1 控制指令編碼 選取出三路肌電信號閾值后,即可完成對左臂動作的識別,接下來要進行小車控制指令的編碼。肌電傳感器將三路肌電信號輸出到Arduino UNO開發板,在此對左臂動作完成識別后,進行指令編碼。智能小車共有4個動作,分別對應左臂的4個動作:前進對應曲臂,左轉對應左勾,右轉對應右勾,停止對應自然下垂。對應的小車動作的指令見表2。

表2 左臂動作、對應指令、小車動作Table 2 Left arm action、corresponding instruction、vehicle action
4.2.2 控制指令的無線傳輸 無線傳輸模塊采用nRF24L01。nRF24L01是一款單片射頻收發器件,工作于2.4~2.5 GHz ISM頻段[10]。進行指令編碼的Arduino與一塊nRF24L01連接在一起,作為指令的發射端;另一塊Arduino連接另一塊nRF24L01作為指令的接收端。預先制定通訊協議,發射表2中對應指令的ASCII碼,在接收端進行解碼。通過主控芯片將無線模塊初始化之后,使無線模塊一直處于接收狀態,在接收到指令后,先與無線通訊協議進行對比,判斷是否存在相對指令,有則執行并且返回識別結果,例如返回“前進指令收到”,無則返回“無效指令”,通過無線應答機制,避免錯誤指令的執行,使對小車的控制更加精確。
在4.2.2中,另一塊Arduino連接另一塊nRF24L01作為指令的接收端。接收端接收到控制指令后,需要調控小車完成相應的動作,這就需要設計好小車動作的調控硬件。小車整體硬件見圖9。
選擇HC02-48直流減速電機兩臺,一左一右放置。兩臺電機同速向前,小車就可以實現前進;調整兩臺電機的轉速,在兩個車輪間形成差速,左邊電機轉速大于右邊,小車右轉;右邊電機轉速大于左邊,小車左轉。

圖9 小車整體硬件Fig 9 Overall vehicle hardware
智能小車有兩個前輪加一個萬向輪,行駛動力來自于前輪的兩臺直流減速電機,利用兩個電機差速實現轉向。智能小車控制系統采用L298N電機驅動模塊調控電機。L298N驅動模塊可驅動46 V、2 A以下的電機,啟動性能好,啟動轉矩大,可實現電機正反轉及調速,適合應用于機器人設計及智能小車的設計[11]。利用Arduino單片機的PMW輸出功能,通過調整電機驅動電路的PMW占空比來調控電機的轉速,從而實現小車的轉向。
通過實驗驗證整個智能小車控制系統的可行性,主要驗證肌電信號動作識別的準確率。選取實驗室6位同學為實驗對象,三男三女,每人每個動作隨機做10次,每個動作保持3 s,每兩次動作間隔3 s。經驗證,肌電信號動作平均識別率達到80%以上;其中,曲臂的識別率達到了91.67%,左勾的識別率達到了80%,右勾的識別率達到了85%,自然下垂的識別率達到了100%。具體實驗數據見表3。且整個控制系統的實時性較好,手臂動作與小車運動應答機制良好,系統延遲保持在1 s以內。

表3 動作識別實驗數據Table 3 Experimental data of action recognition
本研究設計了一種基于手臂表面肌電信號的智能小車控制系統,該系統控制方法簡單,可操作性強,實時性好。初步完成了肌電信號控制終端設備的驗證工作,并為生理電信號控制更加復雜的終端設備提供了平臺與基礎。但本系統也有不足之處,如對肌肉動作強度要求較大,操作久了人會比較累,且肌肉疲勞會減小肌電信號的幅值特征,從而影響系統的穩定性,這是以后工作中急需改進的問題。