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

Simulation platform motion compensation.

Discussion in 'VR Headsets and Sim Gaming - Virtual Reality' started by DEADBEEF, Jul 7, 2016.

  1. DEADBEEF

    DEADBEEF New Member

    Joined:
    Sep 1, 2013
    Messages:
    23
    Occupation:
    N/A
    Location:
    UK
    Balance:
    370Coins
    Ratings:
    +12 / 0 / -0
    My Motion Simulator:
    3DOF
    How are people dealing with this?

    I recently dismantled my 1DOF (traction loss) motion rig to make space for upgrading to a 4-6DOF rig at some point in the coming future, but was wondering if there are any easy to implement motion compensation solutions knocking about yet, as that was always an issue I faced with my DK2 (not bought a CV Rift or Vive yet).

    Has anyone come up with a modded Rift / SteamVR driver yet which can take motion cues from a second IMU attached to the rig near the player's head and subtract the values from the data coming from the HMD?

    It'd make VR a much more viable option for folks with rigs that can simulate a large range of movement.

    The current method of sticking your Rift tracking cam to the rig is obviously not the best way to go as the position data coming from the camera is constantly at odds with what the headset IMUs are sensing.
    If the headset IMU data was subtracted from the motion of the platform first then the player's position & orientation would always be relative to the position of the motion platform.

    Are there any plans to have something like this added as a feature in Sim Tools 2.0? or is anybody independently working on such a thing? (before I start down my own path)

    ---

    NB. I did a few forum searches but seemed to only turn up threads from a year or two ago. Is anybody actively developing something like this (that they intend to make public and/or will allow public code contributions toward)?

    Cheers.
  2. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    VectionVR released motion cancellation for the Rift on the old runtimes, unfortunately it has to be compiled with the game source and as far as I know LFS is one of the few games that support it: http://www.vectionvr.com/en/index.html

    Motion cancellation is not really something to solve at the SimTools end, there are things being investigated like using a mobile phone to record motion, but that is for other functionality like syncing motion to movies.

    Capturing motion tracking is not hard. The tricky part is offsetting the HMD view from motion in a simple and generic manner.

    Investigating motion cancellation with the Vive is on my todo list, but it is way down on my current priority list at the moment. I have had discussion with other Vive devs about the fidelity of tracking and we all agree that should be no problem using LightHouse and the controllers, other than a possibly needing a calibration function.
  3. 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
    Even if someone came up with a App/plugin that could track the movement of the sim, you would then need that data to be read somehow by all games for the offsets to be applied to what you are seeing in the headset. Apart from specially designed Apps like @noorbeast talked about above, I cannot see that being available anytime soon for the majority of the games we use - it hard enough to get developers to implement just Telemetry UDP :(.

    I mount my camera to my 6DOFs Sims frame and apart from a slow drift down in the CV1 runtime (did not have this issue in the DK2 runtime) it works quite well, I have recently been able to minimize most of this drift via placing the tracking camera on a gimbal, I obviously now get some roll and pitch movement translated to the screen, but it is minimal and for me not 'presence' breaking like the surge/sway movements if the tracking camera was mounted off rig. Its early days in VR and as such we will need to put in place 'fixes' until this is sorted out hopefully in the future.
    • Optimistic Optimistic x 1
  4. Map63Vette

    Map63Vette Member

    Joined:
    May 19, 2016
    Messages:
    127
    Occupation:
    Mechanical Engineer
    Location:
    Lawrence, KS
    Balance:
    430Coins
    Ratings:
    +31 / 0 / -0
    You don't necessarily need to apply the plugin to each game individually, you do it through the Oculus driver as I understand it. Over on the Oculus forum someone was messing with this and had it working to some degree. Essentially you take the data out of your sim software and run it through the Oculus runtime to compensate for the rig movement. So the game doesn't need any special "input telemetry" style support, it would be handled by the Oculus software independently assuming you can export data from your motion software.
  5. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    The VectionVR approach was to mod and patch the Oculus LibOVR directly: https://github.com/VectionVR/OculusRiftPatch/tree/master/Oculus source patch files

    The downside is that approach meant compiling the patched LibOVR with the game source. It was only ever done for LFS and P3D.
  6. Map63Vette

    Map63Vette Member

    Joined:
    May 19, 2016
    Messages:
    127
    Occupation:
    Mechanical Engineer
    Location:
    Lawrence, KS
    Balance:
    430Coins
    Ratings:
    +31 / 0 / -0
    Ah, I see what you mean. Seems like it might be easy enough to implement into the Oculus LibOVR as an option for future use, but it would be on Oculus to do it at that point. Have some kind of option like "compensate for motion" as an option that can be selected in a setup tool so it takes the load off of the game.
  7. DEADBEEF

    DEADBEEF New Member

    Joined:
    Sep 1, 2013
    Messages:
    23
    Occupation:
    N/A
    Location:
    UK
    Balance:
    370Coins
    Ratings:
    +12 / 0 / -0
    My Motion Simulator:
    3DOF
    You could always MITM the USB packets I guess. Or locate the values in memory and add your offsets whenever they're updated by the HMD driver.
  8. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Palmer has said early on that Oculus in not interested in providing a generic solution, it is up to individual devs to implement. W\hich is silly in terms of motion sim fans as the VectionVR approach shows, devs are not interested in compiling custom and potentially obsolete LibOVR into games. Personally I don't blame them.
  9. PaulMac000

    PaulMac000 Member

    Joined:
    May 25, 2016
    Messages:
    31
    Balance:
    26Coins
    Ratings:
    +10 / 0 / -0
    My Motion Simulator:
    Motion platform
    Hey noorbeast,

    I'm just getting up to speed now on how Oculus uses IMU's.

    What are the routes for using an Oculus on a high range motion rig?

    Are there other methods for disabling IMU's that haven't been discussed here?

    I'm looking at integrating the LibOVR into a custom UE4 scene, so any tips would be awesome!
  10. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Disabling the IMUs is not a good idea.

    The two routes on large axis motion rigs are to mount the Rift camera on the rig, or utilise motion cancellation.

    Members have found gimbaled stabilised camera mounts work reasonably well for mounting the Rift camera on the rig: https://www.xsimulator.net/community/threads/that-sinking-feeling.8762/#post-110556

    VectionVR made motion cancellation available via a modified LibOVR, but that never took off as it requires compiling with the game source code: https://github.com/VectionVR/OculusRiftPatch/tree/master/Oculus source patch files

    Personally I consider the gimbaled stabilised camera mount to be the only generally applicable and practical method available for large axis motion sims if using the Rift.

    It may be possible potential to use the Vive Lighthouse system for motion cancellation by mounting the sub mm tracked controllers to the rig, but thus far nobody has tackled what it would take and if there is a generic way to offset the motion in the HMD view.
    • Informative Informative x 1
  11. Mic_n

    Mic_n New Member

    Joined:
    Mar 31, 2016
    Messages:
    23
    Location:
    Sydney
    Balance:
    431Coins
    Ratings:
    +14 / 0 / -0
    Could you run it off the 'reset seat position' function? That's integral to the steamvr libraries and so game independent.. You could use that controller as a constantly updating 'zero'... but you still need to track the relative changes there from that and the HMD, so you'd need to decouple that somehow. I've never really looked enough into the devkit to see what's do-able...
  12. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    It needs to offset relative to the game HMD view, not the reset position, but I guess constantly altering where the system presumes the reset position to be may be one possibility. I would hope there is a cleaner way than that, but have not had time to poke around yet.
  13. Mic_n

    Mic_n New Member

    Joined:
    Mar 31, 2016
    Messages:
    23
    Location:
    Sydney
    Balance:
    431Coins
    Ratings:
    +14 / 0 / -0
    Yup, that's the idea. The seated position is updated constantly, referenced off the mounted controller instead of the HMD, and the HMD tracking is then used to produce the relative offset from that zero.

    Yes it's certainly messy.. Ideally you could just subtract the values of one from the other in a wrapper before continuing the normal steamvr pipeline, but I have no idea how easily that data can be intercepted and re-injected.. I'm just 'thinking aloud' with mechanisms I presume are there.
  14. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Nothing wrong with floating ideas and kicking the tires, it is at least a workable hack possibility.
  15. PaulMac000

    PaulMac000 Member

    Joined:
    May 25, 2016
    Messages:
    31
    Balance:
    26Coins
    Ratings:
    +10 / 0 / -0
    My Motion Simulator:
    Motion platform
    Thanks for the feedback.

    I was originally planning on using off the shelf games for the demonstration, however, I quickly realized that they weren't designed for a rig like ours and don't provide flexibility for us to run experiments with.

    So based on that we decided to make a short VR movie in UE4 to show off the power of the system and to see how we can amplify emotions through motion.

    So compiling LibOVR into the UE4 scene is perfectly acceptable.

    If LibOVR is used, should I still use a gimbal for the Oculus base stations?
    As a side note, we will be using two which will give us better coverage during turns.
  16. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,463
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,614Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    If what you have in mind is to implement motion cancellation, like VectionVR does, then you would actually mount the camera off the rig.
  17. MacThai_75

    MacThai_75 Member

    Joined:
    Sep 7, 2016
    Messages:
    13
    Location:
    California USA
    Balance:
    439Coins
    Ratings:
    +6 / 0 / -0
    I'm in late on this conversation, and on a bit of a different note ... I have a concern that I emailed Oculus about this AM and have actually received a we'll look into it and get back to you answer to. :popcorn

    The type of cockpit high-back seats that have a metal loop in their headrests, and probably more importantly ... the type of motion platforms that use vertical, electrically driven actuators that are placed right behind, and in close proximity to the HMD, might not play all that too well with the internal magnetometer, and might cause it to be sending some erroneous signals to the IMU, not to mention any possible strong electrical fields generated by those types of actuators, just playing hell with HMD's electronics.
    I'm not sure the HMDs were engineered to be immune to that sort of thing.
    Aren't some of these actuators capable of drawing upwards of 80 amps DC?

    I guess this could be easily tested if a person was having the non-consistent intermittent issues (like maybe needing to recenter the view at irregular times) by simply putting a wooden chair on a platform, but on one like the the Next Level (that's all contained under he seat) to eliminate any close proximity metal and/or electrical actuators, as a source of issues.

    If the HMD's internal mag 'is' getting messed with by seat back metal and/or energy fields from actuators, then it won't matter what motion cancellation is implemented, because like a drone that has a bad mag calibration due to it being accomplished too close to metal objects .... the IMU will tell the tracking to do unpredictable things as the HMD is moved about in the "contaminated" environment and/or the fluctuating fields generated by close proximity electrical actuators contribute to inconsistencies.

    Anyway, if I get anything usable back from Oculus I'll post it.
    Last edited: Sep 11, 2016
  18. 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
    Was this request to Oculus based on actual findings, or just something that you thought could happen? It's not something that I have ever noticed.
  19. 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
    So decided to test this myself, tried moving a metal bar around the headset, then next to one of my rigs motors as it was being driven - zero effect that I could detect. Will be interesting to see what if anything comes back from Oculus (We know how interested they are about motion sims :rolleyes:).
    • Like Like x 1
    • Informative Informative x 1
  20. MacThai_75

    MacThai_75 Member

    Joined:
    Sep 7, 2016
    Messages:
    13
    Location:
    California USA
    Balance:
    439Coins
    Ratings:
    +6 / 0 / -0
    Actually both.
    Partly due to my wanting to understand why when sitting in my stationary OpenWheeler cockpit with a large metal hoop in the headrest, I intermittently need to recenter the view, but don't when I just used a desk and a wooden chair. (???)
    As well as to help me decide on which type of motion cockpit I should go with (if the actuator emf is a concern).

    It might not be an issue at all, but it doesn't hurt to ask.

    It's encouraging that you are not seeing any issues
    Do you have any metal close to the HMD, and/or does your platform place the actuators near the HMD,?
    If so how close is it and what type of nominal current are you seeing to the actuators?

    Irrespective of what Oculus might come back with (and I'm kind of expecting at minimum, a cover their butt "don't do that response") it would be good to know what hardware has no problem with needing to be recentered.
    Last edited: Sep 11, 2016