Room scale VR tracking with OpenHMD
summary
OpenHMD adds positional room‑scale tracking for the Oculus Rift CV1 by reverse‑engineering its UVC infrared cameras, LED 10‑bit blink IDs, and radio sync; video captures arrive at 52.0833 fps (19.2 ms) while IMUs run at 500–1000 Hz. Implementation uses user‑space UVC, OpenCV pose solve with P3P + RANSAC and SoftPOSIT ab‑initio search, PipeWire/GStreamer for zero‑copy capture and replay, and fixes a Linux USB‑3 bandwidth bug (kernel 5.4). Headset blink‑based pose locking works; controller tracking and low‑latency filtering (to remove jitter) are still in development.
AI-written summary · about
chapters (22)
- 0:00Intro
- 1:28VR on Linux
- 4:18OpenHMD
- 4:39Oculus Rift
- 7:17Room scale tracking
- 9:09Room calibration
- 10:43OpenHMD features
- 12:27Evert
- 13:06Positional support
- 13:52IMU Fusion
- 17:09Rift Camera
- 20:37Wide Angle Lens
- 24:31The Challenge
- 25:28Hypothesis and Test
- 27:12Global Optimization
- 27:55Tracking
- 28:27Predict
- 32:36OpenHMD code
- 34:13Pipewire
- 36:32What am I using it for
- 37:59Whats missing
- 38:42Demos
related talks
16mGetting hands on with VR
38mC++ for cross-platform VR
42mRoomscale VR: DIY Dreamatoriums
50mVR Best Practices
09mHMD Light: Sharing In-VR Experience via Head-Mounted Projector for Asymmetric Interaction
32mTake Advantage of Immersive Presence in Mobile VR
43mFOSS Virtual & Augmented Reality
07mBringing back human interaction to a digital world
