基于虛擬現(xiàn)實(shí)的網(wǎng)絡(luò)化上肢康復(fù)訓(xùn)練系統(tǒng)
現(xiàn)階段,在國(guó)內(nèi)的康復(fù)治療中,針對(duì)患者功能訓(xùn)練的治療仍舊以治療師的手法操作為主,或輔助一些簡(jiǎn)單的訓(xùn)練器械,且訓(xùn)練過程單調(diào)無趣,患者容易產(chǎn)生厭煩情緒。治療師不容易即時(shí)了解病人的訓(xùn)練程度和效果 [1][2]。研究表明,如果能夠在訓(xùn)練過程中提供多種形式的信息反饋,充分發(fā)揮患者的主觀能動(dòng)性,將會(huì)使康復(fù)訓(xùn)練效果得到很大提高。虛擬現(xiàn)實(shí)是一種新興的并且迅速發(fā)展的技術(shù),它的主要特點(diǎn)是:利用計(jì)算機(jī)和傳感技術(shù)生成一個(gè)具有多種感官刺激的虛擬境界,這種虛擬境界可以使人產(chǎn)生一種身臨其境的感覺;人能以自然的方式與虛擬境界中的對(duì)象進(jìn)行交互[3]。將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用到康復(fù)醫(yī)療領(lǐng)域,可以有效的解決現(xiàn)有的康復(fù)醫(yī)療方法的局限性[4]。
康復(fù)機(jī)器人技術(shù)在歐美等國(guó)家己經(jīng)得到了科研工作者和醫(yī)療機(jī)構(gòu)的普遍重視 ,也取得了一些有價(jià)值的成果. 06年 Tobias Nef等人研制了基于虛擬現(xiàn)實(shí)技術(shù)的上肢康復(fù)醫(yī)療機(jī)器人 ARMIn[5]。Rutgers大學(xué)和 Stanford醫(yī)學(xué)院在基于虛擬環(huán)境的遠(yuǎn)程康復(fù)機(jī)器人系統(tǒng)方面做了大量的工作[6]。清華大學(xué)研制了一種上肢康復(fù)設(shè)備 UECM,可以在平面內(nèi)進(jìn)行兩個(gè)自由度的運(yùn)行訓(xùn)練[1]。
本文針對(duì)實(shí)驗(yàn)室現(xiàn)有的一種上肢康復(fù)訓(xùn)練機(jī)器人系統(tǒng)設(shè)計(jì)開發(fā)了虛擬現(xiàn)實(shí)的輔助康復(fù)訓(xùn)練系統(tǒng),以激發(fā)患者進(jìn)行康復(fù)訓(xùn)練的興趣和動(dòng)力,達(dá)到提高康復(fù)訓(xùn)練效果的目的。
1.系統(tǒng)總體概況
1.1 康復(fù)訓(xùn)練機(jī)器人系統(tǒng)總體結(jié)構(gòu)圖康復(fù)訓(xùn)練機(jī)器人系統(tǒng)主要可分為上位機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)和下位機(jī)系統(tǒng)。 系統(tǒng)整體結(jié)構(gòu)圖如圖 1所示。
500)this.style.width=500;" />
1.2 康復(fù)機(jī)器人機(jī)構(gòu)設(shè)計(jì)
康復(fù)機(jī)器人機(jī)構(gòu)部分主要有座椅部分、支撐部分、牽引部分組成,如圖 2所示。訓(xùn)練時(shí),病人坐在椅子上,通過懸吊線和肘關(guān)節(jié)支撐套將病人的手臂吊起,病人的手被固定在康復(fù)訓(xùn)練牽引機(jī)械臂的托盤上。
500)this.style.width=500;" />
1.3康復(fù)機(jī)器人系統(tǒng)工作原理
該康復(fù)訓(xùn)練系統(tǒng)由 4部分組成:基于虛擬現(xiàn)實(shí)技術(shù)的輔助訓(xùn)練客戶端,康復(fù)機(jī)器人控制系統(tǒng)(下位機(jī)) ,醫(yī)生端監(jiān)控計(jì)算機(jī)(上位機(jī)),和網(wǎng)絡(luò)通訊部分。其中康復(fù)機(jī)器人控制系統(tǒng)由 ARM主控模塊、測(cè)量控制電路、鍵盤及 LCD顯示電路、存儲(chǔ)器件等主要部分組成。被動(dòng)訓(xùn)練模式運(yùn)行時(shí),安裝在康復(fù)訓(xùn)練牽引機(jī)械臂的力和位置傳感器將采集的病人運(yùn)動(dòng)的力和位置信號(hào)經(jīng)過信號(hào)處理后送給 ARM主控模塊,主控模塊經(jīng)過預(yù)處理后再通過下位機(jī)網(wǎng)絡(luò)模塊把力和位置信息通過局域網(wǎng)傳送給醫(yī)生端監(jiān)控主機(jī),同時(shí)監(jiān)控軟件繪制出力度信號(hào)和位置信號(hào)的實(shí)時(shí)曲線,并訪問后臺(tái)病案數(shù)據(jù)庫(kù),實(shí)時(shí)記錄訓(xùn)練各項(xiàng)狀態(tài)參數(shù)。醫(yī)生根據(jù)反饋的信息判斷病人的康復(fù)情況,并通過上位機(jī)設(shè)置康復(fù)訓(xùn)練參數(shù),發(fā)送控制指令給下位機(jī),下位機(jī)根據(jù)醫(yī)生設(shè)置的參數(shù),采用相應(yīng)的控制算法,發(fā)送控制信號(hào),經(jīng)驅(qū)動(dòng)電路放大后驅(qū)動(dòng)電機(jī),從而控制康復(fù)訓(xùn)練牽引機(jī)械臂的運(yùn)動(dòng)。主動(dòng)模式和阻抗模式運(yùn)行時(shí),虛擬現(xiàn)實(shí)訓(xùn)練客戶端軟件和上位機(jī)遠(yuǎn)程監(jiān)控軟件同時(shí)通過局域網(wǎng)連接至下位機(jī) ARM嵌入式康復(fù)機(jī)器人主控模塊,主控模塊把采集到的力度和位置信號(hào)經(jīng)過預(yù)處理后,同時(shí)發(fā)送給上位機(jī)監(jiān)控程序和虛擬現(xiàn)實(shí)訓(xùn)練程序。虛擬現(xiàn)實(shí)輔助訓(xùn)練軟件利用接收到的網(wǎng)絡(luò)數(shù)據(jù)通過相應(yīng)算法轉(zhuǎn)化為虛擬場(chǎng)景中物體的坐標(biāo),同時(shí)配合設(shè)置好的虛擬場(chǎng)景和人機(jī)交互策略實(shí)現(xiàn)虛擬現(xiàn)實(shí)輔助康復(fù)訓(xùn)練過程。本文分別使用 windows GDI 和 OpenGL+3dmax 設(shè)計(jì)了兩套虛擬現(xiàn)實(shí)康復(fù)訓(xùn)練程序,分別配合主動(dòng)訓(xùn)練模式和阻抗訓(xùn)練模式。
2、虛擬現(xiàn)實(shí)輔助康復(fù)訓(xùn)練客戶端軟件開發(fā)
康復(fù)病人由于肢體肌肉處于廢退狀態(tài),很容易對(duì)鍛煉感到厭煩,這對(duì)于病人的康復(fù)進(jìn)程是很不利的。為此本文利用 Windows GDI,OpenGL+3Dmax設(shè)計(jì)了兩個(gè)具有良好交互性的游戲程序作為患者輔助康復(fù)訓(xùn)練平臺(tái),使患者在游戲過程中不知不覺的完成鍛煉,變?cè)瓉淼南麡O鍛煉為積極主動(dòng)的參與鍛煉。
2.1配合阻抗訓(xùn)練模式的虛擬現(xiàn)實(shí)輔助訓(xùn)練軟件設(shè)計(jì)
2.1.1 阻抗訓(xùn)練模式介紹
該訓(xùn)練模式適用于即將康復(fù)的患者,這類患者的患肢已經(jīng)逐步恢復(fù)運(yùn)動(dòng)能力,這時(shí)就可以根據(jù)患者的康復(fù)情況,在康復(fù)鍛煉過程中通過機(jī)器人給患者的患肢作用一定大小的阻尼力,使患者完成動(dòng)作的時(shí)候克服阻力,從而增強(qiáng)肌肉的力量,逐步恢復(fù)到正常狀態(tài)。
2.1.2 程序設(shè)計(jì)
該軟件采用 VC++6.0創(chuàng)建的基于單文檔的 MFC應(yīng)用程序。游戲開始后病人通過控制機(jī)械臂的水平運(yùn)動(dòng),控制虛擬場(chǎng)景中水平擋板的移動(dòng)反彈小球,擊打上畫面上方的矩形磚塊。如圖 3所示。程序開始運(yùn)行后,通過 GDI繪制出彈球游戲的基本場(chǎng)景,小球和水平移動(dòng)擋板,完成游戲參數(shù)的基本初始化工作。在創(chuàng)建框架窗體的同時(shí)使用 CAsyncSocket類的 MySocket派生類,初始化訓(xùn)練客戶端套接字,封裝了網(wǎng)絡(luò)通信消息響應(yīng)函數(shù)。并重載了其中的 OnReceive(), OnAccept(),OnConnect(),OnClose()等消息響應(yīng)函數(shù),這些函數(shù)分別映射 CMyView類中相應(yīng)的處理函數(shù)。完成套接字初始化后,立即與下位機(jī)服務(wù)器連接,并開始接收下位機(jī)傳送的位置和力度數(shù)據(jù)。當(dāng)有網(wǎng)絡(luò)數(shù)據(jù)到達(dá)時(shí),程序映射調(diào)用 CMyView類中的 OnReceive()函數(shù),完成接收下位機(jī)傳送的位置信號(hào)數(shù)據(jù),通過公式(1)
shippositon=(long)(-w*855/180) (1)
其中 w為接收到的機(jī)械臂角度值,shippositon為經(jīng)過換算后的擋板在屏幕上位置的坐標(biāo)點(diǎn)數(shù)值。將機(jī)械臂角度值轉(zhuǎn)化為虛擬環(huán)境中水平擋板的實(shí)際位置值,最后傳送至 Moveship()函數(shù)中完成移動(dòng)擋板,碰撞檢測(cè),刷新場(chǎng)景等流程。水平擋板在程序運(yùn)行開始后初始化在視圖區(qū)域中間位置,即機(jī)器人機(jī)械臂 90度位置。當(dāng)病人左右移動(dòng)機(jī)械臂時(shí),由下位機(jī)根據(jù)與 90度位置偏離程度的大小,通過計(jì)算輸出相應(yīng)大小的阻尼力。程序一共分為三個(gè)難度等級(jí),每一難度等級(jí)的磚塊全部擊打完畢并進(jìn)入下一難度等級(jí)。每增加一級(jí),程序會(huì)加速小球的下落速度來提高游戲難度。運(yùn)行時(shí)程序同時(shí)記錄病人的得分情況和游戲生命值。
500)this.style.width=500;" />
2.2配合主動(dòng)訓(xùn)練模式的虛擬現(xiàn)實(shí)輔助訓(xùn)練軟件設(shè)計(jì)
2.2.1 主動(dòng)訓(xùn)練模式介紹 該訓(xùn)練模式適用于病情比較輕的患者,這些的患者的患肢雖然有些運(yùn)動(dòng)障礙,但是沒有完全喪失運(yùn)動(dòng)能力,因此可以通過設(shè)計(jì)一些具有良好交互性的虛擬場(chǎng)景游戲,使患者完全自主地利用康復(fù)機(jī)器人進(jìn)行鍛煉。
2.2.2程序設(shè)計(jì)
整個(gè)軟件采用VC++6.0創(chuàng)建的 win32 application應(yīng)用程序,調(diào)用 OpenGL的庫(kù)函數(shù)開發(fā)。軟件所涉及的帶有貼圖的 3D模型和其他圖形素材,采用了現(xiàn)成的資源,這樣既保證了圖形圖像的質(zhì)量又提高了開發(fā)效率。該輔助訓(xùn)練軟件結(jié)合主動(dòng)訓(xùn)練模式,給病人提供了寬廣的 3D虛擬場(chǎng)景,通過訓(xùn)練臂,并輔助一個(gè)羅技游戲搖桿進(jìn)行漫游,患者通過機(jī)械臂控制場(chǎng)景人物平面方位角的改變,輔助游戲搖桿負(fù)責(zé)場(chǎng)景人物的前進(jìn),后退,俯仰角度以及射擊擊發(fā)?;颊咝枰瓿傻慕换ビ?xùn)練任務(wù)是盡快在該場(chǎng)景中找出移動(dòng)的目標(biāo)靶并射擊命中。如圖 4所示:
500)this.style.width=500;" />
該程序首先由 Win32應(yīng)用程序框架中的WinMain()函數(shù)提供程序的入口。當(dāng)窗口成功建立時(shí),MsgProc()窗口回調(diào)函數(shù)調(diào)出OpenGL框架中Init()函數(shù)對(duì)OpenGL視圖進(jìn)行變換調(diào)整。Windows窗口生成后就進(jìn)入 GameLoop()主循環(huán)中,在此一直循環(huán)調(diào)用 OpenGL框架中的Render()函數(shù)進(jìn)行我們需要的圖形場(chǎng)景處理和顯示,程序退出時(shí),調(diào)用 CleanUp()清除OpenGL連接。在交互方面,程序初始化時(shí)采用 Winsock 2.0建立了套接字,通過局域網(wǎng)接收下位機(jī)傳送的機(jī)械臂位置數(shù)據(jù),通過計(jì)算轉(zhuǎn)化為場(chǎng)景人物的平面旋轉(zhuǎn)角度。從而達(dá)到實(shí)時(shí)交互的目的。前進(jìn)后退,俯仰角度的改變以及子彈的發(fā)射,采用鍵盤按鍵消息事件的方式實(shí)現(xiàn),再通過游戲搖桿驅(qū)動(dòng)程序關(guān)聯(lián)響應(yīng)的按鍵,達(dá)到搖桿輔助控制的目的。程序分別使用mciSendString函數(shù)和 sndPlaySound函數(shù)來實(shí)現(xiàn)游戲過程中的各種音效。
3、實(shí)驗(yàn)結(jié)果
進(jìn)行康復(fù)訓(xùn)練時(shí),病人的手固定在康復(fù)訓(xùn)練牽引機(jī)械臂的托盤上,醫(yī)生通過上位機(jī)界面(醫(yī)生端)分別設(shè)置運(yùn)動(dòng)模式為主動(dòng)訓(xùn)練和抗阻訓(xùn)練,并調(diào)用相應(yīng)的虛擬現(xiàn)實(shí)輔助訓(xùn)練程序進(jìn)行交互式康復(fù)訓(xùn)練,結(jié)果明顯提高了病人參與康復(fù)訓(xùn)練的積極性,訓(xùn)練時(shí)間明顯增加,同時(shí)病人也能保持興奮愉快的狀態(tài)。病人訓(xùn)練的同時(shí),上位機(jī)界面實(shí)時(shí)曲線繪制正常,在阻抗訓(xùn)練模式下實(shí)時(shí)訓(xùn)練參數(shù)曲線繪制如圖 5所示,能較為準(zhǔn)確的反映病人的訓(xùn)練狀態(tài)。訓(xùn)練結(jié)束后打開病案數(shù)據(jù)庫(kù)的歷史數(shù)據(jù)記錄表,可以看到位置數(shù)據(jù)和力度數(shù)據(jù)記錄正確。
500)this.style.width=500;" />
5、總結(jié)
綜上所述,本康復(fù)訓(xùn)練機(jī)器人系統(tǒng)采用的上下位機(jī)聯(lián)合的方式,通過設(shè)計(jì)兩種基于虛擬現(xiàn)實(shí)技術(shù)的互動(dòng)訓(xùn)練程序,為患者的康復(fù)訓(xùn)練提供了一個(gè)生動(dòng)的平臺(tái),將患者從枯燥乏味的康復(fù)訓(xùn)練中解放出來。實(shí)驗(yàn)結(jié)果證明,所設(shè)計(jì)的輔助訓(xùn)練程序能夠較好的配合患者進(jìn)行主動(dòng)訓(xùn)練和抗阻訓(xùn)練模式的要求。在以后的研究中,還需要針對(duì)網(wǎng)絡(luò)時(shí)延對(duì)病人與虛擬環(huán)境交互實(shí)時(shí)性的影響進(jìn)行進(jìn)一步的克服和改進(jìn)。
本文作者的創(chuàng)新點(diǎn)是:本文針對(duì)中風(fēng)病人和上肢受傷病人在傳統(tǒng)的基于康復(fù)器械的訓(xùn)練中,人機(jī)之間缺乏良好的互動(dòng)性以及訓(xùn)練模式內(nèi)容枯燥乏味的缺點(diǎn),開發(fā)了一種新穎的基于虛擬現(xiàn)實(shí)和計(jì)算機(jī)網(wǎng)絡(luò)的上肢輔助康復(fù)訓(xùn)練系統(tǒng)。該系統(tǒng)配合康復(fù)訓(xùn)練的主動(dòng)模式和阻抗模式,可以對(duì)病人進(jìn)行具有趣味性和良好交互性的康復(fù)訓(xùn)練過程。