劉 磊,李繼婷
(北京航空航天大學(xué)虛擬現(xiàn)實(shí)技術(shù)與系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室,北京 100191)
手的運(yùn)動(dòng)能力是人類日常生活和工作得以順利進(jìn)行的基本保障。損傷和疾病容易造成手運(yùn)動(dòng)功能傷害[1]。iHandRehab[2]結(jié)合機(jī)器人技術(shù)與虛擬現(xiàn)實(shí)技術(shù)對(duì)手功能障礙患者進(jìn)行康復(fù)訓(xùn)練以降低人力成本和增加趣味性。目前iHandRehab初步實(shí)現(xiàn)了主動(dòng)、被動(dòng)、主動(dòng)助力和抗阻4種模式下的康復(fù)訓(xùn)練任務(wù)[3-4]。主動(dòng)模式下患者需要通過康復(fù)機(jī)器人帶動(dòng)虛擬環(huán)境中的虛擬手與物體交互完成康復(fù)任務(wù)。
如何實(shí)時(shí)逼真地模擬虛擬手與物體的交互一直是人機(jī)交互領(lǐng)域的研究熱點(diǎn)。早期研究主要集中在虛擬手的模型建立和姿態(tài)控制,目前利用角度傳感器采集人手各關(guān)節(jié)的運(yùn)動(dòng)數(shù)據(jù),基本可以實(shí)現(xiàn)剛性虛擬手抓取剛性物體時(shí)的交互仿真[5-7],但是二者接觸時(shí)始終保持相對(duì)靜止,與真實(shí)場景尚有較大差別。隨著研究的逐漸深入,變形問題得到重視[8-11]。Wan[9]提出利用SSD方法,根據(jù)各關(guān)節(jié)對(duì)皮膚層的影響權(quán)重計(jì)算虛擬手的變形。Garre[11]耦合骨骼層和肌肉層計(jì)算手的外部形變,其中肌肉層的變形采用FEM方法。從掌握的文獻(xiàn)資料來看,研究者更側(cè)重虛擬手關(guān)節(jié)轉(zhuǎn)動(dòng)引起的手指整體形變,尚未探討如何解決接觸物體所導(dǎo)致的局部變形。
iHandRehab結(jié)合機(jī)器人技術(shù)與虛擬現(xiàn)實(shí)技術(shù)對(duì)患者的食指和拇指進(jìn)行運(yùn)動(dòng)康復(fù)訓(xùn)練??祻?fù)環(huán)境中建立的虛擬手模型需要跟隨人手運(yùn)動(dòng),同時(shí)滿足視覺上的真實(shí)性要求。虛擬手建模主要包括幾何建模和運(yùn)動(dòng)學(xué)建模兩個(gè)部分。
虛擬手的幾何建模主要考慮模型的逼真性以及對(duì)后續(xù)碰撞檢測效率的影響。虛擬手的幾何模型是在3DS Max圖形軟件中建立的,食指和拇指均分成3個(gè)指節(jié)并且相互獨(dú)立。3個(gè)指節(jié)從手指與手掌連接處開始依次稱為近端指節(jié)、中間指節(jié)和遠(yuǎn)端指節(jié)。相鄰指節(jié)連接處使用半球狀突起以避免相鄰模型轉(zhuǎn)動(dòng)導(dǎo)致斷裂。
手的運(yùn)動(dòng)學(xué)簡化模型見圖1。食指具有3個(gè)屈曲關(guān)節(jié)(MCP1、PIP、DIP)和1個(gè)側(cè)擺關(guān)節(jié)(MCP2),拇指具有3個(gè)屈曲關(guān)節(jié)(CMC1、MP、IP)和1個(gè)側(cè)擺關(guān)節(jié)(CMC2)。手指可以簡化為3個(gè)串聯(lián)的指節(jié)的運(yùn)動(dòng)組合,各個(gè)關(guān)節(jié)轉(zhuǎn)動(dòng)帶動(dòng)手指完成屈曲/伸展和內(nèi)收/外展運(yùn)動(dòng)。虛擬手的運(yùn)動(dòng)是以上述模型為基礎(chǔ),通過調(diào)整各個(gè)指節(jié)的姿態(tài)矩陣實(shí)現(xiàn)。
圖1 食指、拇指運(yùn)動(dòng)學(xué)簡化模型
按照以下原則建立各指節(jié)的局部右手坐標(biāo)系:指節(jié)上關(guān)節(jié)轉(zhuǎn)動(dòng)軸的中心點(diǎn)為原點(diǎn),指節(jié)延長線方向?yàn)閄軸,屈曲/伸展運(yùn)動(dòng)的關(guān)節(jié)轉(zhuǎn)動(dòng)軸為Z軸。以食指為例,近端指節(jié)、中間指節(jié)、遠(yuǎn)端指節(jié)的姿態(tài)矩陣分別標(biāo)記為,長度分別表示為 lr、lm、lt。3 個(gè)指節(jié)的姿態(tài)矩陣的計(jì)算見式(1)。Rot代表繞坐標(biāo)軸的旋轉(zhuǎn),Trans代表沿坐標(biāo)軸的平移。
通過鍵盤或傳感器控制各關(guān)節(jié)的旋轉(zhuǎn)角度,可以調(diào)整各個(gè)指節(jié)的姿態(tài)矩陣,進(jìn)而實(shí)現(xiàn)虛擬手在自由空間的運(yùn)動(dòng)。
虛擬手的運(yùn)動(dòng)狀態(tài)分為自由運(yùn)動(dòng)和接觸物體2種,虛擬抓持涉及2種狀態(tài)的相互轉(zhuǎn)換。本文采用2組虛擬手模型,Haptichand記錄手指的真實(shí)運(yùn)動(dòng)數(shù)據(jù)并時(shí)刻處于自由運(yùn)動(dòng)狀態(tài),Graphichand用來模擬人手從自由運(yùn)動(dòng)到接觸物體再到自由運(yùn)動(dòng)的完整過程。
實(shí)際人手抓持物體時(shí),如果手指的某一指節(jié)與物體接觸,其前端指節(jié)繼續(xù)活動(dòng),后端指節(jié)與物體保持相對(duì)靜止。因此graphichand各個(gè)指節(jié)必須在滿足表1的約束條件基礎(chǔ)上才能按照式(1)計(jì)算姿態(tài),其運(yùn)動(dòng)指節(jié)與haptichand相同指節(jié)的旋轉(zhuǎn)角度一致。
圖2 虛擬抓持流程圖
虛擬抓持的程序流程見圖2,其中的碰撞檢測環(huán)節(jié)可以求得指節(jié)上嵌入物體內(nèi)部的幾何頂點(diǎn)數(shù)N。判斷指節(jié)與物體發(fā)生接觸的條件是N≥Nmax(Nmax是自定義的最大嵌入點(diǎn)數(shù)目)。當(dāng)graphichand上的指節(jié)滿足0≤N≤Nmax時(shí),計(jì)算該指節(jié)在接觸區(qū)域的局部變形。需要特殊說明的情況是,在按照表1初步確定graphichand位姿時(shí),以haptichand相同的指節(jié)是否與物體接觸為參考。
表1 指節(jié)運(yùn)動(dòng)約束關(guān)系
實(shí)際抓持剛性物體時(shí)人手受到接觸力發(fā)生局部變形,變形后的手指與物體表面貼合。虛擬手指節(jié)與虛擬物體的接觸即兩個(gè)幾何體在空間內(nèi)發(fā)生碰撞,變形表現(xiàn)為指節(jié)上幾何點(diǎn)的移動(dòng)。通過碰撞檢測計(jì)算虛擬手指節(jié)與物體接觸時(shí)的嵌入信息,以此為依據(jù)確定局部變形量,與圖2的graphichand變形計(jì)算相對(duì)應(yīng)。
圖3 點(diǎn)殼-距離場碰撞檢測示意圖
虛擬手的指節(jié)和物體在碰撞檢測過程中分別采用點(diǎn)殼模型和距離場模型[12],模型構(gòu)建基礎(chǔ)是3DS Max軟件中建立的三角面片模型。如圖3所示,點(diǎn)殼由n個(gè)頂點(diǎn)組成,點(diǎn)i的位置Pi和法線Ni與面片模型上對(duì)應(yīng)的幾何頂點(diǎn)的位置和法線相同。距離場模型是由面片模型體素化得到的,包含m個(gè)邊長相同的體素單元。體素單元k存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)的信息主要有距離標(biāo)量值dk和單位向量Ek,|dk|·Ek表示體素單元的中心距離模型表面的最近矢量。
圖4 指節(jié)與物體的碰撞檢測模型
進(jìn)行碰撞檢測時(shí),依次把點(diǎn)殼上的點(diǎn)i(i=0,1,...,n -1)位置Pi轉(zhuǎn)化到距離場模型的坐標(biāo)系中,求得距離場內(nèi)部包含Pi的體素單元。如果包含Pi的體素單元k中dk<0,則表示該點(diǎn)位于距離場內(nèi)部,|dk|·Ek約等于Pi到距離場表面的最近矢量。為提高碰撞檢測效率,本文采用軸向包圍盒(AABB)[13]對(duì)單個(gè)指節(jié)與物體的碰撞檢測進(jìn)行預(yù)處理。只有點(diǎn)殼和距離場的AABB相交,才按上述方法尋找嵌入到距離場內(nèi)部的幾何點(diǎn),否則直接斷定二者不相交。單個(gè)指節(jié)與物體的碰撞檢測模型見圖4。
由上可知,通過碰撞檢測可以獲得碰撞點(diǎn)的數(shù)目以及包含碰撞點(diǎn)i的體素單元k。Di和P'i分別表示碰撞點(diǎn)i的變形量和變形后點(diǎn)的位置,可按式(2)進(jìn)行計(jì)算。代表Ek在點(diǎn)殼坐標(biāo)系中的值。
因?yàn)榕鲎颤c(diǎn)的變形量Di即該點(diǎn)到距離場模型表面的矢量值,所以變形后的碰撞點(diǎn)一定位于距離場的模型表面。
為了驗(yàn)證模型的可行性,在Windows XP系統(tǒng)下使用Microsoft Visual Studio 2008建立基于OpenGL的虛擬場景。實(shí)驗(yàn)平臺(tái)的硬件配置為Intel Duo CPU 2.99GHz/2G RAM。操作者通過鍵盤控制虛擬手食指和拇指的關(guān)節(jié)轉(zhuǎn)動(dòng),虛擬手的其他部分和物體保持靜止。圖5(a)是處于抓持狀態(tài)的虛擬手,圖5(b)是指節(jié)變形效果圖。
圖5 實(shí)驗(yàn)效果圖
逼真性和快速性是衡量虛擬抓持效果的2個(gè)重要因素。Graphichand準(zhǔn)確反映了人手抓持與釋放剛性物體時(shí)的姿態(tài),但指節(jié)變形的逼真性目前還沒有可以量化的指標(biāo),只能通過操作者主觀的視覺感受來判斷。
碰撞檢測和變形的總耗時(shí)不超過4ms,能夠滿足系統(tǒng)穩(wěn)定性的要求。haptichand與graphichand分別需要與物體進(jìn)行6次碰撞檢測才能確定虛擬手的最終姿態(tài),占用了程序執(zhí)行的絕大部分時(shí)間。單個(gè)指節(jié)與物體的碰撞檢測時(shí)間與點(diǎn)殼上點(diǎn)的數(shù)目存在線性關(guān)系。
針對(duì)iHandRehab康復(fù)系統(tǒng)主動(dòng)模式訓(xùn)練的應(yīng)用需求,解決了虛擬手抓持剛性物體時(shí)的姿態(tài)控制和局部變形。虛擬手模型中食指和拇指各具有4個(gè)DOF,可以完成屈曲/伸展和內(nèi)收/外展的運(yùn)動(dòng)。虛擬手接觸物體時(shí)的局部變形根據(jù)碰撞檢測結(jié)果來計(jì)算,變形后的指節(jié)與物體表面緊密貼合,程序更新頻率約為300Hz。
后續(xù)工作主要包括以下2個(gè)部分:(1)完善虛擬手的幾何形狀,同時(shí)增加紋理貼圖,進(jìn)一步提高虛擬手在圖形顯示中的逼真性;(2)把現(xiàn)有的研究應(yīng)用到iHandRehab系統(tǒng),通過手康復(fù)機(jī)器人采集真實(shí)人手運(yùn)動(dòng)數(shù)據(jù)來控制虛擬手的運(yùn)動(dòng),真正實(shí)現(xiàn)虛擬手抓持物體的交互仿真。
[1]陶泉.手部損傷康復(fù)[M].上海:上海交通大學(xué)出版社,2006.
[2]Li Jiting,Zheng Ruoyin,Zhang Yuru,et al.iHandRehab:An interactive hand exoskeleton for active and passive rehabilitation[C]//IEEE International Conference on Rehabilitation Robotics.2011:1-6.
[3]王舉.人手運(yùn)動(dòng)功能康復(fù)機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京航空航天大學(xué),2010.
[4]王爽.人手運(yùn)動(dòng)功能康復(fù)機(jī)器人控制方法研究[D].北京:北京航空航天大學(xué),2011.
[5]安明,陳善廣,劉玉慶.基于數(shù)據(jù)手套的虛擬手精確建模的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2010,27(1):241-244.
[6]Borst C W,Indugula A P.Realistic virtual grasping[C]//Virtual Reality,IEEE Annual International Symposium.2005:91-98.
[7]陳軍.基于雙目視覺及數(shù)據(jù)手套的虛擬手勢交互平臺(tái)的研究與設(shè)計(jì)[D].北京:北京郵電大學(xué),2011.
[8]Tong C,Jing X,Aiguo S.Simulation of grasping deformable objects with a virtual human hand[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems.2008:3965-3970.
[9]Wan H,Chen F,Han X.A 4-layer flexible virtual hand model for haptic interaction[C]//Proceedings of the 2009 IEEE International Conference on Virtual Environments,Human-Computer Interfaces and Measurement Systems.2009:185-190.
[10]Feng Miao,Li Jiting.Real-time deformation simulation of hand-object interaction[C]//2011 IEEE Conference on Robotics,Automation and Mechatronics.2011:154-157.
[11]Garre C,Hernandez F,Gracia A,et al.Interactive simulation of a deformable hand for haptic rendering[C]//2011 IEEE World Haptics Conference.2011:239-244.
[12]Barbic J.Real-Time Reduced Nonlinear Deformable Objects for Computer Graphics and Haptics[D].PhD Dissertation,Computer Science Dept.,Carnegie Mellon Univ.,2007.
[13]Christer Ericson.實(shí)時(shí)碰撞檢測算法技術(shù)[M].北京:清華大學(xué)出版社,2010.