燈塔激光定位技術之HTC Vive的Lighthouse工作原理

Lighthouse 激光定位技術開源了,開源的內容主要包括以下三個部分:

  1. 硬件部分, Hypereal 激光定位系統硬件部分設計與實現細節都在此次開源中有介紹,內容涉及電路與嵌入式軟件。開源涉及的組件均由 Hypereal 激光定位系統原理性驗證機版本總結整理而來,去除了驗證系統設計中其他與定位特性無關的內容。系統整體結構上分爲相對獨立的兩大在這裏插入代碼片部分,分別是作爲定位信標的激光線束掃描燈塔與被定位設備。
  2. 軟件部分,Hypereal 的定位設備,包括 IMU 和 Light Sensor 的驅動程序以及 sample 程序都徹底提供。有了這些驅動程序,VR HMD 和解決方案提供商能很容易獲取被定位設備的姿態和位置信息,燈塔的位置和狀態,並和 Hypereal 定位算法庫集成,第三方可以把 HYPEREAL 的燈塔定位方案集成到自己的 SDK 或者應用中。
  3. 算法部分,Hypereal 直接提供了一個完整的燈塔定位算法庫,包括所有的核心算法模塊:燈塔掃描和 IMU 數據的解析和處理,姿態求解算法,數據融合算法,雙燈塔融合算法,運動預測算法等等。算法庫框架完全基於模塊化設計,開發者可以基於此框架一鍵式進行算法研究和定製開發工作。

頭動跟蹤是VR頭顯非常重要的技術指標。要做到頭動跟蹤,最傳統的方法是使用慣性傳感器,就像我們每日都用的智能手機那樣。但是慣性傳感器只能測出轉動(繞XYZ三軸轉動,稱之爲三個自由度),無法測量出移動(沿XYZ三軸移動,另外三個自由度,合起來稱之爲六自由度)。另外一點,就是慣性傳感器的誤差比較大——想要VR頭顯的誤差達到理想水平,可能需要洲際導彈上的慣導系統。所以說更精確和自由的跟蹤頭部運動,需要額外手段的輔助。
在這裏插入圖片描述
如上圖,就是Lighthouse的基站Vive沒有采取通常的使用光學鏡頭和馬克點的定位系統。它使用的這套定位系統叫做Lighthouse,由兩個基站構成:每個基站裏有一個紅外LED陣列,兩個轉軸互相垂直的旋轉的紅外激光發射器。轉速爲10ms一圈。基站的工作狀態是這樣的:20ms爲一個循環,在循環開始的時候紅外LED閃光,10ms內X軸的旋轉激光掃過整個空間,Y軸不發光;下10ms內Y軸的旋轉激光掃過整個空間,X軸不發光。

高速攝影機下的Lighthouse基站Valve在頭顯和控制器上安裝了很多光敏傳感器。在基站的LED閃光之後就會同步信號,然後光敏傳感器可以測量出X軸激光和Y軸激光分別到達傳感器的時間。這個時間就正好是X軸和Y軸激光轉到這個特定的,點亮傳感器的角度的時間,於是傳感器相對於基站的X軸和Y軸角度也就已知了;分佈在頭顯和控制器上的光敏傳感器的位置也是已知的,於是通過各個傳感器的位置差,就可以計算出頭顯的位置和運動軌跡。如下圖所示
在這裏插入圖片描述
Lighthouse的原理解釋;圖自Hizook從理論來講,Lighthouse的精度依賴於系統的時間分辨率。這也就意味着,光敏傳感器的分佈之間需要一定的距離,設備不能製造的太小。光敏傳感器本身也有一定寬度,如果傳感器“擠”在一起,間距達到了傳感器本身的寬度量級,那麼測角本身就會出現誤差了。Lighthouse具體能支持多高的測角精度,Valve並沒有給出數據。同時,Valve也表示,需要至少5個傳感器才能夠保證一個剛體的6自由度跟蹤。

這個系統有很多優勢。第一條是其需要的計算能力非常小。一個光學系統需要進行成像,然後程序就需要通過圖像處理的方法來將成像中的馬克點分辨出來。成像的細節越豐富,需要的圖像處理計算能力就越高。所以紅外攝像頭比單色攝像頭簡單,單色攝像頭比彩色攝像頭簡單。Lighthouse使用的僅僅是時間參數,那麼它就不涉及到圖像處理,對於位置的計算在設備本地就可以完成。

第二個優點是其延遲也很小。計算能力需求高就意味着延遲會高:圖形處理的大量數據要從攝像頭傳輸到電腦中,再從電腦傳輸到頭顯上,就會增加延遲。而Lighthouse可以直接將位置數據傳輸到電腦上,省略了從攝像頭到電腦的高數據傳輸的步驟。

Lighthouse並不是沒有缺點——可以說,就現在所接觸的設備而言,Vive目前並仍然是開發機狀態,在某些基本問題上HTC仍然需要對硬件進行改進。Lighthouse的兩個基站裏有旋轉部件,所以其可靠性尚待檢驗;基站本身的安裝和校準的要求實在是相當精密,對一般消費者而言,門檻過高。作爲VR從業者,我們仍然前前後後花了差不多兩個下午的時間才真正將Lighthouse調試安裝完畢,達到精密完美的狀態。而且,高速旋轉的部件帶來了基站的震動——這種震動會導致跟蹤變得不精確,手柄經常出現抖動和跳變的情況。需要將基站固定的十分牢固,才能夠獲得比較滿意的效果。而且,基站震動久了就會變鬆,用戶需要時不時的重新固定。
  下面將談談有關的算法原理
  主要基於此數學模型
在這裏插入圖片描述
此模型基於的圖片如下:
在這裏插入圖片描述
我們通過光學系統所得到的其實是兩個角度,這樣就可以知道,這個物體的某些點在投影平面上的座標。這裏等同於一個小孔成像的相機模型,也可以很好地表達成一個線性的約束。

在靜止狀態下我們已知傳感器點的相對位置,當物體運動過之後,可以得到某些點的掃描觀測值,因爲它被照到,它會處在這個空間當中某兩個面的交線上,這個可以很好的寫成一個線性約束表達式,可以把它們聯立起來,相當於做一個最優化的問題,我需要求解在滿足這些約束情況下最優的旋轉和平移。

這個問題其實是一個比較標準的問題,求解的方法也非常多,其實在視覺領域,對這類問題有很多人做過不同的方法,比如說你怎麼樣參數化你的旋轉,就會有不同的方法,基本上這個應該算是一個比較成熟的問題。
算法流程圖如下:
算法流程圖
以上我們提到的是激光系統的原理,在頭盔和手柄上還可以利用IMU。其實在有陀螺儀、加速器和磁力器的情況下,IMU本身也可以做定位工作,但是它有個很大的問題——會漂移。

其實我們對這個物體姿態有兩個數據來源,一個是IMU,一個是激光系統,這兩套系統理論上都可以獨立對這個姿態進行估計,IMU的好處是採樣頻率高在短時間內相對來說比較精確,壞處是稍微長一點時間就會有較大漂移。而激光系統則是在大尺度下相對比較精確,但是它可能被遮擋和有誤差。即主要工作之一就是怎麼把這兩個信號融合在一起。
以上就是HyTrack定位系統的基本原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章