psmoveservice / PSMoveService

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

Small movements too much scaled #157

Closed HyppoNymous closed 7 years ago

HyppoNymous commented 8 years ago

I have done calibration following the A4 format calibration doc. When using SteamVR with PSmove and one camera, some very small movements like 0.3 cm results in bigger visual movements in Steam VR, it is some option to reduce movements scaling ?

HipsterSloth commented 8 years ago

Are you using one camera or two cameras?

zelmon64 commented 8 years ago

@HyppoNymous Are you sure you printed it at 100% scale? I think if it is slightly shrunk it may behave like you say. Try putting the controller slightly further apart when calibrating to see if that helps.

HyppoNymous commented 8 years ago

@zelmon64 It is complicated to get good results, the guide is too small to be accurate. Calibrating without the guide and just moving the PSmove controller around me works great and the tracking resulting is more precise. The only concern is the headset positionning is never good and never centered and always too nearest to PS Move camera tracking when i launch the tracking test tool. Did you consider calibrating without the guide ? And calibratiing headset appart ? https://www.youtube.com/watch?v=p5ZQ49IrWXk The guy did it on 5:00 I did same and calibrated without the guide, after 5 point is calibrated i place the headset in space at the same 3rd point that is the center i calibrated, but the headset is always off and never centered when i test, this should when we don't use the guide. It is something wrong with headset and center 3rd point calibration ?

Also i noticed the calibration tool , just after i finish calibrating the point 5, it directly jumps on headset position calibrating without letting me time to take it and position it correctly. We would need some button to click and say "my headset is exactly on the 3rd center position to let us time to get the headset and position it.

zelmon64 commented 8 years ago

@HyppoNymous Yeah I never bothered to print the mat because I'm simply too lazy so that's how I do it too. I use VRidge so precise HMD coregistration is not yet a possibility for me.

HyppoNymous commented 8 years ago

@zelmon64 https://www.youtube.com/watch?v=vrBPoXYBlTw Or VicoVR https://www.youtube.com/watch?v=hvuQPk13T-o These should bring interesting solutions for tracking with VRidge (i use HDK 1.4 and it's camera tracking).

zelmon64 commented 8 years ago

@HyppoNymous Thanks for your concern (I had already seen that people are developing such camera tracking). I do already have positional tracking by either using a third PSMove or a Kinect. I just meant that because VRidge needs yet another hack for positional tracking, precise coregistration is not there yet. (btw your links aren't working)

HyppoNymous commented 8 years ago

@zelmon64 Copy and paste links to have them work. I forgot ZED tracking device (it is more expensive than VicoVR) https://www.youtube.com/watch?v=acJWvm3Pry8

cboulay commented 8 years ago

Copy and paste links to have them work.

@HyppoNymous Maybe it's just because several of your 'issues' were addressed previously but you didn't read or search old issues, but I feel that you need to learn that the onus is on you to do a little bit of preliminary work if you expect useful interactions. We are all very busy and have very limited time. If someone drives by with a post that took zero effort, I'm going to respond with zero effort and instead spend my time working on something for someone that put in some effort.

Posting links in Markdown is super simple, and there's even a little 'link' button in the edit box.

HyppoNymous commented 8 years ago

@cboulay I understand, however i succeed in calibration because we must follow the A4 guide. Also i found that people using two PS move camera get better tracking and less jittering. Anyway making a new calibrating guide with a bigger surface like 50cm*70cm would this result in better tracking ? About response and latency , the ps move service is not enought fast to play games like LighBlade VR or Space Pirate, because these games needs 1:1 movement as they play fast. Do you think PSMove Service will reach almost 1:1 tracking like test_openGL.exe from PSmove_Unity_5 ?

HipsterSloth commented 8 years ago

@HyppoNymous I want to support multiple calibration guides at some point. There's no hard technical challenge to that, just some ui work. I picked A4 paper because it's a common paper size. In the mean time you can try calibrating withe the mat closer to the camera.

The other problem is lens distortion. There's a small amount of distortion near the edge of the screen that i'm not correcting for. This affects positional tracking accuracy. I have a calibration tool for this is the "generic_camera" brach that computes the distortion parameters needed to flatten out the image. However the tool is really hard to use reliably in it's current state so I haven't checked it in to master yet.

Finally the latency is caused in part by the lack of prediction in the positional filter and the fact that psmoveservice doesn't embed camera access directly inside the game, but rather in a separate app the networks the tracking state to the client. The prediction needed will come as part of the Kalman filter work we're doing now.

After we get the noise reduced and fix the distortion we can start looking at perf/latency improvements.

So will psmoveservice get 1:1 tracking? We're trying to get as close as we can, but this will never be as good as the vive or the touch or some other commercialy available tracking system.

In the mean time I recommend using two cameras to improve tracking quality.

HipsterSloth commented 8 years ago

Also there is a new release out. Give that a try.