使用 Vive Tracker 替代 T265 實現位姿獲取(基于 Ubuntu + SteamVR)

在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。

目前代碼正在整理中,整理完成后將公開發布。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91810.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

博物館 VR 導覽:圖形渲染算法+智能講解技術算法實現及優化

本文面向博物館數字化開發技術員、VR 系統工程師等技術同仁們,聚焦圖形渲染算法在博物館 VR 導覽中的核心應用,解決虛擬展館還原精度不足、多終端適配卡頓、智能講解觸發延遲等實際技術問題。如有項目合作及技術交流歡迎私信作者~一、VR導覽技術痛點1.3D…

zset 中特殊的操作

首先 zset 與我們常規的 redis 操作有所不同, 這里的時間復雜度基本都是 O(log N) 起步的 目錄 1. zcount 2. zpopmax 1. zcount zcount key min max : 這里求的是 key 中下標在 min 和 max 之間的 元素的數量, 這里是比區間 我們要是想排除端點, 就需要加上 ( , 無論是…

KSP與ASM深度對比:原理、性能與使用場景

一、核心目的差異1. KSP(Kotlin Symbol Processing)核心目的:在編譯時生成新代碼,解決樣板代碼問題(操作對象:.kt源文件編譯過程中的中間表示)主要場景:自動生成DI(依賴注入)配置代碼創建路由映…

【LLM】如何在Cursor中調用Dify工作流

這篇文章將通過一個接口文檔知識庫示例,帶你了解如何在 Cursor 中通過 Mcp Server 調用 Dify 平臺配置的工作流。 1. 準備工作 需要準備文本生成模型、向量模型、Rerank 模型(可選),這些都可以在 阿里云百煉平臺 申請免費使用額度…

L1、L2正則化的幾何解釋

L2正則化: 圖中用幾何方式形象地解釋了 Ridge 回歸(L2正則化)的原理。 ① 陰影圓:可以理解為(w1^2 w2^2)?≤R^2,圓周表示目標函數的約束線,這個圓表示了我們的參數 (w1,w2)可以活動的范圍。 …

【學習筆記】Java并發編程的藝術——第1章 并發編程的挑戰

第1章 并發編程的挑戰 1.1 上下文切換 即使是單核處理器也支持多線程執行代碼,CPU給每個線程分配CPU時間片實現多線程,而每個時間片一般是幾十毫秒,所以多個線程感覺是同時執行的 但同一個核切換線程執行時會保存運行狀態,以便下次…

leecode3 無重復元素的最長子串

我的思路 原始代碼 我發現我雖然解決問題了,但是我的思路不簡潔,不明白。 這個題本質上還是滑動窗口的問題。 具體思路為先定義兩個指針,對應滑動窗口的兩個邊界關鍵是:定義一個集合,來判斷這個窗口中的元素是否存在重…

【嵌入式匯編基礎】-ARM架構基礎(三)

ARM架構基礎(三) 文章目錄 ARM架構基礎(三) 7、AArch64 執行狀態 7.3 程序計數器 7.4 堆棧指針 7.5 零寄存器 7.6 鏈接寄存器 7.7 幀指針 7.8 平臺寄存器 (x18) 7.9 過程內調用寄存器 7.10 SIMD 和浮點寄存器 7.11 系統寄存器 7.13 PSTATE 7、AArch64 執行狀態 7.3 程序計…

[buuctf-misc]喵喵喵

m題目在線評測BUUCTF 是一個 CTF 競賽和訓練平臺,為各位 CTF 選手提供真實賽題在線復現等服務。https://buuoj.cn/challenges#%E5%96%B5%E5%96%B5%E5%96%B5BUUCTF 是一個 CTF 競賽和訓練平臺,為各位 CTF 選手提供真實賽題在線復現等服務。https://buuoj.…

Vue 詳情模塊 2

Vue 漸進式JavaScript 框架 基于Vue2的移動端項目:詳情基礎內容,日期及電影描述 目錄 詳情 詳情基礎內容 初始化與賦值 渲染基礎內容 詳情樣式 日期處理 安裝moment 定義過濾器 使用過濾器 電影描述 總結 詳情 詳情基礎內容 初始化與賦值 …

【MODIS數據】MYD03

🌍 遙感數據的“導航儀”:深入解析MYD03地理定位產品 在衛星遙感領域,精確的地理定位是數據應用的基礎。作為Aqua衛星中分辨率成像光譜儀(MODIS)的核心支撐產品,MYD03雖不如地表溫度或植被指數產品知名&am…

如何填寫PDF表格的例子

實際應用場景中,我們會遇到需要根據會話內容自動填寫表格的情況,比如:pdf 表格。假設根據會話內容已經獲得相關信息,下面以填寫個人信息為例來說明。個人信息表格.pdf填寫后的效果:填寫代碼如下:from pdfrw…

2023年影響重大的網絡安全典型案例

以下是2023年影響重大的網絡安全典型案例,按時間順序梳理事件經過及技術細節:---一、DeFi協議攻擊:dForce借貸協議遭入侵(2023年4月)** - 時間線: - 4月19日08:58:黑客開始攻擊Lendf.Me合約&…

Vue 響應式基礎全解析2

DOM更新時機 修改響應式狀態后,DOM更新不是同步的。Vue會緩沖所有修改,在"next tick"周期中統一更新,確保每個組件只更新一次。 如需在DOM更新后執行代碼,可使用nextTick(): import {nextTick } from vueasync function increment() {count.value++

【黑馬SpringCloud微服務開發與實戰】(九)elasticsearch基礎

1. 認識elasticsearch2. 認識和安裝ES主播這里之前已經安裝好了,資料包里面有鏡像 docker run -d \--name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \-e "discovery.typesingle-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugin…

由淺入深地講清楚瀏覽器緩存

一、什么是瀏覽器緩存?(入門級) 1. 瀏覽器緩存的定義瀏覽器緩存就是:瀏覽器把之前請求過的資源保存起來,下次訪問同樣的資源時可以直接用本地副本,而不是重新請求服務器。舉個生活例子: 你第一次…

Linux I/O 多路復用機制對比分析:poll/ppoll/epoll/select

Linux I/O 多路復用機制對比分析:poll/ppoll/epoll/select 1. 概述 I/O 多路復用是現代高性能網絡編程的核心技術,它允許單個線程同時監視多個文件描述符的狀態變化,從而實現高效的并發處理。Linux 提供了多種 I/O 多路復用機制&#xff0c…

高防服務器租用:保障數據安全

您的網絡速度是否卡頓,業務是否經常受到網絡攻擊的威脅呢?別擔心,高防服務器租用能夠幫助你解決這些困擾!高防服務器租用擁有著卓越的防御能力,可以幫助企業抵御各種網絡攻擊,能夠輕松化解各種超大流量的網…

基于python多光譜遙感數據處理、圖像分類、定量評估及機器學習方法應用

基于衛星或無人機平臺的多光譜數據在地質、土壤調查和農業等應用領域發揮了重要作用,在地質應用方面,綜合Aster的短波紅外波段、landsat熱紅外波段等多光譜數據,可以通過不同的多光譜數據組合,協同用于礦物信息有效提取。第一&…

CSS content-visibility:提升頁面渲染性能的 “智能渲染開關”

在前端開發中,你是否遇到過這樣的問題:頁面包含大量 DOM 元素(如長列表、復雜表格)時,滾動變得卡頓,交互響應遲緩?這往往是因為瀏覽器需要不斷渲染屏幕外的元素,浪費了大量計算資源。…