psmoveservice / PSMoveService

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

Need help with determining best approach at permanent mounting positions of PSEyes #164

Open alexx2208 opened 8 years ago

alexx2208 commented 8 years ago

Hi guys,

First, I just wanted to say thank you for this program. Its made the VR experience much better while waiting for the touch controllers to be released.

Now, onto my actual question. I have a 12'x24' room that it being converted from a room to a permanent gaming room. While I have a clean slate, I'd like to figure out my ideal placement for the cameras. The ceilings are 85" tall (7'1"). I've decided to make a 7" drop down mount for the cameras, so the cameras are placed exactly 78" (6"6") from the ground.

With your experiences, how far would you guys place the cameras be from each other in a square formation, for optimal tracking? Also, how much should they be angled towards the floor at 6'6" from them? And finally, should they just all four be placed on 45 degree angles towards the center point of the square?

Oh and also, can the cameras be placed upside down, or do they still need to be placed right side up?

Thank you for all of the help guys!

HipsterSloth commented 8 years ago

There was a good discussion in issue #148 about camera placement.

I liked the setup @bifurk8 described:

The cameras are mounted in each corner of the room between 7-8 feet high in an room approximately 12 feet by 8 feet.

My comment in that issue about his setup here:

That actually sounds like a pretty optimal setup. Doing a bit of napkin math, it looks like the PSMove would be between 3-6ft of at least two cameras at all times when staying in the standing room only boundary, which is the ideal tracking range of the ps3eye cameras. When kneeling in that configuration you probably get between 7-9 feet distance to the closest cameras and I imagine that gets pretty jittery.

I have never tried mounting them upside down myself. I think mounting them upside down should work, but there could be some implicit assumption in the camera calibration code I made that will break. I'd actually appreciate some one doing some testing on that and reporting back.

alexx2208 commented 8 years ago

OK. Here's my plan for this week..... As the room becomes available Thursday, I will begin the installation then. I'll attempt to calibrate and try a couple games with the cameras upside down, and ill report back.

The way I have envisioned the mounting (which is as simple as a piece of PVC mounted to ceiling panels) is actually more easily implemented when the cameras are upside down. If it doesn't work, I'll go back to just regularly mounting them.

I'll first try with 8x8, and see how jittery it gets in the far corners.

By the way, with the setup of the controllers, does it simulate the movement of the person as Vive controllers do? I haven't had it mounted in a large enough room I could physically utilize room-scale in......

I'd appreciate if we could keep this open, so if others have opinions, they could chime in. I'll also report back here when the time comes, @HipsterSloth .

Thanks,

Alex

HipsterSloth commented 8 years ago

Not sure what you mean by "simulate the motion of a person". If you are asking if the tracking quality is a good as the Vive (or the Oculus Touch), definitely not. There are several factors that limit the tracking quality compared to the Vive:

Point being, we are doing what we can to make the quality of tracking decent, but don't expect Vive or Oculus quality.

alexx2208 commented 8 years ago

To clarify, I mean more like basic room scale. I don't expect 2016 VR tracking quality out of them ;P

Thanks again Alex

zelmon64 commented 8 years ago

I use these phone tripods to mount my PSEyes so it's quite easy to have them upside down. @alexx2208 @HipsterSloth I rotated two out of three and I can confirm it works absolutely fine (the virtual models even rotate with them).

@alexx2208 It depends on what your definition of room scale is. If you want tracked controllers in the entire space of a room, the FOV of the PSEye is a bit narrow so there may be dead zones at the edges but within the visible region it should be near 1:1 tracking. If you are asking about head tracking then controllers do not affect the HMD tracking (neither do the vive controllers). If you are referring to IK for full body avatars then they should work with any HMD/tracked controller combination (as long as you have one controller per hand). Hope this helps.

alexx2208 commented 8 years ago

@zelmon64 : Thanks for the information. It's very interesting that the cameras work upside down. @HipsterSloth I'll try both ways and get back to you if there's any difference in quality of tracking.

About room-scale... I think I now understand the quality of tracking I should expect out of this service, and I'm really satisfied with it. Originally I was worried when watching Virtually Chris' video, specifically when he uses the system with SteamVR, and how he sets it up with just 360 degree tracking. I was not previously aware that using this set up would allow you to actually utilize movement within the tracking range, but it seems that I was previously misinformed about this.

I'm still happy and appreciative that you guys are willing to chime in on my setup, and I welcome anyone else who has an opinion to also chime in. The system is going up Thursday, so expect a comment then...

Thanks again! Alex

alexx2208 commented 8 years ago

Ok. Heres me reporting back. The PSEyes upside down work perfectly fine. While i got them to work upside down, i had issues connecting 4 cameras to my system. It seemed like when the fourth camera was connected to the system, it was just too much. Im surprised at this because i have a large x99 based pc, with over 14 USB ports. When the fourth controller was on, the config tool alone was taking up a lot of processing power, obviously enough to make my pc and the cameras very laggy.

I unplugged the fourth camera, and moved the camera to the middle behind me, and I have easily an 8x8' room scale area. It seems that the move controllers are having a hard time getting oriented correctly, but it might just be me. They almost seem backwards.

I look forward to seeing the kalman filter and PS4 camera support, as I'll be one of the first to try the system out for you guys..... Im a VR junkie...

If you have any questions you think i may be able to answer, please ask away.

Thanks again Alex

alexx2208 commented 8 years ago

Picture of the current setup. Front two cameras are 8' away from eachother, back camera is 8' away from middle point.

http://imgur.com/nRV3j1O

If anyone would like to know how i mount them, I can take some closer pictures for reference.

HipsterSloth commented 8 years ago

@alexx2208 Thanks for running that test! It's good to hear that the tracking works with cameras upside down. That's a really nice VR space btw.

As for the camera perf it's possible that it's just getting bogged down with all of the video frames, but a common issue is having too many cameras on the same root usb hub. In the "Windows Developer Kit" you can find a nice utility called USBView that shows a tree of all USB devices and which root hub you are plugged into. I have just the EXE zipped up here:

usbview.zip

You might launch that and see which cameras are plugged into which root hubs. Here is what mine looks like (two cameras):

image

As for the controller orientation, have you run the magnetometer calibration? Did you have the controller facing the same direction as your calibration mat's forward direction (the same way the HMD is facing)?

olinorwell commented 8 years ago

One tip is to run the test_camera program once your cameras are connected (and PSMoveService isn't running) then move around in your tracking space, have one eye on your computer and see whether the cameras feeds are smooth (they should be, going at 60FPS).

If you find they are jittery, don't panic, but instead try plugging them into different USB ports, like the other posts have said, you can run into problems if too many are on the same internal USB hub.

Once you have all your cameras showing a smooth feed, then you're good to go. If the feed is jittery, you need to make changes, a jittery feed will cause havoc for PSMoveService.

alexx2208 commented 8 years ago

A week later, I'll chime in again. I've been completely addicted to H3VR. I've been able to get the calibration to work with four cameras, but it still seems like the controllers are almost a foot to the left of where i hold them. I haven't been able to find a fix for this, other than holding them closer to my head for better control.... If anyone has some tips to fix this sort of issue, I'd greatly appreciate it.

I'll Edit this post as it seems appropriate at this time. I've been able to get it to calibrate better than I had it previously. If i get continuous success, ill post again.

zelmon64 commented 8 years ago

@alexx2208 Which tracker calibration method are you using? If it's the HMD method maybe you have the controller on the wrong side. If you're using the mat perhaps place the HMD a foot to the right when it records it's position. Additionally you could try editing the calibration file (there's a discussion on here somewhere about it).

bifurk8 commented 8 years ago

I've found that I get the best calibration and get the moves as close as possible to where they really are in space w/ 4 cameras by using mat calibration on a short end table placed in the center of my play space. After calibrating the HMD at the end, I leave the HMD in place on the calibration mat on the table and then re-run the steam vr room configuration with that as my center and with the exact height of the mat measured and entered in steam when prompted to calibrate the floor. That gets the moves' positions within an inch or two of their actual position (I can hold the moves up to my HMD and the globes/bulbs on the ends of the 3d models will clip in to my viewpoint as if they're jammed in to my eye sockets or something when they are really just touching the front of the HMD).

Close enough!

jstopchick commented 7 years ago

Try it without using SteamVR calibration as well.

You can perform the PSMove calibration, close steam VR, then restart and you can operate on the raw calibration from the PSMoveConfig tool. I've found that since I've created my initial room, just running a calibration or two (sometimes more) lines things up best, and I ignore the steam calibration. I am also running a similar setup to you, except that I have two camera's in the front-left instead of having the 4th one behind me in a far corner.