張雁鵬,陳世均,高建勇
(蘇州熱工研究院有限公司 設(shè)備管理部,廣東 深圳 518028 )
虛擬現(xiàn)實(shí)(VR,virtual reality)設(shè)備是一種頭戴式設(shè)備,允許用戶(hù)通過(guò)顯示立體視覺(jué)圖像與三維虛擬現(xiàn)實(shí)環(huán)境進(jìn)行交互。該設(shè)備可以分析用戶(hù)的頭部狀態(tài),并在虛擬現(xiàn)實(shí)世界中調(diào)整虛擬攝像機(jī)的位置,以增強(qiáng)沉浸感。隨著VR技術(shù)的發(fā)展,基于這項(xiàng)技術(shù)的教育和培訓(xùn)越來(lái)越流行[1-7]。
使用虛擬現(xiàn)實(shí)進(jìn)行教育和培訓(xùn)可以與使用二維計(jì)算機(jī)輔助教學(xué)模擬相媲美。在每一個(gè)層次的教育中,VR都有發(fā)揮作用的潛力,引導(dǎo)學(xué)習(xí)者獲得新發(fā)現(xiàn),激勵(lì)、激發(fā)學(xué)習(xí)熱情。學(xué)習(xí)者可以在學(xué)習(xí)環(huán)境中獲得一種存在感、一種融入環(huán)境的感覺(jué)。在教育和培訓(xùn)中使用VR的優(yōu)勢(shì)可以總結(jié)為:
1) 沉浸式虛擬現(xiàn)實(shí)提供第一人稱(chēng)非象征體驗(yàn),可以專(zhuān)門(mén)設(shè)計(jì)適應(yīng)于幫助某個(gè)學(xué)生的學(xué)習(xí)材料;
2) 這些體驗(yàn)在常規(guī)教育中無(wú)法獲得。
3) 這種體驗(yàn)構(gòu)成了我們與外界日?;?dòng)的大部分,盡管學(xué)校更提倡第三人稱(chēng)的象征體驗(yàn)。
4)知識(shí)建構(gòu)理論與虛擬現(xiàn)實(shí)技術(shù)的融合,使得學(xué)習(xí)能夠通過(guò)虛擬世界中物體相對(duì)大小的操縱,通過(guò)傳遞其他不易察覺(jué)的信息源,以及通過(guò)具體化迄今為止無(wú)法表達(dá)的抽象概念來(lái)促進(jìn)。
采用外部視覺(jué)跟蹤設(shè)備對(duì)頭部進(jìn)行姿態(tài)測(cè)量和運(yùn)動(dòng)感知[8-9],雖然具有很高的精度,但是無(wú)形之中增加了教學(xué)成本和場(chǎng)地使用的局限性。此外,還需要兩種系統(tǒng)間的通信,難免會(huì)存在時(shí)間上的延遲。將低成本慣性測(cè)量單元(IMU,inertial measurement unit)與VR設(shè)備進(jìn)行剛性連接,然后對(duì)人體頭部姿態(tài)和運(yùn)動(dòng)狀態(tài)進(jìn)行測(cè)量的方式[10-11],可以充分利用IMU中嵌入的加速度計(jì)、陀螺儀以及磁強(qiáng)計(jì)等傳感器對(duì)姿態(tài)和運(yùn)動(dòng)信息進(jìn)行感知,保證了可靠的精度,降低了成本,同時(shí)降低了設(shè)備使用的局限性,提高了使用的獨(dú)立性。
在VR設(shè)備與用戶(hù)的交互設(shè)計(jì)中,最流行的當(dāng)屬體感游戲的設(shè)計(jì)。在基于VR的體感射擊游戲中,文獻(xiàn)[12]中使用原地踏步走(WIP,walking-in-place)來(lái)模擬前進(jìn)運(yùn)動(dòng),這種方式的優(yōu)點(diǎn)在于可以解放使用者的雙手,正如文章標(biāo)題中所示的“無(wú)手交互”,達(dá)到更加逼近真實(shí)體驗(yàn)的效果。大多數(shù)使用WIP方式交互的VR設(shè)備使用硬件(例如跑步機(jī))進(jìn)行步行運(yùn)動(dòng)識(shí)別[13-14]。近年來(lái),僅使用移動(dòng)VR設(shè)備中IMU的研究越來(lái)越多[15-18]。因此,可以借鑒VR體感射擊游戲中WIP技術(shù)的應(yīng)用,輕松實(shí)現(xiàn)教育培訓(xùn)中遇到的動(dòng)態(tài)人機(jī)交互問(wèn)題。
針對(duì)VR設(shè)備與使用者的動(dòng)態(tài)交互問(wèn)題,本文提出了將姿態(tài)感知與步態(tài)識(shí)別相結(jié)合的交互方法,來(lái)實(shí)現(xiàn)虛擬的靠近和躲避。首先,設(shè)計(jì)了基于間接擴(kuò)展卡爾曼濾波器的姿態(tài)感知算法用于感知頭部的姿態(tài),該方法采用多傳感器融合的方法,利用比力和地磁信息對(duì)姿態(tài)角誤差進(jìn)行外部觀(guān)測(cè),進(jìn)而通過(guò)卡爾曼濾波器得到姿態(tài)誤差角的最優(yōu)估計(jì)量,最后對(duì)原始姿態(tài)進(jìn)行補(bǔ)償,實(shí)現(xiàn)了高的姿態(tài)測(cè)量精度;其次,由于原地踏步走時(shí)人體重心會(huì)有起伏,通過(guò)固定滑窗計(jì)算比力的峰值,并根據(jù)峰值大小和相鄰峰值時(shí)間間隔進(jìn)行靜止和行走狀態(tài)的識(shí)別;最終,將計(jì)算出的航向角和固定步長(zhǎng)代入三角函數(shù)公式計(jì)算出虛擬運(yùn)動(dòng)的軌跡,模擬實(shí)現(xiàn)了前進(jìn)與躲避障礙物。
圖1 測(cè)姿算法整體框圖
EKF作為標(biāo)準(zhǔn)卡爾曼濾波器在非線(xiàn)性情況下的推廣,其設(shè)計(jì)的關(guān)鍵在于狀態(tài)方程(時(shí)間更新)和測(cè)量方程(測(cè)量更新)的推導(dǎo)。該濾波方法利用泰勒級(jí)數(shù)展開(kāi)對(duì)非線(xiàn)性狀態(tài)方程和非線(xiàn)性測(cè)量方程進(jìn)行線(xiàn)性化,所以從本質(zhì)上講它也是一種線(xiàn)性卡爾曼濾波的方法,具體詳見(jiàn)文獻(xiàn)[20]。在本文中,我們使用它的間接形式,即先估計(jì)出系統(tǒng)狀態(tài)的最優(yōu)誤差量,然后再對(duì)系統(tǒng)狀態(tài)進(jìn)行補(bǔ)償。
1.1.1 系統(tǒng)誤差狀態(tài)模型
因?yàn)樾枰獙?duì)姿態(tài)進(jìn)行計(jì)算,所以我們?cè)O(shè)定系統(tǒng)狀態(tài)向量xk包含3-D姿態(tài)角φk和陀螺儀零位偏移bω,k,因此有:
(1)
其中:姿態(tài)角φk可以通過(guò)四元數(shù)計(jì)算得到。那么,姿態(tài)角φ(包含俯仰角θ、滾轉(zhuǎn)角γ、偏航角ψ)可以表示為:
(2)
其中:q0q1q2q3表示四元數(shù)矢量的4個(gè)元素。四元數(shù)可以表示為q=q0+q1i+q2j+q3k,其中q0表示四元數(shù)的實(shí)部或標(biāo)量部分,而q1i+q2j+q3k表示虛部或矢量部分。
下一時(shí)刻的旋轉(zhuǎn)四元數(shù)可以通過(guò)四元數(shù)更新方程[19]求得:
(3)
如果只考慮陀螺儀零偏誤差bω,k,角速度真值ωk可由陀螺儀實(shí)際測(cè)量信號(hào)yk得到:
(4)
(5)
緊接著,利用EKF的間接形式,我們可以引入姿態(tài)測(cè)量系統(tǒng)狀態(tài)向量xk的誤差量δxk,最終對(duì)系統(tǒng)狀態(tài)xk進(jìn)行補(bǔ)償。因此,系統(tǒng)的誤差狀態(tài)向量將包含6維元素,即:
δxk=[δφk,δbω,k]T
(6)
其中:δbω,k表示陀螺儀零位偏移誤差,δφk表示姿態(tài)誤差角。
根據(jù)文獻(xiàn)[20]所述,要設(shè)計(jì)擴(kuò)展卡爾曼濾波器的狀態(tài)方程,首先寫(xiě)出誤差狀態(tài)量的微分方程,然后再將其離散化。那么,連續(xù)誤差狀態(tài)方程可以描述為:
(7)
那么,離散化后的誤差狀態(tài)方程為:
(8)
將離散狀態(tài)轉(zhuǎn)移矩陣Φk進(jìn)行一階泰勒級(jí)數(shù)展開(kāi)(相當(dāng)于將非線(xiàn)性模型線(xiàn)性化),保留一階項(xiàng),那么有:
Φk=exp(Fc,kΔt)≈I6×6+Fc,kΔt
(9)
其中:Δt表示IMU的采樣間隔。
1.1.2 系統(tǒng)誤差測(cè)量模型
系統(tǒng)誤差測(cè)量模型可以表示為:
zk=Hδxk+nk
(10)
其中:zk為誤差測(cè)量向量;H為測(cè)量轉(zhuǎn)移矩陣;nk為測(cè)量噪聲的協(xié)方差矩陣。
假定人體運(yùn)動(dòng)的加速度遠(yuǎn)小于重力加速度,通過(guò)比力fk可以求得俯仰角和滾轉(zhuǎn)角,那么有:
(11)
(12)
式中,n系下IMU的滾轉(zhuǎn)角γk和俯仰角θk可以通過(guò)公式(11)求得。
由于地磁北極與地理北極不完全一致,定義地球表面任意點(diǎn)的地磁場(chǎng)強(qiáng)度矢量所在的垂直平面(地磁子午面)與地理子午面的夾角為地磁偏角(D),不同地區(qū)對(duì)應(yīng)有不同的磁偏角。因此地磁航向角可以表示為:
(13)
濾波器更新方程為:
(14)
我們利用比力模值來(lái)進(jìn)行靜止和行走行為的識(shí)別。比力模值的計(jì)算公式為:
(15)
其中:f表示比力矢量(比力表示加速度計(jì)測(cè)量到的包含重力加速度的加速度),fx,fy,fz分別表示3個(gè)軸向的比力分量。
對(duì)計(jì)算所得的比力模值信號(hào)進(jìn)行均值濾波,從而對(duì)信號(hào)進(jìn)行平滑,減小運(yùn)動(dòng)時(shí)振動(dòng)的影響。選取長(zhǎng)度為N的滑窗,計(jì)算窗口中的最大值。當(dāng)該最大值與重力加速度的絕對(duì)值小于某個(gè)范圍時(shí),則認(rèn)為當(dāng)前時(shí)間段內(nèi)為靜止?fàn)顟B(tài);當(dāng)大于這個(gè)范圍且相鄰兩個(gè)滿(mǎn)足條件的峰值的時(shí)間間隔大于某個(gè)時(shí)間時(shí),則認(rèn)為當(dāng)前時(shí)間段內(nèi)為行走狀態(tài),且在當(dāng)前峰值狀態(tài)時(shí)可以用來(lái)進(jìn)行位置的更新。用公式可以表示為:
(16)
圖2 靜止和行走識(shí)別結(jié)果
在計(jì)算虛擬路徑時(shí),僅在檢測(cè)到比力模值峰值時(shí),對(duì)位置進(jìn)行更新。通過(guò)文中第二節(jié)提出的方法,可以判斷出不同峰值時(shí)人體所處的運(yùn)動(dòng)狀態(tài)。針對(duì)不同運(yùn)動(dòng)狀態(tài)對(duì)應(yīng)不同的位置更新公式,如下:
(17)
其中:P表示2D位置矢量;SL表示給定的步長(zhǎng),在本文中采用固定步長(zhǎng);t表示峰值所在的時(shí)間點(diǎn)。該公式可以解釋為:當(dāng)靜止?fàn)顟B(tài)(still)時(shí),說(shuō)明人體沒(méi)有移動(dòng),保持與上一峰值時(shí)相同的位置;當(dāng)行走狀態(tài)(walk)時(shí),利用步長(zhǎng)和航向角,根據(jù)三角函數(shù)關(guān)系計(jì)算出該時(shí)刻的位置。
為了驗(yàn)證本文提出算法的有效性,本文設(shè)計(jì)了多姿態(tài)運(yùn)動(dòng)實(shí)驗(yàn)和模擬交互實(shí)驗(yàn)。多姿態(tài)運(yùn)動(dòng)實(shí)驗(yàn)包括蛇形、俯仰、晃動(dòng)、轉(zhuǎn)圈和倒退5種姿態(tài)進(jìn)行運(yùn)動(dòng)實(shí)驗(yàn)。模擬交互實(shí)驗(yàn)包括模擬直線(xiàn)行走和模擬在直線(xiàn)行走過(guò)程中躲避障礙物兩種實(shí)驗(yàn)。使用的IMU是SBG公司生產(chǎn)的IG-500N,包含三軸加速度計(jì)、三軸陀螺儀和三軸磁強(qiáng)計(jì)。其中,加速度計(jì)的量程為±5 g,零偏穩(wěn)定性為±4 mg;陀螺儀的量程為±300°,零偏穩(wěn)定性為±0.1°/s;磁強(qiáng)計(jì)量程為±1.2 Gauss,零偏穩(wěn)定性為±0.5 mGauss。
多姿態(tài)運(yùn)動(dòng)實(shí)驗(yàn)的測(cè)試地點(diǎn)為室內(nèi)直線(xiàn)走廊。該實(shí)驗(yàn)的具體過(guò)程為:測(cè)試者將IMU佩戴在頭部的額頭位置,依次按照蛇形(原地從左轉(zhuǎn)到右再轉(zhuǎn)到左來(lái)模擬蛇形運(yùn)動(dòng))、俯仰(頭部先向前傾,進(jìn)而向后仰)、晃動(dòng)(左右晃動(dòng)頭部)、轉(zhuǎn)圈(原地轉(zhuǎn)圈)和倒退(原地身體邊后傾邊原地踏步來(lái)模擬倒退運(yùn)動(dòng))5種姿態(tài)進(jìn)行原地運(yùn)動(dòng)。將IMU內(nèi)部集成的商業(yè)姿態(tài)感知算法實(shí)時(shí)輸出的姿態(tài)角和本文提出的姿態(tài)感知算法解算出的姿態(tài)角畫(huà)在同一坐標(biāo)系中進(jìn)行對(duì)比,如圖3所示。圖中,深色線(xiàn)表示本文算法解算出的姿態(tài)角;淺色線(xiàn)表示IMU直接輸出的姿態(tài)角??梢钥闯?,兩條線(xiàn)基本重合。
圖3 多姿態(tài)運(yùn)動(dòng)解算結(jié)果對(duì)比
為了檢驗(yàn)提出的交互方法的有效性,模擬交互實(shí)驗(yàn)包含模擬直線(xiàn)行走和模擬在直線(xiàn)行走過(guò)程中躲避障礙物兩種實(shí)驗(yàn)。IMU的安裝位置為額頭處。具體的實(shí)驗(yàn)過(guò)程為:(1)測(cè)試者佩戴IMU面朝一個(gè)方向不斷原地踏步來(lái)模擬在現(xiàn)實(shí)世界中的直線(xiàn)行走,本文提出的系統(tǒng)計(jì)算出的路徑如圖4所示;(2)測(cè)試者面朝一個(gè)方向通過(guò)原地踏步走模擬直線(xiàn)行走,同時(shí)不同改變朝向來(lái)模擬躲避前方障礙物,然后恢復(fù)與起始朝向相同的方向向來(lái)實(shí)現(xiàn)沿原軌跡繼續(xù)直線(xiàn)行走,所提系統(tǒng)的計(jì)算結(jié)果如圖5所示。
圖4 模擬直線(xiàn)行走實(shí)驗(yàn)結(jié)果
圖5 模擬避障實(shí)驗(yàn)結(jié)果
如圖3中結(jié)果顯示,在多種運(yùn)動(dòng)狀態(tài)下,本文提出姿態(tài)算法可以精確的計(jì)算出相應(yīng)的姿態(tài)信息,同時(shí)本文所提算法與IMU自帶的商業(yè)解算程序計(jì)算的結(jié)果基本重合,通過(guò)計(jì)算得出與商用慣性測(cè)量單元提供的姿態(tài)角具有1.1×10-2°的平均姿態(tài)偏差,從而最終證明本文提出的姿態(tài)感知算法的有效性,可以精確有效的解算出人體頭部的真實(shí)姿態(tài)。
從模擬交互實(shí)驗(yàn)中兩組實(shí)驗(yàn)的結(jié)果(如圖4~5所示)可以看出,本文提出的交互方法能夠很好的模擬實(shí)現(xiàn)人體的前進(jìn)和在前進(jìn)的過(guò)程中躲避前方的障礙物。將本文所提算法部署到VR設(shè)備中,能夠有效的幫助使用者在體驗(yàn)VR的同時(shí),實(shí)現(xiàn)與VR視頻中對(duì)象的靠近與躲避,從而實(shí)現(xiàn)人與設(shè)備之間的交互,達(dá)到身臨其境的沉浸式效果。
但是該算法也有不足的地方,在未來(lái)的工作中,期望能夠加入更多的交互動(dòng)作,比如說(shuō)后退或者側(cè)行,來(lái)進(jìn)一步豐富體驗(yàn)者與VR設(shè)備間的交互方式。
針對(duì)VR設(shè)備與使用者的動(dòng)態(tài)交互問(wèn)題,本文提出了姿態(tài)感知與步態(tài)識(shí)別相結(jié)合的交互方法,實(shí)現(xiàn)了靠近或躲避VR視頻中的對(duì)象。實(shí)驗(yàn)證明,提出的姿態(tài)感知算法可以有效的計(jì)算出使用者頭部的姿態(tài),且具有較高的解算精度,與商用慣性測(cè)量單元提供的姿態(tài)角基準(zhǔn)相比具有1.1×10-2的平均姿態(tài)角偏差;提出的步態(tài)識(shí)別算法可以有效的識(shí)別出人體的靜止與行走狀態(tài);所提出的兩者結(jié)合的交互方法,可以有效的實(shí)現(xiàn)虛擬的靠近與躲避。在未來(lái)的工作中,期望能夠加入更多的交互動(dòng)作,比如說(shuō)后退或者側(cè)行。