杜 豪,楊 巖,張成杰
重慶理工大學(xué) 機(jī)械工程學(xué)院,重慶400054
虛擬現(xiàn)實(shí)技術(shù)是以計算機(jī)為核心,結(jié)合網(wǎng)絡(luò)技術(shù)、圖像仿真、人機(jī)接口、模式識別、傳感器、AI、自動控制及遠(yuǎn)程操控等技術(shù),將抽象模糊的信息處理為與某一特定真實(shí)環(huán)境完全相似的模擬環(huán)境,用戶借助人機(jī)交互設(shè)備控制模擬環(huán)境中的對象,讓用戶身臨其境,實(shí)時感受模擬環(huán)境中的三維世界[1]。針對當(dāng)前的傳統(tǒng)康復(fù)治療方法,虛擬現(xiàn)實(shí)技術(shù)與機(jī)器人技術(shù)相結(jié)合逐漸受到人們的重視,并應(yīng)用到運(yùn)動康復(fù)醫(yī)療領(lǐng)域,成為新型的康復(fù)模式,患者可以在虛擬場景中進(jìn)行運(yùn)動技能的恢復(fù),手眼協(xié)調(diào)、空間定位、日常人物等多種康復(fù)訓(xùn)練[2]。虛擬現(xiàn)實(shí)技術(shù)的特點(diǎn)是帶給患者沉浸感和交互性,可以有效彌補(bǔ)傳統(tǒng)康復(fù)訓(xùn)練方法的局限性,提高在康復(fù)機(jī)器人輔助訓(xùn)練中的趣味性和患者的主動性[3-5]。
基于虛擬現(xiàn)實(shí)技術(shù)的康復(fù)機(jī)器人在各國得到了普遍重視,也取得了一定的進(jìn)展,比如Connelly等人[6]利用VR結(jié)合充氣手套對腦卒中后手功能康復(fù)訓(xùn)練,Kayyali等人[7]結(jié)合有觸覺反饋的收據(jù)手套,開發(fā)了一套針對腦卒中患者的虛擬康復(fù)系統(tǒng),Godfrey[8]利用VR 結(jié)合外骨骼機(jī)器人,對慢性腦卒中患者進(jìn)行康復(fù)訓(xùn)練,華南理工大學(xué)的伍平平[9]開發(fā)了一套針對腦卒中恢復(fù)期患者偏癱上肢運(yùn)動功能康復(fù)的虛擬現(xiàn)實(shí)系統(tǒng)。
針對現(xiàn)有的上肢康復(fù)機(jī)器人訓(xùn)練模式單一、結(jié)構(gòu)復(fù)雜、控制難度大等缺陷,設(shè)計了一款由繩牽引的柔性上肢康復(fù)機(jī)器人。它是一種混聯(lián)機(jī)構(gòu),既能對患者進(jìn)行主動訓(xùn)練,也能進(jìn)行被動訓(xùn)練,不僅彌補(bǔ)了康復(fù)訓(xùn)練模式單一的缺陷,同時又精簡了本體結(jié)構(gòu),降低了康復(fù)控制難度。該柔性上肢康復(fù)機(jī)器人與虛擬現(xiàn)實(shí)技術(shù)相結(jié)合,為患者在安全和可靠的治療環(huán)境中提供具有特定任務(wù)的重復(fù)訓(xùn)練,允許患者嘗試不同的場景和不同的任務(wù),不僅增添了康復(fù)治療的趣味性,還極大提升了康復(fù)訓(xùn)練效果和患者的滿意度。
腦卒中是由急性腦血管病引起的,發(fā)病后患者的主要特征有:高位運(yùn)動調(diào)控中樞受損、肌張力異常、運(yùn)動模式異常,具有語言、認(rèn)知、智力等伴隨癥狀[10]。對腦卒中康復(fù)治療,是為了防止肌肉萎縮、關(guān)節(jié)痙攣等各類癥狀的出現(xiàn);是為了維持和擴(kuò)大關(guān)節(jié)活動度;也是為了增強(qiáng)肌肉力和協(xié)調(diào)性,最終重建肢體功能以便回歸正常生活[11]。從解剖學(xué)角度看,人體上肢是由骨骼、關(guān)節(jié)和肌肉組成,在運(yùn)動過程中,骨骼起到杠桿的作用,關(guān)節(jié)作為支點(diǎn),肌肉則為上肢運(yùn)動力[12]。通過對人體上肢生理結(jié)構(gòu)分析,根據(jù)康復(fù)機(jī)械設(shè)計要求,針對肩關(guān)節(jié)和肘關(guān)節(jié)進(jìn)行的主被動康復(fù)訓(xùn)練,各個關(guān)節(jié)運(yùn)動原理和角度如圖1所示[13]。
肩關(guān)節(jié)是由肩胛骨和肱骨頭的關(guān)節(jié)盂組成的,是一種球窩關(guān)節(jié),可以在三個相互垂直的方向進(jìn)行屈伸、收展和旋轉(zhuǎn)運(yùn)動;肘關(guān)節(jié)由橈尺近側(cè)關(guān)節(jié)、肱橈關(guān)節(jié)和肱尺關(guān)節(jié)共居同一個關(guān)節(jié)囊內(nèi)組成,是一種復(fù)合關(guān)節(jié),可以做屈伸和旋轉(zhuǎn)運(yùn)動。通過對偏癱患者的全面康復(fù)治療和康復(fù)功能評定學(xué)的研究,如圖2[13],兩個關(guān)節(jié)的動作方向與角度范圍如表1和表2所示。
圖2 上肢關(guān)節(jié)運(yùn)動方向
表1 肩關(guān)節(jié)動作方向和角度范圍
表2 肘關(guān)節(jié)動作方向和角度范圍
結(jié)合人體上肢結(jié)構(gòu)及運(yùn)動特性所設(shè)計的柔性上肢康復(fù)機(jī)器人結(jié)構(gòu)如圖3 所示,主要由滑臺模組、懸吊系統(tǒng)(卷線裝置和T 型架)和支撐機(jī)架等幾部分組成。該機(jī)器人以患者肘關(guān)節(jié)和腕關(guān)節(jié)為著力點(diǎn),采用3根繩索懸吊上肢進(jìn)行康復(fù)訓(xùn)練。其中,肘關(guān)節(jié)處采用1 根繩索,腕關(guān)節(jié)處采用2根繩索,3根繩索的上端連接于懸掛機(jī)構(gòu)上的支架,下端通過連接護(hù)具套對上肢進(jìn)行懸吊,同時,將滑臺布置于患者上方,通過彈性繩連接驅(qū)動手臂完成患者上肢的空間運(yùn)動。
圖3 柔性上肢康復(fù)機(jī)器人
不考慮繩索晃動所引起的誤差,該機(jī)器人模型的空間幾何關(guān)系如圖4 所示[13]。整個機(jī)構(gòu)為混聯(lián)機(jī)構(gòu)形式,串聯(lián)部分由滑臺模組裝置的兩個平移自由度(d1,d2)和旋轉(zhuǎn)裝置的轉(zhuǎn)動自由度θ1組成;并聯(lián)機(jī)構(gòu)部分由3根繩索上下收放自由度(d3、d4、d5)組成。其中,基坐標(biāo)系的原點(diǎn)為O,A代表肘關(guān)節(jié)位置,其初始坐標(biāo)為(Ax,Ay,Az)=(d2,d1,d3),B代表腕關(guān)節(jié)位置,其初始坐標(biāo)為(Bx,By,Bz),θ3代表腕關(guān)節(jié)的旋轉(zhuǎn)角度,L1、L3代表T型架對應(yīng)結(jié)構(gòu)的桿長,L2代表前臂長度,L4代表腕關(guān)節(jié)直徑,θ2代表AB與AB′1的夾角,即AB與豎直面yoz的夾角,θ1代表旋轉(zhuǎn)裝置的轉(zhuǎn)動自由度。
圖4 康復(fù)機(jī)器人空間幾何關(guān)系
通過正運(yùn)動學(xué)分析,可得:
結(jié)合式(1),通過逆運(yùn)動學(xué)分析,可得角度θ1和θ2分別為:
而θ1和θ2取值范圍分別為(-60°,90°)、(-45°,45°),所以θ1和θ2只有唯一解。
前臂旋前和旋后動作通過改變懸繩d4和d5的長度實(shí)現(xiàn)腕關(guān)節(jié)的動作,根據(jù)上述公式求得。其余動作懸繩d4和d5的長度始終相等,且滿足公式:
綜上,該機(jī)器人共有6 個自由度,懸繩個數(shù)小于自由度數(shù),該機(jī)構(gòu)是欠約束結(jié)構(gòu)式的,能夠遍歷健全上肢的空間運(yùn)動域。其中,滑臺模組由兩個伺服電機(jī)驅(qū)動工字型同步帶,實(shí)現(xiàn)肩關(guān)節(jié)的屈伸、收展2個自由度;卷線裝置由3 伺服電機(jī)實(shí)現(xiàn)3 根繩索在豎直空間中的運(yùn)動,從而實(shí)現(xiàn)肩關(guān)節(jié)的旋轉(zhuǎn)、肘關(guān)節(jié)的屈伸和旋轉(zhuǎn)3個自由度;T型架由伺服電機(jī)驅(qū)動蝸輪蝸桿實(shí)現(xiàn)上肢在水平面內(nèi)轉(zhuǎn)動1個自由度。
結(jié)合柔性上肢康復(fù)機(jī)器人本體結(jié)構(gòu),實(shí)驗(yàn)室設(shè)計了基于虛擬現(xiàn)實(shí)技術(shù)的柔性上肢康復(fù)機(jī)器人控制系統(tǒng),如圖5 所示。控制系統(tǒng)主要由CPAC 控制器、虛擬現(xiàn)實(shí)交互環(huán)境、Nokov動作捕捉系統(tǒng)等輔助訓(xùn)練設(shè)備構(gòu)成。該控制系統(tǒng)模式含有主被動兩套訓(xùn)練方式。被動式康復(fù)訓(xùn)練模式是在患者上肢未完全喪失功能,具備一定的自主運(yùn)動能力下進(jìn)行的一種模式,該模式簡單有效,當(dāng)前多數(shù)上肢康復(fù)機(jī)器人都能實(shí)現(xiàn)這種訓(xùn)練模式?;诒粍涌祻?fù)訓(xùn)練模式,利用輔助設(shè)備開發(fā)了一種主動式康復(fù)訓(xùn)練,即實(shí)時監(jiān)測上肢運(yùn)動情況,機(jī)器人自主帶動患者進(jìn)行康復(fù)訓(xùn)練。
圖5 康復(fù)機(jī)器人系統(tǒng)原理圖
通過對腦卒中患者的犯病特征和上肢的異常運(yùn)動的深入觀察,閱讀和查詢了大量相關(guān)文獻(xiàn),重慶醫(yī)科大學(xué)附屬醫(yī)院從醫(yī)學(xué)角度出發(fā),結(jié)合臨床試驗(yàn),分析了患者上肢各個關(guān)節(jié)的運(yùn)動狀況,設(shè)計了一套上肢吃飯動作訓(xùn)練方案,其肩關(guān)節(jié)和肘關(guān)節(jié)的運(yùn)動狀態(tài)如表3所示。
表3 吃飯訓(xùn)練運(yùn)動方案
虛擬現(xiàn)實(shí)(VR)技術(shù)是一門借助計算機(jī)構(gòu)建出一個與現(xiàn)實(shí)環(huán)境十分逼近的虛擬環(huán)境,且支持用戶使用自然的技能親身感受的人機(jī)交互技術(shù)[14-17],其基本特征為3I,即immersion(沉浸)、interaction(交互)和imagination(構(gòu)想)。
虛擬現(xiàn)實(shí)系統(tǒng)中的交互既包括人與系統(tǒng)發(fā)生的交互,還包括虛擬對象間的交互。這兩個層面的交互存在對應(yīng)關(guān)系:首先,用戶的交互行為映射為虛擬環(huán)境中虛擬對象的交互行為;然后,虛擬對象之間生成交互,相互作用,并使得其自身狀態(tài)和環(huán)境狀態(tài)產(chǎn)生變化;最后,用戶根據(jù)對象狀態(tài)變化及其變遷過程,調(diào)整自己的交互行為。設(shè)計了基于Unity3D 引擎的虛擬現(xiàn)實(shí)康復(fù)訓(xùn)練游戲。上肢康復(fù)訓(xùn)練是上肢運(yùn)動功能反復(fù)學(xué)習(xí)的過程,將虛擬現(xiàn)實(shí)技術(shù)融入到上肢康復(fù)訓(xùn)練當(dāng)中,可以提供反復(fù)刺激,促進(jìn)運(yùn)動學(xué)習(xí),并保持所學(xué)習(xí)的技能。虛擬康復(fù)訓(xùn)練游戲具備真正的互動體驗(yàn),使患者在訓(xùn)練中沉浸在一起,并得到積極的反饋。如圖6所示。
圖6 人機(jī)交互康復(fù)訓(xùn)練系統(tǒng)
基于上肢康復(fù)運(yùn)動方案,設(shè)計了上肢康復(fù)機(jī)器人VR系統(tǒng),構(gòu)建了吃飯、梳頭、洗澡、穿衣四個訓(xùn)練運(yùn)動模型,如圖7 所示。模型的制作過程中包括建模、材質(zhì)和動畫環(huán)節(jié)。使用SolidWorks 或proe 等專業(yè)工程建模軟件搭建餐桌、盤子、勺子、食物、手臂等三維模型,但在制作VR內(nèi)容時,過于精細(xì)的模型會占用大量的CPU導(dǎo)致VR展示時幀率過低出現(xiàn)卡頓,使用效果不佳,所以用工業(yè)軟件搭建三維模型后,利用3DMAX進(jìn)行精簡和渲染處理,最后保存的fbx 格式文檔導(dǎo)入Unity3D 進(jìn)行開發(fā)。在Unity3D中給物體增加剛體組件和碰撞體后,仿真系統(tǒng)中的物體就具備碰撞檢測和重力等物理特性。本實(shí)驗(yàn)采用HTC VIVE虛擬設(shè)備,通過VR虛擬頭盔建立虛擬場景空間原點(diǎn),操控手柄基于頭盔建立相對運(yùn)動坐標(biāo)系,各個模塊的空間布局以空間原點(diǎn)為參考點(diǎn)進(jìn)行規(guī)劃,同時,對于部分原始模型可采用二級建模的方式來避免模型面數(shù)較多、布線不合理的問題。
圖7 動態(tài)交互模型
交互性節(jié)點(diǎn):虛擬對象可以通過各自成功匹配的交互節(jié)點(diǎn)建立相應(yīng)的聯(lián)結(jié)約束關(guān)系,是操作行為能夠得以發(fā)生的接口。
在虛擬仿真設(shè)計中,連續(xù)運(yùn)動節(jié)奏的好壞對界面動畫效果產(chǎn)生直接的影響,為保證虛擬動作顯得自然生動,需要嚴(yán)格標(biāo)定動態(tài)模型的節(jié)點(diǎn)坐標(biāo)[18]。
假設(shè)虛擬模型上的點(diǎn)P在場景圖像中的亞像素坐標(biāo)和對應(yīng)的空間三維坐標(biāo)分別為(m,n)和(Xu,Yu,Zu)。通過式(5)將場景中的亞像素坐標(biāo)來獲得徑向和切向畸變中攝像機(jī)坐標(biāo)的歸一化坐標(biāo)。
其中,ax、ay為虛擬場景中圖像坐標(biāo)系在X軸和Y軸的尺度因子;xd(1)、xd(2)為進(jìn)行歸一化的虛擬場景X、Y軸向坐標(biāo)點(diǎn);m0、n0為虛擬場景中心像素坐標(biāo)。對歸一化處理后的動畫場景圖像坐標(biāo)xn,經(jīng)過多次迭代實(shí)現(xiàn)徑向和切向畸變補(bǔ)償,當(dāng)xn對應(yīng)的初始估計值為xd,通過來表示xn,利用式(5)聯(lián)合求解得到歸一化處理后的動態(tài)坐標(biāo)xn,表示為:
式(6)中的?1和?2分別為切線畸變值,k為徑向畸變值,通過xn與?、k的多次迭代,獲得收斂的xn值,由于xn為線性模型中攝像機(jī)坐標(biāo)系的歸一坐標(biāo),當(dāng)攝像機(jī)測量的現(xiàn)場坐標(biāo)為(Xc,Yc,Zc),通過公式實(shí)現(xiàn)場景三維坐標(biāo)系和攝像坐標(biāo)系的轉(zhuǎn)化:
其中,t 和R 分別為攝像機(jī)外部平移向量和對應(yīng)的選擇矩陣,通過上式獲得動畫場景中節(jié)點(diǎn)的深度值。
由上述分析中,當(dāng)知道節(jié)點(diǎn)在虛擬場景中的各坐標(biāo)分量,通過對攝像機(jī)坐標(biāo)系的歸一化處理,得到上肢運(yùn)動坐標(biāo)與虛擬運(yùn)動坐標(biāo)的轉(zhuǎn)化,進(jìn)而將捕捉到關(guān)鍵點(diǎn)的空間坐標(biāo)位置轉(zhuǎn)化為由一系列動畫幀組成的運(yùn)動序列,如圖8為運(yùn)動捕捉模塊,即在一個連續(xù)事件上追蹤關(guān)節(jié)點(diǎn)運(yùn)動,描述三維空間運(yùn)動過程,創(chuàng)建三維人物骨骼動畫源文件。
圖8 運(yùn)動捕捉模塊
為獲得患者上肢在空間中的運(yùn)動坐標(biāo),實(shí)驗(yàn)室使用了Nokov(度量)光學(xué)三維動作捕捉系統(tǒng)如圖9所示。
圖9 康復(fù)運(yùn)動信號采集
通過標(biāo)定,確定三維空間的原點(diǎn)位置,構(gòu)建三維空間坐標(biāo)體系:每個紅外鏡頭都會拍一個2D圖像,其中至少有兩個鏡頭拍到同一個點(diǎn),才會呈現(xiàn)出3D效果,并測出其空間坐標(biāo),拍攝鏡頭越多,坐標(biāo)位置越精確。完成標(biāo)定后,紅外攝像頭拍攝到熒光點(diǎn)的運(yùn)動即為在控制器作用下的腕關(guān)節(jié)和肘關(guān)節(jié)的運(yùn)動,生成.trc 格式的三維數(shù)據(jù)跟蹤文件。
柔性上肢康復(fù)機(jī)器人進(jìn)行被動訓(xùn)練后,患者上肢具有一定的自主能力,但與正常人相比,患者上肢的自主運(yùn)動不夠連續(xù),主動運(yùn)動的速度達(dá)不到康復(fù)運(yùn)動速度,因此,在對患者上肢進(jìn)行主動康復(fù)訓(xùn)練時,柔性上肢康復(fù)機(jī)器人應(yīng)該對康復(fù)運(yùn)動進(jìn)行補(bǔ)償,如圖10所示。
圖10 運(yùn)動補(bǔ)償流程圖
利用大量的患者上肢康復(fù)過程中訓(xùn)練數(shù)據(jù),擬定適合患者上肢運(yùn)動的速度是V0。柔性上肢康復(fù)機(jī)器人進(jìn)行主動康復(fù)訓(xùn)練,通過NOKOV動作捕捉系統(tǒng)實(shí)時測量上肢在運(yùn)動空間的位置變化參數(shù)。在CPAC控制器里,計算動作捕捉系統(tǒng)中每一幀的空間坐標(biāo)變化量(V),并且與擬定的速度(V0)進(jìn)行比較。當(dāng)測得患者上肢運(yùn)動速度V<V0時,表示患者自主運(yùn)動能力不足,需要在康復(fù)機(jī)器人的牽引下進(jìn)行運(yùn)動訓(xùn)練,因此,CPAC控制發(fā)出脈沖信號,驅(qū)動末端執(zhí)行機(jī)構(gòu),使得繩索牽引上肢運(yùn)動。當(dāng)上肢運(yùn)動速度V≥V0時,表示患者能夠自主運(yùn)動,故末端執(zhí)行機(jī)構(gòu)跟隨上肢,做主動運(yùn)動。
當(dāng)獲取上肢運(yùn)動空間坐標(biāo)位置后,利用Unity3D軟件的SDK數(shù)據(jù)插件讀取空間坐標(biāo)位置并轉(zhuǎn)化為虛擬動態(tài)模型節(jié)點(diǎn)坐標(biāo)系,實(shí)現(xiàn)虛擬現(xiàn)實(shí)運(yùn)動交互。
患者戴上VR頭盔,握住操控手柄,康復(fù)機(jī)器人處于初始狀態(tài),此時Unity3D中的空間原點(diǎn)與硬件驅(qū)動傳過來的點(diǎn)進(jìn)行匹配,使得虛擬環(huán)境中的手臂位置與患者坐的位置保持一致。通過配套的兩個紅外攝像頭對手柄進(jìn)行定位,即測量康復(fù)機(jī)器人末端位置。獲取數(shù)據(jù)后,通過驅(qū)動接口傳入Unity3D軟件,實(shí)現(xiàn)虛擬手臂跟隨運(yùn)動,如圖11所示。
圖11 VR訓(xùn)練裝置
患者和虛擬現(xiàn)場場景中的交互,不僅通過虛擬場景觀察手臂的實(shí)時運(yùn)動效果,同時可以檢測到任務(wù)動作路徑的規(guī)范性和有效性。本文通過患者的坐姿特征,在場景嘴的同等高度下設(shè)置了碰撞檢測體,實(shí)現(xiàn)碰撞功能提高吃飯訓(xùn)練動作的仿真度,驗(yàn)證吃飯動作的準(zhǔn)確度,如圖12所示。
圖12 碰撞檢測體
在虛擬場景中,結(jié)合患者的視覺特征,碰撞檢測體設(shè)置在機(jī)器人視覺正下方,替代患者的嘴,通過刀叉食物的實(shí)時狀態(tài),判斷吃飯訓(xùn)練動作的準(zhǔn)確性和可行度。
本虛擬現(xiàn)實(shí)系統(tǒng)的碰撞檢測算法采用層次包圍盒算法。在Unity3D 中,根據(jù)手柄與周圍物體間的碰撞形式:進(jìn)入碰撞與未發(fā)生碰撞的臨界狀態(tài)、碰撞發(fā)生中、脫離碰撞狀態(tài),會分別調(diào)用On Collision Enter() 、On Collision Stay()、On Collision Exit()三個函數(shù)[19],將碰撞時所要執(zhí)行的邏輯分別加入到這三個函數(shù)中,從而實(shí)現(xiàn)碰撞檢測功能,完成吃飯訓(xùn)練,如圖13所示。
圖13 碰撞檢測試驗(yàn)
當(dāng)食物在靠近嘴時,程序檢測到碰撞發(fā)生,將虛擬場景中的食物顏色由黃色變?yōu)榍嗌?,脫離碰撞狀態(tài)后,食物消失,這表明本虛擬現(xiàn)實(shí)系統(tǒng)具有碰撞功能,并驗(yàn)證了吃飯訓(xùn)練完成。
虛擬現(xiàn)實(shí)技術(shù)和柔性上肢康復(fù)機(jī)器人中的聯(lián)合驅(qū)動,為患者在康復(fù)過程中提供了有效的康復(fù)訓(xùn)練,增強(qiáng)了患者進(jìn)行康復(fù)訓(xùn)練的主動性和趣味性。虛擬現(xiàn)實(shí)技術(shù)在柔性上肢康復(fù)機(jī)器人的應(yīng)用主要包括:
(1)柔性上肢康復(fù)機(jī)器人復(fù)合訓(xùn)練動作設(shè)計,驗(yàn)證康復(fù)運(yùn)動訓(xùn)練的可行性。
(2)結(jié)合康復(fù)機(jī)器人運(yùn)動域,運(yùn)用3DMAX和Unity3D軟件搭建上肢康復(fù)運(yùn)動場景。
(3)標(biāo)定上肢運(yùn)動節(jié)點(diǎn)坐標(biāo),通過引入交互節(jié)點(diǎn)實(shí)現(xiàn)運(yùn)動場景的坐標(biāo)系和攝像坐標(biāo)系的轉(zhuǎn)化,完成虛擬動態(tài)模型交互。
(4)設(shè)置碰撞檢測體,完成碰撞檢測試驗(yàn),實(shí)證吃飯動作訓(xùn)練,完善柔性上肢康復(fù)機(jī)器人虛擬現(xiàn)實(shí)交互功能。