Skip to main content
Inspiring
May 17, 2013

Positional tracking calibration

I'm still hopeful regarding the idea of approximating positional tracking for scenarios with limited mobility (e.g. the users sitting on a chair) with the accelerometers inside the rift tracker.

I think it may be worthwhile to capture real positional data recorded by a different system (Razer Hydra, MS Kinect or PS Move) and correlate it with the readings from the sensor.

Do you think this is worthwhile? Has anyone tried it?

    74 replies

    Up and Coming
    May 17, 2013
    If you already have a positional tracker fixed with the IMU, you might be able to do some sensor fusion to improve the update rate (using the IMU to provide a delta between absolute tracker updates, and doing some smoothing on top). The IMU on it's own is not in any way sufficient for positional tracking. This portion of Google's tech Talk on sensor fusion should explain why. Low-cost commercially available MEMS gyros and acceleration have not improved appreciably since then.
    Up and Coming
    May 17, 2013
    Checkout DARPA’s Micro-PNT positioning tracking technology, their TIMU concept could maybe be added in the future?

    viewtopic.php?f=25&t=1093

    "Harley" wrote:
    Micro-PNT (Micro-Technology for Positioning, Navigation and Timing) does absolute position tracking on a single chip!

    To oversimplify it; Micro-PNT adds integrates a highly-accurate master clock ("TIMU" or "Timing & Inertial Measurement Unit) to existing chips with 3-axis gyroscopes and 3-axis accelerometers (and 3-axis magnetometer) to simultaneous measure the motion tracked and combines that with timing from the syncronixed clock, and with sensor fusion makes a single chip that does absolute position tracking, all without external transmitters/transceivers.

    Is this technology just too expensive or not yet released by DARPA for use in non-militerized commercial products?

    http://www.darpa.mil/NewsEvents/Releases/2013/04/10.aspx
    Up and Coming
    May 17, 2013
    For walking situation, there's a research paper called "a reliable and accurate indoor localization method using phone inertial sensors" http://research.microsoft.com/en-us/um/people/zhao/pubs/ubicomp12_IndoorNav.pdf which basically tries to correct sensor drift by utilizing corridor constraint and repetitive nature of walking.

    So, I think it's possible to do similar thing in sitting-on-chair situation, if you can find some pattern in human motion (which should definitely exists).
    Up and Coming
    May 17, 2013
    You can't define position by accelerometers.

    Because on the long run, it becomes inaccurates.
    an acceleration is traduced in speed with lose of information
    then speed is traduced in position with even more lose of informations.

    you'll end, having a random position in your room, on the long run, even if you didn't moved from your chair.

    Magnetic vision tracking :
    Advantage :
    _Fast
    _Dont care of objects
    _little receiver on the desk

    Disadvantage :
    _Not a long range. (can't move around the room)


    Optical (PS MOVE) tracking :
    Advantge :
    _Long range

    Disadvantage:
    _No object beetween you and the camera permitted
    _Processing visual image take time


    RadioFreqeuncy (RF) tracking
    Advantage :
    _FAST
    _Long range.
    _very precise.
    _Dont care of objects beetween you and the receivers

    Disadvantage :
    _You need 4 receivers at different place on your desk.
    _Its new so only some prototypals exists


    The best things, if your on a chair, not too far is magnetic position tracking or RF if oculus manage to make a partnership with someone developping a prototype on it.
    New Participant
    May 17, 2013
    You won't be able to get the ground truth from a Hydra as the accuracy of the readings depend on where you are in the magnetic field. So a movement of 10cm from A to B != 10cm from B to C in virtual units.
    Up and Coming
    May 17, 2013
    yes, it was i said It was precise, but only if you're close to the computer.

    But the best, imo, is the radiofrequency concept.
    you have 4receipters on your desk, and the emitter ping every receipter, to triangulate his position, very precisely
    and very fast.
    Up and Coming
    May 17, 2013
    "Tgaud" wrote:
    You can't define position by accelerometers.

    Because on the long run, it becomes inaccurates.

    You cannot truthfully make such an absolute statement. It all depends on your application, and what environmental constraints you define for that application.

    You can have relatively accurate positional tracking from the Rift tracker data if you assume a fixed sitting or standing position, which is normal for a wired device. You just need to set that as your average "home" position. There are plenty of research papers that document how to do this.

    Of course, for mobile applications, you need to add GPS or other positional data to periodically recalibrate your IMU-based position data to prevent "long run inaccuracy". In that case, your statement is correct, but not in the typical Rift DK usage situation.

    The key to getting useful positional tracking data from an IMU such as is used in the Rift DK, is to detect proper recalibration points, such as when sitting or standing erect, or just using the mean position as a home reference point. Another important thing to prevent drift is to force the velocity to zero whenever the head (natural) stops moving for a moment to obtain a clear and sharp view (for minimal motion blur). This can all be done with relatively simple software algorithms, but it can be much more effective if you take skeletal models and full-body gesture recognition into account, along with motion prediction using a short time series of recent tracker data.

    For really accurate positional computation, snap-vector analysis is commonly used for accurate low-latency motion prediction (such as is used in quad-copter swarm formation flying):
    http://www.seas.upenn.edu/~dmel/mellingerICRA11.pdf

    In the "long run", you will always be seated (or standing) in the same spot while using the Rift, and you can periodically recalibrate to that known home position.

    FYI, the snap-vector (i.e. "joust") is the second derivative of the acceleration vector:
    https://info.aiaa.org/Regions/Western/Orange_County/Newsletters/AIAAOC_SnapCracklePop_docx.pdf
    But most applications do not go beyond jerk-vectors.
    This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
    Up and Coming
    May 18, 2013
    if when moving 30cm you have 1mm error, nothing observable
    then, if you play 4hours, you can assume that you'll have moved 3Km, so the 1mm error become a 1meter error.
    Up and Coming
    May 18, 2013
    "Tgaud" wrote:
    if when moving 30cm you have 1mm error, nothing observable
    then, if you play 4hours, you can assume that you'll have moved 3Km, so the 1mm error become a 1meter error.

    Except when you know that you are sitting or standing in the same spot (typical WIRED Rift DK usage), you can periodically reset your velocity to zero, and you can subtract your long-term average position to keep you centered in your constrained workspace. You will never travel farther than the reach of your cables. That is what I meant by "constrained" in my previous posts here and at MTBS3D, in which is explain how and why we CAN to useful positional tracking with the existing Rift DK head tracker harware.

    Of course, PORTABLE (free walking) applications will requiring adding a GPS to your sensor fusion, but most of us will be sitting on our assets while we play with our Rifts!

    And for future portability, I have one of these that I plan to add to my Rift DK sensor fusion code:
    http://emerythacks.blogspot.com/2013/01/u-blox-pci-5s-cheap-gps-module-for-your.html

    We must remember that the Rift DK is a designed as a gaming (entertainment) device, and not a precision scientific instrument. Within those specifications, I feel that is it more important to provide a FUN experience than to provide an accurate simulation, so I plan to use approximations and hacks and cheats wherever they simplify or speed up my code, especially when they allow me to do cooler things with smaller hardware requirements. And even innacurate postional tracking (with skeletal modelling and gesture recognition support) can greatly enhance our VR despite any objections by people bothered by long term uncompensated drift. I plan to compensate...
    :D
    This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
    Up and Coming
    May 18, 2013
    The best is the radioFrequency Position tracking.
    (4 little receiver in your desktop, an emitter in the occulus rift, and it will "ping" every receiver.
    By the time difference beetween the reception of each receivers, they can tell precisely where is the emitter in the room).

    Works in all condition, and has every advantage and precision possible.