1

日前國外一名開發者對HTC Vive的Lighthouse跟蹤技術進行了評測,并發表了博客文章,雷鋒網編譯如下:
讓人又驚又喜的是,Valve最近發布了大部分SteamVR/OpenVR的Linux版SDK協議。這是一個好消息:它意味著用戶可以一下子將Vrui(虛擬現實用戶界面 )應用接入到HTC Vive頭盔及其跟蹤控制器。
但是在為Vrui輸入設備開發一個Lighthouse跟蹤驅動程序插件之前,我決定先弄出一個小測試工具來了解OpenVR的內部驅動程序接口,以及Lighthouse的總體跟蹤質量。
不足為奇的是,業內充滿關于Lighthouse更新速率漂浮不定的誤報。眾所周知的是,激光基站的工作原理是Lighthouse自由漂移的位置跟蹤的基礎。回顧一下:Lighthouse由兩個基站構成,每個基站里有一個紅外LED陣列,兩個轉軸互相垂直的旋轉的紅外激光發射器。基站的工作狀態是這樣的:20ms為一個循環,在循環開始的時候紅外LED閃光,10ms內X軸的旋轉激光掃過整個空間,Y軸不發光;下10ms內Y軸的旋轉激光掃過整個空間,X軸不發光。
具體來說,兩個激光都能圍繞各自轉軸每分鐘旋轉3600轉,即每秒60轉。(目前)只有一個激光能在任何時間全面掃射跟蹤卷,所以每一個基站有兩個激光器,兩個基站(A和B)就有四個激光,相互交錯:第一個基站的垂直激光從左到右掃描,另一個基站水平激光從底部到頂部上下掃描,均耗時8.333毫秒。8.333毫秒后,A站激光關閉,B站垂直激光從左到右掃描;另一個8.333毫秒后,B站垂直激光從下至上掃描;然后B站關閉,A站重復方才B站的操作。為了讓兩個(或更多)基站同步,并讓跟蹤設備來測量每個基站的相對角度,每一個基站里有一個紅外LED陣列。
這意味著,任何跟蹤對象每隔8.333毫秒(或120赫茲的頻率)就會被激光掃描一次。所以也許可以假設,Lighthouse的跟蹤更新速率為120赫茲,同時最糟糕的跟蹤延遲便是8.333毫秒。
但這種假設并不成立。在一個緊密的循環里面,SteamVR的vrserver跟蹤服務器需要以250赫茲的頻率處理每個控制器及頭顯的新姿勢。更深入的說,通過上面的傳感器融合代碼,其更新速率還能夠更高:頭盔處理姿勢的頻率達到1006赫茲,控制器則為366赫茲。
需要解釋的是,這些速率數據是基于原始傳感器而言的,也就是,內置慣性測量單元來自跟蹤對象的線性加速度和角速度,然后可以直接將位置數據傳輸到電腦上,省略了從攝像頭到電腦的高數據傳輸的步驟。driver_lighthouse.內部的傳感器融合代碼將這些原始樣品整合成當前姿勢及設備定位的最佳猜測。
這意味著,假設無線傳輸和姿勢計算增加微不足道的延遲,OpenVR的內部接口,頭部跟蹤數據最大的延遲大約是1毫秒,而控制器的數據跟蹤最大延遲為2.7毫秒。
位置跟蹤系統的另一個重要細節就是殘留噪音,以及抖動的量。我對這兩個細節都進行了測試,我將頭盔和一個控制器放在一把椅子上,這個測試空間內有兩個 Lighthouse基站,2.4米高,4米寬。
兩個基站的殘留噪音具有等向性,大約0.3毫米的范圍。當只有一個基站工作時,噪聲分布具有高度各向異性,與工作基站有0.3毫米的距離,稍遠的基站則有2.1毫米的距離。控制器的噪音大小和分布非常相似。這種各向異性是可以預料的,因為Lighthouse的姿勢預測可以歸結為多點透視成像問題。
其實已經可以從上述的更新速率的描述中推斷出來,當受到激光掃描時,Lighthouse每次并不僅僅更新一個跟蹤對象的位置和姿勢。想反,目前跟蹤預測的先進性主要是集成來自每個設備內置的慣性測量單元(IMU)使用航位推測法 得出的線性加速度和角速度的測量,并以樣本傳輸到IMU同樣的速率更新。
由于其本身的設計是每個基站使用兩個激光器,用以上下左右全方面掃描,而Lighthouse添加了一個額外的利好因素用于偏航修正。 與Oculus的Constellation等基于攝像頭成像的跟蹤系統不同,Lighthouse在從左到右的掃描中測量跟蹤對象的光敏傳感器X位置,而Y軸位置只會在上下掃描時進行,互相抵消8.333毫秒。
這有兩個主要的影響:第一,它增加了傳感器融合算法的復雜性。傳感器融合代碼必須以獨立的步驟限制跟蹤方案,而非以單一的攝像頭圖像約束跟蹤對象的姿勢預測。更重要的是,事實證明甚至沒有一個姿勢是局部的,因為當激光掃描整個空間時,設備光敏傳感器是會在不同時間被擊中的。
第二個是,從Lighthouse系統到傳感器融合代碼產生的信息的總量只是攝像頭成像系統在同樣速率下產生的一半。也就是說,基于Lighthouse偏航修正技術的慣性航位跟蹤系統并非想當然優于60赫茲攝像頭成像跟蹤的一倍。
最后的兩個調查的參數便是精度和準確度。所謂精度是指——對于同一個空間點的多個后續測量值有多接近,而準確度——對某個點的測量結果有多接近實際的位置。對于6自由度跟蹤系統來說這是非常重要的兩位參數。
為了測量這兩個值,我將一把36英寸長的尺子放在房子正中央,用來測量每一英寸的3維坐標位置。我將一個探針針尖綁在控制器上,局部坐標系里的探針位置可以重復測量,然后我將系統的坐標值與標準的坐標值作比較。兩個點坐落的RMS距離為1.9毫米。這就是Lighthouse跟蹤準確度的預測誤差。
測量點集中存在非線性失真,但總體精度很好,RMS距離更小,為1.5毫米。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。