1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Oculus Rift tracking and Motion Simulation

Discussion in 'DIY Motion Simulator Building Q&A / FAQ' started by noorbeast, Nov 19, 2014.

  1. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,464
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,620Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Rather than clutter the welcome thread I have picked up and am following up on @raidho36's question about Rift tracking: http://www.xsimulator.net/community...member-introduce-here.1737/page-64#post-64657

    The Rift camera on the rig is unlikely to be the best option and even less so as the tracking technology of the Rift is expanded. You can likely expect a full 180 dome coverage in the early release consumer version of the Rift and two of those cameras would give a full 360 coverage, in which it would be pretty trivial to offset user and sim motion for any relative position. However that is an extreme example.

    The Rift and motion simulation is virgin territory, which is why people like myself are interested in it. For general use the real challenge is refining aspects of the Rift, sim and game into 'tricking' the brain, rather than trying to use extremes in any of those. For me the practical integration challenges are about subtle nuances. There is currently no way to replicate the full G forces in a cost effective manner, so the next best thing is to maximise the seamlessness of the simulation across the Rift, motion sim and game.

    I know your interest stems from the relationship with extreme motion but for many practical purposes developmental experimentation is more likely to focus on the subtle interplay between VR and motion simulation. Hence you may find it useful to do a fair bit of testing before building, as extreme motion exacerbate even more challenges than have already been suggested, such increased latency and synchronization, both of which greatly contribute to VR sickness.
    • Agree Agree x 1
  2. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    >You can likely expect a full 180 dome coverage in the early release consumer version of the Rift and two of those cameras would give a full 360 coverage
    New prototype Crescent Bay already have full 360 tracking: the problem is resolved the same way as Sony Morpheus did it - by adding tracking LEDs at the back. This addition makes it into first release version CV1.

    >The Rift camera on the rig is unlikely to be the best option and even less so as the tracking technology of the Rift is expanded.
    I don't exactly understand what's the logic behind this. To me, on contrary, using camera opens possibility to more reliably track rig-relative head motion if you attach it to the rig. I've heard on Reddit that there's issues with camera losing tracking sometimes, other times it works perfectly however and it's inconsistent behavior. I tie occasional tracking loss to apparent excessive camera jerking where usually distinct tracking LED images smear into a blotch which confuses tracking algorithm, i.e. the fixture wasn't rigid enough - using metal bars for the purpose would be. Without tracking camera footage is hard to tell so I just have to guess. The guess is unplausable anyhow because tracking camera should never increase exposure time (LEDs are clearly visible in all lighting conditions anyhow) and therefore there should not be smearing even under violent motion. Further development and investigation is required, but we're getting somewhere with this.

    >There is currently no way to replicate the full G forces in a cost effective manner
    You can to some extent simulate them properly, but that takes a very specific rig layout and very powerful motors. I'm thinking this through. Soon enough SketchUp 3d project will be finished. I don't know any good way to visualize forces in SkU, but I think that a free-swinging pendulum on a spring in place of driver will have to do.

    >such increased latency and synchronization
    This is a topic worth discussing. First off, I'd like to notice that contrary to (as I see it) popular belief that you should use PID, you shouldn't. PID has number of drawbacks, and with respect to current talk it imposes great deal of lag. This is because it's basically a low-pass filter with prediction function and damping applied. I only learned today that PID is a thing, but I've been doing something similar half a year ago when I was trying to create an algorithm for smoothing out wildly noisy Razer Hydra inputs. I tried a lot of functions and combinations, and it seems that the best option without deeply hacking into Hydra driver is to use aggressive gaussian smoothing and very aggressive prediction to compensate. Combination of two exhibits similar properties to PID, such as lag behind input data, killing high frequencies, bad reaction to abrupt function change, and PID additionally tends to oscillate around target value. This is because PID has no knowledge of the nature of the system it's working with. You should instead use accurate mathematical model of the system you're modelling, i.e. a motor that rotates weighted flywheel.

    On topic of lag, how much lag there is between event happen in the game and servos start moving, assuming servos travel magnitude is not controlled and they just free spin accordingly to in-game forces? Depending on polling frequency lag from game to SimTools should be 3-15 ms, then SimTools imposes lag of up to sending rate of the signal, and controller board should take next to no time to send the signal to the servo. With high framerate and high sending rate, that should be about 20 ms worth of lag. Given that vestibular system is not as sensitive as visual system (let alone tactile sense of pressure from G-forces) this may be sufficient.

    I would also bring up GVS, although this is complicated beyond reasonable. If you use GVS you can simulate sense of arbitrary amount of acceleration in arbitrary direction (realistically though just laterally but not vertially) thus lifting the need for the rig to provide G-force feedback. But then you end up with, eh, having no G-force acting on the rest of your body. GVS may be used well in conjunction with simxperience-like 2DOF rigs that mostly simulate abrupt changes in car motion such as violent turning, road bumps and collisions.
  3. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,464
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,620Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    The Crescent Bay tracking is actually a 180 dome coverage with one camera, from which it can extrapolate a point cloud within that area. From reports Crescent Bay allows for moving around in an area of about 1 meter in any given direction.

    Unless there are complicating physical factors a Rift loosing tracking is most often caused by the Rift being on the peripheral or moving out of the vision area of the tracking camera. LED smearing is not really an issue when there are multiple LED source points for tracking purposes.

    You need a centrafuse to recreate strong G forces, anything less is a simulation and how well it works relies on fooling the brain in as seamless a way as possible.

    Latency and synchronization are far more complex than just one factor, they relate to all aspects of the simulation, the Rift, the motion simulator, the game and all associated hardware.

    GVS is neat and in research, including controlling individuals as an avatar for another person, but is a long way off consumer modelling, though you can always use yourself as a crash test dummy. The basic tech is simple but varies considerably in applicability to different individuals.
  4. SeatTime

    SeatTime Well-Known Member

    Joined:
    Dec 27, 2013
    Messages:
    2,574
    Occupation:
    Retired
    Location:
    Brisbane Australia
    Balance:
    28,370Coins
    Ratings:
    +2,844 / 38 / -0
    My Motion Simulator:
    AC motor, Motion platform
    Hi raidho36, wellcome to the site. I'm guessing from the comments above that you already have a working VR motion sim? Just post some photos/videos in the project area - you don't have to give away all your secrets.
  5. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    @SeatTime no I don't, I specifically said I'm thinking of building a sim (in welcome thread though), as in thinking it through, calculating, etc.

    @noorbeast
    I beleive to use a hard motion sim you'd have to be fastened to the chair so that only leaves a few inches worth of head travel. If camera is fixed to the rig that absolutely solves the finite tracking volume problem. Smearing is usually not an issue, but if it's strong enough for several points to smear into a single blotch then that becomes a serious problem which usually doesn't worth resolving programmatically since results will be sub-par and function behavior will be unstable anyway.

    >You need a centrafuse to recreate strong G forces, anything less is a simulation and how well it works relies on fooling the brain in as seamless a way as possible.
    I don't aim with actually simulating G-forces which is not really possible for any motion sim anyway, but yes I'm thinking of using a tangential (no pun intended) effect of that principle to provide sense of acceleration at low tilt angles. There's one parasitic variable to equation, though (velocity), and right now I'm trying to solve this more or less nicely. One is known for sure that the software is nowhere even remotely sophisticated enough to calculate motor drive strength, so I'll have to write whole another program to control the rig motors, only using SimTools to gather telemetry and feed it to the calculator.

    >Latency and synchronization are far more complex than just one factor, they relate to all aspects of the simulation, the Rift, the motion simulator, the game and all associated hardware.
    Yeah that didn't answered anything. I'm trying to actually calculate the latency of a motion sim so I'm trying to gather up some numbers. Latency of the Rift itself is out of question, but it promises to be well under 20 ms, which is good enough for visual cortex to think that there's none.
    Last edited: Nov 19, 2014
  6. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,464
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,620Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    @raidho36 I had already advised you that mounting the tracking camera to the rig was one option. Please do not quote me out of context nor misrepresent the info you have already been given, which has covered the range of options and associated issues.

    If you consider smearing an issue then please provide evidence that can be tested, rather than speculation. My comments are derived from actual experience with the Rift tracking configuration and positioning.

    I would be interested in details as to the design factors you are considering concerning capitalizing on the tangential effects, particularly regarding practical implementation. Is it angular velocity you consider the 'parasitic variable'?

    I did indeed point out the critical first step with respect to latency and synchronization issues: you first have to understand and account for the nature of the interrelated factors of the problem before considering the multiple vectors of possible solutions. Latency and synchronization (often referred to as judder) are still issues with the Rift itself, exacerbated further via variable hardware and game implementation issues. Adding motion simulation is a further variable. Yes the latency of the sim is a factor, but so too is the fidelity of the motion being simulated and how well the user perceives that simulation as accurate. There are many factors associated with the latter that go far beyond software considerations and include simulator design and hardware.
    • Like Like x 1
  7. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    yes @raidho36 , have you actually built a simulator and then spent time getting the rift right on it?
    @noorbeast has.......
  8. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    Smearing is just a hunch, as I already said, but reportedly with some titles (AC specifically) it works nice and with others (Dirt 3 speifically) it has issues with tracking loss, which suggests that it could be smearing problem since road racing is supposedly gives smoother ride than rally racing. As I also said, it's not possible to tell without camera footage and more investigation is required.

    >I would be interested in details as to the design factors you are considering concerning capitalizing on the tangential effects, particularly regarding practical implementation. Is it angular velocity you consider the 'parasitic variable'?
    Yes. If you use tangential acceleration to provide sense of acceleration at low angles, by the time you wind up the rig to high angle you would build up a lot of velocity which you'd have to damp, but doing it is literally creating a counter-acceleration. I've derived a formula that accounts for that, but the speed damping function itself needs a lot of work. Right now I'm trying to simulate it programmatically - not that I have a real rig to test it on a bare metal anyway. I'm developing it in 2d since it's simplier that way and 3d only differs by having an extra dimension to force vector. It wasn't so bad and I got it working, and I immediately found out that I probably should use twofold filter: low-pass filter for overall tilt and high-pass filter for rapid jerking. Other than that, everything works as I estimated - it instantaneously creates some G-force and then drives the chassis to the angle that would generate similar amount of G-force through Earth gravity. Simple damping, as predicted, still resulted in subtle swaying which gets pretty strong upon very harsh abrupt changes, and additionally the G-force from continious surge has a drop in the middle of windup time frame. Still beats having it winding up from zero, or having it going in complete opposite direction up until the frame reaches required angle.
    [​IMG]

    @bsft no I did not, as I said, but I heard reports of people who did. Even if that's one case out of ten, it's still an issue that needs addressing.
    Last edited: Nov 20, 2014
  9. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,396Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    I can assure you that if you hard mount the camera on the rig it loses tracking ALOT , unless we have some way of stopping the violent vibrations travelling to the camera eg from heave over rumble strips or kerbs and wotnots.

    Maybe some kind of shock absorbing mount, I even thought of getting a gambel and see if that would help but i don't think it would stop the up/down movement , the camera would always be level but would still get too much shock from the rig vibrations.

    Must be something out there to do it.
    • Informative Informative x 1
  10. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,396Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    And I Haven't got a clue what you 2 are discussing @noorbeast and @raidho36 lol. Way too many big words for my simple mind :eek:
    • Agree Agree x 3
  11. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    Thanks for the input @SilentChill. So it looks like smearing from camera jerking is the case after all. I have to tell though that instead of using shock absorbing mount, you should make the mount as rigid as possible relatively to the rest of the rig, up to using "unbendable" (to some extent) materials such as steel frame. I once had similar issue with 6DOF LED headtracking OpenTrack - mounting point of the camera would yield vibrations time to time and it was causing problems with going out of tracking dot size due to smearing. I resolved the issue by fixing the camera in a really rigid fashion to ensure absense of random jerking from vibrations.
  12. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,619
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,396Coins
    Ratings:
    +3,480 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    As I said the vibrations nearly shake me to bits let alone the camera any slight movement with the camera and it goes crazy.

    I will try and do a video to show you how bad it is.
  13. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,464
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,620Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Move on folks, nothing of value in mythical make believe tracking smearing. The most common causes of Rift tracking problems, as per the official Oculus community spokesperson, are here: https://forums.oculus.com/viewtopic.php?f=34&t=13074#p178819

    The tracking system of the DK2 is highly sophisticated, including individual LED behavior and associated tracking algorithms: http://www.roadtovr.com/reverse-engineering-oculus-rift-dk2-positional-tracking-camera-linux-sdk/

    Subjecting any tracking camera to a highly changing/variable unstable platform, which also introduces other variable environmental light sources, is not a good idea.
    [​IMG]
    • Agree Agree x 1
    Last edited: Nov 20, 2014
  14. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    @SilentChill yes please. Thank you for your time in advance.
  15. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    @SilentChill , do not waste your time, have a look at this guys posts and see why hes not worth your time.
  16. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    @bsft @noorbeast Please go be counter-productive somewhere else. Figuring out how to make VR work well with motion rig is everyone's business, it has to do with every motion rig owner, because sooner or later all of you (and I hope me too) will be only using motion simulators in conjunction with VR and triples with projectors will drift into oblivion. For some, it happens already.
  17. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    speak for your self!
  18. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,464
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,620Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    That is just the point, people are working on solutions for VR and motion. I covered the possibilities at the onset plus provided the link for that at the start of this thread after I was asked the question in the first place...evidence based and transparent approach

    For the benefit of others who are genuinely interested in the topic Oculus has gone down the path of optical tracking for the DK2, where the DK1 relied totally on magnetic fields. The downside is that the Rift is designed with the assumption of static sensor placement and high fidelity algorithmic tracking.

    Throwing a vision sensing camera and the Rift around at the same time is always going to be a technical problem, it is pretty much impossible to mechanically eliminate the vibrations that are constantly affecting the camera and Rift, and lots of washout to dampen it really hurts the motion experience. Hence why I indicated the scope of the problem when asked and provided the link for the most promising approach thus far: movement cancelling. In the long run the ideal solution is that the Rift knows where both the user and the the sim is at all times and can compensate, which is how VectionVr was born.

    Counter productive...I am sure others can decide for themselves about what is going on. I am more than happy to contribute to the topic and ignore unhelpful distractions.VR is a very interesting developing aspect of motion simulation. It is the very reason I built my sim rig, to act as a VR test bed.
    • Like Like x 3
    Last edited: Nov 20, 2014
  19. AceOfSpies

    AceOfSpies Living the Dream!

    Joined:
    May 8, 2012
    Messages:
    260
    Location:
    Kilwinning, Scotland
    Balance:
    19,614Coins
    Ratings:
    +244 / 1 / -0
    My Motion Simulator:
    3DOF, DC motor, JRK, Motion platform
    OMG! I have just had my first laps in LFS with the Oculus Rift DK2 and motion on my sim! Apart from the fact that I don't see the room that I'm in, only the race track, the motion cues relating to what I'm seeing is absolutely amazing. I still have to tweak the profile as I had a complete re-install of Simtools following a computer upgrade. I appreciate that the DK2 is not a finished product, but the sense of "presence" is tremendous. VR isn't for everyone, But I love it!

    Mike :thumbs
    • Like Like x 3
    • Agree Agree x 1
  20. raidho36

    raidho36 Member

    Joined:
    Nov 18, 2014
    Messages:
    49
    Balance:
    829Coins
    Ratings:
    +14 / 6 / -0
    @noorbeast So I assume we can now quit with unrelated things and concentrate on the topic, right?

    The highlighted problem is tracking loss. Yes the camera tracking is designed to be static, as in it assumes that head doesn't moves too violently, and given that it has no issues with tracking people's natural motion I don't suppose that under 1G worth of accelerations is an issue for it. This gives some implications but first obvious thing about it is that rig-relative "static" is the same as room-relative "static". If camera is fixed in the room, then there may be issues with tracking volume limitations, as well as that if the rig moves around too much there may be occlusion problems. If a camera mounted on the rig, that obviously will not be an issue, but the camera is very heavily affected with vibrations, thus making it jerk around, which is known to not be acceptable. My idea regarding this is that fixing the camera in a really hard and really rigid fashion will make the picture static rig-relatively. I don't own a motion rig, so I can not really test it by myself. I may still test it with simple replacements such as simple webcam attached to a swivel-chair - I would jerk it around to see if camera's footage is static relatively to the chair. But that would be another two weeks until I get home and around here specifically I don't have a wired webcam, only a laptop webcam. However from my past experience with LED tracking and jerking camera, I know that doing it should probably work because it worked for me with OpenTrack, and Rift's tracker is a lot more sophisticated system. It would be appreciated if someone could test this kind of approach.

    A minor correction there: Rift DK1 only uses magnetic field for yaw correction because due to gimbal lock it's not possible to do it any other way. Pitch and roll are corrected using gravity vector which is always pointing downwards.