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

FlyPT Motion cancelling project (trial)

Discussion in 'VR Headsets and Sim Gaming - Virtual Reality' started by pmvcda, Jun 19, 2019.

  1. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,096
    Location:
    Portugal
    Balance:
    14,906Coins
    Ratings:
    +2,504 / 17 / -0
    My Motion Simulator:
    6DOF
    Was speaking with @hexpod about motion cancelling, and I've had this idea in my mind for some time.
    Many talk about using inverse kinematics, and for example, use the software info to calculate platform position and from there make motion cancellation.

    In my opinion it doesn't work.
    There's lot's of lag in this solution. Requires maths, more software.......

    So I thought of using an hardware solution.
    Well, this might not work, but we can try.

    We need to calculate the "pose" and to calculate that, we need:
    - A gyroscope to know the 3 angles
    - An accelerometer to know the acceleration in each of the 3 directions

    With that we can calculate the "pose" of the platform.
    The advantage of this solution is that it works on any kind of rig (6dof or 2dof).
    But we might have problems. Precision can be one of them.

    This is the hardware I want to use:

    - ESP32 (fast, cheap and with WIFI/Bluetooth) --> 8.35€ each at ebay
    - MPU 6050 - 6 DOF gyroscope/accelerometer --> 3,10€ each at ebay

    Some ideas from the start:

    - Use more than one MPU 6050 to get a mix of info from them (I ordered 3)
    - Create a module on the FlyPT mover to show this data or an independent software.
    - If it works, worry with the connection to hmd and proper motion cancellation.

    Anyone want's to try?
    I need more free time, but here's a starting guide:
    https://howtomechatronics.com/tutor...mpu6050-accelerometer-and-gyroscope-tutorial/

    • Like Like x 3
    Last edited: Jun 19, 2019
  2. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,185
    Location:
    berlin
    Balance:
    7,636Coins
    Ratings:
    +369 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    Very good initiative !

    You want probably mention the Forward and not Inverse kinematics which is more demanding in calculations than the inverse one.

    It can be that nowadays, the processing power on modern processors is more than enough to accomplish it in couple of milliseconds.

    Even if this could be interesting also for other reasons (synchronization between the poses) I am not sure, it could also improve the mismatch between the real position and the data sent for cancellation.

    I let my intuition speaking, It might be I am wrong.
    Last edited: Jun 19, 2019
  3. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,096
    Location:
    Portugal
    Balance:
    14,906Coins
    Ratings:
    +2,504 / 17 / -0
    My Motion Simulator:
    6DOF
    ... sorry nothing special
  4. benmax

    benmax Active Member Gold Contributor

    Joined:
    Oct 15, 2013
    Messages:
    188
    Balance:
    1,551Coins
    Ratings:
    +59 / 0 / -0
    My Motion Simulator:
    2DOF
    Hi pmvcda ,

    I’m interested to test . Have my 6dof sim rig with pc and motion cancelation was working pretty well ...
    Since builded new pc amd2700X , 2080ti and motion cancelation didn’t work .... in fact i have big lag , the 6dof didn’t move according the view in the headset and i don’t understand why. It works well playing with à display or with thé headset, but as soon as i activate the motion cancelation big lag between the view and the sim.
    I can’t understand why with my old and less powerfull pc everything was running well and now it didn’t work !! I only changed the software ( xsim before and simtools now ) , and the hardware is from far more powerfull ( amd2700x and 2080 ti )
  5. benmax

    benmax Active Member Gold Contributor

    Joined:
    Oct 15, 2013
    Messages:
    188
    Balance:
    1,551Coins
    Ratings:
    +59 / 0 / -0
    My Motion Simulator:
    2DOF
    And to be complete before motion cancelation software i did a diy gimbal with an mpu 6050 and rc servo motors and i bought a real gimbal to mount on them the tracker to cancel the movement but without success.
    Both can’t follow the 6dof brutal acceleration, vibrations ....
    mounting joystick ( vive or rift touch ) is the solution like used in the motion cancelation software ....
  6. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,643
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,557Coins
    Ratings:
    +3,487 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    It works great as it is for most people with the Openvr Input Emulator the only problem we have is filtering out the vibrations. Im thinking of getting a second hand WMR controller and butchering it so I can isolate the gyroscope and accelerometer chip somehow from the vibrations
  7. hexpod

    hexpod http://heXpod.xyz

    Joined:
    Apr 18, 2016
    Messages:
    1,185
    Location:
    berlin
    Balance:
    7,636Coins
    Ratings:
    +369 / 5 / -0
    My Motion Simulator:
    DC motor, 6DOF
    I believe it works but it would be really good to get rid of the stationary external trackers.

    Both vive and rift need them?
  8. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,643
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,557Coins
    Ratings:
    +3,487 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    Yes and WMR and Pimax for the current way to cancel motion
  9. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,922Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    I am interested, and I will take a closer look at what is required when I have a little more time.

    Currently I am using the SteamVR open input emulator method, I will be testing in the next days to see how that is working for me currently.
  10. 4apaev

    4apaev Member

    Joined:
    May 19, 2016
    Messages:
    82
    Occupation:
    Media
    Location:
    Moscow, Russia
    Balance:
    486Coins
    Ratings:
    +39 / 3 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino
    Does it work if you turn your face away from wmr controller? In flight sims it will happen pretty often imo.

    There is another unexplored option - using third-party tracking system, like Nolo. Maybe it will work better then Vive or WMR solutions in our case.

    Also, I found some people, who are using vive lighthouse system for drone tinkering (or whatever), and already built vive tracker analogue without accelerometer. However, they have a hard time replicating I/O software and their devices register like individual dots in SteamVR, which is not currently usable for VR Emulator.
  11. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,096
    Location:
    Portugal
    Balance:
    14,906Coins
    Ratings:
    +2,504 / 17 / -0
    My Motion Simulator:
    6DOF
    Just received the hardware:

    IMG_20190624_163931[7688].jpg

    now let's build it...
    just need some free time... o_O:(

    Seriously, it might not work, but I will try.
    • Like Like x 3
    • Creative Creative x 2
    • Optimistic Optimistic x 1
  12. Psionic001

    Psionic001 Active Member Gold Contributor

    Joined:
    Mar 5, 2017
    Messages:
    138
    Location:
    Sydney
    Balance:
    1,002Coins
    Ratings:
    +59 / 1 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    I'm interested in your efforts. I think you'll be able to cancel out the rotational values, but you'll get too much drift with the translational movements.
    The way to make this cross platform is to output the translational and rotational data from your HexaPod plugin, and stream that to the OpenVR input emulator. I've been in contact with matzMan who is the developer of that emulator. He is currently rebuilding it and will be incorporating a feature to take a software feed of those 6DoF values specifically for motion cancellation.

    Also FYI Seb Madgwick got something going here which seems to work ok from looking at his video:



    Source code here:
    http://x-io.co.uk/oscillatory-motion-tracking-with-x-imu/
    • Informative Informative x 2
    • Like Like x 1
  13. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,922Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    That is great news, I thought MatzMan had abandoned us forever. =( I even sent him $10 or $20 via paypal to try to get him to come back to us. =) Never got a word back from him.
  14. Psionic001

    Psionic001 Active Member Gold Contributor

    Joined:
    Mar 5, 2017
    Messages:
    138
    Location:
    Sydney
    Balance:
    1,002Coins
    Ratings:
    +59 / 1 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    @Trip Rodriguez I thought so too, until I tracked him down by personal email.

  15. SilentChill

    SilentChill Problem Maker

    Joined:
    Jul 19, 2014
    Messages:
    2,643
    Occupation:
    Railway Maintenance
    Location:
    Morecambe, Lancashire, England
    Balance:
    20,557Coins
    Ratings:
    +3,487 / 34 / -0
    My Motion Simulator:
    DC motor, Arduino, Motion platform, 6DOF
    I was going to say I thought he had fallen off the edge of the Earth !! Amazing if he is working on it again !!
  16. Psionic001

    Psionic001 Active Member Gold Contributor

    Joined:
    Mar 5, 2017
    Messages:
    138
    Location:
    Sydney
    Balance:
    1,002Coins
    Ratings:
    +59 / 1 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    Here's what he wrote to me:

    yes, I am still working on Input Emulator. Currently I am rewriting the whole application albeit progress is slow due to lack of time.

    Input Emulator has an interface that allows to accept real-time data from third-party applications. It needs to be slightly adjusted to use that data for motion compensation. But this should be easy to add, especially since I am currently doing a rewrite.

    However, the biggest question is if the external data can be processed at a high enough fidelity to not cause motion sickness or similar effects. Till know I have only used the external interface to simulate controllers, which have lower requirements to tracking fidelity than the headset. The headset's update frequency is 1000 Hz which is quite demanding to process, and any external data feed should have the same update frequency to minimize unwanted effects. If there is any mismatch users will notice (Some users have described it that it feels like they are drunk).

    I will add support for an external data feed for motion compensation in the next version. I plan to finish the next version in time for the release of the Valve Index. Then you can experiment how much tracking fidelity is impacted.
    • Informative Informative x 1
  17. Trip Rodriguez

    Trip Rodriguez VR Pilot

    Joined:
    May 8, 2016
    Messages:
    675
    Location:
    Lake Ariel, Pennsylvania
    Balance:
    3,922Coins
    Ratings:
    +330 / 6 / -0
    My Motion Simulator:
    6DOF
    Kinda odd, that reads as if he hasn't done it before..... but we've been using his motion compensation for quite a while now.
  18. Psionic001

    Psionic001 Active Member Gold Contributor

    Joined:
    Mar 5, 2017
    Messages:
    138
    Location:
    Sydney
    Balance:
    1,002Coins
    Ratings:
    +59 / 1 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    @pmvcda are you doing this in Arduino?

    If so can you share the code?

    Cheers

    Matt
  19. pmvcda

    pmvcda aka FlyPT

    Joined:
    Nov 3, 2010
    Messages:
    2,096
    Location:
    Portugal
    Balance:
    14,906Coins
    Ratings:
    +2,504 / 17 / -0
    My Motion Simulator:
    6DOF
    Sorry, missed this.
    I have no code yet.
    Been busy with FlyPT Mover and I'm taking some days at the beach... Need to be away from technology for some days or I might loose the wife... :think
    • Like Like x 2
  20. Psionic001

    Psionic001 Active Member Gold Contributor

    Joined:
    Mar 5, 2017
    Messages:
    138
    Location:
    Sydney
    Balance:
    1,002Coins
    Ratings:
    +59 / 1 / -0
    My Motion Simulator:
    Motion platform, 6DOF
    Hi, I'll have a go at your FlyPT Mover tonight, and let you know how it goes!

    Warm in Europe . Have fun at the beach!


    • Like Like x 1