1. 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 Download Package Now!
  2. 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
  3. 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 here. Do not following these rules will lead to permanent exclusion from this website: Read the forum rules.

VR Motion Cancellation - Time to test!

Discussion in 'VR Headsets and Sim Gaming - Virtual Reality' started by noorbeast, May 6, 2017.

  1. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    506
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    2,670Coins
    Ratings:
    +209 / 3 / -0
    My Motion Simulator:
    6DOF
    =O If you are on the right trail there you will be a hero to a lot of motion sim owners!

    I'm afraid I have no skills to help with this whatsoever but it sure would be a boon to the community to get Oculus motion compensation working.

    Did we not get any more info on the FeelThree software with the kickstarter launch?

    The Oculus solution was never near perfect (no compensation) but it was usable for a while a long time back. Changes to the Oculus SDK made it much worse and as far as I know it's still pretty bad. About the only thing you can do for now I'd say is mount the camera off the sim and set up your motion sim to use small angles (and maybe very small translations if you have them) with quick movements so there isn't that much motion to cause errors. It would be better than nothing.
  2. RiftFlyer

    RiftFlyer Active Member Gold Contributor

    Joined:
    Apr 15, 2014
    Messages:
    194
    Balance:
    1,565Coins
    Ratings:
    +116 / 0 / -0
    My Motion Simulator:
    DC motor
    Feelthree is launching without support for the oculus runtime. See the kickstarter page for more details.

    I lack the coding skill to make this idea work but hope some members here with programming experience would be willing to give it a try.
  3. RiftFlyer

    RiftFlyer Active Member Gold Contributor

    Joined:
    Apr 15, 2014
    Messages:
    194
    Balance:
    1,565Coins
    Ratings:
    +116 / 0 / -0
    My Motion Simulator:
    DC motor
    There is a programmer on the Oculus forums who has agreed to take a look at motion cancellation using the method I mentioned earlier. Some progress from him:

    “I was just playing around a bit with my Injector project (instead of doing actual work I was supposed to be doing).
    The following little script will use the right touch controller as a motion rig tracker, cancelling out it's rotation from the headset. Tested on my office chair (which can lean back and turn).
    (Not doing position cancellation yet, but that's not hard either)
    function HookGetTrackingState(time, latency)
    state = ovr_GetTrackingState(time, latency)
    state.HeadPose.ThePose.Orientation = state.HandPoses[1].ThePose.Orientation:conjugate() * state.HeadPose.ThePose.Orientation
    return state
    end
    On the monitor, it works correctly (I'm testing with Google Earth, that's my standard test program for this stuff), I can spin around and tilt but it looks like I'm staying still if my head matches the touch controller. Yay.
    However all is not well at the moment. Timewarp is getting confused.
    The problem is Time Warp knows the true headset orientation instead of the fake value I'm giving to Google Earth. Time warp also knows the headset orientation when tracking was last read. When submitting the frame to the runtime, earth says the fake value. Timewarp sees that and thinks "Wow, the current tracking is way off from when you rendered, I'd better rotate the view to compensate". So the view drifts off as a floating quad.
    Have you ever seen a game where a freeze from loading stuff makes the screen kind of detach from the headset and you see the edges? That's timewarp trying to fix things.
    Sadly timewarp is forced on, there's no way to stop it. But if I can hide the fake orientation from it, it should be ok. I've tried intercepting the submitframe call to modify it's layer data (the layer is where you tell the sdk which head orientation you rendered with), but it's still not working. I need to intercept a few more things to see what's going on.
    Interestingly, while looking at this I noticed the Oculus Debug Tool has a new field: Pose Injection. Turning it on makes the headset and touch controllers all move to a fixed position facing forwards with no tracking. I can't find any docs on what this is intended for (it looks like it's part of runtime 1.30, but the latest sdk is still 1.26).
    So that's a little hacking I did today. I REALLY need to get back to actual work for the next 2 days.”

    Hopefully he is successful.
    • Like Like x 2
  4. Spit40

    Spit40 VR Flyer

    Joined:
    Nov 3, 2016
    Messages:
    320
    Location:
    United Kingdom
    Balance:
    2,626Coins
    Ratings:
    +176 / 2 / -0
    My Motion Simulator:
    3DOF
    Send the guy some HUGE appreciation from everyone here for doing this investigation. @traveltrousers - you reading this?

    Hopefully he can make some more progress as many of us would love to have this.... unless the Berlin backers meetup says that the latest Pimax 8k is a winner. News due at 4pm Berlin time today.
  5. RiftFlyer

    RiftFlyer Active Member Gold Contributor

    Joined:
    Apr 15, 2014
    Messages:
    194
    Balance:
    1,565Coins
    Ratings:
    +116 / 0 / -0
    My Motion Simulator:
    DC motor
    He’s posting on the feelthree thread on the Oculus forum. Maybe a few here could give him some words of encouragement and support. The big fear is that if successful this gets snapped up by a commercial producer and us DIYers are left in the lurch again.
  6. RiftFlyer

    RiftFlyer Active Member Gold Contributor

    Joined:
    Apr 15, 2014
    Messages:
    194
    Balance:
    1,565Coins
    Ratings:
    +116 / 0 / -0
    My Motion Simulator:
    DC motor
    From the Oculus forum:

    https://forums.oculusvr.com/communi...otion-simulator-update-launch-incoming#latest


    So... done it.
    [​IMG]
    I've now got the Oculus Tiny World demo working with the right touch cancelling my office chair rotation. Time warp has been tamed.
    The code is pretty horrible at the moment, hacks upon hacks upon hacks, in thousands of lines of C++, so you can write a 5 line lua script. [​IMG] I mean, right now even the vr executable that you want to apply this to is hard coded.
    So it needs a LOT of work, but the test succeeded.
    Turns out a lot of the trouble I've had was because I was testing with Google Earth (it starts pretty fast, has touch controls, etc, seemed like a good test). It was built with an ancient oculus sdk, a bunch of data structures it uses are now different sizes (for example the current ovrLayerHeader is 128 bytes bigger than when Google Earth was built).
    Now I REALLY need to get back to real work. [​IMG]
    • Like Like x 1
    • Informative Informative x 1
  7. Spit40

    Spit40 VR Flyer

    Joined:
    Nov 3, 2016
    Messages:
    320
    Location:
    United Kingdom
    Balance:
    2,626Coins
    Ratings:
    +176 / 2 / -0
    My Motion Simulator:
    3DOF
    Words of encouragement provided. Come on folks lets give Kojack some love on the Oculus forum !
  8. dualin

    dualin New Member

    Joined:
    Jul 11, 2012
    Messages:
    28
    Location:
    Cáceres - Spain
    Balance:
    37Coins
    Ratings:
    +4 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Hi, I have read a lot of pages of this thread, but not all of them, sorry. This motion cancelation works with windows MR like Samsung Oddysey??. Now I have Oculus CV1, but I´m thinkng about change to WMR.

    Thanks in advance
  9. noorbeast

    noorbeast VR - The Next Generation Staff Member Moderator

    Joined:
    Jul 13, 2014
    Messages:
    13,458
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    101,619Coins
    Ratings:
    +8,466 / 41 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Please do not cross post the same question, it is way too difficult for everyone to follow: https://www.xsimulator.net/community/threads/samsung-oddysey-for-2dof.12400/
    • Like Like x 1
  10. dualin

    dualin New Member

    Joined:
    Jul 11, 2012
    Messages:
    28
    Location:
    Cáceres - Spain
    Balance:
    37Coins
    Ratings:
    +4 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
  11. SEHATanguy

    SEHATanguy Member

    Joined:
    Sep 25, 2017
    Messages:
    42
    Location:
    Belgium
    Balance:
    36Coins
    Ratings:
    +7 / 0 / -0
    My Motion Simulator:
    3DOF
    Thank you for this thread! Really helpful!
  12. clyevo

    clyevo New Member

    Joined:
    Nov 26, 2015
    Messages:
    22
    Balance:
    179Coins
    Ratings:
    +0 / 0 / -0
    My Motion Simulator:
    6DOF
    IMHO, oculus using proprietary driver has not much future for us DIYers. The workaround is time consuming because any major update of the oculus driver will mess up the workaround. I think we should look for openVR and there are many choices now - vive, pimax, the more expensive starvr, hopefully more in the future. I own an oculus rift but i hope they will adopt openVR. I am waiting for pimax retail launch.
  13. noorbeast

    noorbeast VR - The Next Generation Staff Member Moderator

    Joined:
    Jul 13, 2014
    Messages:
    13,458
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    101,619Coins
    Ratings:
    +8,466 / 41 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    I agree Oculus makes things difficult when it comes to motion cancellation and Palmer officially said very early on that they won't support it in the Oculus SDK.

    But there may well be challenges with openVR as well. For example the Pimax PiTools overrides aspects of SteamVR, affecting things like reprojection, so until we can get Pimax HMDs it is hard to say if that will mess with motion cancellation.

    I have PM sweviver, one of the most active Pimax testers, and asked him to try Pimax with the OpenVR-InputEmulator. Fingers crossed!
    • Like Like x 2
    Last edited: Sep 22, 2018
  14. JMB3D

    JMB3D Member

    Joined:
    Jun 1, 2018
    Messages:
    46
    Location:
    UK
    Balance:
    491Coins
    Ratings:
    +29 / 0 / -0
    My Motion Simulator:
    4DOF
    Hi

    I'm now trying to use two vive trackers for the Motion Cancellation just to see if it can help improve more.
    It seems in the open Vr settings you can only select one tracker at a time and apply the settings, every time I go and do the second tracker and apply the settings, when I look back at the first its back to default and lost its settings.
    I don't seem to be able to save.

    Any ideas?
  15. hannibal

    hannibal Active Member

    Joined:
    Sep 29, 2018
    Messages:
    426
    Balance:
    2,766Coins
    Ratings:
    +131 / 1 / -0
    My Motion Simulator:
    3DOF
    im just catching up on this thread...
    im new to motion platforms..and to the forums :)
    seems like u can get away from motion cancellation for 2 Dof Setups..
    when is motion cancellation absolutly needed? 3Dof, 6Dof Setups?
    i guess it depends on the game... :/
  16. noorbeast

    noorbeast VR - The Next Generation Staff Member Moderator

    Joined:
    Jul 13, 2014
    Messages:
    13,458
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    101,619Coins
    Ratings:
    +8,466 / 41 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Generally speaking any rig with large axis movements will benefit from VR motion cancellation.
    • Like Like x 1
  17. Bastiuscha

    Bastiuscha Active Member

    Joined:
    Apr 1, 2017
    Messages:
    179
    Location:
    Germany
    Balance:
    513Coins
    Ratings:
    +113 / 1 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    I don't believe, that is possible with that used algorithm. That is why the tool don't let you do this. But frankly... i not really think, that is much helpful, to use two reference points.
  18. Tags..(VR)

    Tags..(VR) Member

    Joined:
    Aug 28, 2017
    Messages:
    147
    Location:
    indiana
    Balance:
    18Coins
    Ratings:
    +20 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    i have the rift and 2 dof. i use it every time i go into Pcars2 .i gotta say this is interesting to me BUT im not exactly sure? what is it that it does? motion canceling?
  19. noorbeast

    noorbeast VR - The Next Generation Staff Member Moderator

    Joined:
    Jul 13, 2014
    Messages:
    13,458
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    101,619Coins
    Ratings:
    +8,466 / 41 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Motion cancellation subtracts the rig movement from the HMD view.

    You can get away without motion cancellation on small axis movement sims.

    Rift owners originally needed to use Revive, as the motion cancellation solution was via SteamVR, but subsequent Oculus SDK updates broke compatibility and I am not sure if that has been fixed.
  20. Tags..(VR)

    Tags..(VR) Member

    Joined:
    Aug 28, 2017
    Messages:
    147
    Location:
    indiana
    Balance:
    18Coins
    Ratings:
    +20 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, Motion platform
    Oh well , not a big deal. thanks for the input.