燈塔激光、大朋VR、Oculus Constellation等定位方案比較,誰才是VR定位的最強(qiáng)者
空間的定位是VR技術(shù)的關(guān)鍵,目前,可以再市場上比較好的分別有Oculus 的 ConstellaTIon 系統(tǒng)紅外攝像頭定位、HTC/Vive、大朋VR的燈塔激光定位系統(tǒng),盡管這兩種定位方式都采用了PnP解算,但都有各自的局限性和適應(yīng)的場景,下文將逐一詳細(xì)分析。Oculus ConstellaTIon定位系統(tǒng),Oculus采用的是基于Camera的定位方案,被稱為ConstellaTIon。在Oculus頭盔和手柄上都布滿了紅外sensor,以某個(gè)固定的模式在閃爍。當(dāng)下許多的廠商都采用了不同的空間定位方案,到底哪個(gè)方案才是最好的,下面,小編就為你來介紹一下吧!
通過特制的camera以一個(gè)固定的頻率(Oculus CV1是60fps)拍攝,得到一組圖片。系統(tǒng)通過這些點(diǎn)在圖片上的二維位置,以及已知的頭盔或者手柄的三維模型,反推出點(diǎn)在三維空間中的位置。這個(gè)過程可以進(jìn)一步的細(xì)分成以下的步驟,
首先,為了確保準(zhǔn)確的定位到頭盔和手柄上的LED,PC端的Oculus Camera軟件/驅(qū)動(dòng)程序通過HID接口發(fā)送某個(gè)命令點(diǎn)亮LED,該亮度足以被Camera捕捉到,同時(shí)這些LED以某個(gè)特殊的模式閃爍。這樣能確保即使有遮擋的情況下,在不同的角度下,只要有足夠多的LED被拍攝到,整個(gè)的tracking系統(tǒng)就能正常工作,不會(huì)被環(huán)境中的其他噪聲信號(hào)所影響。
然后是記錄下每一個(gè)被捕捉到的LED的位置和方向。
當(dāng)然,為了做好定位,Oculus camera本身并不需要LED的顏色,只需記錄每個(gè)點(diǎn)的明暗,所以 Oculus Camera固件中記錄下的的圖像為 752&TImes;480像素, 像素格式為 Y8灰階。
拿到頭盔上的LED在二維圖片上的位置,又有頭盔上Sensor的三維模型,有什么辦法可以估算出這些點(diǎn)的三維位置?這本質(zhì)上是一個(gè)Pnp解算的問題 (https://en.wikipedia.org/wiki/Perspective-n-Point):有了n個(gè)3D點(diǎn)的模型(就像上面提到的LED點(diǎn)在頭盔上的3D分布), camera拍攝下來的n個(gè)2D點(diǎn)的集合,再加上camera本身的內(nèi)部的參數(shù),可以推算出這些點(diǎn)的位置坐標(biāo)(X,Y,Z) 以及姿態(tài)(Yaw,Pitch,Roll)。
這個(gè)點(diǎn)的集合到底有多大?這是一個(gè)尋求最優(yōu)解的問題,常見的做法是n》=3,也就是圖片上只要拍到三個(gè)以上的LED,就能夠解算出相關(guān)的姿態(tài)和位置??紤]到遮擋或者拍攝的照片不夠清楚等因素,實(shí)踐中看,至少要拍攝到4-5個(gè)點(diǎn),整個(gè)頭盔的姿態(tài)和位置才能被正確的算出,這也是為什么在Oculus的頭盔上布滿了很多LED點(diǎn)的一個(gè)重要原因。
算出來的數(shù)據(jù)有誤差怎么解決?一個(gè)常見的辦法是得到6DOF的數(shù)據(jù)之后,用該數(shù)據(jù)再做一次投影,產(chǎn)生新的2D圖像,把該圖像和我們開始用來計(jì)算的圖像進(jìn)行比較,得到一個(gè)誤差函數(shù),應(yīng)用該函數(shù)來進(jìn)行校準(zhǔn)。不過這帶來另外一個(gè)問題:點(diǎn)進(jìn)行比較的時(shí)候,你怎么知道3d模型上的點(diǎn),和拍攝到的二維圖像上的點(diǎn)之間的匹配關(guān)系?如果做一一對(duì)應(yīng)的全匹配計(jì)算的話,計(jì)算量太大。所以O(shè)culus采用的辦法是采用不同的閃爍模式,來快速匹配3d模型上的點(diǎn)和拍攝到的圖像上的點(diǎn)。
進(jìn)一步,在姿態(tài)估計(jì)的問題上面,通過光學(xué)(camera圖片)得到的姿態(tài)會(huì)有誤差,而這種誤差主要來自于物體快速移動(dòng)時(shí)捕獲到的照片上的點(diǎn)識(shí)別的困難。為了減少這種誤差,需要通過IMU信息來進(jìn)行一步校準(zhǔn)通過PnP解算得到的姿態(tài),這就是所謂的Sensor數(shù)據(jù)融合。
從上面的描述可以看出來,基于camera的光學(xué)定位技術(shù),安裝配置比較簡單,成本也比較低,但是圖像處理技術(shù)較為復(fù)雜,物體移動(dòng)較快時(shí)識(shí)別物體的位置有比較大的困難,同時(shí)容易受到自然光的干擾。
另外,基于Camera的定位精準(zhǔn)度受到Camera本身分辨率的限制,比如Oculus Rift的Camera為720p,比較難以提供亞毫米級(jí)的精準(zhǔn)定位。
最后,Camera自身能夠捕捉到的照片的距離比較近,不能應(yīng)用到很大的房間位置,一般都只能提供桌面級(jí)別的VR定位。當(dāng)然最近Oculus提供了三個(gè)Camera的方案,試圖在room scale級(jí)別和燈塔定位技術(shù)一較高下。
燈塔激光定位技術(shù)
反之,htc,大朋等企業(yè)提供的燈塔激光定位技術(shù),避免了Camera定位技術(shù)的高復(fù)雜度,具有定位精度高,反應(yīng)速度快,可分布式處理等優(yōu)勢,能夠允許用戶在一定的空間內(nèi)進(jìn)行活動(dòng),對(duì)使用者來說限制小,能夠適配需要走動(dòng)起來的游戲,真正實(shí)現(xiàn)Room Scale級(jí)別的vr定位。
下面從燈塔定位的原理解釋為什么在大空間的應(yīng)用中燈塔激光定位是一個(gè)更好的選擇。
HTC的燈塔定位系統(tǒng)中有兩個(gè)基站,每個(gè)基站上面有兩個(gè)馬達(dá),其中一個(gè)馬達(dá)往水平方向掃射,另外一個(gè)朝垂直方向掃射。
基站刷新的頻率是60赫茲,基站a上面的馬達(dá)1首先朝水平方向掃射,8.33毫秒之后,第二個(gè)馬達(dá)朝垂直方向上掃射(第二個(gè)8.33毫秒),然后基站a關(guān)閉,接著基站b重復(fù)和基站a一樣的工作。。。。。。
這樣只要在16ms中,有足夠多的sensor點(diǎn)同時(shí)被垂直和水平方向上的光束掃到,這些sensor點(diǎn)相對(duì)于基站基準(zhǔn)面的角度能夠被計(jì)算出來,而被照射到的sensor點(diǎn)在投影平面上的坐標(biāo)也能夠獲得。
同時(shí),靜止時(shí)這些點(diǎn)在空間中的坐標(biāo)是已有的,可以作為參考,這樣就能夠計(jì)算出,當(dāng)前被照的點(diǎn)相對(duì)于基準(zhǔn)點(diǎn)的旋轉(zhuǎn)和平移,進(jìn)一步的得出這些點(diǎn)的坐標(biāo),這其實(shí)也是一個(gè)PnP問題。
進(jìn)一步的,再融合IMU上獲得的姿態(tài),就能夠較準(zhǔn)確的給出頭盔或者手柄的姿態(tài)和位置。
在上一步中計(jì)算出來的頭盔/手柄的位置和姿態(tài)信息,通過RF傳遞到和PC相連的一個(gè)接收裝置,該裝置再通過USB接口,把數(shù)據(jù)上傳到PC端的driver或者OpenVR runtime,最后上傳到游戲引擎以及游戲應(yīng)用中。
大朋VR定位方案
相比HTC的定位技術(shù),大朋在激光定位方面做了進(jìn)一步的創(chuàng)新,在每個(gè)基站上面加入了三個(gè)馬達(dá),從上到下編號(hào),一號(hào)馬達(dá)從垂直方向上掃描,2號(hào)馬達(dá)從水平方向掃描,3號(hào)馬達(dá)從垂直方向掃描。
每一個(gè)馬達(dá)掃描的時(shí)間間歇是4ms,該馬達(dá)在工作的時(shí)候,其他馬達(dá)都處于關(guān)閉狀態(tài),基本時(shí)序如下:
基站上面的馬達(dá)1首先發(fā)送同步光信號(hào)給頭盔/手柄上的sensor點(diǎn),sensor點(diǎn)清零計(jì)數(shù)器,馬達(dá)1接著朝垂直方向掃射;4毫秒之后,第2個(gè)馬達(dá)朝水平方向上掃射(第二個(gè)4毫秒),然后是第3個(gè)馬達(dá)朝垂直方向上掃射(第3個(gè)4毫秒)。
被照射到的sensor點(diǎn)可以比較容易的得到被照射時(shí)的時(shí)間,以及每一個(gè)號(hào)馬達(dá)開始掃描的時(shí)間。馬達(dá)的轉(zhuǎn)速是固定的,這樣就可以得到sensor點(diǎn)相對(duì)于掃射平面的角度,而該角度編碼后通過RF傳送到PC端,再做進(jìn)一步的姿態(tài)融合之后,PC端就能容易的拿到6DOF的數(shù)據(jù)。
在指定時(shí)間里增加掃描的次數(shù),大大減少所需要的sensor數(shù)量。從實(shí)際測試中看,在大朋的最新款的E3P中,最后需要的傳感器數(shù)量大概是Lighthouse的四分之一左右(Lighthouse用了幾十個(gè)傳感器),頭盔和手柄所需要的傳感器都是個(gè)位數(shù),頭盔手柄都變得更輕便。這不僅大大增加了整個(gè)定位系統(tǒng)的穩(wěn)定性,也讓sensor在頭盔或手柄上的布局也更加的簡單。
進(jìn)一步的,由于每次掃描的時(shí)間間隔更短,所以手柄的姿態(tài)等信息能夠以更快的頻率(每4ms一次)傳送到PC端,更及時(shí)的更新到VR游戲中。
在玩vr游戲或者應(yīng)用的時(shí)候,難免會(huì)出現(xiàn)各種各樣的遮擋,為了讓用戶能夠在房間級(jí)別的空間中暢玩,必須要讓燈塔在360度各角度方位都能夠照射到頭盔和手柄,大朋vr的解決方案和htc一樣,也是雙基站。雙基站的工作時(shí)序和單基站一樣,唯一的區(qū)別是,主基站工作的時(shí)候,從基站是關(guān)閉的,反之亦然。
大朋VR激光定位固有的定位穩(wěn)定,需要的sensor點(diǎn)少這些特點(diǎn),使得該定位方案能夠非常好的應(yīng)用到教育行業(yè)和多人聯(lián)機(jī)對(duì)戰(zhàn)中。
聯(lián)機(jī)多人對(duì)戰(zhàn)也是大朋VR定位版擅長的領(lǐng)域。
比如以下的場景中,只需要一到兩個(gè)基站可以覆蓋多臺(tái)網(wǎng)吧電腦,降低成本。
綜上來看,相較于紅外方案,激光定位在大空間多人聯(lián)機(jī)的應(yīng)用上具有較明顯的優(yōu)勢。