psmoveservice / PSMoveService

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

Poor tracking with single camera - options? #124

Open cheddle opened 7 years ago

cheddle commented 7 years ago

Sorry for seeking this type of advice here...

I have a single ps3 camera - not so good for tracking - ive spent some time fine tuning the color calibration but the hand controllers are still struggling to maintain good position, jitter is huge and tracking is not consistant/unifrom across the field (and pose calibration is very difficult to do)

I am not sure if I should: a) try 2x Logitech C910 (640x480 @ 30hz) in addition to the PS3 camera (three cameras) b) buy a ps4 camera and hold tight for imminent support (can happily test builds to this end but I cant code) c) buy 1 or 2 more PS3 cameras

Interested to hear a devs point of view on this.

p.s: has dev thought of starting a Patreon page for users to support this project?

edit: I purchased a second ps eye from ebay - ill try out the logitechs tonight and two move cameras when it arrives.

cboulay commented 7 years ago

Just wait. There are a few things incoming that will improve tracking performance substantially.

In the meantime:

How far is your PSEye from your workspace? The PSEye has a much smaller operational volume than Rift Constellation or Vive Lighthouse.

Is it only jittering in one axis (toward-away from the camera) or also the other 2? If the latter, then getting an additional camera won't be worth it until you try to get tracking stable in the horizontal and vertical (relative to the camera) directions for the first camera.

cheddle commented 7 years ago

Look forward to trying the improvements (I am not compiling the builds - I am grabbing the releases - so hope to see a new release with these changes soon)

I initially had the PSeye about 50 cms from my standing position however this limited the workspace size considerably. I will carefully compare jitter at different ranges tonight. Does the red dot or blue dot offer a larger FOV? I havn't checked.

I now have it about 120-160cms away from normal standing position.

I could be wrong however I recall the tracking on hoizontal and vertical axis are - for the most part - good - almost perfect. I experience obvious issues when exceeding camera FOV range, with occlusion and my Cyan tracking is far better than the Magenta - I've tried to fine tune this as best I can. The jitter is towards and away from the camera.

I do get strange behavior when rotating the Cyan move controller around its sphere (and to a lesser extent, the Magenta) keeping the sphere in the same location - imagine the controller orbiting the Cyan/Magenta sphere in a half-circle with the color orb always in view of the camera - and I think this strangeness is the poor depth guesstimate done by a single view point - What happens is the controller is tracked as if the sphere is moving towards/away from the tracking camera... taking a "throwing dagger" arc in VR while its "orbiting" in reality - I take it that the changing shape of the tracked orb is interpreted as "smaller/larger" and therefore "further/closer" - perhaps the resolution is too low at this camera distance for the X asis to have the same degree of accuracy as on the Z/Y axis - I imagine with a single camera the IMU data needs to be processed in conjunction with the camera data for good X axis performance however I still cant imagine a single point of view doing a very good job at the X axis (towards user) - noting that the PS4 camera has two points of reference for real depth perception.

p.s: forgive my misuse of x/y/z axis names - I think you know what I mean...

cboulay commented 7 years ago

Definitely blue dot. Red dot is narrower FOV. Red dot should be used if you must place your cameras further from your workspace, EXCEPT we don't yet support red dot (currently we assume a specific focal length). This will change.

OK if horizontal & vertical are fine then another camera at 90-degrees to the first should help a lot. That + the two features mentioned in my previous post will make it pretty good, I think.

cheddle commented 7 years ago

Excellent - thanks for the tip on using the red dot (mine is actually on blue dot right now...) - I recall there is a switch in the color calibration tool to select the dot color, I assumed that as long as this was set as per the camera setting then it would be fine. Ill make sure mine is on red dot - From what I have read on your earlier posts - using a non-known camera (generic web cam) will not work properly and it will not track correctly so I wont bother trying this...

I have another PSmove (ps3) camera on its way to me - the moment you support the ps4 camera I will buy one.

I plan on both move cameras at 90 degrees to each other with the DK2 tracker camera in the middle.

cheddle commented 7 years ago

Adding a second camera solved the positional tracking issues!

My cameras are placed around 45 degrees from each other in front of me - their FOV mostly overlaps however they do not fully overlap and its quite obvious when the hand controller moves outside of both cameras overlapping FOV and into just one camera.

currently my second camera is sticky taped to the wall - so aiming it is... challenging. Ill get a tripod on the go and once thats in place Ill get the FOV overlapping a little better