SteamVR HTC Vive In-depth - Lighthouse Tracking System Dissected and Explored
Introduction and Background
VR is rapidly gaining steam lately with the recent launch of several capable platforms. I’ve briefly sampled the various iterations of development kits and pre-release units coming through our office, and understanding how they tracked the headset position was relatively easy. Then we got to play with an HTC Vive, and things got a bit more interesting. The Vive is a ‘whole room’ VR experience. You’re not sitting at a desk with a game controller. Instead, you are holding a pair of controllers that behave more like extensions of yourself (once you get used to them, that is). Making all of this work took some extra pieces included with the kit, and the electronics technician in me was dying to know just what made this thing tick. I’d imagine other readers of this site might feel the same, so I thought it appropriate to do some digging and report my findings here.
Before diving straight into the HTC Vive, a brief history lesson of game system positional tracking is in order.
I'll start with the Wii Remote controllers, which had a front mounted IR camera that ‘saw’ a pair of IR LED banks mounted in the ‘Sensor Bar’ – an ironic naming as the ‘sensor’ was actually in the Remotes. This setup lets you point a Wii Remote at the television and use it as a mouse. Due to the limited number of points in use, the system could not tell the Wii Remote location within the room. Instead, it could only get a vector relative to the Sensor Bar itself. Wii Remotes also contained accelerometers, but those were typically not used to assist in the accuracy of the pointing (but were used to determine if the remote was inverted, as the Sensor Bar had only two light sources).
The Oculus Rift was essentially a reversing of the technology used in the old Nintendo Wii Remotes. The headset position and orientation are determined by a desk-mounted IR camera which ‘looks’ at IR LEDs mounted to the headset. The system dubbed ‘Constellation’, can decode the pattern (seen faintly in the above photo) and determine the headset position and orientation in space.
Even the sides and rear of the headset have a specific LED pattern to help the camera lock on to someone looking away from it. If the IR camera sees the triangular pattern on the headset strap, it can conclude that the viewer us looking behind them.
The HTC Vive takes a different approach here. Since it was launching with a headset and two controllers that would all need to be tracked in space simultaneously. The Wii Remote style idea would only work with a much larger grid of sensor bars (or QR codes) peppered all over the room, so that idea was out. The Rift’s constellation system might have a hard time identifying unique light patterns on multiple devices that could be far away and possibly occluding each other. So if having cameras on the headset and controllers is out, and having a camera on the desk is out, what’s left?