郭曉春,程明智,劉 龍
(北京印刷學(xué)院新媒體學(xué)院,北京 102600)
食品加工仿真交互系統(tǒng)是虛擬現(xiàn)實(shí)(Virtual Reality,VR)技術(shù)快速發(fā)展的結(jié)果,它能夠讓用戶在計(jì)算機(jī)創(chuàng)造的虛擬環(huán)境中對(duì)虛擬的仿真物體進(jìn)行交互來達(dá)到訓(xùn)練的目的。此系統(tǒng)一方面擺脫了傳統(tǒng)食品加工培訓(xùn)中大型場地和專業(yè)設(shè)備的限制,節(jié)約了培訓(xùn)成本;另一方面,新穎的虛擬現(xiàn)實(shí)培訓(xùn)方式和交互方式能夠極大地調(diào)動(dòng)學(xué)生的學(xué)習(xí)熱情,提高學(xué)習(xí)效率,增強(qiáng)學(xué)生的實(shí)踐能力,并對(duì)學(xué)生的創(chuàng)新能力和工程實(shí)踐能力有促進(jìn)作用。
然而,常見的食品加工仿真系統(tǒng)中用戶與仿真物體交互過程中,交互系統(tǒng)通常使用VR設(shè)備中默認(rèn)的手柄模型,這導(dǎo)致一系列用戶沉浸感降低的問題[1]。影響用戶沉浸感的其中一個(gè)重要問題是穿模, Taeho Kim等[2]提出虛擬手柄位置穿模會(huì)打破隱喻,提出了分層邊界球方法,根據(jù)用戶和物體的角度調(diào)整手柄位置,并利用帶有抓取隱喻的手柄進(jìn)行三維對(duì)象操控。將默認(rèn)的手柄模型替換成更加真實(shí)的虛擬手能夠加強(qiáng)抓取隱喻,同時(shí),虛擬手生成的抓取姿態(tài)是用戶對(duì)交互的直觀認(rèn)識(shí),Alkemade[3]的研究將三維空間中對(duì)物體不同的交互需求進(jìn)行了分類,王曉媛等[4]提出的算法,通過反向動(dòng)力學(xué)技術(shù),能魯棒地生成穩(wěn)定且自然的抓取姿態(tài),從而提升抓取姿態(tài)的準(zhǔn)確性和穩(wěn)定性,能夠顯著提高用戶的沉浸感和交互感。Aristidou[5]從前向計(jì)算和 IK 的定義開始,列出數(shù)學(xué)公式并解釋了如何區(qū)分無法解決的案例,指出何時(shí)有解決方案可用。李澍等[6]通過建立虛擬手結(jié)構(gòu)模型和采用狀態(tài)變換描述抓取過程,實(shí)現(xiàn)了未被抓取和被抓取時(shí)的模型運(yùn)動(dòng)控制,對(duì)逆運(yùn)動(dòng)學(xué)循環(huán)坐標(biāo)下降算法進(jìn)行改進(jìn)并結(jié)合正向運(yùn)動(dòng)學(xué)方法調(diào)整手指姿態(tài),解決了手指穿透問題。
因此,本文將默認(rèn)的手柄模型替換成更加真實(shí)的虛擬手,提出基于虛擬手的食品加工仿真交互系統(tǒng)。本文根據(jù)食品加工仿真交互的需求對(duì)系統(tǒng)進(jìn)行整體架構(gòu)設(shè)計(jì),將系統(tǒng)分為資源管理、流程管理、學(xué)習(xí)、實(shí)訓(xùn)和交互模塊,通過模型認(rèn)知交互技術(shù)、虛擬手選取和穩(wěn)定動(dòng)作生成技術(shù),提高用戶在食品加工仿真系統(tǒng)中的沉浸感。
本系統(tǒng)根據(jù)食品加工仿真學(xué)習(xí)的應(yīng)用性、實(shí)踐性和沉浸感需求,系統(tǒng)通過資源管理模塊進(jìn)行信息的檢索、存儲(chǔ)和展示,通過流程管理模塊進(jìn)行系統(tǒng)行為的控制和場景切換。根據(jù)Xu,Zhili[7]的研究,交互系統(tǒng)應(yīng)考慮到交互反饋?;贖TC VIVE虛擬現(xiàn)實(shí)設(shè)備,通過其手柄對(duì)交互模塊進(jìn)行指令輸入,用戶通過基于虛擬手技術(shù)的交互模塊,進(jìn)入學(xué)習(xí)模塊和實(shí)訓(xùn)模塊對(duì)食品加工知識(shí)進(jìn)行學(xué)習(xí),整體架構(gòu)如圖1所示。學(xué)習(xí)模塊包括:(1)對(duì)食品加工流程中各種食材的認(rèn)知學(xué)習(xí)、食材處理方法及其不同的用途等;(2)對(duì)特定食材加工流程的學(xué)習(xí)。實(shí)訓(xùn)模塊包括:(1)應(yīng)用學(xué)習(xí)模塊的知識(shí),在特定場景中按照食品加工流程進(jìn)行實(shí)操訓(xùn)練。(2)對(duì)用戶實(shí)際操作的準(zhǔn)確性進(jìn)行評(píng)分與考核。
圖1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)的用戶界面交互模塊包括兩部分內(nèi)容,分別是虛擬手交互系統(tǒng)和UI交互系統(tǒng)。其中虛擬手交互系統(tǒng)是指用戶在虛擬現(xiàn)實(shí)環(huán)境中通過虛擬的手模型與場景中的游戲物體進(jìn)行更為真實(shí)的交互,這一系統(tǒng)解決了傳統(tǒng)食品加工仿真交互系統(tǒng)中穿模以及不穩(wěn)定的問題,是本文的核心內(nèi)容。通過UI交互模塊,用戶可以在虛擬環(huán)境中瀏覽特定物體的包含文字、圖片和視頻在內(nèi)的知識(shí)信息,增強(qiáng)學(xué)習(xí)效果。
食品加工相關(guān)食材和工具認(rèn)知是本系統(tǒng)學(xué)習(xí)模塊的重要功能。學(xué)習(xí)模塊通過資源管理模塊加載與顯示對(duì)應(yīng)食品加工模型,通過交互模塊控制模型的旋轉(zhuǎn)、大小與縮放,通過UI系統(tǒng)中的信息面板顯示認(rèn)知學(xué)習(xí)所需的文字、圖片、視頻等信息,通過交互系統(tǒng)進(jìn)行交互。
圖2展示了對(duì)爐灶的認(rèn)知學(xué)習(xí)過程,用戶通過一條從虛擬手指延伸出的射線選中爐灶模型開關(guān)部分,放大刻度線部分輔助認(rèn)知,獲取信息。部分選取物體識(shí)別邏輯如下:
圖2 射線交互選取
用戶在實(shí)訓(xùn)模塊對(duì)虛擬物體的交互流程中,基于虛擬手的仿真交互系統(tǒng)按照虛擬手選取、基于CCD算法的動(dòng)作生成2個(gè)階段進(jìn)行。
在三維空間中,用戶通過虛擬手選取物體進(jìn)行交互,準(zhǔn)確選取物體并將虛擬手移動(dòng)到自然的抓取位置是需要解決的問題。HTC VIVE手柄設(shè)備扳機(jī)按鍵具有線性按鍵和實(shí)體按鍵的特點(diǎn),結(jié)合韓旭[8]的研究,將用戶的操作定義成選取、抓取和按下三種判定方法,通過手掌選擇物體預(yù)測、手掌抓取位置預(yù)測和物體的相對(duì)位置,使用物理方法和閾值法進(jìn)行二次判定。
圖3 用戶交互流程
手掌選擇物體預(yù)測方法是通過手掌中心發(fā)射圓球狀的錐形射線組,將所有通過碰撞檢測的結(jié)果平均后,通過距離閾值比較進(jìn)行。同時(shí),這一步將決定手掌的朝向,并確定手掌抓取位置。首先,設(shè)掌心選取起始點(diǎn)為Plam(0,0,0),掌心方向?yàn)镻lam的z軸正方向,創(chuàng)立以Plam為圓心,半徑r=1的球,設(shè)兩個(gè)平均的隨機(jī)數(shù)ξ1,ξ2∈(0,1)。從Plam正方向選取立體角α∈(0,π/2),設(shè)球坐標(biāo)系下的坐標(biāo)θ,?。求這個(gè)球面范圍上隨機(jī)一點(diǎn)P(x,y,z)。根據(jù)三角函數(shù)關(guān)系,可得各參數(shù)為:
圖4 N=100采樣線可視化
圖5 獲取平均結(jié)果
在這個(gè)階段中,用戶的輸入為手柄的位置、旋轉(zhuǎn)信息和扳機(jī)的按壓插值。系統(tǒng)輸出虛擬手的位置、旋轉(zhuǎn)信息和手指彎曲。同時(shí)可以計(jì)算手指與物體的接觸點(diǎn)。利用采樣線,我們可以快速確定用戶的抓取對(duì)象,并自然地將手部貼合到抓取位置上,在給用戶抓取隱喻的同時(shí),還為抓取動(dòng)作生成提供了基礎(chǔ)。
循環(huán)坐標(biāo)下降(Cyclic Coordinate Descent,CCD)算法是反向動(dòng)力學(xué)算法的一種,被廣泛用于游戲工業(yè)中,CCD算法是一種啟發(fā)式算法,每次關(guān)節(jié)迭代計(jì)算成本低,無需矩陣操作即可快速解決IK問題。虛擬手可以看作多個(gè)骨骼關(guān)節(jié)的組合,組合中一般有三根骨骼、三個(gè)關(guān)節(jié),每一根手指對(duì)應(yīng)一個(gè)骨骼關(guān)節(jié)組合。在單個(gè)手指骨骼關(guān)節(jié)組合中,循環(huán)坐標(biāo)下降算法的一般迭代過程為:
步驟一:從末端關(guān)節(jié)連接的父關(guān)節(jié)A開始,計(jì)算末端關(guān)節(jié)與目標(biāo)末端關(guān)節(jié)位置與該關(guān)節(jié)形成的夾角,旋轉(zhuǎn)關(guān)節(jié);
步驟二:若旋轉(zhuǎn)后的末端關(guān)節(jié)未達(dá)到目標(biāo),則以A的父關(guān)節(jié)開始重復(fù)步驟一;
步驟三:如果到達(dá)根關(guān)節(jié)仍未將末端關(guān)節(jié)達(dá)到目標(biāo),則結(jié)束一次迭代,重復(fù)步驟一和步驟二,進(jìn)入下一次迭代。
CCD算法需要指定目標(biāo)位置點(diǎn),本文將每個(gè)手指結(jié)構(gòu)加入到物理計(jì)算中,手指的自然收縮判斷指尖物理碰撞停止位置作為目標(biāo)位置點(diǎn)。從虛擬手交互選取步驟得到的位置進(jìn)行抓取動(dòng)作生成,能夠顯著減少動(dòng)作生成時(shí)因手部原點(diǎn)變動(dòng)而導(dǎo)致的不穩(wěn)定手勢。
圖6是基于碰撞停止的抓取動(dòng)作,圖7為經(jīng)過CCD算法進(jìn)行抓取動(dòng)作生成的結(jié)果,經(jīng)過對(duì)比,可以看到在正確選擇目標(biāo)點(diǎn)后,通過CCD算法生成的手部動(dòng)作更自然。
圖6 基于碰撞停止的抓取動(dòng)作
圖7 優(yōu)化后抓取動(dòng)作
本文針對(duì)交互沉浸不足問題,通過引入虛擬手交互系統(tǒng),對(duì)VR環(huán)境下基于虛擬手的食品加工仿真交互系統(tǒng)進(jìn)行研究,根據(jù)食品加工仿真交互的需求進(jìn)行了系統(tǒng)的整體設(shè)計(jì),通過模型認(rèn)知交互、虛擬手交互等關(guān)鍵技術(shù),能在HTC VIVE設(shè)備上穩(wěn)定生成手勢,提高用戶在交互中的沉浸感和準(zhǔn)確性。但是,本系統(tǒng)對(duì)凹面物體手勢生成的點(diǎn)位選取方面存在一定不足,對(duì)交互時(shí)動(dòng)態(tài)生成的不規(guī)則物體的選取精準(zhǔn)度還有一定缺陷,如何對(duì)食品加工模型進(jìn)行形狀手勢分類也是未來值得深入研究的問題。