cancel
Showing results for 
Search instead for 
Did you mean: 

Disable magnetic sensors for tracking / drift compensation?

panics
Explorer
I work in a research lab that has been investigating spatial orientation, visual-vestibular integration, self motion perception, and motion sickness for a couple of decades. Virtual reality presented through an HMD has been a key element to that research. I am looking into introducing the Oculus Rift DK2 for use in some (all) of our current research; as the device has significant benefits over the other HMDs that we have available.

Unfortunately the Rift is not usable in combination with some of our other research equipment. We are placing people in a chair mounted on a multi-axis rotating system that is driven by fairly powerful electromotors (see here https://www.youtube.com/watch?v=VjVLt2IDbHo). People will be wearing a HMD that presents them with virtual environments created in Unity. However, the motors appear to be generating magnetic fields that completely mess up the Rift tracking, making the Rift useless in this setup.

I've looked into recompiling LibOVR to disable the magnetic sensors and the associated drift compensation (during our experiments we can correct for drift by resetting the Rift tracker every couple of seconds). However, since we're using Unity to create virtual environments, we may also need to create a custom OculusPlugin.dll (assuming that it is statically linked to LibOVR)

I have the following questions:
  • Can anyone from confirm whether it is actually possible to recompile LibOVR to disable the magnetic sensor? Or at least, prevent the magnetic sensor data from affecting any pose tracking/drift correction ?

  • Can anyone confirm whether the source to OculusPlugin.dll be released any time soon? Is there a community created alternative available? (I'm aware of https://oculuswrap.codeplex.com/ but I'm not sure if that is a 'drop in' replacement of OculusPlugin.dll)


Thanks for reading this 🙂
2 REPLIES 2

PhyterJet
Honored Guest
I don't think oculus intends to opensource their current implementation at this time, they have already open sourced the DK1 implementation as promised in the kickstarter.

You could look into Vrui, which is an open source implementation of several VR/AR devices including the DK2, for linux.
https://github.com/KeckCAVES/Vrui

I'm sure John Carmack will want to open source the DK2 implementation eventually, considering he has open sourced all major projects he has worked on thusfar in his career. wolfenstein, doom, quake 1, 2 and 3, doom 3, expectations are low for rage to be open sourced, since carmack is no longer id

haagch
Explorer
You have to look whether they use the magnetic sensors in "service" program that does all the tracking, because that one is closed source too.

For unity, I agree, they probably won't release the source code of the plugin. With unity 5.1 they're also going to have "integrated" oculus rift support, possibly without a plugin alltogether.

Have you looked at the OSVR github site? https://github.com/OSVR
They have some interesting projects there:

distortionizer - Tool for determining distortion parameters of arbitrary HMDs, and a corresponding set of shaders to correct that distortion.
OSVR-Oculus-Rift - Oculus Rift tracking plugin for OSVR. (uses the tracking service from the oculus rift SDK, which must be running)
OSVR-Unity - Package for authoring OSVR experiences with Unity.

To me that sounds like they actually have the building blocks to create a unity plugin that can use the oculus rift.

A month ago I tried OSVR-Oculus-Rift on linux. It didn't really work for me, but maybe putting in an hour of effort into understanding how it should work would help: https://www.reddit.com/r/oculus_linux/c ... _osvr_sdk/