Yaw drift even with 0.2.1 correction enabled — Oculus
New to the forums? Click here to read the "How To" Guide.

Developer? Click here to go to the Developer Forums.

Yaw drift even with 0.2.1 correction enabled

mm0zctmm0zct Posts: 61
Hiro Protagonist
edited April 2013 in Support
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.

Comments

  • drashdrash Posts: 2,846
    Neo
    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.
  • mm0zctmm0zct Posts: 61
    Hiro Protagonist
    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.
  • lavallelavalle Posts: 1
    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
  • mm0zctmm0zct Posts: 61
    Hiro Protagonist
    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 :)
  • KingK76KingK76 Posts: 257
    Art3mis
    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.
  • mm0zctmm0zct Posts: 61
    Hiro Protagonist
    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 :)
  • KingK76KingK76 Posts: 257
    Art3mis
    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. :D
Sign In or Register to comment.