Valve’s SteamVR Tracking system is great for VR but certainly not limited to it. For developers, hackers, researchers, and more who might have use for an inexpensive high accuracy, low latency, 6 DOF positional tracking system, it’s possible to use the new Vive Trackers or controllers (even with a single base station) without needing to shell out for the full $800 Vive system.
Guest Article by Luke Beno
Beno runs Triad Semiconductor’s Arctic VR Lab (aka Triad’s Green Bay Lab – Go Pack!). Triad Semiconductor worked with Valve Corporation to create the Light to Digital Converter ICs (TS3633) for SteamVR Tracking. Beno speaks Python and English and his office smells of solder and 3D printing. He spends his days and nights ensuring that SteamVR Tracking ICs and systems provide precision tracking and he supports SteamVR users around the globe with the development of Tracked Objects.
The purpose of this tutorial is to provide step by step guidance on how to get started with SteamVR Tracking 6DOF positional tracking for as little as $235. In this tutorial, the latest version of SteamVR Beta, is coupled with python 3.6, the pyopenvr library and the triad_openvr Python wrapper.
Minimum Hardware Needed:
- One HTC Vive Basestation (Two Basestations also have advantages)
- One of the following SteamVR compatible Tracked Objects:
- HTC Vive Controller (Steam Dongle or USB connection required)
- HTC Vive Tracker (Use HTC provided Dongle or USB connection)
- Custom object designed with the SteamVR HDK (Steam Dongle or USB)
- x86-based PC
Note: Currently this is only tested on Windows but should also apply to Linux
- SteamVR software with opt in for the Beta
- Python 3.6 (Anaconda Package recommended)
- pyopenvr, install with the following command:
pip install pyopenvr
- triad_openvr, Download from github and unzip
- Download and install the above software components
- Locate the following configuration file and open it with a text editor: <Steam Directory>steamappscommonSteamVRresourcessettingsdefault.vrsettings
- Search for the “requireHmd” key under “steamvr”, set the value of this key to “false”. The following is a .vrsettings file that has been tested as functional:
- If SteamVR is running, close and restart it
- When SteamVR restarts, you will see that it is now possible to connect a tracker or controller without the HMD.
Note: “Not Ready” text is normal and does not impact this tutorial
- Open a command prompt and navigate to the folder where triad_openvr was unzipped
- If you are testing with a Vive Tracker, run the following script
- If you are testing with a Controller, run the following script
- As the script executes, you will see numbers updating at 250Hz. These are the realtime 6DOF pose coordinates!
The purpose of this tutorial was strictly to provide a quick proof of concept that demonstrates that an HMD is in fact not a requirement for use of SteamVR.
Python is an extremely extensible language and this example code may provide a basis for many derivative projects. These same concepts also easily apply to other programming languages such as C, C++ C#, etc.
If you have any questions or would like to share your project based on this tutorial, please contact us at firstname.lastname@example.org.