Monday, December 12, 2016
Tutorial: how to use the Oculus Rift and Touch for roomscale VR with just two sensors
Officially, Oculus says that the maximum tracking area of the Oculus Rift with two sensors is 5 feet x 5 feet (25 square feet; or 1.5 meters x 1.5 meters = 2.25 square feet), and you need three sensors for roomscale. However, I was able to push the limits of the Rift with just two sensors to do roomscale tracking. Here's how.
The Oculus Rift was designed for seated or standing VR. The user would stand in one place and perhaps take up to one step away. Roomscale VR allows the user to walk around a space. It significantly increases the sense of immersion and presence (the illusion of being there).
Oculus initially claimed that roomscale is impractical and that no one had the space for it. However, at least among enthusiasts, there was apparent demand for it, as enthusiasts preferred the HTC Vive with roomscale VR by a 12:1 margin over the Oculus Rift:
Finally, Oculus started pivoting and began to claim informally that the Rift was capable of roomscale when used with a second sensor. Finally, Oculus announced at Oculus Connect 3 that with two sensors, users could do 360 tracking, and roomscale would be possible with three sensors.
Oculus Touch includes a second sensor, which opens the door to 360 tracking. But can it do even more than what Oculus claims? That's what I tried to find out.
THE LIMITS OF THE OCULUS CONSTELLATION SENSOR'S TRACKING
There are several limits to the tracking volume of the two sensors:
1. The sensors are rated for a maximum range of 10 feet (3 meters).
2. They have to be connected via USB to your PC. The sensors come with cables that are 8.2 feet (2.5 meters) long. You can use an extension cable but if you use a passive extension cable, you can only add up to 10 feet (3 meters) before the signal becomes too weak. Beyond that, you need an active extension cable.
3. The cameras have a field of view of only slightly more than 90 degrees. Imagine a 90-degree cone, and that would be a reasonable approximation of the sensor's coverage. This means that the closer you are to the sensor, the smaller its coverage area becomes.
4. The headset cable length is 13 feet (4 meters).
Based on these limits, Oculus says the maximum tracking area with two sensors is 5 feet x 5 feet (1.5 meters x 1.5 meters). The sensors are actually on a square that is around 7.2 feet x 7.2 feet (2.2 m x 2.2 m) but because the coverage decreases as you move closer to the sensor, Oculus recommends that you stay at least 2.83 feet away from the sensor. (Actually, in the diagram below, it should be possible to increase the tracking area by rotating the square diagonally so that the corners are at the midpoints of the outer perimeter).
I experimented with a few setups and initially I would have agreed with Oculus' findings. However, I found that the sensors did not have to be within range of each other, and I found that if I raised the height of the sensor, I would be able to cover an area that is closer to the sensor than shown in the diagram.
My sensors were around 7 feet high on opposite corners:
Each sensor was angled down 45 degrees:
Instead of aiming the sensors at each other or toward the center, I aimed each sensor around 45 degrees from the corner of the imaginary rectangular play area. This would maximize the coverage area.
With this setup, I was able to get a tracking area of around 5 feet x 10 feet (each square in the grid represents 1 square feet). This is the same playing area that I used with my Vive. Note how close the edge of the tracking area is to each camera (less than 1 feet away) because of the height and tilt angle of the sensor.
I might have gotten a larger area, perhaps up to 10 feet by 10 feet, but our sofa and Christmas tree limited the available area.
With this setup, I would say the tracking was close to what I was getting from the Vive, maybe around 90% of the Vive. The Vive's tracking is near perfect, and everything appears very solid, plus there is no occlusion. With the Rift's 2-sensor setup above, there would be occasional subtle shifts in the world when I turn around at certain angles, which is why I wouldn't say the tracking is exactly as good as the Vive. But overall, it still works pretty well. UPDATE: As of version 1.13 of Oculus Home, the tracking performance of the Rift is now almost identical to that of the Vive, as long as it is setup according to the instructions above.
Another limitation is that with the sensors angled down, it doesn't track the controller well when the controller is very high, as when I'm jumping (careful, don't hit your ceiling!). But for ordinary vertical movements such as raising my arms for some spells in the Unspoken, there is no issue with vertical tracking at all.
STEP BY STEP
To do this setup you will need the following additional accessories:
1. Two extension cables. Not all extension cables work. If passive, it must be 3m or less. The ones I used were by Cable Matters. Note that my headset and sensors are all connected via USB 2.0 (against Oculus' recommendations).
2. Two ways to mount the sensors high. Any of these will work:
a. wall mount with 1/4-20 attachment: this is the ideal choice and the lowest cost, but it's permanent. It will also require drilling into your walls or ceiling.
b. quick support stand + clamp + mini ballhead: if you want something removable and your ceiling is 9 feet or less, this is the most stable choice.
c. lightstand + mini ballhead: not as stable as the first two options, but it's perhaps the most convenient.
When you have these accessories, mount the sensors as follows:
1. Place the sensors at opposite corners of your playing area, about 7 feet high.
2. Tilt the sensors down 45 degrees (using the ballhead).
3. Aim the sensors 45 degrees from the corner. If your area is rectangular, then the sensors will not be facing each other directly, and that's ok.
Now proceed to setup the Touch as you normally would. (If you already setup the Touch, just repeat the sensor setup: go to Oculus Home on your PC, click on the Settings icon on the top right, choose Devices, and on the dropdown selection on the upper right, select Reset Sensor Tracking.)
In the part where you're asked to hold the controller at eye level, just stand in the middle and hold down the trigger as you normally would. You'll then get a warning that says the sensors need to be between 3 and 6 feet apart:
Just ignore the warning and click on "Next" anyway. You'll get another warning screen -- just ignore it:
On the next screen, you'll setup the guardian boundaries. It will also show you the tracking area of each sensor. If you did it right, it should look like a parallelogram or rhombus. Draw the perimeter of the playing area, being careful not to go outside the blue tracking zone.
That's it for Oculus Home. Now assuming you want to play Steam games as well, here's how to do it:
1. On Oculus Home's Settings, under General, select Unknown Sources and switch it on.
2. Download and install Steam.
3. Install Steam VR.
4. Install Steam VR beta:
- Launch Steam.
- Under Library, right-click SteamVR, and then click Properties.
- Select the Betas tab.
- Select beta - SteamVR Beta Update.
- Close the window, and then wait for SteamVR to finish updating.
5. Launch Steam VR.
6. On the upper left corner, click on the dropdown menu and select Run Room Setup
7. Follow the instructions. In the part where you're asked to draw the Chaperone boundaries, be sure that that the headset can is within sight of both controllers and both sensors. Also check if the headset is tracking. If it's not, it probably went on standby and you'll need to move it a bit. If the headset is not tracking, you won't be able to draw the boundaries of the Chaperone.
Now you'll be able to use roomscale games on Steam as well. I've tested this setup with several games, including Vanishing Realms, and Gnomes and Goblins and most games work. But there are some limitations on using the Rift + Touch with Steam games that were designed for the Vive. I'll post about those later today.
Meanwhile, I also have a third sensor on order. When I receive it, I'll post about how well it works compared to a 2-sensor setup.