在Dexcap這篇工作列出第二版硬件清單時,我注意到其使用 Vive Tracker 替代 Intel T265 來獲取位姿數據,對這個東西的性能感到好奇,最近因為需要跟進相關工作,參與了一部分實現,由于這方面的中文資料相對較少,因此在此記錄一下整個過程,便于后續參考
硬件配置為:
筆記本:Lenovo ThinkBook 14
顯卡:NVIDIA RTX 4060
追蹤設備:Vive Tracker 3.0
定位設備:Vive 基站 1.0
一 ubuntu上安裝steam
注意:不要通過 Ubuntu 軟件商店或 snap 安裝 Steam!
Snap 安裝的版本存在兼容性問題,后續運行 SteamVR 時可能會出現驅動不識別等 bug。推薦直接從官網下載 .deb
安裝包,并使用 dpkg
進行安裝:
sudo dpkg -i steam_latest.deb
安裝完成后首次打開 Steam,可能會彈出如下報錯:?
You are missing the following 32-bit libraries, and Steam may not run:
libGL.so.1
這是因為 Steam 需要兼容 32 位程序,依賴 32 位版本的 libGL.so.1
庫。
解決方案為;
1.啟用系統對 32 位架構的支持:
sudo dpkg --add-architecture i386
sudo apt update
沒有執行這兩條命令的話,系統是不會識別任何 32 位庫安裝的,即使你已經安裝了也無效。
2.安裝與顯卡驅動版本匹配的 32 位 libGL
庫(以 550 為例):
sudo apt install libnvidia-gl-550:i386
3.一路按回車直到安裝完成
遇到的問題(更新了內核導致與顯卡驅動不匹配):
筆者電腦內核版本不清楚為什么被更新了,導致識別不到顯卡驅動,nvidia-smi后看不到顯卡驅動
但運行:
grep nvidia /proc/modules
仍能看到 nvidia 模塊加載。這種情況通常是因為驅動未隨新內核自動重編譯。
解決辦法:
1.安裝 DKMS(Dynamic Kernel Module Support):
sudo apt install dkms
DKMS 能在內核更新時自動重編譯驅動模塊。?
2.重新安裝 NVIDIA 驅動,觸發 DKMS 編譯:
sudo apt reinstall nvidia-driver-550
安裝完成后重啟,nvidia-smi
應可正常識別顯卡。至此,Steam 也能正常運行。
二 安裝steamVR
這一部分相對簡單,直接在 Steam 客戶端中搜索 SteamVR
并安裝即可。
三 Vive Tracker setup
1.將 Vive Tracker 的 USB dongle 插入電腦,如圖所示。
2.給予 Tracker 所在設備節點串口權限:
sudo chmod 777 /dev/hidraw*
3.若設備無法識別,建議補充 UDEV 規則文件,以確保 hidraw 權限正確自動設置。
4.打開 SteamVR,點擊頂部菜單欄的:
Devices > Pair Controller
然后:
插上基站電源;
長按 Tracker 電源鍵,進入配對模式;
直到顯示配對成功,并在 SteamVR 中顯示 Tracker 和基站狀態正常,即完成連接。
四 發布位姿
為了獲取并發布 Vive Tracker 的實時位姿數據,新建 Conda 環境,安裝openvr
。
openvr
提供了對 SteamVR 系統中所有追蹤設備的訪問接口,可以用來讀取 Vive Tracker 的 6DoF 位姿信息。通過其 API,可以直接獲取設備的 pose。
目前代碼正在整理中,整理完成后將公開發布。