psmoveservice / PSMoveService

A background service that communicates with the psmove and stores pose and button data.
Apache License 2.0
593 stars 147 forks source link

Orientation lost after a couple of seconds fast movement. #755

Open D3NN1SNL opened 3 years ago

D3NN1SNL commented 3 years ago

Hi There, I'm having the issue that when I move my controllers a little bit fast (like in beatsaber) the orientation is completely lost. I can reproduce this by just starting the PSMoveServic and the Controller config. When I go to test orientation at first it seems normal, when I move slowely it stays ok(ish) but when I move the controllers just a little bit faster the orientation is all messed up. (Pointing it physicaly forward shows on screen pointed to the right for instance)

Any idea what's going on or how to fix this?

D3NN1SNL commented 3 years ago

I created a youtube clip. This is what I mean:

https://youtu.be/Bg0ufZeYCmc

All games (especialy beatsaber) are unplayable like this. Please help?! :-)

Timocop commented 3 years ago

This happens when only relative sensors are available in the controller, they will drift after some time. The only PSmove controller that has "ok" absolute sensors is the PSmove controller Version 1 which uses a Magnetometer (a compass) to correct their drifting. New controllers don't have it so they drift after a while. PSmove controllers in general don't like fast movements anyways and are not precise. For this you might get something less primitive, such as NoloVR with quicker response times. Sadly you can't do anything about it, unless you get a earlier version of the controller. But then again, i don't think you could play BeatSaber with PSmove controller because they have slow reaction times.

image

Timocop commented 3 years ago

Alternatively you can change the orientation filter to a less drifting filter or drift "fixer" filter. Choose MadwickMARG orientation filter in the controller settings, seems to work better than ComplementaryMARG. At least in my testes. Otherwise use ComplementaryOpticalARG which makes the controllers slowly orientate forward. But yea, pretty bad workarounds.