孫握瑜
隨著智能機(jī)器人技術(shù)的快速發(fā)展,機(jī)器人應(yīng)用已經(jīng)從工業(yè)領(lǐng)域逐步延伸到各行各業(yè).在醫(yī)療康復(fù)領(lǐng)域,下肢康復(fù)訓(xùn)練機(jī)器人具有比傳統(tǒng)人工醫(yī)療師輔助訓(xùn)練更多的優(yōu)點(diǎn),得到康復(fù)工作者和下肢偏癱患者認(rèn)可與接受[1].在實(shí)際應(yīng)用中,康復(fù)訓(xùn)練機(jī)器人需要最大程度地理解患者主動(dòng)運(yùn)動(dòng)意愿,實(shí)現(xiàn)人機(jī)協(xié)同控制訓(xùn)練,提高康復(fù)效果.為了實(shí)現(xiàn)人機(jī)運(yùn)動(dòng)協(xié)同,康復(fù)機(jī)器人需要對(duì)穿戴者的運(yùn)動(dòng)類(lèi)型進(jìn)行監(jiān)測(cè),實(shí)時(shí)提取下肢運(yùn)動(dòng)類(lèi)別來(lái)建立主動(dòng)柔性控制策略[2].
表面肌電信號(hào)蘊(yùn)含了運(yùn)動(dòng)信息,其被廣泛應(yīng)用于姿勢(shì)和動(dòng)作的識(shí)別[3?4],但是肌電信號(hào)模糊性強(qiáng),加之人體姿態(tài)信息非常復(fù)雜,單獨(dú)基于肌電信號(hào)對(duì)運(yùn)動(dòng)類(lèi)型進(jìn)行判斷,很難對(duì)人體運(yùn)動(dòng)類(lèi)別進(jìn)行準(zhǔn)確識(shí)別.很多研究者通過(guò)各種傳感器采集運(yùn)動(dòng)對(duì)象運(yùn)動(dòng)期間的關(guān)節(jié)角度等幾何特征,以及三軸加速度表示的物理特征,通過(guò)這些信號(hào)有機(jī)融合來(lái)提升運(yùn)動(dòng)類(lèi)型識(shí)別的準(zhǔn)確率[5?7].本文基于物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了一種下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng),融合了肌電信號(hào)、足底壓力信號(hào)、腿部運(yùn)動(dòng)的加速度和角速度,對(duì)下肢運(yùn)動(dòng)類(lèi)別進(jìn)行識(shí)別.
設(shè)計(jì)的下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)主要包括硬件系統(tǒng)和與其對(duì)應(yīng)的APP應(yīng)用兩部分.其中硬件系統(tǒng)由主控模塊、傳感器模塊、無(wú)線傳感模塊構(gòu)成,具體結(jié)構(gòu)如圖1所示,其中主控模塊采用STM32作為主控芯片,在無(wú)線傳出模塊中采用藍(lán)牙透?jìng)髂KHC?05作為數(shù)據(jù)收發(fā)模塊,傳感器模塊中主要包括OYMothion表面肌電傳感器、柔??萍糄207薄膜壓力傳感器和維特智能WT901姿態(tài)傳感器.
圖1 下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)硬件部分件結(jié)構(gòu)框圖
肌電傳感器和壓力傳感器采集的為標(biāo)準(zhǔn)電壓值,通過(guò)模擬口與STM32相連,姿態(tài)傳感器信號(hào)與STM32串口相連.硬件系統(tǒng)中使用了兩個(gè)薄膜壓力傳感器,分別用于采集前腳掌和后腳跟的壓力.考慮到人體不同部分肌肉電釋強(qiáng)度不同、采集部位不同時(shí),肌電信號(hào)值可能出現(xiàn)較大的波動(dòng),系統(tǒng)使用了雙通道表面肌電傳感器采集兩個(gè)部位的表面肌電信號(hào).系統(tǒng)中姿態(tài)傳感器模塊在使用前,將其回傳數(shù)據(jù)設(shè)置為加速度、角速度和歐拉角.STM32單片機(jī)采集的數(shù)據(jù)最后由藍(lán)牙透?jìng)髂K通過(guò)無(wú)線轉(zhuǎn)發(fā)給APP應(yīng)用.
針對(duì)實(shí)時(shí)采集傳感器數(shù)據(jù)需求,主控芯片完成四項(xiàng)主要功能,一是從四個(gè)模擬輸入端口分別讀取前腳掌和后腳跟的壓力信號(hào)值;二是獲取兩通道的表面肌電信號(hào)值;三是從serial1串口讀取姿態(tài)傳感器的數(shù)據(jù);四是以不同頻率發(fā)送到藍(lán)牙模塊.STM32對(duì)數(shù)據(jù)的發(fā)送邏輯如圖2所示,首先STM32上電后對(duì)系統(tǒng)進(jìn)行初始化,然后持續(xù)讀取與藍(lán)牙透?jìng)髂K相連的serial2串口數(shù)據(jù),當(dāng)接收到來(lái)自手機(jī)APP應(yīng)用發(fā)出的“發(fā)送數(shù)據(jù)”指令,就立即將采集的數(shù)據(jù)以不同頻率發(fā)送出去.每次轉(zhuǎn)發(fā)前先讀取serial2串口接收的數(shù)據(jù),如果收到“停止發(fā)送”,則停止藍(lán)牙數(shù)據(jù)發(fā)送.
圖2 單片機(jī)對(duì)信號(hào)發(fā)送邏輯流程圖
STM32在通過(guò)藍(lán)牙透?jìng)髂K發(fā)送時(shí),需要以不同速率發(fā)送各種傳感器的數(shù)據(jù).本系統(tǒng)中設(shè)置肌電信號(hào)頻率為1000 Hz,前腳掌和后腳跟壓力傳感器和姿態(tài)傳感器的信號(hào)發(fā)送速率為100 Hz.在程序中的邏輯是每發(fā)送9次肌電信號(hào)后,在第10次發(fā)生數(shù)據(jù)時(shí)將兩組壓力傳感器和姿態(tài)傳感器的數(shù)據(jù)一起發(fā)送.
為實(shí)現(xiàn)手機(jī)應(yīng)用和硬件系統(tǒng)藍(lán)牙模塊的穩(wěn)定可靠通信,本系統(tǒng)制定了手機(jī)藍(lán)牙發(fā)送指令到BLE藍(lán)牙通訊模塊的數(shù)據(jù)幀和BLE藍(lán)牙通訊模塊響應(yīng)給手機(jī)藍(lán)牙的響應(yīng)數(shù)據(jù)幀.手機(jī)藍(lán)牙發(fā)送指令到BLE藍(lán)牙通訊模塊的數(shù)據(jù)幀如表1所示.
表1 手機(jī)藍(lán)牙發(fā)送指令到BLE藍(lán)牙通訊模塊的數(shù)據(jù)幀
LEN:數(shù)據(jù)長(zhǎng)度,從LEN字節(jié)開(kāi)始到校驗(yàn)碼字節(jié)的長(zhǎng)度,值為3.
CMD:命令類(lèi)型,取值為0x00時(shí)表示讀取傳感器數(shù)據(jù)請(qǐng)求,取值為0x01表示停止讀取傳感器數(shù)據(jù)請(qǐng)求.
校驗(yàn)碼:是整個(gè)數(shù)據(jù)幀的校驗(yàn)碼,通信雙方選擇CRC校驗(yàn)、奇偶校驗(yàn)中一種即可.
BLE藍(lán)牙通訊模塊響應(yīng)給手機(jī)藍(lán)牙的響應(yīng)數(shù)據(jù)幀如表2所示.
表2 BLE藍(lán)牙通訊模塊響應(yīng)給手機(jī)藍(lán)牙的響應(yīng)數(shù)據(jù)幀
LEN:表示數(shù)據(jù)區(qū)的長(zhǎng)度,取值可以為2或7,表示2個(gè)字節(jié)或7個(gè)字節(jié).數(shù)據(jù)區(qū)為7個(gè)字節(jié)時(shí),從左向右,第1、2個(gè)字節(jié)為兩個(gè)通道的肌電信號(hào)值,第3、4個(gè)字節(jié)為前腳掌和后腳跟的壓力值,第5、6、7個(gè)字節(jié)為姿態(tài)傳感器的歐拉角、角速度和加速度三個(gè)數(shù)據(jù)值.校驗(yàn)碼含義與手機(jī)藍(lán)牙發(fā)送指令到BLE藍(lán)牙通訊模塊的數(shù)據(jù)幀中校驗(yàn)碼含義相同.當(dāng)藍(lán)牙模塊本次僅僅傳輸兩個(gè)通道的機(jī)電信號(hào)值時(shí),數(shù)據(jù)區(qū)的7個(gè)字節(jié)只用前2個(gè)字節(jié),數(shù)據(jù)量為0x02.ACK:反饋?zhàn)止?jié),為0x00表示正常,為其他值時(shí)表示有其他情況,ACK異常取值規(guī)則為:Bit6~Bit0,每一位代表1路傳感器工作狀態(tài),0表示狀態(tài)正確,1表示異常.
在系統(tǒng)上位機(jī)設(shè)計(jì)中,下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)APP需要完成手機(jī)與監(jiān)測(cè)硬件模塊的藍(lán)牙連接,根據(jù)采集的各種傳感器信號(hào)值進(jìn)行運(yùn)動(dòng)類(lèi)型的識(shí)別.APP應(yīng)用主要實(shí)現(xiàn)兩大功能,一是對(duì)硬件系統(tǒng)中藍(lán)牙透?jìng)髂K的搜索、連接,連接后給硬件系統(tǒng)發(fā)送開(kāi)始和結(jié)束發(fā)送的命令;二是對(duì)采集到的傳感器數(shù)據(jù)流進(jìn)行接收、分割,并進(jìn)行下肢運(yùn)動(dòng)類(lèi)型的模式識(shí)別.下肢運(yùn)動(dòng)分為靜態(tài)動(dòng)作和動(dòng)態(tài)動(dòng)作兩種模式,靜態(tài)動(dòng)作主要包括站立和坐立兩種,姿態(tài)傳感器固定在運(yùn)動(dòng)對(duì)象的大腿位置,當(dāng)運(yùn)動(dòng)對(duì)象站立或坐立時(shí),姿態(tài)傳感器的角速度信號(hào)幾乎為0且穩(wěn)定,根據(jù)壓力傳感器數(shù)據(jù)信號(hào)就可以進(jìn)行識(shí)別.動(dòng)態(tài)動(dòng)作是一種循環(huán)連續(xù)的運(yùn)動(dòng),本系統(tǒng)對(duì)采集的sEMG肌電信號(hào)、姿態(tài)傳感器信號(hào),基于線性判別分析算法(Linear Discriminant Analysis,LDA)[8]進(jìn) 行 動(dòng)作識(shí)別.下肢動(dòng)靜態(tài)運(yùn)動(dòng)類(lèi)型模式識(shí)別流程如圖3所示.如果姿態(tài)傳感器的角速度信號(hào)值大于靜止時(shí)姿態(tài)傳感器角速度值,則當(dāng)前運(yùn)動(dòng)類(lèi)型為動(dòng)態(tài)動(dòng)作,然后進(jìn)一步根據(jù)截取的sEMG肌電信號(hào)依據(jù)LDA算法進(jìn)行模式識(shí)別,得出識(shí)別結(jié)果;如果判定為靜態(tài)動(dòng)作模式,則只需要根據(jù)足底壓力與站立時(shí)足底壓力比較結(jié)果即可以得出處于站立狀態(tài)還是坐立狀態(tài).
圖3 動(dòng)靜態(tài)運(yùn)動(dòng)類(lèi)型模式識(shí)別流程
為了檢驗(yàn)本文設(shè)計(jì)的下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)的有效性,在Android端APP中進(jìn)行如下操作:進(jìn)入APP主界面,首先點(diǎn)擊右上角設(shè)備按鈕,進(jìn)入連接設(shè)備界面,系統(tǒng)電子硬件連接界面如圖4所示,搜索附近藍(lán)牙設(shè)備,手動(dòng)選擇進(jìn)行連接;然后返回主界面運(yùn)動(dòng)數(shù)據(jù)監(jiān)測(cè)界面,當(dāng)系統(tǒng)的硬件設(shè)備綁在腿部時(shí),即可在運(yùn)動(dòng)數(shù)據(jù)監(jiān)測(cè)界面看到運(yùn)動(dòng)類(lèi)別提示,數(shù)據(jù)監(jiān)測(cè)界面如圖5所示.
圖4 APP中藍(lán)牙設(shè)備連接主界面
圖5 數(shù)據(jù)監(jiān)測(cè)界面
系統(tǒng)APP應(yīng)用主要對(duì)行走、跑步、高抬腿、原地踏步、站立和坐立6種下肢運(yùn)動(dòng)進(jìn)行訓(xùn)練和識(shí)別.其中靜態(tài)運(yùn)動(dòng)類(lèi)型根據(jù)采集的姿態(tài)傳感器和足底壓力傳感器信號(hào)可以準(zhǔn)確識(shí)別;動(dòng)態(tài)運(yùn)動(dòng)類(lèi)型的識(shí)別,LDR算法截取sEMG肌電信號(hào)段不同,識(shí)別準(zhǔn)確率會(huì)有所差異.為了提升下肢動(dòng)態(tài)運(yùn)動(dòng)類(lèi)型的準(zhǔn)確率,系統(tǒng)測(cè)試時(shí),對(duì)每個(gè)運(yùn)動(dòng)周期按照后腳跟最大壓力和前腳掌最大壓力兩個(gè)關(guān)鍵時(shí)間節(jié)點(diǎn)T1、T2來(lái)分段,將每個(gè)運(yùn)動(dòng)周期分為四個(gè)階段,即T1前200 ms、T1后200 ms、T2前200 ms、T2后200 ms,分別用T1?、T1+、T2?、T2+表示.系統(tǒng)測(cè)試表明LDA算法截取不同階段進(jìn)行運(yùn)動(dòng)類(lèi)型訓(xùn)練和動(dòng)作識(shí)別的準(zhǔn)確率不同,表3為系統(tǒng)對(duì)各個(gè)階段各種下肢動(dòng)態(tài)運(yùn)動(dòng)類(lèi)型識(shí)別準(zhǔn)確率一覽表.
表3 下肢動(dòng)態(tài)運(yùn)動(dòng)類(lèi)型識(shí)別準(zhǔn)確率一覽表
從表3中可以發(fā)現(xiàn),系統(tǒng)對(duì)運(yùn)動(dòng)類(lèi)型的識(shí)別率均較高,其中LDR算法選取T1+、T2?兩個(gè)階段的識(shí)別率更高一些,這兩個(gè)時(shí)段腳接觸地面,肌電信號(hào)更具有代表性.因此本系統(tǒng)APP應(yīng)用LDA算法截取階段均選取T1+階段作為動(dòng)作訓(xùn)練和識(shí)別時(shí)間窗口.
本文針對(duì)康復(fù)機(jī)器人系統(tǒng)中需要實(shí)時(shí)提取下肢運(yùn)動(dòng)類(lèi)別問(wèn)題,設(shè)計(jì)了一種基于物聯(lián)網(wǎng)技術(shù)的下肢運(yùn)動(dòng)實(shí)時(shí)監(jiān)測(cè)系統(tǒng).系統(tǒng)能根據(jù)肌電信號(hào)、角速度信號(hào)、加速度信號(hào)和壓力信號(hào),對(duì)六種下肢動(dòng)作類(lèi)型進(jìn)行識(shí)別,測(cè)試結(jié)果表明系統(tǒng)具有較高的準(zhǔn)確率.
本文僅考慮了六種下肢運(yùn)動(dòng)類(lèi)型的識(shí)別,其他類(lèi)型運(yùn)動(dòng)的識(shí)別有待進(jìn)一步研究與驗(yàn)證.同時(shí),本文實(shí)驗(yàn)測(cè)試時(shí),從安全性角度考慮,選擇的測(cè)試對(duì)象為下肢健全人.健全人的運(yùn)動(dòng)識(shí)別結(jié)論對(duì)于下肢有損傷或殘疾的患者是否有效仍有待進(jìn)一步驗(yàn)證.