劉 林,伍平平,熊 巍
(華南理工大學設計學院,廣東 廣州 510640)
虛擬現實技術應用于腦卒中偏癱患者的上肢運動功能康復訓練已經成為國內外學者關注的熱點。國內外許多研究機構在該領域開展了許多探索性的研究,并取得了一定的臨床資料和治療成效。Godfrey[1]利用手部外骨骼康復機器人與VR游戲相結合,對慢性腦卒中后手部痙攣的患者進行康復訓練。Lauri[2]利用充氣手套與VR相結合,對腦卒中后手功能障礙患者進行康復訓練。岳宏等[3]提出一套利用虛擬現實技術和手臂外骨骼技術結合進行手臂康復醫療的方案。但現有研究還存在著以下不足:鮮有研究將患者的手跟手臂作為一個整體研究對象,既能訓練患者的手部又能訓練患者的手臂功能;對患者的主動運動激勵不足,較少考慮人機界面研究,忽略了對患者主動意識的激勵。很多研究還處于測試階段,并沒有完全應用于臨床訓練中。
本文研究的虛擬超市認知康復訓練系統包括硬件和軟件兩方面,其中硬件部分有5DT數據手套、FASTRAK位置跟蹤器與計算機等,軟件部分則主要由基于EON Studio平臺的虛擬超市和虛擬手(手指和手臂)組成。在該系統中基于EON SDK開發Glove節點和Tracker節點,分別采集數據手套和位置跟蹤器的數據,實現虛擬手在虛擬場景中的漫游與控制。將患者的手指和手臂功能的恢復作為一個整體對象,既能訓練上肢偏癱患者手部的功能也能訓練到患者手臂的功能;患者通過控制虛擬手在虛擬超市中購物,實現對虛擬商品的抓取、移動、并釋放到購物車中。同時在訓練過程中獲得視覺跟聽覺的反饋,對患者有激勵的作用。
上肢康復訓練平臺中的虛擬場景需符合患者訓練時的心理期待,所以更側重于逼真性和沉浸感,對視覺效果要求較高。
虛擬超市的外形設計比較簡單,在3DMAX中采用整體建模方法,將超市外形輪廓用曲線繪制,然后通過擠出命令生成近似的超市墻壁,再將實體模型轉化成可編輯多邊形,對可編輯多邊形中細分的幾何元素進行調整以生成如門、窗凹凸的超市細節部分。最后將制作好的超市內部細節如貨柜、柜臺等組件與超市整體合并成虛擬場景。
虛擬超市中的虛擬商品可分為五類:水果、蔬菜、日用品、文體、食品等。將虛擬商品合并到虛擬場景中,并將其放在貨柜的合適位置,虛擬商品要進行成組處理,以使虛擬手在與虛擬商品交互時能準確地抓取到整個虛擬商品。
在模型建立后還需對模型進行以下幾點優化:①在保證產品模型質量的前提下盡量減少不需要的面片數;②模型多邊形的合理分布,根據模型的實際情況對多邊形進行合理刪減調整等以達到模型的最佳狀態;③點面對齊,焊接重合點。
根據與正常人手1∶1比例和手模型的層次結構圖[4]創建虛擬手模型。由于手指各部分的運動存在連帶運動現象,手部根部關節的運動會帶動手指尖部關節的運動,因此對虛擬手的建模完成后還必須根據手指的層次結構對手指指節進行成組處理。
人的手指是柔性的,而虛擬手指的各指節卻是剛性的,當手指各指節有彎曲時,原來完整的虛擬手會在關節處出現破面現象,這將影響整個虛擬手的逼真性。為解決破面問題,有方案提出通過在14個手指關節處添加一個光滑的球狀體[5],這種方案雖然利用球狀體填充了指節間的破面,但同時也使虛擬手模型占用的內存增大,影響了虛擬手運動時的實時渲染。
本文提出在建立虛擬手模型時,手指指節模型的坐標系默認位置位于指節截面的中心,手指圍繞這個坐標系發生彎曲,所以在手指手背方向就會出現缺口。將這個坐標系移動到手指關節表面,當手指再次彎曲時將圍繞新坐標系發生轉動,此時手背方向斷面消失,手指節在手掌方向發生交叉,但不會影響視覺效果。重置坐標軸后手指的彎曲效果與重置前的手指彎曲效果對比如下圖1所示。

圖1 手指關節破面的解決方案
為了避免將3DMAX中建好的模型導入至EON Studio中材質、貼圖等信息的丟失[6],可通過在3DMAX中加載EON Raptor插件,用于將在3DMAX中創建好的模型保存為EON中的文件,然后在EON中打開該文件,則在3DMAX中建好的模型能完整且不失真的導入到了EON環境中。導入至EON中的虛擬模型如圖2所示。導入至EON中的虛擬手模型如圖2所示。

圖2 虛擬商場與虛擬手模型
患者的真實手與虛擬手之間的通信主要包括獲取真實手的運動信息以及對整個虛擬手的實時漫游與控制。手指的運動信息是通過數據手套與系統的集成來實現,對虛擬手的實時漫游與控制主要是通過位置跟蹤器與系統的集成來實現。
數據手套與系統的集成主要是獲取5DT數據手套的數據,并實現與虛擬手之間的通信。數據手套數據的獲取是利用VC++6.0平臺,通過EON SDK開發Glove節點,此節點包含5個輸出域。然后通過EON中Script節點將數據手套中傳感器數據相應地映射到虛擬手的關節,在Script節點中設定5個入事件用于接收Glove節點中的5個輸出域數據,在Script節點中對輸出變量進行賦值,設定14個輸出事件,分別給虛擬手的14個指節賦值。數據手套與虛擬手流程如圖3所示。在EON邏輯視窗中虛擬手指邏輯控制路徑圖如圖4所示。

圖3 數據手套與虛擬手的映射流程

圖4 虛擬手指邏輯控制路徑圖
虛擬手的手指彎曲運動的信息通過數據手套從患者的真實手獲得,但是整個虛擬手在虛擬場景中的轉動與移動還得依靠其他設備來完成。本系統采用FASTRAK位置跟蹤器來控制虛擬手3個方向的轉動自由度,由于病人是在固定椅上訓練其上肢運動功能,相當于病人的肩關節是固定的,而要實現虛擬手能在場景中的實時漫游,則可以再添加鍵盤的方向鍵控制虛擬手3個方向的移動自由度。將位置跟蹤器的接收點固定在數據手套上,病人戴上數據手套后便可將人手的轉動方向與虛擬手的轉動方向進行一一映射,再通過鍵盤上的方向鍵控制虛擬手在虛擬超市中的升降、前后、左右的移動方向。
位置跟蹤器與系統的集成實現方法與數據手套與系統集成的方法一致。利用C++6.0平臺,通過EON SDK開發Tracker節點,在程序開發過程中采用多線程技術,通過創建一個單獨的線程函數,在線程函數中調用FT_ReadContinuous()函數連續從位置跟蹤器中讀取數據,將讀取到的數據暫存在一個緩沖變量中,再在EON SDK程序框架中的Update()函數中不停地從緩沖變量中取出數據,然后通過EON的Script節點將從位置跟蹤器中獲得的數據與虛擬手的運動方向進行映射表達,再在邏輯視窗中建立路由關系,實現了控制虛擬手3個方向的轉動自由度。位置跟蹤器與虛擬手之間的通信流程,如圖5所示。為使患者在訓練過程中沉浸感更強,患者的視角要始終跟著虛擬手運動,因此需添加一個EON自帶的視點追蹤元件——FollowMe元件,將FollowMe元件放入camera框架中,在邏輯視窗中將虛擬手的Position域發送給camera,實現患者的視角始終跟在虛擬手的后面。

圖5 位置跟蹤器與虛擬手的通信流程
交互過程中要解決的問題是:在患者通過控制虛擬手抓取虛擬超市中商品的過程中,虛擬手與虛擬商品之間的碰撞檢測以及虛擬手抓取商品跟釋放商品的規則定義。
EON 中提供了一個碰撞檢測節點CollisionObject節點,該節點提供了Bounding sphere、Bounding spheres、Bounding box、Bounding boxes、Convex hull、Convex hulls三類6種包圍盒形式,如圖6所示。

圖6 包圍盒的形式
使用過程中可根據不同的精度要求選擇不同的包圍盒。將CollisionObject節點放置在需要碰撞檢測物體的框架下,則該物體就具有碰撞響應的能力,當檢測到物體發生碰撞時CollisionObject節點還能同時輸出與其發生碰撞的對象名稱、碰撞時間跟碰撞位置等信息。虛擬手與虛擬超市中的大部分商品的包圍盒形式采用的是Convex hulls,對于某些模型結構較復雜的商品則采用的是 Bounding sphere或者Bounding box,以提高碰撞響應的速度。
在虛擬環境中通過定義一些虛擬手的抓取規則和條件,使虛擬手能像真實手那樣自然逼真地抓取、移動和釋放虛擬商品。
虛擬手抓取規則定義如下:
(1)碰撞檢測是虛擬手抓取商品的前提條件,因此先檢測虛擬手與虛擬商品是否發生碰撞;
(2)發生碰撞后才能抓取,抓取過程中大拇指必須有彎曲,并且還要另外四個手指中的一個手指也發生彎曲;
(3)在依次滿足(1)、(2)條件的基礎上,通過判斷各手指的彎曲程度來確定是否能實現抓取。預先設定好每個手指要彎曲的角度,當手指的彎曲程度達到這一角度時則實現抓取,手指松開后則釋放商品。
當抓取到商品后再松開手指,手指的彎曲角度不滿足抓取的角度時,則表示為滿足釋放商品的規則。借助EON中的Script節點實現對抓取規則的3個條件的獲取和判斷,當滿足抓取條件時,EON中的GrabConnection節點則實現虛擬手與虛擬商品之間的抓取,為實現虛擬手對各個虛擬商品的連續抓取,在名為抓取的Script節點中添加一個名為field屬性和名為TempBody的域,用于臨時保存與虛擬手發生碰撞的虛擬商品。當這個商品與虛擬手滿足抓取條件時,虛擬手則將該商品抓取。抓取成功的狀態如圖7(a)所示,手指松開的狀態如圖7(b)所示。

圖7 抓取成功的狀態與手指松開的狀態
虛擬超市認知康復訓練系統所面對的對象是腦卒中恢復期的患者,他們的上肢至少具有部分分離運動能力,這個系統主要是訓練患者的手指運動功能和手臂運動功能,同時也訓練患者的認知能力。當患者進入此訓練系統,系統界面會顯示“您可以先點擊左上方菜單按鈕選擇相應的操作!”,患者可單擊菜單按鈕,打開一列菜單,有“手信息”、“開始漫游”、“開始購物”等項目。當點擊“開始購物”后則進入購物界面,同時彈出商品類別跟購物清單菜單,如圖2所示。
接著,患者選擇購物清單,并根據購物清單中的任務去選取商品。此時,患者要判斷該購物清單所購商品屬于哪一類別,這就訓練了患者的認知能力。當患者選擇相應的商品類別進入該界面后,還需去認識該商品類別中的商品名稱,這時進一步訓練患者的認知能力與執行能力。在訓練過程中患者能獲得視覺跟聽覺的反饋,以激勵患者參與的積極性。商品主要分布在超市的兩側,并且在不同高度的貨架上都放有商品,患者在抓取商品的過程中可以訓練其手臂的外展、內收、上抬、下擺等能力。系統提供了一個功能,即治療師可以根據患者的病情調整其訓練任務,針對不同程度的病人分別制定出不同的購物清單。
在實驗中,選取20例腦卒中恢復期偏癱上肢功能障礙的患者隨機分為治療組(10例)和對照組(10例),對照組接受常規治療每次40min,每天1次,連續10天。治療組接受常規治療和虛擬超市上肢康復訓練各20min,每天1次,連續10天。分別對兩組患者進行治療前、治療后的FMA上肢部分(FMA-UE)、MAS上肢部分(MAS-UE)和MBI評定[7],比較兩組的療效。治療后兩組患者FMA-UE、MAS-UE及MBI的評分均比治療前提高,與對照組相比,治療組患者FMA-UE、MBI的評分提高幅度更大。
對于腦卒中恢復期的患者,虛擬超市上肢康復訓練結合常規治療能更好地改善其偏癱上肢的運動功能,它既訓練了患者的認知能力,又將運動療法跟心理療法有機地結合在一起,更為有效地提高其日常生活活動能力。本臨床驗證采用的是小樣本實驗,未來還需要大樣本的隨機對照實驗進一步證實虛擬超市上肢康復訓練的療效。隨著虛擬現實技術本身的不斷進步以及該技術在康復治療領域的不斷推廣和深入,能推動康復運動訓練技術日臻完善,對學科的交叉發展和社會康復事業的進步具有重大現實意義。
[1]Godfrey S B.Hand function recovery in chronic stroke with HEXORR robotic training: A case series[C]//Conf Proc IEEE Eng Med Biol Soc.Buenos Aires,2010: 4485-4488.
[2]Lauri A.Pneumatic glove and immersive virtual reality environment for hand rehabilitative training after stroke [J].IEEE Transactions on Neural and Rehabilitation Systems Engineering, 2010, 18(5): 551-559.
[3]岳 宏, 王小龍, 張 娟.虛擬現實在手臂外骨骼康復系統中的應用[J].科技通報, 2006, 22(1): 111-114.
[4]劉 林, 熊 巍.虛擬手在Vega中的設計與實現[J].機械制造, 2006, 44(2): 21-24.
[5]戴億政.桌面式虛擬環境中靈巧虛擬手的研究與實現[D].廣州: 華南理工大學, 2011.
[6]伍平平, 劉 林.上肢康復機器人手和手臂的集成研究[J].機械設計與制造, 2012, (12): 142-144.
[7]梁 明, 竇祖林, 王清輝, 熊 巍, 鄭雅丹, 陳穎蓓,楊 瓊, 邱雅賢.虛擬現實技術在腦卒中患者偏癱上肢功能康復中的應用[J].中國康復醫學雜志,2013, 28(2): 114-118.