【iShout】Oculus Rift 虛擬現實眼鏡的介紹、體驗和暢想
4. 內部構造和簡要分析
在介紹完了Rift 的使用感受後,讓我們了解下Rift 的構造和原理問題。由於之前ifixit 網站已經做過了這方面的拆解,因此這裡就直接以他們的圖片作為例子。
Rift 可以通過簡單的步驟拆開,在其核心的眼鏡部分包含了LCD 面板以及帶有三軸陀螺儀、三軸加速計和三軸磁羅盤的9 自由度傳感器PCB。
圖:將 Rift 眼鏡分離,並拆開。來源自 ifixit 的拆解文章圖:所有核心的部件均安裝在眼鏡底部的平坦部分。
其中畫面上半部分據採用了一塊由台灣生產的1280×800 7 寸的LED 背光LCD,據ifixit 描述,這塊面板的廠家也將在今後給apple ipad mini 供應面板。而面板本身則通過畫面中那些細線與控制盒連接。通過其中使用的芯片(HX8851) 可以得知,該信號線為LVDS,電腦輸出的HDMI/DVI 信號應該已經在控制盒中完成了轉換。
而上圖下邊的黑色PCB 對於製作無人飛行器的朋友會很熟悉,它其實就是一個標準的航姿參考系統(AHRS):
圖:Rift 使用的姿態傳感器 PCB
圖:同樣功能的PCB 在四旋翼等飛行器中廣泛使用。 (圖片來源:Google)
對於飛行器來說,帶有這類功能的PCB 顯得非常常見。從ifixit 的照片中可以得知,Rift 採用了MPU6000 的陀螺儀/ 加速計集成芯片。該芯片內置了3 軸的陀螺儀和加速計,並且使用SPI 總線對外輸出數據,完全可以實現官方宣稱的1000hz 的採樣速率。而畫面上放黃色的芯片為Honeywell 的HMC5883 3 軸電子羅盤。在工作中,陀螺儀和加速計將用於感知自身的俯仰角和翻滾角信息,並配合電子羅盤得到人的水平朝向角度。
畫面中央紅色的芯片是一塊主頻為72Mhz 的32 位ARM 處理器,STM32F103C8。該芯片應該將負責採集各傳感器的數據後,進行必要的數據融合和濾波,並將處理好的姿態信息發送給PC 機。
這樣的配置,對於要實現低延遲的視角切換來說應當是綽綽有餘的。
相比Rift 眼鏡部分,控制盒的構造就顯得更為簡單。從ifixit 的拆解圖看出,他內部基本部件就是負責將HDMI/DVI 信號轉化為直接驅動LCD 的LVDS 信號。並且負責穩壓和對姿態傳感器信號的轉接傳輸工作。
圖:控制盒的PCB,紅色最大的芯片為視頻信號接口芯片
5. 擴展開發探討
官方 SDK 簡介
目前官方提供了可以在Windows/MacOS 上工作的SDK,並且是完全開源的。從中可以看到對於底層設備通訊到上層進行畫面渲染的所有細節。
圖:Oculus 官方提供的 Rift SDK 下載
對於Windows 下的開發,SDK 中包含了Visual Studio 2010 的工程文件,可以很容易的編譯出之前文中提到的官方Demo 以及另外兩個例子應用。
檢測Rift 上姿態傳感器用的工具程序:
以及一個簡單的室內環境場景例子:
SDK 中的例子也允許開發者設定各種參數用於調節最佳的體驗:
對於有圖形開發經驗的人來說,使用SDK 配合這幾個實例程序是很容易開發出自己的Rift 應用的。同時SDK 的源代碼採用C++ 開發,實現上具有很好的平台依賴的抽象,可讀性優秀。很容易移植到其他的平台當中,也是不錯的學習資料。
便攜式改造的探討
這裡討論下如何將Rift 改造成適合隨身攜帶使用的可能性。前面的介紹中提到Rift 不方便隨身使用的問題。其中一個關鍵障礙在於它需要一個接交流電的5V 電源適配器。
其實要解決對交流電的依賴很容易,可以使用5V 輸出的移動電源、電池組等給Rift 進行供電即可。同時,我也對Rift 工作時的具體功耗做了測試,大部分情況下,Rift 的工作電流是<600mA 的水平。目前的很多PC 其實都可以提供1A 的USB 供電電流輸出,因此也可以直接將Rift 改造成為完全由USB 供電的版本。
圖:實測 Rift 功耗情況
此外,Rift 依賴PC 進行畫面的渲染和處理。但即使隨身背著一個筆記本電腦用Rift 眼鏡也是很不方便的。其實如今U 盤大小的miniPC 相當普遍,我也曾基於這類MiniPC 進行改造用於機器人控制等方面的應用。目前miniPC 基本都帶有HDMI 輸出,以及足以勝任3D 渲染的GPU。因此將Rift 與miniPC 整合起來,將會是一個不錯的嘗試!
圖:我使用MiniPC 進行的機器人控制應用,同樣可以用於驅動Rift 眼鏡
實現移動感知的探討
Rift 美中不足的是無法感受使用者的移動,而使用鍵盤、遊戲桿這類傳統設備在虛擬世界中行走不但缺乏真實感,同時也會令使用者產生暈眩。
在前文中我提到了國外公司在這方面的嘗試,不過他們的全向跑步機還沒有上市,並且售價或許也不低。除了這個方案外,我認為也可以使用Kinect、激光雷達這類設備來獲取使用者的空間位置。
下圖為我團隊所開發的0-6 米全向激光測距雷達系統。他可以實時的掃描環境四周(360 度)的物體相對於自身的距離,並且可以提供毫米級別的定位精度。用它來結合Rift 進行虛擬現實世界中人物移動的判斷,當屬不錯的選擇。
圖:使用激光雷達進行Rift 使用者的跟踪
應用的展望
Rift 帶給人的體驗是從前沒有過的,即使目前它還存在各種不足,我相信這類虛擬現實技術一旦在日常生活當中普及將極大地改變現在的世界。並且隨著今後硬件不斷地升級。這些不足將會很快的得到解決。
除了用於遊戲娛樂外,我從自身角度認為Rift 這類虛擬現實眼鏡配合機器人技術也將大有用武之地,比如配合立體攝像機以及高速雲台系統,戴著Rift 的用戶可以遠程操作機器人身臨其境的感受另一個地方機器人所感受的世界,這將大幅提高遠程作業、遠程辦公等應用的體驗。這也將是一個不錯的應用可能。
圖:Rift 代表的虛擬現實技術與機器人技術的融合
資料來源:ifanr