cancel
Showing results for 
Search instead for 
Did you mean: 

Yaw drift even with 0.2.1 correction enabled

mm0zct
Protege
Over an hour or so I still seem to experience Yaw drift with the Rift SDK (~90 degrees to the right over 1-2 hours). I have enabled the magnetometer correction in the new 0.2.1 SDK, before I had programs drift even faster, like proton fusion I was facing ~90 degrees to the right when I finished playing too.

Does anyone else still get drift? The pitch and roll correction work perfectly and I've never had drift in those directions.
7 REPLIES 7

drash
Heroic Explorer
I would be interested to hear details of what you mean by "enabling" the magnetometer correction in your case. I read some of the documentation on it, and it seems the app in question needs to either approach it manually or automatically, but either way it involves one or more reference points that can be compared against when the player revisits those orientations and whatnot.
  • Titans of Space PLUS for Quest is now available on DrashVR.com

mm0zct
Protege
I use the following from the SDK at initialisation, making the assumption that the user is facing forwards when they click start:

SFusion.SetYawCorrectionEnabled(true);
SFusion.SetMagReference();


If this is incorrect then I obviously need to go back and check the SDK and add the correct code.

lavalle
Honored Guest
Hello,

The magnetometer must first be calibrated before the reference point is set and used for yaw drift correction. You have the option of a manual or automatic calibration. There are examples of both in OculusWorldDemo. Press "Z" for manual or"X" for automatic. After that, you can press ";" to set the reference point and visualize the yaw drift correction process.

The OnIdle handler in OculusWorldDemo.cpp makes the following calls to handle calibration:

// Magnetometer calibration procedure
if (MagCal.IsManuallyCalibrating())
UpdateManualMagCalibration();

if (MagCal.IsAutoCalibrating())
{
MagCal.UpdateAutoCalibration(SFusion);
if (MagCal.IsCalibrated())
{
Vector3f mc = MagCal.GetMagCenter();
SetAdjustMessage(" Magnetometer Calibration Complete \nCenter: %f %f %f",mc.x,mc.y,mc.z);
}
}

See the definition of the method UpdateManualMagCalibration() for an example of how to make a manual calibration procedure. We recommend manual over automatic as the most reliable method.

Steve

mm0zct
Protege
Thanks very much Steve! I was just implementing it as quickly as possible and saw the methods I used in my IDE's autosuggest foldout, looking like sensible options. I'll go back and add the proper method into the settings dialogue for the FTNOIR plugin 🙂

KingK76
Protege
"mm0zct" wrote:
Thanks very much Steve! I was just implementing it as quickly as possible and saw the methods I used in my IDE's autosuggest foldout, looking like sensible options. I'll go back and add the proper method into the settings dialogue for the FTNOIR plugin 🙂


I'm sorry to ask this in your thread here as it doesn't directly pertain to the original intent of the thread but here goes. Are you attempting to get positional head tracking working with the Rift through Face Track NOIR? I just created a thread asking if this was possible with the current developer kit. I know I had read earlier that it wouldn't be ready for when the kits were released but I was not clear if positional tracking would ever be available on the current dev kits. I think you have been working on getting FSX to work with the Rift through the Vireio Perception driver and FTNoir. If this is so then I tip my hat to you and wish you good luck as I would love to try out what you are able to accomplish.

A little update here... it was OmniAtlas who was doing the FSX with virieo and ftnoir. I guess I got a little excited and jumped to conclusions... oh well.

mm0zct
Protege
You didn't jump to too many conclusions, it was me that was working on Rift support and FTNOIR, I provided OmniAtlas with a prerelease binary and some tips to get FSX working with Virieo and FTNOIR. I was mainly focusing on Dirt3 since I don't own FSX.

I do plan to get some sort of head tracking working. The SDK exposes accelerometer values, which will of course drift horribly if used directly for positional tracking, but I think for cockpit style simulation we can get a good enough approximation 🙂

KingK76
Protege
"mm0zct" wrote:
You didn't jump to too many conclusions, it was me that was working on Rift support and FTNOIR, I provided OmniAtlas with a prerelease binary and some tips to get FSX working with Virieo and FTNOIR. I was mainly focusing on Dirt3 since I don't own FSX.

I do plan to get some sort of head tracking working. The SDK exposes accelerometer values, which will of course drift horribly if used directly for positional tracking, but I think for cockpit style simulation we can get a good enough approximation 🙂


That sounds great! I am a huge racing fan (I built my own racing sled with a Fanatec CSR Elite wheel and Clubsport pedals) so I hope your efforts are successful for all of the sim racing/flying community. 😄
Still need help?

Did this answer your question? If it didn’t, use our search to find other topics or create your own and other members of the community will help out.

If you need an agent to help with your Meta device, please contact our store support team here.

Having trouble with a Facebook or Instagram account? The best place to go for help with those accounts is the Facebook Help Center or the Instagram Help Center. This community can't help with those accounts.

Check out some popular posts here:

Getting Help from the Meta Quest Community

Tips and Tricks: Charging your Meta Quest Headset

Tips and Tricks: Help with Pairing your Meta Quest

Trouble With Facebook/Instagram Accounts?