📜 ⬆️ ⬇️

We make Oculus Rift a little better.



Hi, Habr!

More than a year has passed since the first production samples of the Oculus DK1 appeared. In this short period of time, tens of thousands of developers around the world, including from Russia ( one , two , three ) have already managed to touch the world of virtual reality.
')
In March, the Oculus DK2 was announced, with a number of improvements, of which the updated screen and support for tracking the absolute position of the head are particularly significant. And if with the first one everything is more or less clear - increasing the resolution reduces the effect of image graininess, especially noticeable in the first generation of the device, and using the OLED screen instead of the LCD improves the response speed of the matrix, then on the second paragraph (namely, its importance and how we added support for this feature in DK1) I would like to dwell in more detail ...

The importance of tracking the absolute position in the helmets of virtual reality most people begin to understand just by trying them on themselves: without it, after a few minutes, the effect of immersion begins to be lost, since linear movement of the head to the side does not change the picture of the virtual world at all. And even if for a moment we imagine that the head does not make linear movements, the need to track the spatial position of the helmet for correct rendering of virtual reality still remains, as the head is rotated around the center of the neck (as viewed from above) and not around the nose bridge. The animation below demonstrates this problem clearly - with the turn of the head, the eyes move as well. Plus, the screen itself is at a certain distance from the user's eyes, which is an additional problem for developers.



In addition, helmets, whose work is based solely on a bundle gyroscope + accelerometer + (optional) magnetometer (like Oculus DK1), accumulate an error over time and the orientation of the entire system shifts over time. Support for absolute tracking is the solution to this problem.

In Oculus DK2, this problem is solved with the help of an external camera operating at a frequency of about 60 frames per second (at least 16-17 milliseconds of response time) and tracking the IR-LEDs integrated into the helmet body. Is this frequency sufficient for comfortable use of the helmet? The question remains open. In any case, an increase in the tracking frequency would reduce the delay time and, as a result, would provide greater immersion in virtual reality.

The task of quickly and efficiently tracking the absolute position of the virtual reality helmet to me and my colleagues seemed interesting and therefore, as an experiment, it was decided to make the DK1 upgrade, ensuring the maximum possible speed of the entire tracking system. As a result, it was possible to achieve a speed of more than 130 frames per second with almost zero CPU utilization. A DUO 3D high-speed stereo camera with built-in high-power IR LEDs synchronized with the gates of the matrix was used.



Reflective markers are glued to the helmet itself (visible on the very first photo), which are detected by the camera. Due to the fact that the tags are located not only on the device, but also on the belts, tracking is stable even in the case when the user is looking in the opposite direction from the camera. The wide viewing angle makes it possible not to lose the helmet when the head is strongly deflected away from the camera, and the highlighting features of the markers make it possible to track them even in an environment that is aggressive from the point of view of external IR light.

All of the above can be seen in the following video:



I will be glad to hear comments, suggestions, comments ... Thank you for your attention!

Source: https://habr.com/ru/post/234011/


All Articles