A head model

The translation part of the head motion has not been addressed. Ideally, the head should be the same height in the virtual world as in the real world. This can be handled by the translation part of the $ T_{eye}$ matrix (3.36).

We must also account for the fact that as the head rotates, the eyes change their positions. For example, in a yaw head movement (nodding ``no''), the pupils displace a few centimeters in the $ x$ direction. More accurately, they travel along a circular arc in a horizontal plane. To more closely mimic the real world, the movements of the eyes through space can be simulated by changing the center of rotation according to a fictitious head model [3]. This trick is needed until Section 9.3, where position is instead estimated from more sensors.

Figure 9.8: To obtain a head model, the rotation center is moved so that orientation changes induce a plausible translation of the eyes. The height $ h$ is along the $ y$ axis, and the protrusion $ p$ is along the $ z$ axis (which leads a negative number).
% latex2html id marker 13851

Recall from Section 3.5 that the cyclopean viewpoint was first considered and then modified to handle left and right eyes by applying horizontal offsets by inserting $ T_{left}$ (3.50) and $ T_{right}$ (3.52). In a similar way, offsets in the $ y$ and $ z$ directions can be added to account for displacement that would come from a rotating head. The result is to insert the following before or after $ T_{right}$ and $ T_{left}$:

$\displaystyle T_{head} = \begin{bmatrix}1 & 0 & 0 & 0  0 & 1 & 0 & h  0 & 0 & 1 & p  0 & 0 & 0 & 1  \end{bmatrix} ,$ (9.22)

in which $ h$ is a height parameter and $ p$ is a protrusion parameter. See Figure 9.8. The idea is to choose $ h$ and $ p$ that would correspond to the center of rotation of the head. The parameter $ h$ is the distance from the rotation center to the eye height, along the $ y$ axis. A typical value is $ h = 0.15$m. The protrusion $ p$ is the distance from the rotation center to the cyclopean eye. A typical value is $ p = -0.10$m, which is negative because it extends opposite to the $ z$ axis. Using a fake head model approximates the eye locations as the user rotates her head; however, it is far from perfect. If the torso moves, then this model completely breaks, resulting in a large mismatch between the real and virtual world head motions. Nevertheless, this head model is currently used in popular headsets, such as Samsung Gear VR.

An issue also exists with the $ y$ height of the head center. The user may be seated in the real world, but standing in the virtual world. This mismatch might be uncomfortable. The brain knows that the body is seated because of proprioception, regardless of the visual stimuli provided by VR. If the user is standing, then the head-center height could be set so that the eyes are at the same height as in the real world. This issue even exists for the case of full six-DOF tracking, which is covered next; the user might be sitting, and a vertical offset is added to make him appear to be standing in VR.

Steven M LaValle 2020-01-06