psmoveservice / PSMoveService

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

Question: Where is the best place to put my 3 ps eye cameras? #148

Open booty156 opened 8 years ago

booty156 commented 8 years ago

(For full 360 tracking) How far of the ground should they be? Whereabouts to put them around my desk? Thank you, Kai.

Bungpiece commented 8 years ago

Hi have you had a look at the set up instructions in the wiki? In particular. https://github.com/cboulay/PSMoveService/wiki/Camera-Hardware-Setup In videos demoing the the service they look to often be about head or shoulder height and angled downward at your desired tracking space. Hope you get setup OK.

Bungpiece commented 8 years ago

Sorry can't seem to edit my post on mobile but realising your looking for 360 degree tracking how many cameras are you using? Someone else here I believe has had success with 3 in a triangle. Hope I'm not coming off as patronising but they'll all need to see the calibration matt in the centre. Again good luck!

ReallyDiskun commented 8 years ago

I have only two cameras at the moment. One in a tripod looking down well above the tracking area. that gives me almost all around tracking. The other one I have it in one side at shoulder height. I have occlusion when I turn around but it's much better than just one. With three tripods and three cameras (two in front, one behind or all of them widely spaced above head level pointing down to the center) you could probably get pretty good 360º tracking.

bifurk8 commented 8 years ago

I've gone from 1 to 2 to 3 to 4 cameras now and experimented a lot with different layouts in the past couple of weeks. I've found that the most important thing is to have a wide tracking area with each camera's FOV overlapping as much as possible. This keeps tracking smooth across cameras, whereas if they don't overlap enough with eachother you'll get jumpiness and jitter around the edges of the tracking area.

The best solution I've found, which gives me pretty near flawless tracking is to have four cameras, all mounted in the top corners of the room and all pointed downwards towards the center of my play space.

douglassimoes commented 8 years ago

I am curious @bifurk8 can you grab things on the floor? Because a bunch of standing experiences explore all around and every game has a thing to grab on the floor. I am already with 3 and if you tell me that with four you can touch the floor with psmoves, I will buy another one.

For last can you tell us the measures of your setup, like the height of pseyes and the distance between each camera, or post a geometric picture explaining where is each camera. It's no only for me, it could be an entry of PSMoveService wiki, like Setups with one two or three cameras.

ghost commented 8 years ago

Hi guys, want to join the discussion, atm I set up a 4 camera 360 tracking with my DK2 using a Square space of 2x2 meters. 1 Camera for each angle of the square, 2 Cameras are 2m high and 2 are 1.80m (opposite angle have the same height) This way I managed to get a 360 tracking where i can touch also floor because the camera point very low (I can't put arm straight in the air or it lose tracking but it works fine from my feet to my head)

Also the dk2 camera is very high (like 2.50 meters) and allow me to have 360 tracking in the center of the square because even if I rotate the camera can see the top led of the oculus...

I will explain it better in the future maybe with a video or smt, anyway i think this is one of the best set up (even if 4 cameras suck 50% of my cpu all the time >:O)

douglassimoes commented 8 years ago

@Imgonnawork thank you for sharing your setup. I already got the tracking to work from the head to feet, with one camera on top of the monitor and another at bottom of the monitor and pointing down. The problem with my build is that the tracking barely works 180, but it does work with all positions your arm can get. Maybe on the next release the performance will be a bit better.

HipsterSloth commented 8 years ago

(even if 4 cameras suck 50% of my cpu all the time >:O)

Yeah we haven't done anything to optimize how we are processing the video frames. The biggest thing will be to start tracking a region-of-interest (referred to as "ROI" in the comments). Keeping track of the previous location you found the tracker plus some amount of margin allows you to cut down on the amount of video buffer you have to filter, search for contours in, etc.

Maybe on the next release the performance will be a bit better.

It's going to be a while before we can get to perf work. Before we can consider perf we still need to finish DualShock4 tracking, PS4Camera Support, lens calibration, the Kalman filter, and finish the C-api. Once we have a service that has the features we need and tracks correctly, then we can focus on making it more performant.

EDIT: formatting + typos

bifurk8 commented 8 years ago

Sure, I'm able to pick up objects off the floor in Job Simulator, although that scenario is probably where tracking is poorest since I tend to occlude at least one camera with my body while doing so.

The cameras are mounted in each corner of the room between 7-8 feet high in a room approximately 12 feet by 8 feet. As long as I stay in my "standing room only" SteamVR boundary, all cameras can always see both controllers unless I block them with my body.

HipsterSloth commented 8 years ago

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

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.

Perhaps we should post room-camera configurations people have had luck with and what games they have tried with the configurations in the wiki? If anyone in this thread wanted to make some layout diagrams I'd be happy to add them to the camera hardware setup page.

douglassimoes commented 8 years ago

This guy managed to get 360 with 3 cameras: https://www.youtube.com/watch?v=5qfcaWBgfiA

With that configuration we could use the camera left at 6 feet 8-11 inches in the middle of the setup looking down, to achieve kneeling position with accuracy.

ghost commented 8 years ago

Yeah we haven't done anything to optimize how we are processing the video frames. @HipsterSloth

don't worry, you guys did a nice job already! I can't wait for Kalman filter, it should also improve tracking performance and fidelity and also allow us to throw objects right? That's honestly one the thing I hate most atm, many times games ask me to throw things and I'm always here scared to see if it will work or not!

HipsterSloth commented 8 years ago

@Imgonnawork

I can't wait for Kalman filter, it should also improve tracking performance and fidelity and also allow us to throw objects right?

Yeah that's the other nice advantage of having a proper Kalman filter. Right now the velocity and acceleration are completely zero'ed out in the SteamVR plugin. My initial implementation tried to compute velocity looking at the change in optical position from the previous frame, but as you might expect, it was way too noisy. I could hack in a slightly improved velocity and acceleration estimation (blend over the last five frames or something), but it would just be throw away work since the Kalman filter gives the velocity and acceleration as part of the filter model.

cboulay commented 8 years ago

I can't wait for Kalman filter

Sorry, I'm working on it when I get time.

HipsterSloth commented 8 years ago

@cboulay By the way, thanks for all your work on that so far (That Kalman filter python test harness you've been working on looks rad: cb9458635beebc5fc2986039d493a099eacf63d1). I'm sorry I haven't had more time to help you more with that (DS4 work is consuming all my time). Once we get it working for the PSMove we should talk about the best way to adjust the model for the DS4 (better accelerometer and gyro, no magnetometer, can get position and orientation from lightbar in narrow window). But that's a discussion for another thread.

Bungpiece commented 8 years ago

Maybe a silly question but does the orientation of the cameras matter at all. I have a low ceiling in my basement and was thinking about using adhesive pads to attach the cameras to the ceiling upside down. Also are there any issues using USB extension cables or a USB hub to get more reach? Thanks.

ReallyDiskun commented 8 years ago

@Bungpiece That's not silly at all. I'm going to try something similar this weekend, although I don't think the software supports upside-down yet. I'll tell you about the USB extension cables however.

zelmon64 commented 8 years ago

@Bungpiece The way the tracker pose is calibrated should work fine for any orientation (I think). I use mine on 5m extension cables without any problems. I tried one on a powered hub and it was happy but there will be a bandwidth limit at some point.

HipsterSloth commented 8 years ago

@Bungpiece I've never tested having the cameras mounted upside down before. I'd be curious to see what your results are. I think it should work, but there is part of me that is worried the way I handle multi-cam triangulation will break with a flipped image. If it doesn't work, I could add an option in the tracker config that lets you mark that the camera is upside down and then flip the image.

olinorwell commented 8 years ago

I'm currently using 3 cameras, and planning to buy a 4th tomorrow. They are selling for 3 euros here ($3.30) so it's almost madness not to buy more while I can! To add to what the others have said, I think a page describing various setups and the pros and cons of each would be extremely useful. I'm happy to help contribute my experience.

The 4 corners plan seems pretty smart. Perhaps someone with some maths skills can determine by knowing the FOV of the Eye cameras what is the optimum setup for placing the cameras would be. Typically the user will be in the middle 50% of the area most of the time, so ideally that has best coverage. However the nature of certain games means that you do end up getting near to the edges relatively often (e.g. pushing a button on a wall in a space that attempts to match your room setup in SteamVR).

What I've learned from 3 days of playing around with it, is that the best bet is to go for a small playing area that works well, rather than a large one that has problems at the extremes.

I'm using Riftcat and the minimum acceptable size for a 'Vive room space' and it's 80% perfect (hence the need for the 4th camera!).

Just to say thanks to everyone who is working on this project. With the cost of the Vive and Rift still being so high and the PS Eye cameras being so insanely cheap, this could be the most popular hobby project of 2016!

honzapatCZ commented 5 years ago

I think ill get the record i have 7 cameras 6 top working at time no more ports on mobo now just working on how to set them up.