The present disclosure generally relates to position tracking for objects, such as head-mounted display systems and controllers associated with head-mounted display systems.
One current generation of virtual reality (“VR”) or augmented reality (“AR”) experiences is created using head-mounted displays (“HMDs”), which can be coupled to a stationary computer (such as a personal computer (“PC”), laptop, or game console), combined and/or integrated with a smart phone and/or its associated display, or self-contained. Generally, HMDs are display devices, worn on the head of a user, which has a small display device in front of one (monocular HMD) or each eye (binocular HMD). The display units are typically miniaturized and may include CRT, LCD, Liquid crystal on silicon (LCos), or OLED technologies, for example. A binocular HMD has the potential to display a different image to each eye. This capability is used to display stereoscopic images.
Demand for displays with heightened performance has increased with the development of smart phones, high-definition televisions, as well as other electronic devices. The growing popularity of virtual reality and augmented reality systems, particularly those using HMDs, has further increased such demand. Virtual reality systems typically envelop a wearer's eyes completely and substitute a “virtual” reality for the actual or physical view (or actual reality) in front of the wearer, while augmented reality systems typically provide a semi-transparent or transparent overlay of one or more screens in front of a wearer's eyes such that actual view is augmented with additional information, and mediated reality systems may similarly present information to a viewer that combines real-world elements with virtual elements. In many virtual reality and augmented reality systems, the movement of a wearer of such a head-mounted display may be tracked in various manners, such as via sensors in the head-mounted display, controllers, or external sensors, in order to enable the images being shown to reflect user movements and to allow for an interactive environment.
Position tracking allows an HMD system to estimate the position of one or more components relative to each other and the surrounding environment. Position tracking may utilize a combination of hardware and software to achieve the detection of the absolute position of components of an HMD system. Position tracking is an important technology for AR or VR systems, making it possible to track movement of HMDs (and/or controllers or other peripherals) with six degrees of freedom (6DOF).
Position tracking technology may be used to change the viewpoint of the user to reflect different actions like jumping or crouching, and may allow for an accurate representation of the user's hands and other objects in the virtual environment. Position tracking may also increase the connection between the physical and virtual environment by, for example, using hand position to move virtual objects by touch. Position tracking improves the 3D perception of the virtual environment for the user because of parallax, which helps with the perception of distance. Also, the positional tracking may help minimize reduce motion sickness caused by a disconnect between the inputs of what is being seen with the eyes and what is being felt by the user's ear vestibular system.
There are different methods of positional tracking. Such methods may include acoustic tracking, inertial tracking, magnetic tracking, optical tracking, combinations thereof, etc.
An angle sensitive detector may be summarized as including a first polarizer operative to receive and filter light from a light source; a spatially-varying polarizer optically aligned with the first polarizer, the spatially-varying polarizer including a polarization pattern configured to uniquely differentiate incident light by its incidence angle relative to the angle sensitive detector; a second polarizer optically aligned with the spatially-varying polarizer to receive and filter light received from the spatially-varying polarizer; and a photodetector positioned to receive light from the second polarizer, the photodetector operative to output at least one intensity signal that is indicative of the incidence angle of the incident light relative to the angle sensitive detector.
The spatially-varying polarizer may include a liquid crystal material. The spatially-varying polarizer may include a multi-twist retarder. The spatially-varying polarizer may be operative to be switched off and, when the spatially-varying polarizer is switched off, the spatially-varying polarizer may be operative to cease changing the polarization of the incident light. The spatially-varying polarizer may include a phase retarder. The spatially-varying polarizer may provide linear polarization at a first end, and may gradually increase the retardance toward a second end opposite the second end. The spatially-varying polarizer may provide quarter wave retardance at the second end. The first polarizer and the second polarizer may each include linear polarizers. The first polarizer and the second polarizer may each include linear polarizers having the same polarization orientation.
An angle sensitive detector may be summarized as including a first polarizer configured to: receive light; filter the light; and output a first component of the filtered light; a spatially-varying polarizer having a position-varying polarizing pattern that defines a plurality of polarization conversion properties respectively associated with a plurality of positions, the plurality of polarization conversion properties being operative to change a polarization of the first component differently depending on a position where the first component impinges on the spatially-varying polarizer, the spatially-varying polarizer being configured to: receive the first component at a first position of the plurality of positions; change the polarization of the first component in accordance with a first polarization conversion property, associated with the first position, of the plurality of polarization conversion properties; and output a polarization-converted first component; a second polarizer configured to: receive the polarization-converted first component; filter the polarization-converted first component; and output a second component of the polarization-converted first component; and a photodetector configured to: receive the second component; detect the intensity of the second component; and output data representative of the intensity of the second component, the data representative of the intensity of the second component usable to determine the first position.
The spatially-varying polarizer may include a liquid crystal material. The spatially-varying polarizer may include a multi-twist retarder. The position-varying polarizing pattern may include a linear polarizer at a first end, a circular polarizer at a second end opposite the first end, and a gradual change between the linear polarizer and the circular polarizer between the first end and the second end. The first polarizer may uniformly filter the light irrespective of where the light impinges on the first polarizer. The second polarizer may uniformly filter the polarization-converted first component irrespective of where the polarization-converted first component impinges on the second polarizer. The spatially-varying polarizer may be operative to be switched off and, when the spatially-varying polarizer is switched off, the spatially-varying polarizer may be operative to cease changing the polarization of the first component.
The photodetector may be a single-cell photodiode. The photodetector may be a multi-cell photodiode having a plurality of cells operative to detect a respective intensity of the second component in each cell of the plurality of cells. The light may be emitted by a base station or a mobile object. The first polarizer and the second polarizer may have the same light filtering properties.
A head-mounted display system may be summarized as including a first head-mounted display system component wearable by a user; a plurality of angle sensitive detectors carried by the first head-mounted display system component, in operation each of the plurality of angle sensitive detectors captures sensor data indicative of an angle of arrival of light emitted from one or more light sources; a scatter detector that captures scatter detector data indicative of whether light received at one or more of the plurality of angle sensitive detectors has been reflected or scattered prior to arrival at the one or more of the plurality of angle sensitive detectors; a second head-mounted display system component that includes a plurality of light sources; and control circuitry operative to: cause one or more of the plurality of light sources to emit light; receive sensor data from one or more of the plurality of angle sensitive detectors; receive scatter detector data from the scatter detector; process the received sensor data and scatter detector data; and track a position of the first head-mounted display system component based at least in part on the processing of the received sensor data and scatter detector data.
The control circuitry may process the scatter detector data to determine whether light received by one or more of the plurality of angle sensitive detectors has been reflected or scattered, and responsive to determining that light has been reflected or scattered, may ignore sensor data from the one or more angle sensitive detectors. The first head-mounted display system component may include a head-mounted display device wearable on the head of the user or a hand-held controller. Each of the plurality of angle sensitive detectors may include one of a photodiode detector or a position sensitive detector. Each of the plurality of angle sensitive detectors may include a photodiode detector having at least four cells.
The first head-mounted display system component may include one of a head-mounted display device, a controller, or a base station, and the second head-mounted display system component comprises another of a head-mounted display device, a controller, or a base station. The second head-mounted display component may include a component that is fixed at a location proximate the environment in which the head-mounted display system is operated. Each of the plurality of light sources may include a light emitter and a circular polarizer positioned in front of the light emitter. The circular polarizer may include a linear polarizer and a quarter wave retarder. The scatter detector may include a circular polarizer positioned in front of an optical detector. The circular polarizer of the scatter detector may include a linear polarizer and a quarter wave retarder. Each of the plurality of light sources may include a light emitter and one of a right-handed circular polarizer and a left-handed circular polarizer, and the scatter detector may include the other of a right-handed circular polarizer and a left-handed circular polarizer.
The head-mounted display system may further include a plurality of scatter detectors, each of the scatter detectors captures scatter detector data indicative of whether light received at one or more of the plurality of angle sensitive detectors has been reflected or scattered prior to arrival at one or more of the plurality of angle sensitive detectors. Each of the plurality of scatter detectors may correspond to a subset of the plurality of angle sensitive detectors. In operation, the second head-mounted display system component may illuminate the plurality of light sources using multiplexing. To process the received sensor and scatter detector data, the control circuitry may provide at least one of the received sensor and scatter detector data as input to a trained machine learning model.
A method of operating a head-mounted display system, the head-mounted display system including a first head-mounted display system component wearable by a user, a plurality of angle sensitive detectors carried by the first head-mounted display system component, a scatter detector that captures scatter detector data indicative of whether light received at one or more of the plurality of angle sensitive detectors has been reflected or scattered prior to arrival at one or more of the plurality of angle sensitive detectors, and a second head-mounted display system component that includes a plurality of light sources, wherein the method may be summarized as including causing at least one light source of the plurality of light sources to emit light; capturing, via each of the plurality of angle sensitive detectors, sensor data indicative of an angle of arrival of light emitted from the at least one light source; receiving, by at least one processor, the sensor data from the plurality of angle sensitive detectors; receiving, by the at least one processor, the scatter detector data from the scatter detector; processing, by the at least one processor, the received sensor data and scatter detector data; and tracking, by the at least one processor, a position of the first head-mounted display system component based at least in part on the processing of the received sensor data and scatter detector data.
An angle-sensitive photodiode structure including a spatially-varying polarizer that provides an attenuation filter is provided. The spatially-varying polarizer may be formed of a multi-twist retarder (MTR), which is a waveplate-like retardation film that provides precise and customized levels of broadband, narrowband or multiple band retardation in a single thin film. The spatially-varying polarizer is configured to have position varying polarization retardation properties and/or position varying polarization retardation patterns. Due to the properties and/or patterns, the angle-sensitive photodiode structure uniquely attenuates light (e.g., the intensity thereof) depending on the position at which light impinges on the angle-sensitive photodiode structure. In at least some implementations, the spatially-varying polarizer operates to change the polarization of impinging light depending on position. The angle-sensitive photodiode structure may include a uniform polarizer operative to translate the changed, position-dependent polarization into intensity. Therefore, the angle-sensitive photodiode structure establishes a relationship between intensity and position. The angle-sensitive photodiode structure may include a photodiode configured to detect the intensity of filtered light. The position may be determined based on the detected intensity.
In the drawings, identical reference numbers identify similar elements or acts. The sizes and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes of various elements and angles are not necessarily drawn to scale, and some of these elements may be arbitrarily enlarged and positioned to improve drawing legibility. Further, the particular shapes of the elements as drawn, are not necessarily intended to convey any information regarding the actual shape of the particular elements, and may have been solely selected for ease of recognition in the drawings.
In the following description, certain specific details are set forth in order to provide a thorough understanding of various disclosed implementations. However, one skilled in the relevant art will recognize that implementations may be practiced without one or more of these specific details, or with other methods, components, materials, etc. In other instances, well-known structures associated with computer systems, server computers, and/or communications networks have not been shown or described in detail to avoid unnecessarily obscuring descriptions of the implementations.
Unless the context requires otherwise, throughout the specification and claims that follow, the word “comprising” is synonymous with “including,” and is inclusive or open-ended (i.e., does not exclude additional, unrecited elements or method acts).
Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrases “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more implementations.
As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. It should also be noted that the term “or” is generally employed in its sense including “and/or” unless the context clearly dictates otherwise.
The headings and Abstract of the Disclosure provided herein are for convenience only and do not interpret the scope or meaning of the implementations.
One or more implementations of the present disclosure are directed to systems and methods for accurately tracking the position of components (e.g., HMD, controllers, peripherals) of a head-mounted display (HMD) system. In at least some implementations, the HMD includes a support structure that carries a forward facing camera (“forward camera” or “front camera”) and a plurality of angle sensitive detectors or light sources. Similarly, one or more controllers may include a plurality of angle sensitive detectors or light detectors. In other implementations, the HMD does not include a forward camera. The forward camera may capture image sensor data in a forward camera field of view at a first frame rate (e.g., 30 Hz, 90 Hz).
In operation, one or more fixed or movable light sources (e.g., IR LEDs) may be caused to emit light, as discussed further below. The light sources may be coupled to an HMD, a controller, a fixed object (e.g., base station) located in the environment, etc. Each of the plurality of angle sensitive detectors captures sensor data in a respective plurality of angle sensitive detector fields of view at a second frame rate (e.g., 1000 Hz, 2000 Hz) which may be greater than the first frame rate of the forward camera (when present). In at least some implementations, the angle sensitive detector fields of view may be narrower than the forward camera field of view, although this is not required. For example, the forward camera may have a relatively wide forward camera field of view of 90°, 120°, or 150°, and each of the angle sensitive detectors may have relatively narrow sensor IC fields of view (e.g., 25°, 45°, 75°). In at least some implementations, the angle sensitive detector fields of view may collectively cover at least a substantial portion the forward camera field of view, or even greater than the forward camera field of view, with each of the angle sensitive detector fields of view overlapping with different portions of the forward camera field of view.
In operation, at least one processor operatively coupled to a plurality of angle sensitive detectors may receive sensor data that captures light from a plurality of light sources (e.g., LEDs, lasers, other light sources). The at least one processor may process the received image sensor data to track a position of a component of the head-mounted display based at least in part on the processing of the received image sensor data. For example, the at least one processor may fuse the sensor data from the angle sensitive detectors to track one or more features present in an environment. The at least one processor may utilize machine learning techniques, solvers, or another methods to process the sensor data to determine the position (e.g., location, orientation, movement) of one or more components of the HMD system. In at least some implementations, the sensor data may be fused with sensor data from other sensors, such as sensor data from a forward camera or an inertial measurement unit (IMU) of an HMD system component. In at least some implementations, one or more scatter detection modules or “scatter detectors” may be used to detect when light has been scattered or reflected before reaching one or more angle sensitive detectors, and such light may be ignored by the tracking system since its angle does not accurately indicate the location of the light source from which the light was emitted. Using this technique, the accuracy of position tracking can be greatly improved. The various features of the implementations of the present disclosure are discussed in detail below with reference to the Figures.
In the illustrated embodiment, the local computing system 120 has components that include one or more hardware processors (e.g., centralized processing units, or “CPUs”) 125, memory 130, various I/O (“input/output”) hardware components 127 (e.g., a keyboard, a mouse, one or more gaming controllers, speakers, microphone, IR transmitter and/or receiver, etc.), a video subsystem 140 that includes one or more specialized hardware processors (e.g., graphics processing units, or “GPUs”) 144 and video memory (VRAM) 148, computer-readable storage 150, and a network connection 160. Also in the illustrated embodiment, an embodiment of an tracking subsystem 135 executes in memory 130 in order to perform at least some of the described techniques, such as by using the CPU(s) 125 and/or GPU(s) 144 to perform automated operations that implement those described techniques, and the memory 130 may optionally further execute one or more other programs 133 (e.g., to generate video or other images to be displayed, such as a game program). As part of the automated operations to implement at least some techniques described herein, the tracking subsystem 135 and/or programs 133 executing in memory 130 may store or retrieve various types of data, including in the example database data structures of storage 150, in this example, the data used may include various types of image data information in database (“DB”) 154, various types of application data in DB 152, various types of configuration data in DB 157, and may include additional information, such as system data or other information.
The LMR system 110 is also, in the depicted embodiment, communicatively connected via one or more computer networks 101 and network links 102 to an exemplary network-accessible media content provider 190 that may further provide content to the LMR system 110 for display, whether in addition to or instead of the image-generating programs 133. The media content provider 190 may include one or more computing systems (not shown) that may each have components similar to those of local computing system 120, including one or more hardware processors, I/O components, local storage devices and memory, although some details are not illustrated for the network-accessible media content provider for the sake of brevity.
It will be appreciated that, while the display device 180 is depicted as being distinct and separate from the local computing system 120 in the illustrated embodiment of
As one example involving operations performed locally by the local media rendering system 120, assume that the local computing system is a gaming computing system, such that application data 152 includes one or more gaming applications executed via CPU 125 using memory 130, and that various video frame display data is generated and/or processed by the image-generating programs 133, such as in conjunction with GPU 144 of the video subsystem 140. In order to provide a quality gaming experience, a high volume of video frame data (corresponding to high image resolution for each video frame, as well as a high “frame rate” of approximately 60-180 of such video frames per second) is generated by the local computing system 120 and provided via the wired or wireless transmission link 115 to the display device 180.
It will also be appreciated that computing system 120 and display device 180 are merely illustrative and are not intended to limit the scope of the present disclosure. The computing system 120 may instead include multiple interacting computing systems or devices, and may be connected to other devices that are not illustrated, including through one or more networks such as the Internet, via the Web, or via private networks (e.g., mobile communication networks, etc.). More generally, a computing system or other computing node may include any combination of hardware or software that may interact and perform the described types of functionality, including, without limitation, desktop or other computers, game systems, database servers, network storage devices and other network devices, PDAs, cell phones, wireless phones, pagers, electronic organizers, Internet appliances, television-based systems (e.g., using set-top boxes and/or personal/digital video recorders), and various other consumer products that include appropriate communication capabilities. The display device 180 may similarly include one or more devices with one or more display panels of various types and forms, and optionally include various other hardware and/or software components.
In addition, the functionality provided by the tracking subsystem 135 may in some embodiments be distributed in one or more components (e.g., local and remote computing systems, HMD, controller(s), base station(s)), and in some embodiments some of the functionality of the tracking subsystem 135 may not be provided and/or other additional functionality may be available. It will also be appreciated that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them may be transferred between memory and other storage devices for purposes of memory management or data integrity. Thus, in some embodiments, some or all of the described techniques may be performed by hardware that include one or more processors or other configured hardware circuitry or memory or storage, such as when configured by one or more software programs (e.g., by the tracking subsystem 135 or it components) and/or data structures (e.g., by execution of software instructions of the one or more software programs and/or by storage of such software instructions and/or data structures). Some or all of the components, systems and data structures may also be stored (e.g., as software instructions or structured data) on a non-transitory computer-readable storage medium, such as a hard disk or flash drive or other non-volatile storage device, volatile or non-volatile memory (e.g., RAM), a network storage device, or a portable media article to be read by an appropriate drive (e.g., a DVD disk, a CD disk, an optical disk, etc.) or via an appropriate connection. The systems, components and data structures may also in some embodiments be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, the present invention may be practiced with other computer system configurations.
In the illustrated example, the environment 200 may include one or more base stations 214 (two shown, labeled base stations 214a and 214b) that may facilitate tracking of the HMD device 202 or the controllers 208 and 210. As the user moves location or changes orientation of the HMD device 202, the position of the HMD device is tracked, such as to allow a corresponding portion of the simulated environment to be displayed to the user on the HMD device, and the controllers 208 and 210 may further employ similar techniques to use in tracking the positions of the controllers (and to optionally use that information to assist in determining or verifying the position of the HMD device). After the tracked position of the HMD device 202 is known, corresponding information is transmitted to the computing system 204 via the tether 220 or wirelessly, which uses the tracked position information to generate one or more next images of the simulated environment to display to the user.
The optical tracking described herein may be used in combination with various methods of positional tracking including, but not limited to, acoustic tracking, inertial tracking, or magnetic tracking, among others.
In at least some implementations, at least one of the HMD device 202 and the controllers 208 and 210 may include one or more optical receivers or sensors that may be used to implement tracking functionality or other aspects of the present disclosure. In at least some implementations, at least one of the HMD device 202, the controllers 208 and 210, or other component may include one or more light sources (e.g., LEDs) which may emit light detected by one or more of the optical receivers. The light sources may be in a fixed position or may be on a component that is movable, such as an HMD device or controller.
In at least some implementations, in addition to or instead of generating fixed point light sources, the base stations 214 may each sweep an optical signal across the tracked volume 201. Depending on the requirements of each particular implementation, each base station 214 may generate more than one optical signal. For example, while a single base station 214 is typically sufficient for six-degree-of-freedom tracking, multiple base stations (e.g., base stations 214a, 214b) may be necessary or desired in some embodiments to provide robust room-scale tracking for HMD devices and peripherals. In this example, optical receivers, such as angle sensitive detectors or scatter detectors, are incorporated into the HMD device 202 and or other tracked objects, such as the controllers 208 and 210. In at least some implementations, optical receivers may be paired with an accelerometer and gyroscope Inertial Measurement Unit (“IMU”) on each tracked device to support low-latency sensor fusion.
In at least some implementations, each base station 214 includes two rotors which sweep a linear beam across the tracked volume 201 on orthogonal axes. At the start of each sweep cycle, the base station 214 may emit an omni-directional light pulse (referred to as a “sync signal”) that is visible to all sensors on the tracked objects. Thus, each sensor computes a unique angular location in the swept volume by timing the duration between the sync signal and the beam signal. Sensor distance and orientation may be solved using multiple sensors affixed to a single rigid body.
The one or more sensors positioned on the tracked objects (e.g., HMD device 202, controllers 208 and 210) may comprise an optoelectronic device capable of detecting the modulated light from the rotor. For visible or near-infrared (NIR) light, silicon photodiodes and suitable amplifier/detector circuitry may be used. Because the environment 200 may contain static and time-varying signals (optical noise) with similar wavelengths to the signals of the base stations 214 signals, in at least some implementations the base station light may be modulated in such a way as to make it easy to differentiate from any interfering signals, and/or to filter the sensor from any wavelength of radiation other than that of base station signals. As discussed further below, in at least some implementations angle sensitive detectors are used to track one or more components of an HMD system, and one or more scatter detectors may be used to ignore light that may have been scattered or reflected prior to being detected by the optical detectors.
Inside-out tracking is also a type positional tracking that may be used to track the position of the HMD device 202 and/or other objects (e.g., controllers 208 and 210, tablet computers, smartphones). Inside-out tracking differs from outside-in tracking by the location of the cameras or other sensors used to determine the HMD component's position. For inside-out tracking, the camera or sensors are located on the HMD component, or object being tracked, while in outside-out tracking the camera or sensors are placed in a stationary location in the environment.
An HMD that utilizes inside-out tracking utilizes one or more sensors to “look out” to determine how its position changes in relation to the environment. When the HMD moves, the sensors readjust their place in the room and the virtual environment responds accordingly in real-time. This type of positional tracking can be achieved with or without markers placed in the environment. The cameras that are placed on the HMD observe features of the surrounding environment. When using markers, the markers are designed to be easily detected by the tracking system and placed in a specific area. With “markerless” inside-out tracking, the HMD system uses distinctive characteristics (e.g., natural features) that originally exist in the environment to determine position and orientation. The HMD system's algorithms identify specific images or shapes and use them to calculate the device's position in space. Data from accelerometers and gyroscopes can also be used to increase the precision of positional tracking.
As shown, the forward camera 346 and the angle sensitive detectors 348 are directed forward toward an actual scene or environment (not shown) in which the user 342 operates the HMD device 344. More generally, the angle sensitive detectors 348 may be directed toward other areas (e.g., upward, downward, left, right, rearward) to detect light from various sources, such as controllers (e.g., held by the user 342) or objects mounted at various locations (e.g., wall, ceiling). The actual physical environment may include, for example, one or more objects (e.g., walls, ceilings, furniture, stairs, cars, trees, tracking markers, light sources, or any other types of objects). The particular number of sensors 348 may be fewer (e.g., 2, 4) or more (e.g., 10, 20, 30, 40) than the number of sensors depicted. The HMD device 344 may further include one or more additional components that are not attached to the front-facing structure (e.g., are internal to the HMD device), such as an IMU (inertial measurement unit) 347 electronic device that measures and reports the HMD device's 344 specific force, angular rate, and/or the magnetic field surrounding the HMD device (e.g., using a combination of accelerometers and gyroscopes, and optionally, magnetometers). The HMD device 344 may further include additional components that are not shown, including one or more display panels and optical lens systems that are oriented toward eyes (not shown) of the user and that optionally have one or more attached internal motors to change the alignment or other positioning of one or more of the optical lens systems and/or display panels within the HMD device.
The illustrated example of the HMD device 344 is supported on the head of user 342 based at least in part on one or more straps 345 that are attached to the housing of the HMD device 344 and that extend wholly or partially around the user's head. While not illustrated here, the HMD device 344 may further have one or more external motors, such as attached to one or more of the straps 345, and automated corrective actions may include using such motors to adjust such straps in order to modify the alignment or other positioning of the HMD device on the head of the user. It will be appreciated that HMD devices may include other support structures that are not illustrated here (e.g., a nose piece, chin strap, etc.), whether in addition to or instead of the illustrated straps, and that some embodiments may include motors attached one or more such other support structures to similarly adjust their shape and/or locations to modify the alignment or other positioning of the HMD device on the head of the user. Other display devices that are not affixed to the head of a user may similarly be attached to or part of one or structures that affect the positioning of the display device, and may include motors or other mechanical actuators in at least some embodiments to similarly modify their shape and/or locations to modify the alignment or other positioning of the display device relative to one or more pupils of one or more users of the display device.
The HMD device 500 includes a processor 502, a front-facing or forward camera 504, a plurality of angle sensitive detectors 506 (e.g., quad-cell photodiodes, position sensitive detectors), and optionally includes an IMU 507 or a plurality of light sources 509. In some implementation, the HMD device 500 may include one of angle sensitive detectors or light sources, and other components (e.g., controllers, base stations) may include the other of angle sensitive detectors or light sources. As discussed below, in at least some implementations the HMD device 500 may include one or more scatter detection modules or scatter detectors, which may be used to detect whether light received by one or more of the angle sensitive detectors has been scattered or reflected, and therefore should be ignored. The HMD device 500 may include a display subsystem 508 (e.g., two displays and corresponding optical systems). The HMD device 500 may also include a nontransitory data storage 510 that may store instructions or data for position tracking 512, instructions or data for display functionality 514 (e.g., games), and/or other programs 516. The HMD system 500 may include some or allow the functionality of the local computing system 120 or media content provider 190 shown in
The HMD device 500 may also include various I/O components 518, which may include one or more user interfaces (e.g., buttons, touch pads, speakers), one or more wired or wireless communications interfaces, etc. As an example, the I/O components 518 may include a communications interface that allows the HMD device 500 to communicate with an external device 520 over a wired or wireless communications link 522. As non-limiting examples, the external device 520 may include a host computer, a server, a mobile device (e.g., smartphone, wearable computer), controllers, etc. The various components of the HMD device 500 may be housed in a single housing, may be housed in a separate housing (e.g., host computer), or any combinations thereof.
It will be appreciated that the illustrated computing systems and devices are merely illustrative and are not intended to limit the scope of the present disclosure. For example, HMD 500 and/or external devices 520 may be connected to other devices that are not illustrated, including through one or more networks such as the Internet or via the Web. More generally, such a computing system or device may comprise any combination of hardware that can interact and perform the described types of functionality, such as when programmed or otherwise configured with appropriate software, including without limitation desktop computers, laptop computers, slate computers, tablet computers or other computers, smart phone computing devices and other cell phones, Internet appliances, PDAs and other electronic organizers, database servers, network storage devices and other network devices, wireless phones, pagers, television-based systems (e.g., using set-top boxes and/or personal/digital video recorders and/or game consoles and/or media servers), and various other consumer products that include appropriate inter-communication capabilities. For example, the illustrated systems 500 and 520 may include executable software instructions and/or data structures in at least some embodiments, which when loaded on and/or executed by particular computing systems or devices, may be used to program or otherwise configure those systems or devices, such as to configure processors of those systems or devices. Alternatively, in other embodiments, some or all of the software systems may execute in memory on another device and communicate with the illustrated computing system/device via inter-computer communication. In addition, while various items are illustrated as being stored in memory or on storage at various times (e.g., while being used), these items or portions of them can be transferred between memory and storage and/or between storage devices (e.g., at different locations) for purposes of memory management and/or data integrity.
Thus, in at least some embodiments, the illustrated systems are software-based systems including software instructions that, when executed by the processor(s) and/or other processor means, program the processor(s) to automatically perform the described operations for that system. Furthermore, in some embodiments, some or all of the systems may be implemented or provided in other manners, such as at least partially in firmware and/or hardware means, including, but not limited to, one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc. Some or all of the systems or data structures may also be stored (e.g., as software instructions contents or structured data contents) on a non-transitory computer-readable storage medium, such as a hard disk or flash drive or other non-volatile storage device, volatile or non-volatile memory (e.g., RAM), a network storage device, or a portable media article (e.g., a DVD disk, a CD disk, an optical disk, a flash memory device, etc.) to be read by an appropriate drive or via an appropriate connection. The systems, modules and data structures may also in some embodiments be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and can take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, the present disclosure may be practiced with other computer system configurations.
The training data 602 may be obtained from a plurality of users and/or from a single user of an HMD system. The training data 602 may be obtained in a controlled environment and/or during actual use by users (“field training”). Further, in at least some implementations, the model 606 may be updated or calibrated from time-to-time (e.g., periodically, continuously, after certain events) to provide accurate position tracking predictions.
In the inference portion 603, run-time data 608 is provided as input to the trained machine learning model 606, which generates position tracking predictions 610. Continuing with the above example, the output data (e.g., intensity data, angle data) of the angle sensitive detectors, optionally information about one or more light sources, and optionally information from one or more scatter detectors, may be provided as input to the trained machine learning model 606, which may process the data to predict the position of the component. The tracking predictions 610 may then be provided to one or more components associated with and HMD device, such as, for example, one or more VR or AR applications, one or more display or rendering modules, one or more mechanical controls, one or more additional position tracking subsystems, etc.
The machine learning techniques employed to implement the features discussed herein may include any type of suitable structures or techniques. As non-limiting examples, the machine learning model 606 may include one or more of decision trees, statistical hierarchical models, support vector machines, artificial neural networks (ANNs) such as convolutional neural networks (CNNs) or recurrent neural networks (RNNs) (e.g., long short-term memory (LSTM) networks), mixture density networks (MDNs), hidden Markov models, or others can be used. In at least some implementations, such as implementations that utilize an RNN, the machine learning model 606 may utilize past input (memory, feedback) information to predict position of one or more HMD components. Such implementations may advantageously utilize sequential data to determine motion information or previous position predictions, which may provide more accurate real-time position predictions.
The illustrated implementation of the method 700 begins at act 702, wherein a first HMD system component having a plurality of angle sensitive detectors is provided. The plurality of angle sensitive detectors may be operative to detect light emitted from one or more light sources that may be fixedly positioned (e.g., mounted to a wall or ceiling) or movable (e.g., coupled to an HMD or controller). In operation, each of the plurality of angle sensitive detectors captures sensor data in a respective plurality of angle sensitive detector fields of view at a frame rate. The sensor data may comprise any type of data that is usable a processor to detect the presence and direction of a light source relative to the angle sensitive detector. In at least some implementations, each of the angle sensitive detectors may comprise one or more sensors (e.g., photodiodes) having image sensing circuitry and image processing circuitry thereon. The angle sensitive detectors may output relatively raw data (e.g., light intensity or power data) or processed data (e.g., angle of incidence data).
At 704, a second HMD system component may be provided that includes a plurality of light sources (e.g., near-IR LEDs). The second HMD system component may comprise a controller, an HMD device, or a light source that is positioned in a fixed location (e.g., ceiling, wall), for example.
At 706, at least one processor of the HMD system may cause the light sources to emit light. The light sources may be illuminated in a manner in which the angle sensitive detectors may each detect light from a single light source at a time or, more generally, in a manner in which the system may be able to determine from which light source that light detected by an angle sensitive detector was received. This may be achieved by multiplexing the illumination of the light sources using any suitable type of multiplexing, such as time multiplexing, wavelength multiplexing, frequency multiplexing, polarization multiplexing, or other techniques that allow the system to know the source of light received from each of the angle sensitive detectors during use.
As an example of time multiplexing, the at least one processor may illuminate only a subset (e.g., one, two, four) of the light sources at a time. For instance, the at least one processor may sequentially illuminate the light sources, one subset at a time, and collect sensor data responsive to each of the light sources.
As an example of wavelength multiplexing, different subsets of the light sources may emit different wavelengths of light, and different subsets of the angle sensitive detectors may operative to sense the different wavelengths of light. Thus, light sources having differing wavelengths may be illuminated simultaneously and detected by the corresponding wavelength-sensitive detectors.
As an example of frequency multiplexing, subsets of the light sources may be illuminated at determined patterns or frequencies that are detectable by the angle sensitive detectors to identify the particular source of the light of the light.
As an example of polarization multiplexing, subsets of the light sources may be polarized differently (e.g., linear, circular), and corresponding subsets of the angle sensitive detectors may be configured to detect certain polarized light (e.g., using polarizers that pass light having the corresponding polarization), which allows multiple light sources to be illuminated simultaneously.
At 708, at least one processor associated with the HMD system may receive sensor data from the plurality of angle sensitive detectors. As noted above, for each angle sensitive detector, the sensor data may be indicative of the angle of arrival of light emitted from a known light source. At 710, the at least one processor associated with the HMD system may optionally receive sensor data from an inertial measurement unit (IMU) that are operative to provide inertial tracking capabilities or sensor data from one or more additional sensors.
At 712, the at least one processor associated with the HMD system may process the received sensor data. For example, the at least one processor may fuse some or all of the sensor data together to track one or more features present in an environment in which the HMD system is operated. The sensor data may include sensor data from the plurality of angle sensitive detectors, and optionally sensor data from an IMU or from a camera. The at least one processor may process the sensor data using a machine learning model (e.g., model 606) or another solver, for example. As discussed further below, in at least some implementations the at least one processor may ignore data from one or more sensors determined to have likely received light that has been scattered or reflected.
At 714, the at least one processor associated with the HMD system may track the position (e.g., location, orientation, or movement) of the component of the HMD system in real-time during use of the HMD system by a user in the environment. The method 700 may continue during operation of the HMD to continuously track the position of the component of the HMD system, as discussed above.
In at least some implementations, the spatially varying polarizer 810 may be formed of a multi-twist retarder (MTR), which is a waveplate-like retardation film that provides precise and customized levels of broadband, narrowband or multiple band retardation in a single thin film. More specifically, MTR comprises two or more twisted liquid crystal (LC) layers on a single substrate and with a single alignment layer. Subsequent LC layers are aligned directly by prior layers, allowing simple fabrication, achieving automatic layer registration, and resulting in a monolithic film with a continuously varying optic axis.
The spatially varying polarizer 810 may comprise a wave retarder that is formed of birefringent materials. Birefringence is the property of a material that has a refractive index that depends on the polarization and propagation direction of light. The wave retarder alters the polarization state or phase of light traveling through the wave retarder. The wave retarder may have a slow axis (or extraordinary axis) and a fast axis (ordinary axis). As polarized light travels through the wave retarder, the light along the fast axis travels more quickly than along the slow axis.
The second linear polarizer 808, spatially-varying polarizer 810 and first linear polarizer 812 may be stacked on the photodiode 806 as shown in
The first linear polarizer 812 passes a linear polarization component 824 of the light 818 and rejects (absorbs or reflects) remaining polarization components of the light 818. Although the first linear polarizer 812 is shown as a vertical polarization filter, in various embodiments, the first linear polarizer 812 may be a horizontal polarization filter or a circular polarization filter, among others.
The linear polarization component 824 then impinges on the spatially-varying polarizer 810 positioned below the first linear polarizer 812. The spatially-varying polarizer 810 is tuned to have light polarization properties that vary according to a position on the spatially-varying polarizer 810, on which the linear polarization component 824 (or any impinging light) impinges on the spatially-varying polarizer 810. In the example shown in
The manner in which the spatially-varying polarizer 810 changes the impinging linear polarization component 824 varies according to a position where the impinging linear polarization component 824 impinges on the spatially-varying polarizer 810. The position may be substantially the same position that the light 818 impinges on angle-sensitive photodiode structure 804.
In this illustrative example, at a first end 826 (top right as shown) of the spatially-varying polarizer 810, the spatially-varying polarizer 810 retains the impinging linear polarization component 824 as a vertically polarized light signal. The spatially-varying polarizer 810 passes vertically polarized light and blocks other polarization components. The linear polarization component 824 that impinges on the first end 826 passes through as is.
The polarization filtering properties of the spatially-varying polarizer 810 may gradually change as a function of a distance to the first end, as a non-limiting example. At a second end 828 (bottom left as shown) of the spatially-varying polarizer 810, the spatially-varying polarizer 810 nearly converts the impinging linear polarization component 824 that is vertically polarized into a horizontally polarized light signal. In particular, at the second end 828, the spatially-varying polarizer 810 has a linear polarization orientation of 175°. Accordingly, at the second end 828, the spatially-varying polarizer 810 outputs light having a greater horizontally polarized component than vertically polarized component. Conversely, near the center of the spatially-varying polarizer 810, the spatially-varying polarizer 810 has a linear polarization orientation of about 135° and, accordingly, the spatially-varying polarizer 810 rotates the polarization of the impinging linear polarization component 824 (having vertical polarization) towards the horizontal polarization by an angle of about 45°. Light exiting the spatially-varying polarizer 810 near its center has a vertical polarization component that has the same magnitude as its horizontal polarization component.
The spatially-varying properties of the spatially-varying polarizer 810 make it possible to identify a position or possible positions where the linear polarization component 824 impinged. The spatially-varying polarizer 810 passes filtered light 830 as illustrated in
The filtered light 830 then impinges on the second linear polarizer 808, which operates to remove any horizontal component of the filtered light 830 and pass vertical light components. The second linear polarizer 808 passes a filtered linear polarization component 832. The second linear polarizer 808 may ensure that light passed through to the photodiode 806 exclusively includes vertically polarized light and excludes horizontally polarized light.
The photodiode 806 receives the filtered linear polarization component 832 and detects an intensity of the filtered linear polarization component 832. The intensity of the filtered linear polarization component 832 is representative of the position or set of positions on which light 818 impinged on the spatially-varying polarizer 810 and, consequently, the angle-sensitive photodiode structure 804.
It is noted that the specific polarizations described with reference to
Referring back to
It is noted that in some embodiments, one of the first and second linear polarizers 812, 808 may be dispensed with. In an embodiment, the first linear polarizer 812 may be dispensed with and only horizontally polarized light may be emitted for position or angle determination.
In an embodiment, improved position detection may be achieved by using a photodiode 806 having multiple regional cells.
The active area (e.g., anode) of each element 802a-802d is individually available so that a light spot illuminating a single quadrant can be electrically characterized as being in that quadrant only. The light spot's energy is distributed between adjacent elements 802a-802d, and the difference in electrical contribution to each element defines the relative position of the light spot with respect to the center of the angle sensitive detector. The relative intensity profile over the elements 802a-802d may be used to determine the position of the light spot in combination with the relative intensity profile of the spatially-varying polarizer 810.
In an embodiment, the spatially-varying polarizer 810 may be switched off to identify a baseline intensity. The spatially-varying polarizer 810 may be coupled to a controller. The controller, which may be a microcontroller or a microprocessor, among others, or the one or more controllers 182 or the processor 502 described herein, may switch on or off the spatially-varying polarizer 810. When the spatially-varying polarizer 810 is switched on, the spatially-varying polarizer 810 filters light as described herein. Conversely, when the spatially-varying polarizer 810 is switched off, the spatially-varying polarizer 810 may cease polarization filtering and instead pass the linear polarization component 824 as is.
When the spatially-varying polarizer 810 is switched off, the photodiode 806 detects an intensity of the light 818 (or light spot 822) without the attenuation performed by the spatially-varying polarizer 810 in combination with the first and second linear polarizers 812, 808. The detected intensity may serve as a baseline intensity or maximum detected intensity. The baseline intensity or maximum detected intensity may correspond to the intensity of light 818 impinging on the first end 826.
When the spatially-varying polarizer 810 is switched on, the photodiode 806 detects an intensity of the light 818 (or light spot 822) with position dependent polarization filtering in place. The relationship between the detected intensity of the light 818 (or light spot 822) when position-dependent polarization filtering is in place with the baseline intensity is indicative of a position or a set of position where the light 818 impinged on the angle-sensitive photodiode structure 804.
As described herein, the polarization conversion performed by the spatially-varying polarizer 810 in combination with the filtering of the first and second linear polarizers 812, 808 results in spatially-varying amplitude (or intensity) attenuation of the light 818. The amplitude (or intensity) are, in turn, detected by the photodiode 806 and used for position determination.
In the non-limiting illustrated example, the active area (e.g., anode) of each element 1102A-1102D is individually available so that a light spot illuminating a single quadrant can be electrically characterized as being in that quadrant only. As the light spot is translated across the angle sensitive detector 1100, the light spot's energy is distributed between adjacent elements 1102A-1102D, and the difference in electrical contribution to each element defines the relative position of the light spot with respect to the center of the angle sensitive detector. The relative intensity profile over the elements 1102A-1102D may be used to determine the position of the light spot.
In this simplified example, the angle sensitive detector 1100 includes a cover 1110 that has an aperture 1108 therein that allows light 1114 from a light source 1112 to pass therethrough. As shown, the light 1114 that passes through the aperture 1108 forms a light spot 1106 can be electrically characterized to determine the angle of the light 1114, and therefore the angle of the light source 1112, relative to the angle sensitive detector 1100. As discussed below, the systems and methods of the present disclosure may utilize a plurality of light sources and angle sensitive detectors to determine the position of components of an HMD system.
It should be appreciated that the angle sensitive detectors of the present disclosure may include one or more of any suitable type of detectors, including quad-cell photodiode detectors, position-sensitive detectors (PSDs) that utilize resistive sheets, photodiode detectors with fewer (e.g., 2) or more (e.g., 16) independent sensitive elements, or any other detector able to detect the angle of arrival of light emitted from a light source. Further, as discussed below, in at least some implementations the angle sensitive detectors or light sources of the present disclosure may utilize various optical components, such as filters, lenses, polarizers, etc., to improve the functionality of the systems and methods discussed herein.
In this example, the angle sensitive detector 1208a is operative to determine that light arrives from the light source 1206a at an angle 1210, and light arrives from the light source 1206b at an angle 1212. Similarly, the angle sensitive detector 1208b is operative to determine that light arrives from the light source 1206b at an angle 1214, and light arrives from the light source 1206a at an angle 1216. Given the detected angles of arrival 1210, 1212, 1214, and 1216, and the known geometric relationships (e.g., distances d1 and d2) between the light sources 1206 and detectors 1208, methods (e.g., triangulation) may be used to determine and track the relative position, orientation, or movement between the first component 1202 and the second component 1204. As discussed above, one or more solvers or machine learning methods may be used to determine the position of components using sensor data from angle sensitive detectors and/or light source data indicating information regarding the light sources of the HMD system.
In the non-limiting illustrated example, the scatter detector 1402 is shown and first and second light sources 1408 and 1410 are also shown. In practice, there may be numerous scatter detectors and numerous light sources. As a non-limiting example, the scatter detector 1402 may be positioned on one of an HMD and a controller, and the light sources 1408 and 1410 may be positioned on the other of the HMD and the controller. In at least some implementations, one or more of the scatter detector 1402 and the light sources 1408 and 1410 may be positioned on or coupled to a fixed object (e.g., wall, ceiling, stand) or movable object (e.g., HMD, controller). The scatter detector 1402 and light sources 1408 and 1410 may be similar or identical to any of the light sources and scatter detectors discussed herein, and may be used in any of the implementations of the present disclosure.
In the illustrated example, the scatter detector 1402 may include an optical detector 1404, which may optionally be an angle sensitive detector, and an optical subsystem 1406. The light source 1408 may include a light emitter 1412 (e.g., LED) and an optical subsystem 1414 that emit light 1420, and the light source 1410 may include a light emitter 1416 and an optical subsystem 1414 that emit light 1422. Some or all of the optical subsystems 1406, 1414, and 1418 may be the same or different from each other, and may each include one or more optical components. The optical subsystems 1406, 1414, and 1418 may be integrated with the detector 1404 and light sources 1408 and 1410, respectively, or may be separate components. Non-limiting examples of optical components include one or more lenses, one or more polarizers, one or more wave retarders, one or more filters, one or more apertures, etc. In at least some implementations, a subset of light sources may include one type of optical subsystem, and one or more other subsets of light sources may include another type of optical subsystem. Similarly, a subset of scatter detectors 1402 may include one type of optical subsystem, and one or more other subsets of scatter detectors may include another type of optical subsystem. As an example, the optical subsystems may comprise filters that filter out visible light or other types of light. Further as discussed above, the optical subsystems may include components that facilitate one or more of the various types of multiplexing discussed above that allow for multiple light sources to be illuminated simultaneously without confusion regarding the source of the emitted light.
The design of the optical subsystems 1406, 1414, and 1418 may be coordinated such that the scatter detector 1402 is operative to detect whether light from the light sources 1408 and 1410 has been scattered or reflected, or whether the light reached the scatter detector directly without scattering or reflection. For example, the scatter detector 1402 may be operative to detect a change in the type or degree of polarization of light emitted by the light sources due to scattering or reflection. In the illustrated example, the light 1420 from the light source 1408 is received directly by the scatter detector 1402, while light 1422 from the light source 1410 is reflected off of a surface 1423 as light 1424 which is received by the scatter detector 1402. In this example, the light 1420 is indicative of the relative position of the light source 1408 with respect to the scatter detector 1402, whereas the light 1424 reflected from the surface 1423 is not indicative of the relative position of the light source 1410 with respect to the scatter detector 1402. Accordingly, by detecting that the light 1424 has been scattered or reflected, the tracking system may ignore or reject light signals from one or more sensors when performing position tracking, such as sensors that are positioned an oriented similar to the scatter detector, thereby improving the position tracking capabilities of the system.
There are a number of configurations that may allow the scatter detector 1402 to be able to detect whether light from a light source has been scattered or reflected, and therefore should be ignored by one or more detectors. Generally, in at least some implementations the light emitted by the light sources 1408 and 1410 may be polarized in a determined way by the optical systems 1414 and 1418, respectively, and the scatter detector 1402 may be configured to discriminate between light that is received directly from the light sources 1408 and 1410 and light from the light sources that is scattered or reflected before being received by the scatter detector. For example, the type or degree of polarization of light from the light sources may be altered as a result of scattering or specular reflection, and the scatter detector 1402 may be configured to detect such changes. As one non-limiting example, the optical subsystems 1414 and 1418 of the light sources 1408 and 1410, respectively, may comprise one of right-handed or left-handed circular polarizers, and the optical subsystem 1406 of the scatter detector 1402 may include the other of a right-handed or left-handed circular polarizer. For instance, the optical subsystems 1414 and 1418 of the light sources 1408 and 1410, respectively, may comprise right-handed circular polarizers, and the optical subsystem 1406 of the scatter detector 1402 may comprise a left-handed circular polarizer. In this configuration, the optical subsystem 1406 of the scatter detector 1402 may be used to detect light that has been reflected off of a depolarizing surface (e.g., has random polarization) or light that has been reflected off of a non-depolarizing surface (e.g., glass, metal, acrylic, etc.) and is left-circular polarized after the reflection. If such light is above a determined threshold, the tracking system may ignore signals from one or more detectors that are determined to have likely also received the reflected or scattered light.
An example of this configuration is shown in an illustration 1500 of
The scatter detector 1502 includes an optical detector 1514 (e.g., quad-cell detector, single cell detector) and an optical subsystem that comprises a left-handed circular polarizer 1516. The left-handed circular polarizer 1516 comprises a quarter-wave retarder or wave plate 1518 and a linear polarizer 1520. Since the scatter detector 1502 includes a circular polarizer that is opposite handed from the circular polarizer 1508 of the light sources, the scatter detector will detect light that has been reflected via specular reflection due to the handedness of the reflected circularly polarized light switching to the opposite handedness (i.e., from right-handed to left-handed in this example).
In operation, when the scatter detector 1502 detects light that has been scattered or reflected (e.g., above a determined threshold), the tracking system may reject or ignore light from one or more optical sensors that may have likely received the same light (e.g., sensors that are positioned or oriented similar to the scatter detector).
As shown, the forward camera 1646 and the angle sensitive detectors 1648 are directed forward toward an actual scene or environment (not shown) in which the user 1642 operates the HMD device 1644. More generally, the angle sensitive detectors 1648 may be directed toward other areas (e.g., upward, downward, left, right, rearward) to detect light from various sources, such as controllers (e.g., held by the user 1642) or objects mounted at various locations (e.g., wall, ceiling). The actual physical environment may include, for example, one or more objects (e.g., walls, ceilings, furniture, stairs, cars, trees, tracking markers, light sources, or any other types of objects). The particular number of sensors 1648 may be fewer (e.g., 2, 4) or more (e.g., 10, 20, 30, 40) than the number of sensors depicted. The HMD device 1644 may further include one or more additional components that are not attached to the front-facing structure (e.g., are internal to the HMD device), such as an IMU (inertial measurement unit) 1647 electronic device that measures and reports the HMD device's 1644 specific force, angular rate, and/or the magnetic field surrounding the HMD device (e.g., using a combination of accelerometers and gyroscopes, and optionally, magnetometers). The HMD device 1644 may further include additional components that are not shown, including one or more display panels and optical lens systems that are oriented toward eyes (not shown) of the user and that optionally have one or more attached internal motors to change the alignment or other positioning of one or more of the optical lens systems and/or display panels within the HMD device.
The illustrated example of the HMD device 1644 is supported on the head of user 1642 based at least in part on one or more straps 1645 that are attached to the housing of the HMD device 1644 and that extend wholly or partially around the user's head. While not illustrated here, the HMD device 1644 may further have one or more external motors, such as attached to one or more of the straps 1645, and automated corrective actions may include using such motors to adjust such straps in order to modify the alignment or other positioning of the HMD device on the head of the user. It will be appreciated that HMD devices may include other support structures that are not illustrated here (e.g., a nose piece, chin strap, etc.), whether in addition to or instead of the illustrated straps, and that some embodiments may include motors attached one or more such other support structures to similarly adjust their shape and/or locations to modify the alignment or other positioning of the HMD device on the head of the user. Other display devices that are not affixed to the head of a user may similarly be attached to or part of one or structures that affect the positioning of the display device, and may include motors or other mechanical actuators in at least some embodiments to similarly modify their shape and/or locations to modify the alignment or other positioning of the display device relative to one or more pupils of one or more users of the display device.
The HMD device 1644 also includes a plurality of scatter detectors 1650, 1652 and 1666. The scatter detectors 1650, 1652 and 1666 may be similar or identical to any of the scatter detectors discussed herein, and may be operative detect whether light 1660, 1664, and 1672 from light sources 1658, 1662 and 1670, respectively, that are associated with the HMD device 1644 has been reflected or scattered off of a surface prior to reaching the HMD device. As discussed above, upon detection that light that has been scattered, sensor data from one or more sensors determined to have likely received the same light may be ignored.
In at least some implementations, a single scatter detector may be provided for all of the detectors 1648. In other implementations, a separate scatter detector may be provided for each of the detectors 1648, or a scatter detector may be included as part of one or more of the detectors 1648. In the illustrated simplified example, the scatter detector 1650 that is positioned on a right side of the front-facing structure 1643 corresponds to detectors 1648a, 1648b, and 1648e, which are used to detect light from light sources (e.g., light source 1658) in a region 1654 to the right side of the user 1642. That is, if the scatter detector 1650 detects light that has been reflected or scattered, the tracking system may ignore signals from one or more of the detectors 1648a, 1648b, and 1648e determined to have likely received the same light due to their similar orientation as the scatter detector 1650. Similarly, the scatter detector 1652 that is positioned on left right side of the front-facing structure 1643 corresponds to detectors 1648c, 1648d, and 1648g, which are used to detect light from light sources (e.g., light source 1662) in a region 1656 to the left side of the user 1642. The scatter detector 1666 on an upper region of the front-facing structure 1643 corresponds to detector 1648f, which is used to detect light from light sources (e.g., light source 1670) in a region 1668 that is above the user 1642. As discussed above, multiplexing (e.g., time, wavelength, pattern) may be used to allow the system to know which light source or group of light sources the light is received from by the detectors 1648, 1650, 1652 and 1666.
In the non-limiting illustrated example, the active area (e.g., anode) of each element 1702A-1702D is individually available so that a light spot illuminating a single quadrant can be electrically characterized as being in that quadrant only. As the light spot is translated across the detector 1700, the light spot's energy is distributed between adjacent elements 1702A-1702D, and the difference in electrical contribution to each element defines the relative position of the light spot with respect to the center of the detector. The relative intensity profile over the elements 1702A-1702D may be used to determine the position of the light spot.
In this simplified example, the detector 1700 includes a cover 1710 that has an aperture 1708 therein that allows light 1714 from a light source 1712 to pass therethrough. As shown, the light 1714 that passes through the aperture 1708 forms a light spot 1706 can be electrically characterized to determine the angle of the light 1714, and therefore the angle of the light source 1712, relative to the detector 1700. As discussed below, the systems and methods of the present disclosure may utilize a plurality of light sources and detectors to determine the position of components of an HMD system.
In the illustrated example, a first circular polarizer 1716 is positioned proximate (e.g., adjacent) the light source 1712, and a second polarizer 1718 is positioned proximate the detector 1700. In at least some implementations the light emitted by the light source 1712 may be polarized in a determined way by the first circular polarizer 1716 and the second circular polarizer 1718 of the scatter detector 1700 may be configured to discriminate between light that is received directly from the light source 1712 and light from the light source that is scattered or reflected before being received by the scatter detector 1700. As one non-limiting example, one of the first and second circular polarizers 1716 and 1718, respectively, may comprise one of right-handed or left-handed circular polarizers, and the other of the first and second circular polarizers 1716 and 1718 may include the other of a right-handed or left-handed circular polarizer. For instance, the first circular polarizer 1716 of the light source 1712 may comprise a right-handed circular polarizer, and the second circular polarizer 1718 of the scatter detector 1700 may comprise a left-handed circular polarizer. In this configuration, the second circular polarizer 1718 of the scatter detector 1700 may be used to detect light that has been reflected off of a depolarizing surface (e.g., has random polarization) or light that has been reflected off of a non-depolarizing surface (e.g., glass, metal, acrylic, etc.) and is left-circular polarized after the reflection. If such light is above a determined threshold, the tracking system may ignore signals from one or more detectors that are determined to have likely also received the reflected or scattered light.
The foregoing detailed description has set forth various implementations of the devices and/or processes via the use of block diagrams, schematics, and examples. Insofar as such block diagrams, schematics, and examples contain one or more functions and/or operations, it will be understood by those skilled in the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one implementation, the present subject matter may be implemented via Application Specific Integrated Circuits (ASICs). However, those skilled in the art will recognize that the implementations disclosed herein, in whole or in part, can be equivalently implemented in standard integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more controllers (e.g., microcontrollers) as one or more programs running on one or more processors (e.g., microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of ordinary skill in the art in light of this disclosure.
Those of skill in the art will recognize that many of the methods or algorithms set out herein may employ additional acts, may omit some acts, and/or may execute acts in a different order than specified.
In addition, those skilled in the art will appreciate that the mechanisms taught herein are capable of being distributed as a program product in a variety of forms, and that an illustrative implementation applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include, but are not limited to, the following: recordable type media such as floppy disks, hard disk drives, CD ROMs, digital tape, and computer memory.
The various implementations described above can be combined to provide further implementations. To the extent that they are not inconsistent with the specific teachings and definitions herein, all of the U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification, including U.S. provisional patent application Ser. No. 62/971,181 filed on Feb. 6, 2020, are incorporated herein by reference, in their entirety. Aspects of the implementations can be modified, if necessary, to employ systems, circuits and concepts of the various patents, applications and publications to provide yet further implementations.
These and other changes can be made to the implementations in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific implementations disclosed in the specification and the claims, but should be construed to include all possible implementations along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure.
Number | Name | Date | Kind |
---|---|---|---|
5291273 | Gelbart | Mar 1994 | A |
5966242 | Yamanaka | Oct 1999 | A |
6982773 | Kurtz et al. | Jan 2006 | B2 |
7160017 | Lee et al. | Jan 2007 | B2 |
7295312 | Gerhart et al. | Nov 2007 | B1 |
8004675 | Lefaudeux | Aug 2011 | B2 |
8235533 | Hudman et al. | Aug 2012 | B2 |
8368889 | Schwiegerling et al. | Feb 2013 | B2 |
8982313 | Escuti et al. | Mar 2015 | B2 |
9298041 | Escuti et al. | Mar 2016 | B2 |
9335586 | Escuti et al. | May 2016 | B2 |
9410677 | Wheatley et al. | Aug 2016 | B2 |
10203489 | Khan et al. | Feb 2019 | B2 |
10466399 | Lee | Nov 2019 | B2 |
10782526 | Van Heugten | Sep 2020 | B2 |
11209657 | Hudman | Dec 2021 | B2 |
11320692 | Hudman | May 2022 | B2 |
11467660 | Hudman | Oct 2022 | B2 |
20040056966 | Schechner et al. | Mar 2004 | A1 |
20100201969 | Zou et al. | Aug 2010 | A1 |
20110310220 | McEldowney | Dec 2011 | A1 |
20130027656 | Escuti | Jan 2013 | A1 |
20130286479 | Sung et al. | Oct 2013 | A1 |
20150131311 | Wheatley et al. | May 2015 | A1 |
20160182889 | Olmstead | Jun 2016 | A1 |
20160349516 | Alexander et al. | Dec 2016 | A1 |
20170038258 | Hegyi | Feb 2017 | A1 |
20180100731 | Pau | Apr 2018 | A1 |
20180164157 | Pedersen et al. | Jun 2018 | A1 |
20190243147 | Smithwick et al. | Aug 2019 | A1 |
20190258442 | Hudman et al. | Aug 2019 | A1 |
20190377183 | Sharp | Dec 2019 | A1 |
20200053350 | Hudman | Feb 2020 | A1 |
20200301147 | Klug | Sep 2020 | A1 |
Entry |
---|
Hornburg et al., “Multiband retardation control using multi-twist retarders,” Proc. of SPIE, Polarization: Measurement, Analysis, and Remote Sensing XI, vol. 9099, 90990Z, 2014, 9 pages. |
Hornburg et al., “Wide color gamut multi-twist retarders,” Proc. of SPIE, Emerging Liquid Crystal Technologies X, vol. 9384, 93840W, 2015, 11 pages. |
ImagineOptix, “Consumer Electronics Optics,” Augmented and Virtual Reality Optics Technology in Consumer Electronics—ImagineOptix, retrieved from <https://www.imaginoptix.com/applications/consumer-electronics/>, on Dec. 17, 2019, 3 pages. |
International Search Report and Written Opinion, dated Jun. 25, 2021, for International Application No. PCT/US 21/16639, 10 pages. |
Komanduri et al., “Multi-twist retarders for broadband polarization transformation,” Proc. of SPIE, Emerging Liquid Crystal Technologies VII, vol. 8279, 82790E, 2012, 10 pages. |
Komanduri et al., “Multi-twist retarders: broadband retardation control using self-aligning reactive liquid crystal layers,” Optics Express, Optical Society of America, vol. 21, No. 1 Jan. 14, 2013, 17 pages. |
Perreault, “Triple Wollaston-prism complete-Stokes imaging polarimeter,” Optics Letters, Optical Society of America, vol. 38, No. 19, Oct. 1, 2013, 4 pages. |
Number | Date | Country | |
---|---|---|---|
20230026078 A1 | Jan 2023 | US |
Number | Date | Country | |
---|---|---|---|
62971181 | Feb 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17167926 | Feb 2021 | US |
Child | 17961938 | US |