Last year I purchased an Oculus Rift DK2 – I’d like to say I bought it as a developer, but really I just wanted to play around with virtual reality stuff. I mean, who doesn’t?
This year my final year project is centred around a “3D Viewing Platform”, or “tele-presence” system. What a perfect opportunity to put my DK2 to good use!
My part of this group project involves getting the Rift running an a single-board-computer, capturing stereoscopic images from two webcams, doing a bunch of processing with those images (maybe some OpenCV / HUD stuff) – and then figuring out a good, low-latency solution to transmit the output to the headset via wireless.
At this stage, it looks like we’ll be mounting the cameras on a servo-based camera gimbal – that’s someone else’s job, but still something I’m interested in investigating. In order to figure out the hardware and software for the gimbal system, we need to know what requirements the system has to meet – one of which is how quickly the user might want to turn their head while looking around.
Of course, this is probably the sort of thing we could have just Googled – but this is an opportunity to do some science, dammit!
We decided the best way to go about this was to strap a Rift to someone’s face, pass-through a camera feed from the front of the Rift, and see what rates they look around at while doing a few different basic tasks.
With that in mind, I’ve written a small Java-based program that reads the sensor data coming in from the DK2, and logs that data to a text file. It’s a pretty simple program, but I’ve put it up in case anyone else finds it handy.
You can find this program up on GitHub.
Figuring out an easy solution for passing through a webcam feed was a bit beyond my powers on short notice – LiveViewRift grabs a webcam feed fine, but it projects everything to a virtual screen – we need something that will fix the image to the HMD, without doing any orientation tracking.
We ended up using a Leap Motion demo passthrough app – added bonus now we can see (only) in IR! If anyone knows of a good solution for getting a webcam feed to display straight to the Rift (for both eyes / distortion etc) let me know!
We haven’t yet done any analysis on the data we’ve got – but once we do, I’ll update this post with the details.