Page 1 of 1

[REQ] Interfacing propreitary HMD tracking with SteamVR?

Posted: Mon Mar 21, 2016 9:04 am
by BenAdamson
I have an HMD with a tracker that sends data messages over a USB serial connection at 120Hz. These messages contain azimuth, elevation and roll, X, Y and Z values amongst other things. How would I take this data and use it with a service such as SteamVR which would allow me to use it in the same way as an oculus rift? All the information on developer APIs that I can see are for people making games, not people trying to use their own HMDs!

Re: [REQ] Interfacing propreitary HMD tracking with SteamVR?

Posted: Mon Mar 21, 2016 4:44 pm
by Tril
You could make an OSVR plugin for the HMD head tracker and use SteamVR-OSVR, an OSVR plugin for SteamVR, to make SteamVR games use your head tracker plugin.

I've never tried SteamVR-OSVR so I can't help with that.

I've tried to make an OSVR plugin for a head tracker however. You can make one from the example code in :
OSVR-Core\examples\plugin\selfcontained folder
OSVR-Core\examples\plugin\org_osvr_example_Tracker.cpp
OSVR-Core\examples\plugin\org_osvr_example_Tracker.json

A good example is OSVR-Oculus-Rift. For a more basic example, you can take a look at TrackerV2-OSVR that I wrote (the tracking still needs some work but it shows what needs to be done overall).

After that, you need to place a json settings files in the bin folder of the OSVR snapshot and load it with the OSVR server (osvr_server.exe mysettings.json). That file configures OSVR for the HMD resolution and distorsion, enables/disables direct mode, enables/disables timewarp, etc. For an auto-configured plugin like TrackerV2-OSVR, you don't have to enter any configuration to load the plugin, you only need to put the dll file in osvr-plugins-0 folder.