psmoveservice / psmove-ue4

Plugin for using PSMove as input into Unreal Engine 4. Currently obsolete. Please use PSMoveService.
GNU General Public License v2.0
59 stars 28 forks source link

Is Multiple PSEye + multiple PS Controllers + UE4 possible??? #24

Open cramer230 opened 8 years ago

cramer230 commented 8 years ago

I'm new in these issues and I have poor knowledge in programming. I want to know if this following approach is possible in real time and acceptable latency for VR purposes:

-Multiple PS3 Eye cameras (around 50 cams or more) -Position and orientation tracking of 12 PS Move controllers (6 head tracking and 6 weapon tracking) -Get these 12 position and orientation tracking data in UE4.

Thanks!

HipsterSloth commented 8 years ago

Short answer, at the scale you are talking, almost certainly not.

Long answer: I'm in the middle of trying to get multicam support working in psmove_unity5 right now and it's already a challenge to get more than two cameras tracking a single controller at acceptable latency for VR (See https://github.com/HipsterSloth/psmove-unity5/issues/18). It sounds like you are trying to make a VR arena of some kind? One of the problems with the PS3EYE is that it captures video at 640x480@60fps with about a 65 degree FOV. At that resolution and FOV it's difficult to get good tracking coverage in a large space, even with many cameras. Further, a given PC can only realistically process 5-6 cameras worth of video feeds (I just tested 5 feeds and that was pushing it) which means you would need many PCs networked together to combine the tracking data, which isn't supported at all in the current versions of psmove-ue4 or psmove-unity5. Finally getting more than 5 uniquely tracked colors at once will probably be unreliable, especially if the lighting conditions are variable. It might be possible to make such a system work with different web cams, but what your describing is a significant amount of work.

That said, what you are trying to achieve would probably be a lot more easily done with the Vive. The stress level zero guys have a great demo of just how large a volume you can track with the Vive: https://www.youtube.com/watch?v=VD4UlShicgY

cramer230 commented 8 years ago

Yes, I would like something like a VR arena. I was thinking in multiple PS3 Eye + PS Moves controllers because is the solution used by zerolatency guys (http://www.cnet.com/news/zero-latency-vr-entertainment-revolution-begins-melbourne-australia/)

About Vive solution, do you think that I could managed distances around 20 meters? Could I add more than 2 base stations? I need large space to tracking and the HTC Vive installation guide says max.5 meters of distance (https://support.steampowered.com/kb_article.php?ref=2001-UXCM-4439&l=spanish)

Any more solution? I've searching in internet and I don't find any solution, only VRcade, but it costs 275.000 usd for 20x20 meters space!!

Other solutions found, what do you guys think about?

Thanks!

HipsterSloth commented 8 years ago

I think the key take away from the zerolatency article is that while that is a very impressive feat, it was a non-trivial exercise to build that tracking tech: "Building the technology has taken the team at Zero Latency more than three years" and that was with a team of six people working on that full time. They had to solve all of the problems I mentioned as well as a host of others I probably haven't thought of. Maybe they might be willing to license it? But I can't imagine that would be cheap. An open source PSMove project is not going to match that effort because we're all doing this in our free time. I'm certainly going to keep working on multi-camera tracking myself, because I think it's interesting, but don't expect comparable results any time soon.

As for the Vive, yeah I think they aren't meant be pushed past 5m like you said. There was an interesting thread on reddit where v2kzay (Alan Yates), architect of the lighthouse system at Valve, goes into of how the that range isn't so much a hard limit as it's just an arbitrary cutoff past which it starts becoming harder to compensate for the noise without the user noticing. They are interested in supporting more than two lighthouses, but who knows when they will come out with that.

VrTracker is a neat modular system for positional tracking, but because it's optical system it will suffer the same range and line of sight limitations as the PS3Eye camera (the CMUcam5 camera they use is 640x400@50fps) so you'll need a lot of cameras to cover the range you're interested in. However at least they have the foundations of a large scale tracking system and it's cheap so it wouldn't be much of an investment to experiment with a few trackers. The orientation issue could be solved with a separate IMU sensor that has a magnetometer (something like this maybe: https://inmagicwetrust.wordpress.com/2015/11/04/diy-project-wearable-imu-tracking-sensor/)

I can't speak to OptiTrack, though I think @cboulay has used this system before? Perhaps he could speak to it.

IndoTraq seems like the best bet for scale of tracking you want. Because the radio-timing based triangulation is not affected by line of sight you'll need fewer transmitters then you would need in a camera based system. It looks like their DevKit introductory price is $3,500, which isn't ridiculous.

That said, I think the first thing you should do is get a Vive anyway for developing your ideas before committing to a large expensive system. It's well supported in both Unreal 4 and in Unity5. And the quality of tracking is probably the best your are going to get for that price point. If you can't make the game you want to do feel good on the Vive, it's not likely it will work any better on the IndoTrak.

All that said, I'm not an expert in any of this so don't take my word as gospel. You should consider posting this question on reddit.com/r/oculus. I'm betting someone there can give better advice than I can.

Good luck!

cramer230 commented 8 years ago

Thank you very much for your advice. I think I will forget the PS3 Eye system definetively for the positional tracking...

By the way, about PS move controller and the PSMove API:

  1. Do you know if I Can get the orientation tracking without any PS eye camera, only with a PS Move controller? I've read that it's possible. Can you confirm it?
  2. And the 3D coordinates for absolute position tracking? (I know it will have the drift error in this case).
  3. Do you know the maximum distance accepted in bluetooth mode by the PS Move controller?
  4. Can I use the PS Move controller with a UE4 game running in Android smartphone (for example, HDM like Samsung Gear VR)?

Thanks!!

cboulay commented 8 years ago
  1. Yes it is possible.
  2. Not currently. This is called 'dead reckoning'. The drift error is REALLY bad. It's unusable. Dead reckoning with the PSMove is only good for tens of milliseconds until it can be updated with optical information.
  3. That depends on so many factors. As an example of how unanswerable this is: How far does your WiFi go?
  4. Not currently. Technically it could be done and the underpinnings are there but the actual implementation does not exist, as far as I know. But, because of point 2, it's not really worth doing unless you're also willing to have an external optical tracker and then have the gear VR communicate with that external computer. This will add latency but it may be acceptable.
ambershee commented 8 years ago

On a related note, how easy is it to use a pair of move controllers at present? I've been flicking through the information that's available, but it looks like you only a single motion controller is currently supported?

cboulay commented 8 years ago

@HipsterSloth Added support for this a while ago. I've yet to try it. If it's not in my fork then it'll be in his. (If it's not in my fork then let me know and I'll create the PR).

ambershee commented 8 years ago

Thanks, I'll take a look shortly. I'm slowly downloading UE 4.10 at the moment as I noticed the plugin doesn't currently compile under 4.11 :)

cboulay commented 8 years ago

oh? We should change that, but... @HipsterSloth and I (mostly HipsterSloth) are working on a different implementation that should be more future proof. We don't want to spend too much time supporting the old stuff seeing as we are struggling to find time to work on the new stuff.

ambershee commented 8 years ago

Nothing too sinister, from what I could tell - Epic have changed a few things on their end. I'm doing a quick fiddle over the next few days, so I figured it'd be quicker to just downgrade on my side than explore a plugin I'm not familiar with and clean it up.

Sounds healthy to me. I can see Epic's side of things changing quite frequently over the coming months, especially once other motion controllers properly hit the market.

mouedarbi commented 8 years ago

Hi Cramer230,

I am working on same project and i have choose HTC Vive, if your are interested you can contact me . I will open in Belgium a VR Arcade with multiplayer experuence with free tracking so i am investigating solution that exist too.

Mouedarbi@gmail.com 0032 487 374541