You can completely bypass this step by purchasing an Oculus Rift DK1 head tracker, which will do all the head tracking for you automatically with the same precision as an Oculus Rift DK1. Link

Welcome back! It's time we spoke about something very, very important: Head Tracking. You may think: "Well, I could just use the mouse and be perfectly fine," however, this is meant to be a Virtual Reality headset, not a "Look around with the mouse with the convenience of a 3D display strapped to you face" headset.

If you don't care about any of this and don't feel like reading all of it, then you can proceed to the next step—you won't be missing anything crucial to the build. It's good to know your options though, so read on if you're interested!

So the question here is: "How do we implement head tracking into our VR Headset without breaking the bank?"

There are many ways we can implement head tracking into our device:

A 3DOF sensor

An infrared tracker

An arduino sensor

An "air mouse"

So, what are the main differences between these methods? First, we'll need to know some basic head-tracking terminology:

Yaw: How far you've turned your head left or right

Pitch: How far you've turned your head up or down

Roll: How far you've rolled your head clockwise or counter-clockwise

X: How far you've moved your head to the left or right

Y: How far you've moved your head up or down

Z: How far you've moved your head towards or away from the screen

Drift: When, after moving the sensor, your original orientation is not the same as when you started

Degrees of Freedom: The extent of which your head is tracked, for instance, 2DOF only tracks yaw and pitch, 3DOF tracks yaw, pitch, and roll, 6DOF tracks yaw, pitch, roll, X, Y, and Z, and so on.

Latency: How quickly your computer takes the motion of your head and sends the signal saying you've moved your head. The lower the latency, the better.

We'll start our evaluation on the pricey side, with the 3DOF sensor. This is mainly in reference to something like the FSM-9 module from Hillcrest Labs.

3DOF Sensor

Pros:

Can track your head's yaw, pitch, and roll pretty accurately

Boasts very low-latency head-tracking capabilities

Offers plug-and-play capabilities

Cons:

Is normally extremely expensive

Often uses a wired connection

Can't track the X, Y, and Z position of your head

Depending on the sensor you buy, drift could easily become a problem

Now, let's look at an alternative: an Arduino sensor. This generally refers to the 9DOF sensor provided by Sparkfun, but can be applicable to the many other kinds of sensors available for Arduino.

Also, here's an instructable on how to make your own Arduino head-tracking mouse if you decide on going the Arduino route.



Arduino Sensor

Pros:

Generally less expensive than a high-quality sensor

Can be fairly accurate

Cons:

Requires adept programming knowledge

Normally wired, but could be circumvented though bluetooth (at the cost of latency)

Can't track X, Y, or Z (if you find one, let me know)

Cheap IMUs could be less accurate and have more drift depending on the model

And thirdly, we have something called an "air mouse." I personally have never used one before, so I'm not aware of all the pros and cons. For the sake of this list, we're going to include all devices in this category that use gyroscopes to track mouse position, which includes air mice, iPhones/Andoid phones, Wiimotes,Playstation Move controllers, and the Razor Hydra.

Air Mouse:

Pros:

Less expensive than previous options

Plug-and-play capability (for the most part, compared to Arduino)

Depending on your controller's API you can map the motions to actual Oculus Rift output through opentrack or FreePIE

Cons:

Big and bulky; you may not want to strap a phone or a remote to your head

Depending on the device, latency could be an issue

Drift on some devices is common and fairly noticeable

May require some programming knowledge for certain functions (Example: Using the PS Move API for gyroscopic mouse movement)

For certain devices (such as the air mouse), roll, X, Y, and Z positioning is not tracked.

Now, for the least expensive and least time-consuming method:

Infrared Head-Tracking

Pros:

Far less expensive than a 3DOF sensor

Can track yaw, pitch, roll, AND the X, Y, and Z position of your head.

Wireless and powered by batteries, which means one less thing you have to plug into your lovely face

Cons:

No matter what your setup is, latency can be fairly high, which can cause motion sickness

You can only turn your head a certain distance before the camera loses track of the LEDs.

Losing track of an LED could cause the tracker to freak out, interfering with the experience and potentially causing motion sickness

The lighting in the room needs to be just right, or the tracker will pick up a stray beam of light and swing your view in a completely different direction than intended.

So then, what should you use for head-tracking? It all depends on how much you're willing to spend. How valuable is head-tracking quality to you? You can sacrifice latency and accuracy for the sake of staying within your budget, but it depends—some people don't mind the latency at all, while others get motion sickness from it.

Since I'm a broke college student and don't feel like spending all of my money, I'll be showing you step-by-step how to set up a 3-point infrared head tracking system. Let's get on with it, then!