Position tracking system and method for head-mounted display systems

The integration of forward-facing cameras, angle-sensing detectors, and scattered light detection modules, along with machine learning, addresses the challenge of precise and responsive position tracking in HMD systems, improving user experience by reducing motion sickness and enhancing immersion.

JP7830623B2Active Publication Date: 2026-03-16VALVE CORPORATION
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-09-27
Publication Date
2026-03-16

AI Technical Summary

Technical Problem

Existing position tracking systems for head-mounted display (HMD) systems face challenges in accurately determining the position and orientation of components with high precision and low latency, particularly in dynamic environments, which can lead to motion sickness and reduced user immersion.

Method used

The system employs a combination of forward-facing cameras and angle-sensing detectors, along with scattered light detection modules, to track the position and orientation of HMD components. Machine learning techniques are used to process sensor data from these detectors, integrating inertial and image data for enhanced accuracy and adaptability.

Benefits of technology

This approach improves the accuracy and responsiveness of position tracking, reducing motion sickness and enhancing user immersion by accurately reflecting the user's movements within the virtual environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007830623000001
    Figure 0007830623000001
  • Figure 0007830623000002
    Figure 0007830623000002
  • Figure 0007830623000003
    Figure 0007830623000003
Patent Text Reader

Abstract

Systems and methods for tracking the position of one or more head mounted display (HMD) system components of an HMD system. The HMD components may carry multiple angle-sensing detectors or other types of detectors. The HMD system may act to detect corrupted position tracking samples and allow such samples to be ignored, thereby improving the position tracking process. A control circuit causes a light source to emit light according to a specified pattern and receives sensor data from the multiple detectors. The control circuit may process the sensor data and track the position of one or more HMD components, for example, using machine learning or other techniques.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to position tracking of objects such as head-mounted display systems, controllers associated with head-mounted display systems, and the like.

Background Art

[0002] One current generation of virtual reality (VR) or augmented reality (AR) experiences is created using a head-mounted display (HMD) that can be combined with and / or integrated into a stationary computer (such as a personal computer (PC), laptop, or game console), and / or coupled to its associated display, or can be self-contained. Generally, an HMD is a display device worn on a user's head that has a small display device in front of one eye (monocular HMD) or each eye (binocular HMD). These display units are typically miniaturized and can include, for example, CRT technology, LCD technology, liquid crystal on silicon (LCos) technology, or OLED technology. A binocular HMD has the possibility of displaying different images to each eye. This function is used to display stereoscopic images.

[0003] With the development of smartphones, high-definition televisions, and other electronic devices, the demand for high-performance displays is increasing. This demand is further amplified by the growing popularity of virtual reality and augmented reality systems, particularly those using head-mounted displays (HMDs). Virtual reality systems generally completely envelop the wearer's eyes and replace the actual or physical view (or actual reality) in front of the wearer with "virtual" reality, while augmented reality systems generally provide one or more translucent or transparent overlays of screens in front of the wearer's eyes so that the actual view is enhanced with additional information, and mediated reality systems may similarly present information to the viewer that combines elements of the real world with virtual elements. In many virtual and augmented reality systems, the movement of the wearer of such a head-mounted display can be tracked in various ways, such as through sensors in the head-mounted display, controllers, or external sensors, to enable images to be displayed in a way that reflects the user's movement and to enable an interactive environment.

[0004] 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 can achieve the detection of the absolute position of components in an HMD system using a combination of hardware and software. Position tracking is a crucial technology for AR or VR systems, enabling the tracking of HMD (and / or controllers or other peripherals) movement with six degrees of freedom (6DOF).

[0005] Position tracking technology may be used to change the user's viewpoint to reflect different actions such as jumping or crouching, and may enable accurate representation of the user's hands and other objects within the virtual environment. Position tracking may also increase the connection between the physical and virtual environments, for example, by moving virtual objects by touch using the position of the hands. Position tracking improves the user's three-dimensional perception of the virtual environment due to parallax and assists in distance perception. Position tracking may also help minimize motion sickness caused by the mismatch between what the eyes see and what the user's ear's vestibular system perceives.

[0006] There are several different methods for position tracking. These methods may include acoustic tracking, inertial tracking, magnetic tracking, optical tracking, and combinations thereof. [Brief explanation of the drawing]

[0007] In drawings, the same reference number identifies similar elements or actions. The size and relative position of elements in a drawing are not necessarily drawn to scale. For example, the shapes and angles of various elements are not necessarily drawn to scale, and some of these elements may be arbitrarily enlarged and positioned to improve the readability of the drawing. Furthermore, the particular shape of an element depicted may not necessarily be intended to convey any information about the actual shape of that element, but may simply be chosen to facilitate recognition within the drawing.

[0008] [Figure 1] This is a schematic diagram of a network connectivity environment including one or more systems suitable for performing at least some of the techniques described herein, including embodiments of a tracking subsystem.

[0009] [Figure 2]This figure shows an example environment in which at least some of the techniques described are used with an example head-mounted display device that is connected to a video rendering computing system and provides a virtual reality display to the user.

[0010] [Figure 3] This is a diagram of an HMD device having a binocular display subsystem and multiple angle-sensing detectors.

[0011] [Figure 4] This is a diagram of a controller that may be used with an HMD device.

[0012] [Figure 5] This is a schematic block diagram of an HMD device according to an example embodiment of the present disclosure.

[0013] [Figure 6] This is a schematic diagram illustrating an environment in which machine learning techniques may be used to implement a tracking subsystem for an HMD device, relating to one non-exclusive example implementation.

[0014] [Figure 7] This is a flowchart illustrating a method for operating the position tracking system of an HMD system to track the position, orientation, and / or movement of components of the HMD system during use, according to an example embodiment of the present disclosure.

[0015] [Figure 8] An exemplary perspective view of an angle-sensing detector that may be used in one or more implementations of this disclosure is shown.

[0016] [Figure 9] The first linear polarizer, the spatially variable polarizer, and the second linear polarizer of an angle-sensing photodiode structure are shown, as well as the polarization of light or a point of light that passes through them and reaches the photodiode.

[0017] [Figure 10] The first linear polarizer, spatial variable polarizer, and second linear polarizer of the angle sensing photodiode structure, and the polarization of the light or light spot passing through them and reaching the photodiode are shown.

[0018] [Figure 11A] It is a top view of an exemplary angle sensing detector that can be used in one or more implementations of the present disclosure.

[0019] [Figure 11B] It is a perspective view of the angle sensing detector shown in FIG. 11A.

[0020] [Figure 12] It is a simplified diagram showing the determination of the position of the components of the HMD system using a light source and an angle sensing detector according to one non-limitingly shown implementation.

[0021] [Figure 13] It is a diagram showing an exemplary optical system of a light source and an angle sensing detector according to one non-limitingly shown implementation.

[0022] [Figure 14] It is a diagram showing the operation of a scattered light detection module and a light source of an example of a tracking system according to one non-limitingly shown implementation.

[0023] [Figure 15] It is a diagram showing the components of a light source and a scattered light detection module of a tracking system according to one non-limitingly shown implementation.

[0024] [Figure 16]This is a diagram of an HMD device having a binocular display subsystem, multiple angle-sensing detectors, and multiple scattered light detection modules, which act to detect scattered or reflected light and can be used to ignore such scattered light during position tracking of the HMD device or its components.

[0025] [Figure 17] This is a perspective view of the components of a tracking system's light source and scattered light detection module, shown in one non-definite implementation.

[0026] [Figure 18] This is a flowchart illustrating a method for operating the position tracking system of an HMD system to track the position, orientation, and / or movement of components of the HMD system during use, according to an example embodiment of the present disclosure.

[0027] [Figure 19] This is a flowchart illustrating a method for adaptively adjusting the brightness of multiple light sources or optical detectors in a position tracking system of an HMD system, according to an example embodiment of the present disclosure.

[0028] [Figure 20] This is a flowchart for a method for adaptively adjusting the brightness of multiple light sources or optical detectors of a position tracking system of an HMD system based on changes in one or more parameters, according to an example embodiment of the present disclosure.

[0029] [Figure 21] This is a flowchart illustrating a method for compensating for the non-uniform brightness of the light source in a position tracking system of an HMD system, according to an example embodiment of the present disclosure.

[0030] [Figure 22]This is a flowchart illustrating a method for adaptively enabling and disabling components (e.g., light source, optical detector) of a tracking subsystem of an HMD system according to an example embodiment of the present disclosure.

[0031] [Figure 23] This is a flowchart for a method of operating a position tracking system of an HMD system to track the position, orientation and / or motion of components of the HMD system by fusing inertial sensor data, optical sensor data and image data, according to an example embodiment of the present disclosure. [Modes for carrying out the invention]

[0032] The following descriptions include specific details to provide a complete understanding of various disclosed implementations. However, those skilled in the art will recognize that implementations may be carried out without one or more of these specific details, or using other methods, components, materials, etc. In other cases, well-known structures relating to computer systems, server computers, and / or communication networks are not illustrated or described in detail to avoid unnecessarily obscuring the description of the implementation.

[0033] Unless otherwise required by context, throughout this specification and the subsequent claims, the word “equipped with” is synonymous with “including,” and is inclusive or open-ended (i.e., does not exclude the operation of any additional element or method not described).

[0034] Throughout this specification, any reference to “one implementation” or “implementation” means that the specific features, structures, or characteristics described in relation to that implementation are included in at least one implementation. Therefore, where the phrase “in one implementation” or “in an implementation” appears in various places throughout this specification, it does not necessarily refer to the same implementation each time. Furthermore, specific features, structures, or characteristics may be combined in any suitable manner in one or more implementations.

[0035] Where used herein and in the appended claims, unless otherwise explicitly stated in the context, the singular form is used with "a," "an," and "the," and the plural form includes multiple referents. It should also be noted that, unless otherwise explicitly stated in the context, the term "or" is generally used to include "and / or."

[0036] The headings and summaries of the disclosures provided herein are for convenience only and do not constitute an indication of the scope or meaning of implementation.

[0037] One or more implementations of this disclosure relate to systems and methods for accurately tracking the position of components of a head-mounted display (HMD) system (e.g., HMD, controllers, peripherals). In at least some implementations, the HMD includes a forward-facing camera ("forward camera" or "front camera") and a support structure holding multiple angle-sensing detectors or light sources. Similarly, one or more controllers may include multiple angle-sensing detectors or photodetectors. In other implementations, the HMD does not include a forward camera. The forward camera may capture image sensor data in the field of view of the forward camera at a first frame rate (e.g., 30Hz, 90Hz). In at least some implementations, the HMD system may not include angle-sensing detectors, or it may include other types of optical detectors (e.g., photodiodes). Accordingly, the systems and methods described herein may utilize non-angle-sensing detectors or angle-sensing detectors as appropriate.

[0038] As further described below, during operation, light may be emitted from one or more fixed or movable light sources (e.g., IR LEDs). The light sources may be coupled to the HMD, controller, fixed objects placed in the environment (e.g., base station), etc. Each of the angle-sensing detectors captures sensor data in its respective field of view at a second frame rate (e.g., 1000Hz, 2000Hz) which may be greater than the first frame rate of the forward camera (if any). In at least some implementations, the field of view of the angle-sensing detectors may be narrower than the field of view of the forward camera, but this is not required. For example, the forward camera may have a relatively wide field of view of 90°, 120°, or 150°, and each of the angle-sensing detectors may have a relatively narrow field of view of the sensor IC (e.g., 25°, 45°, 75°). In at least some implementations, the angle-sensing detector field of view may collectively cover at least a large portion of the forward camera field of view, or a much larger portion, by overlapping each of the angle-sensing detector fields of view with a different portion of the forward camera field of view.

[0039] During operation, at least one processor operably coupled to multiple angle-sensing detectors may receive sensor data capturing light from multiple light sources (e.g., LEDs, lasers, other light sources). At least one processor may process the received image sensor data and, at least in part, track the position of components of the head-mounted display based on the processing of the received image sensor data. For example, at least one processor may fusing sensor data from angle-sensing detectors to track one or more features present in the environment. At least one processor may use machine learning techniques, solvers, or other methods to process the sensor data and 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 fusing with sensor data from other sensors, such as sensor data from a forward camera or inertial measurement unit (IMU) of the HMD system components. In at least some implementations, one or more scattered light detection modules, or “scattered light detectors,” may be used to detect when light was scattered or reflected before reaching one or more angle-sensing detectors, and such light may be ignored by the tracking system because the angle does not precisely 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. Various features of the implementation of this disclosure are described in detail below with reference to the figures.

[0040] Figure 1 is a schematic diagram of a networked environment 100 comprising a local media rendering (LMR) system 110 (e.g., a gaming system), the LMR system 110 comprising a local computing system 120 suitable for performing at least some of the techniques described herein, a display device 180 (e.g., an HMD device having two display panels (one for each eye)), and one or more controllers 182. In the illustrated embodiment of Figure 1, the local computing system 120 is communicably connected to the display device 180 via a transmit link 115 (which may be wired or connected via one or more cables (cable 220) as shown in Figure 2, or wirelessly instead). The controllers 182 may be coupled to the local computing system 120 or the display device 180, respectively, via preferred wired or wireless links 186 and 184. In other embodiments, the local computing system 120 may provide encoded image data for display to a panel display device (e.g., a TV, console, or monitor) via a wired or wireless link, whether in addition to or instead of the HMD device 180, each display device comprising one or more addressable pixel arrays. In various embodiments, the local computing system 120 may include a general-purpose computing system, a gaming console, a video stream processing device, a mobile computing device (e.g., a mobile phone, PDA®, or other mobile device), a VR or AR processing device, or other computing system.

[0041] In the illustrated embodiment, the local computing system 120 has components including one or more hardware processors (e.g., a central processing unit, or "CPU") 125, memory 130, various I / O ("input / output") hardware components 127 (e.g., a keyboard, mouse, one or more gaming controllers, speakers, microphones, IR transmitters and / or receivers, etc.), a video subsystem 140 including one or more dedicated hardware processors (e.g., a graphics processing unit, or "GPU") 144 and video memory (VRAM) 148, computer-readable storage 150, and network connectivity 160. Also in the illustrated embodiment, one embodiment of the tracking subsystem 135 is executed in memory 130 to perform automated operations that implement at least some of the techniques described, for example by using the CPU 125 and / or GPU 144 to perform those described techniques, and memory 130 may optionally further execute one or more other programs 133 (e.g., game programs, for generating displayed video or other images). As part of an automated operation implementing at least some of the techniques described herein, a tracking subsystem 135 and / or program 133 running in memory 130 may store or retrieve various types of data, including data structures in storage 150, in the example database, and 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 additional information such as system data or other information.

[0042] In the illustrated embodiment, the LMR system 110 is also communicably 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 generation program 133. For brevity, some details of the network-accessible media content provider are not shown, but the media content provider 190 may include one or more computing systems (not shown) that may each have components similar to those of the local computing system 120, including one or more hardware processors, I / O components, local storage devices, and memory.

[0043] In the illustrated embodiment of Figure 1, the display device 180 is shown as distinct from and separate from the local computing system 120. However, it will be understood that in certain embodiments, some or all components of the local media rendering system 110 may be integrated or housed within a single device such as a mobile gaming device, a portable VR entertainment system, or an HMD device. In such embodiments, the transmit link 115 may include, for example, one or more system bus and / or video bus architectures.

[0044] 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, thereby including one or more gaming applications that run via the CPU 125 using memory 130, and that various video frame display data are generated and / or processed by an image generation program 133, in combination with the GPU 144 of the video subsystem 140, etc. To provide a high-quality gaming experience, a high volume of video frame data (corresponding to high image resolution per video frame and a high "frame rate" of approximately 60-180 such video frames per second) is generated by the local computing system 120 and provided to the display device 180 via a wired or wireless transmission link 115.

[0045] It will be understood that the computing system 120 and the display device 180 are merely illustrative and are not intended to limit the scope of this disclosure. Instead, the computing system 120 may include multiple interacting computing systems or devices and may be connected to other devices not shown, including via one or more networks such as the Internet, via the Web, or via a private network (e.g., a mobile communication network). More generally, a computing system or other computing node may include any combination of hardware or software capable of interacting and performing the types of functions described, including, but not limited to, desktops or other computers, game systems, database servers, network storage devices and other network devices, PDAs, mobile phones, wireless phones, pagers, electronic organizers, internet equipment, television-based systems (e.g., using set-top boxes and / or personal / digital video recorders), and various other consumer products with appropriate communication capabilities. The display device 180 similarly may include one or more devices having one or more display panels of various types and forms and may optionally include various other hardware and / or software components.

[0046] In addition, the functions provided by the tracking subsystem 135 may be distributed across one or more components (e.g., local and remote computing systems, HMDs, controllers, base stations) in some embodiments, and in some embodiments, some of the functions of the tracking subsystem 135 may not be provided, and / or other additional functions may be available. Although various items are shown as being stored in memory or on storage while in use, it will also be understood that for memory management or data integrity, these items or some of them may be transferred between memory and other storage devices. Therefore, in some embodiments, some or all of the techniques described may be performed by one or more processors or other configured hardware circuits or hardware including memory or storage, such as when they are performed by one or more software programs (e.g., by the execution of software instructions of one or more software programs and / or by the storage of such software instructions and / or data structures) and / or by data structures. Some or all of the components, systems, and data structures may be stored (for example, as software instructions or structured data) on non-temporary computer-readable storage media such as hard disks or flash drives or other non-volatile storage devices, volatile or non-volatile memory (e.g., RAM), network storage devices, or portable media products read by a suitable drive (e.g., DVD discs, CD discs, optical discs, etc.) or via a suitable connection.The system, components, and data structures may, in some embodiments, be transmitted as generated data signals on various computer-readable transmission media, including wireless-based and wired / cable-based media (e.g., as part of a carrier wave or other analog or digital propagation signal), and may take various 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 take other forms in other embodiments. Accordingly, the present invention may be practiced in conjunction with other computer system configurations.

[0047] Figure 2 shows an example environment 200 used with an exemplary HMD device 202 which is coupled to a video rendering computing system 204 via a connected connection 220 (or a wireless connection in other embodiments) to provide a virtual reality display to a human user 206. The user wears the HMD device 202 and receives display information of a simulated environment different from the actual physical environment from the computing system 204 via the HMD device, and the computing system acts as an image rendering system which supplies images of the simulated environment, such as images generated by a game program and / or other software programs running on the computing system, to the HMD device for display to the user. The user may further move around within a trackable volume 201 of the actual physical environment 200 and may further have one or more I / O ("input / output") devices that allow the user to further interact with the simulated environment, including handheld controllers 208 and 210 in this example.

[0048] In the illustrated example, the environment 200 may include one or more base stations 214 (two are shown, labeled base stations 214a and 214b) that can facilitate tracking of the HMD device 202 or controllers 208 and 210. As the user moves to a different location or changes the orientation of the HMD device 202, the position of the HMD device is tracked, making it possible, for example, to display a corresponding portion of the simulated environment to the user on the HMD device, and controllers 208 and 210 may further utilize similar techniques for use in tracking the position of the controllers (and optionally for use in assisting in determining or verifying the position of the HMD device). After the tracking position of the HMD device 202 is known, the corresponding information is transmitted via the tether 220 or wirelessly to a computing system 204, which uses the tracking position information to generate one or more subsequent images of the simulated environment for display to the user.

[0049] The optical tracking described herein may be used in combination with various methods of position tracking, including, but is not limited to, acoustic tracking, inertial tracking, or magnetic tracking.

[0050] In at least some implementations, the HMD device 202 and at least one of the controllers 208 and 210 may include one or more photodetectors or sensors that can be used to implement the tracking functions or other aspects of the present disclosure. In at least some implementations, the HMD device 202, the controllers 208 and 210, or at least one of the other components may include one or more light sources (e.g., LEDs) that can emit light detected by one or more photodetectors. The light sources may be in a fixed position or on a movable component, such as the HMD device or controller.

[0051] In at least some implementations, in addition to generating fixed-point light sources, or instead, each base station 214 may scan the tracking target volume 201 with optical signals. Depending on the requirements of each particular implementation, each base station 214 may generate more than one optical signal. For example, a single base station 214 is typically sufficient for 6-degree-of-freedom tracking, but in some embodiments, multiple base stations (e.g., base stations 214a, 214b) may be required or desired to provide robust room-scale tracking for the HMD device and peripherals. In this example, photodetectors, such as angle-sensing detectors or scattered light detectors, are incorporated into the HMD device 202 and / or other tracking target objects, e.g., controllers 208 and 210. In at least some implementations, photodetectors may be paired with accelerometer-gyroscope inertial measurement units ("IMUs") on each tracking target device to support low-latency sensor fusion.

[0052] In at least some implementations, each base station 214 comprises two rotors that scan a linear beam across the tracked volume 201 on mutually orthogonal axes. At the start of each scanning cycle, the base station 214 may emit an omnidirectional light pulse (referred to as the “synchronization signal”) to the tracked object that is visible to all sensors. Thus, each sensor calculates its unique angular position in the scanning volume by timing the duration between the synchronization signal and the beam signal. The distance and orientation of the sensors may be determined using multiple sensors fixed to a single rigid body.

[0053] One or more sensors positioned on the tracked object (e.g., HMD device 202, controllers 208 and 210) may include optoelectronic devices capable of detecting modulated light from the rotor. For visible or near-infrared (NIR) light, silicon photodiodes and suitable amplifier / detector circuits may be used. Since the environment 200 may include stationary and time-varying signals (optical noise) having wavelengths similar to the base station signal 214 signal, in at least some implementations, the base station light may be modulated to facilitate distinguishing it from any interfering signals and / or filtering the sensor from any wavelengths of radiation other than the wavelength of the base station signal. As further described below, at least some implementations of angle-sensing detectors may be used to track one or more components of the HMD system, and one or more scattered light detectors may be used to ignore light that may be scattered or reflected before being detected by optical detectors.

[0054] Inside-out tracking is also a type of position tracking that can be used to track the position of an HMD device 202 and / or other objects (e.g., controllers 208 and 210, tablet computers, smartphones). Inside-out tracking differs from outside-in tracking in the position of the camera or other sensor used to determine the location of the HMD component. In inside-out tracking, the camera or sensor is located on the HMD component or the object being tracked, whereas in outside-out tracking, the camera or sensor is placed in a stationary position in the environment.

[0055] HMDs utilizing inside-out tracking use one or more sensors to "look out" to determine how their position changes relative to the environment. As the HMD moves, the sensors readjust their position within the room, and the virtual environment responds accordingly in real time. This type of position tracking can be achieved with or without markers placed in the environment. Cameras placed on the HMD observe the features of the surrounding environment. When markers are used, they are designed to be easily detected by the tracking system and are placed within a specific area. When using "markerless" inside-out tracking, the HMD system uses prominent features that are naturally present in the environment (e.g., natural features) 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 may also be used to improve the accuracy of position tracking.

[0056] Figure 3 shows information 300 illustrating a front view of an exemplary HMD device 344 when worn on the head of a user 342. The HMD device 344 includes a front structure 343 supporting a front or forward camera 346 and one or more types of angle-sensing detectors 348a-348f (collectively 348), or other types of optical detectors. As one example, some or all of the angle-sensing detectors 348, such as optical sensors that detect and use light information emitted from one or more external devices (not shown, e.g., base station 214, controller in Figure 2), may help determine the location and orientation of the device 344 in space. The angle-sensing detectors 348 can be any type of detector that acts to detect the angle of arrival of light emitted from a light source. Non-limiting examples of angle-sensing detectors include photodiode detectors (e.g., bicell detectors, quadrandcell detectors), position-sensing detectors using resistive sheets, and the like.

[0057] As shown, the forward camera 346 and angle-sensing detector 348 are oriented forward toward the actual scene or environment (not shown) in which the user 342 operates the HMD device 344. More generally, the angle-sensing detector 348 may be oriented toward other areas (e.g., up, down, left, right, behind) and may detect light from various sources, such as a controller (e.g., held by the user 342) or objects mounted in various locations (e.g., walls, ceilings). 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 type of object). The particular number of sensors 348 may be less (e.g., 2, 4) or more (e.g., 10, 20, 30, 40) than the number of sensors shown. The HMD device 344 may further comprise one or more additional components not mounted on the front structure (e.g., located inside the HMD device), such as an IMU (Inertial Measurement Unit) 347 electronic device that measures and reports specific forces, angular velocities, and / or magnetic fields surrounding the HMD device (e.g., using a combination of an accelerometer and a gyroscope, and optionally a magnetometer). The HMD device 344 may further comprise one or more additional components not shown, including one or more display panels and optical lens systems, one or more display panels and optical lens systems (not shown) directed towards the user's eyes, and optionally having one or more mounted internal motors for changing the alignment or other positioning of one or more of the optical lens systems and / or display panels within the HMD device.

[0058] An illustrated example of the HMD device 344 is supported on the head of a user 342, at least partially based on one or more straps 345 attached to the housing of the HMD device 344 and extending all or partially around the user's head. Not shown herein, the HMD device 344 may further have one or more external motors, such as those attached to one or more of the straps 345, and automated compensatory operations may include using such motors to adjust such straps to correct the alignment or other positioning of the HMD device on the user's head. It will be understood that the HMD device may have other support structures not shown herein (e.g., nosepiece, chin strap, etc.), whether in addition to or instead of the illustrated straps, and that some embodiments may have motors attached to one or more such other support structures to adjust their shape and / or position as well to correct the alignment or other positioning of the HMD device on the user's head. Other display devices not fixed to the user's head may be similarly attached to or part of one or more structures that affect the positioning of the display device, and in at least some embodiments may include motors or other mechanical actuators that similarly modify their own shape and / or location to correct the alignment or other positioning of the display device with respect to one or more pupils of one or more users of the display device.

[0059] Figure 4 shows an example of the hand controller 400 in more detail. In practice, the HMD system may include two hand controllers similar to or identical to the hand controller 400 in Figure 4, which may be similar to or identical to the controllers 182, 208, and 210 described above. As shown, the controller 400 has various surfaces on which the angle-sensing detector 402 is positioned. The angle-sensing detector 402 is positioned to receive optical signals from various different directions. The controller 400 may have buttons, sensors, light controls, knobs, indicators, displays, etc., enabling various forms of user interaction. Furthermore, as described above, in at least some implementations, one of the controller 400 and the HMD device 344 may include multiple light sources, and the other of the controller and the HMD device may include multiple angle-sensing detectors, or other types of detectors or sensors. The techniques described herein may be used for various types of position tracking and are not limited to HMDs, controllers, etc.

[0060] Figure 5 shows a schematic block diagram of an HMD device 500 according to one or more implementations of the present disclosure. The HMD device 500 may be similar to or identical to HMD devices described elsewhere in this specification. Therefore, the above description of HMD devices may also apply to the HMD device 500. Furthermore, at least some of the components of the HMD device 500 may be present in other components of the HMD system, such as controllers and base stations. Therefore, at least some of the following descriptions may be applicable to such other components.

[0061] The HMD device 500 includes a processor 502, a front or forward camera 504, and multiple angle-sensing detectors 506 (e.g., quad-cell photodiodes, position-sensing detectors), and optionally includes an IMU 507 or multiple light sources 509. In some implementations, the HMD device 500 may include either an angle-sensing detector or a light source, and other components (e.g., a controller, a base station) may include the other. As described below, in at least some implementations, the HMD device 500 may include one or more scattered light detection modules or scattered light detectors. These may be used to detect whether light received by one or more of the angle-sensing detectors has been scattered or reflected, and are therefore to 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 non-temporary data storage 510 capable of storing instructions or data for position tracking 512, instructions or data for display functions 514 (e.g., games), and / or other programs 516. The HMD system 500 may include, or may enable, some of the functions of the local computing system 120 or media content provider 190 shown and described above in Figure 1.

[0062] The HMD device 500 may also include various I / O components 518, which may include one or more user interfaces (e.g., buttons, touchpads, speakers, one or more wired or wireless communication interfaces). For example, the I / O components 518 may include a communication interface that enables the HMD device 500 to communicate with an external device 520 via a wired or wireless communication link 522. In a non-limiting example, the external device 520 may include a host computer, a server, a mobile device (e.g., a smartphone, a wearable computer), a controller, and the like. The various components of the HMD device 500 may be housed in a single housing, in separate housings (e.g., a host computer), or in any combination thereof.

[0063] It will be understood that the computing systems and devices shown are merely illustrative and are not intended to limit the scope of this disclosure. For example, the HMD500 and / or external device 520 may be connected to other devices not shown, such as through one or more networks like the Internet or via the Web. More generally, such computing systems or devices may comprise any combination of hardware capable of interacting with and performing the types of functions described, including but not limited to desktop computers, laptop computers, slate computers, tablet computers, or other computers, smartphone computing devices and other mobile phones, internet devices, PDAs and other electronic organizers, database servers, network storage devices and other network devices, wireless telephones, pagers, television-based systems (e.g., set-top boxes, and / or personal / digital video recorders, and / or game consoles, and / or media servers), and various other consumer products, when programmed or otherwise configured with appropriate software that includes appropriate intercommunication capabilities. For example, the illustrative systems 500 and 520 may include executable software instructions and / or data structures in at least some embodiments that, when loaded and / or executed by a particular computing system or device, can be used to program or otherwise configure that system or device to constitute the processor of that system or device. Alternatively, in other embodiments, some or all of the software systems may run in memory on another device and communicate with the illustrated computing systems / devices via intercomputer communication.Furthermore, although various items are shown to be stored in memory or storage at different times (e.g., while in use), these items or parts of them may be transferred between memory and storage and / or between storage devices (e.g., to different locations) for memory management and / or data integrity purposes.

[0064] Accordingly, in at least some embodiments, the exemplary system is a software-based system that, when executed by a processor and / or other processor means, includes software instructions for programming the processor to automatically perform the described operations for the system. Furthermore, in some embodiments, some or all of the system may be implemented or provided in other ways, such as one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by including microcontrollers and / or embedded controllers that execute appropriate instructions), field-programmable gate arrays (FPGAs), complex-programmable logic devices (CPLDs), etc., at least partially firmware and / or hardware means. Some or all of the system or data structures may also be stored (e.g., as software instruction content or structured data content) on non-temporary computer-readable storage media such as hard disks or flash drives or other non-volatile storage devices, volatile or non-volatile memory (e.g., RAM), network storage devices, or portable media products (e.g., DVD discs, CD discs, optical discs, flash memory devices, etc.) that are read by an appropriate drive or via an appropriate connection. The systems, modules, and data structures may also be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagation signal) on various computer-readable transmission media, which may take various forms (e.g., as part of a single or multiplexed analog signal or as part of a number of individual digital packets or frames), including wireless-based and wired / cable-based media in some embodiments. Such computer program products may take other forms in other embodiments. Therefore, the present disclosure may be implemented in other computer system configurations.

[0065] Figure 6 is a schematic diagram of an environment 600 in which machine learning techniques may be used to implement a tracking subsystem for tracking an HMD device, one or more controllers, or other components, such as the tracking subsystem described herein, in one non-limiting implementation. Environment 600 comprises a model training unit 601 and an inference unit 603. In the training unit 601, training data 602 is fed to a machine learning algorithm 604 to generate a trained machine learning model 606. The training data may include, for example, labeled data from angle-sensing detectors specifying the position and / or orientation of a particular object relative to one or more light sources (e.g., LEDs), labeled or unlabeled scattered light detector data (described below), or other types of data. In one non-limiting example, in an embodiment including components (e.g., HMD, controllers) having 30 angle-sensing detectors, each training sample may include outputs from each or a subset of the angle-sensing detectors, known or inferred position or orientation of the component, and information about the position or orientation of one or more light sources. As described below, each angle-sensing detector may output a single data point (e.g., angle) or multiple data points, such as two or four signals each indicating the power or intensity of light received by a specific active element of the angle-sensing detector (e.g., a sub-detector or cell, a resistive sheet, etc.). The data may also include data from one or more scattered light detectors, such as the scattered light detectors described below. Such data may include polarization information (e.g., type or degree of polarization), information about whether the detected light was scattered, or other types of data.

[0066] Training data 602 may be obtained from multiple users of the HMD system and / or from a single user. Training data 602 may be obtained in a controlled environment and / or during actual use by a user ("field training"). Furthermore, in at least some implementations, model 606 may be updated or calibrated from time to time (e.g., periodically, continuously, or after a specific event) to provide accurate position tracking predictions.

[0067] In the inference unit 603, runtime data 608 is provided as input to a trained machine learning model 606, which generates a position tracking prediction 610. Following the example above, output data from angle-sensing detectors (e.g., intensity data, angle data), optionally, information about one or more light sources, and optionally, information from one or more scattered light detectors may be provided as input to a trained machine learning model 606, which can process the data to predict the position of the components. The tracking prediction 610 may then be provided to one or more components associated with the HMD device, such as 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.

[0068] The machine learning techniques used to implement the features discussed herein may include any suitable structure or technique of any type. As a non-limiting example, machine learning model 606 may include, or use, one or more of the following: 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), and hidden Markov models. In at least some implementations, such as those utilizing RNNs, machine learning model 606 may utilize past input (memory, feedback) information to predict the position of one or more HMD components. Such implementations may advantageously utilize sequential data to determine motion information or previous position predictions, thereby potentially providing more accurate real-time position predictions.

[0069] Figure 7 is a flowchart of an example method 700 for manipulating an HMD system to track the position of HMD components during use. Method 700 may be performed, for example, by the position tracking system or module 512 of the HMD system 500 shown in Figure 5. As described above, method 700 may be used to track the position of any components, such as the HMD device, one or more controllers.

[0070] An implementation of Method 700 is shown, beginning with Operation 702, in which a first HMD system component having a plurality of angle-sensing detectors is provided. The plurality of angle-sensing detectors may act to detect light emitted from one or more light sources that may be fixedly positioned (e.g., mounted on a wall or ceiling) or movable (e.g., coupled to an HMD or controller). During operation, each of the plurality of angle-sensing detectors captures sensor data in the field of view of each of the plurality of angle-sensing detectors at a certain frame rate. The sensor data may include any type of data available to a control circuit (e.g., a processor) to detect the presence and direction of the light source relative to the angle-sensing detector. In at least some implementations, each of the angle-sensing detectors may include one or more sensors (e.g., photodiodes) having image sensing circuitry and image processing circuitry. The angle-sensing detectors may output relatively raw data (e.g., light intensity or power data) or processed data (e.g., incident angle data).

[0071] In 704, a second HMD system component may be provided which includes multiple light sources (e.g., near-IR LEDs). The second HMD system component may include, for example, a controller, an HMD device, or light sources positioned in a fixed location (e.g., a ceiling, a wall).

[0072] In 706, at least one processor of the HMD system may cause a light source to emit light. The light source may be illuminated in such a manner that each angle-sensing detector may simultaneously detect light from a single light source, or more generally, in such a manner that the system may be able to determine which light source the light detected by the angle-sensing detectors was received from. This may be achieved by modulating or multiplexing the illumination of the light source using any suitable type of technique, such as time multiplexing, wavelength multiplexing, frequency multiplexing, polarization multiplexing, or other techniques that enable the system to know the light source of the light received from each angle-sensing detector during use.

[0073] As an example of time multiplexing, at least one processor may simultaneously illuminate only a subset of light sources (e.g., 1, 2, and 4). For example, at least one processor may sequentially illuminate one subset of light sources at a time and collect sensor data in response to each light source.

[0074] As an example of wavelength multiplexing, different subsets of light sources may emit light of different wavelengths, and different subsets of angle-sensing detectors may act to detect light of different wavelengths. Therefore, light sources with different wavelengths can be simultaneously irradiated and detected by corresponding wavelength-sensing detectors.

[0075] As an example of frequency multiplexing, a subset of light sources may be illuminated with patterns or frequencies determined to be detectable by an angle-sensing detector in order to identify a specific light source.

[0076] As an example of polarization multiplexing, a subset of light sources may be polarized differently (e.g., linearly, circularly), and a corresponding subset of angle-sensing detectors may be configured to detect specific polarized light (e.g., using polarizers that allow light with the corresponding polarization to pass through), enabling multiple light sources to illuminate simultaneously.

[0077] Other exemplary techniques for illuminating a light source may include one or more of the following: frequency or wavelength division multiplexing (FDMA or WDMA), time division multiplexing (TDMA), code division multiplexing (CDMA), and orthogonal frequency division multiplexing (OFDMA). In at least some implementations, the illumination pattern or scheme may be configured to be orthogonal with respect to one or more of the time, wavelength, or frequency of the electrical system (e.g., 120 Hz, which is twice the 60 Hz frequency used in US electrical systems, or 100 Hz, which is twice the 50 Hz frequency used in European electrical systems). Furthermore, the modulation scheme may be applied to the amplitude of light from each individual marker or LED, or to one or more groups of two or more markers or LEDs, or to any combination thereof. In at least some implementations, two or more of the light emission components, photodetection components, or processing components (e.g., host systems) may be synchronized with each other, thereby providing further features, for example, when using CDMA techniques.

[0078] In 708, at least one processor associated with the HMD system may receive sensor data from multiple angle-sensing detectors. As described above, for each angle-sensing detector, the sensor data may indicate the angle of arrival of light emitted from a known light source. In 710, at least one processor associated with the HMD system may optionally receive sensor data from an inertial tracking function or an inertial measurement unit (IMU) that acts to provide sensor data from one or more additional sensors.

[0079] In 712, at least one processor associated with the HMD system may process the received sensor data. For example, at least one processor may merge some or all of the sensor data together to track one or more features present in the environment in which the HMD system operates. The sensor data may include sensor data from multiple angle-sensing detectors, and optionally, sensor data from an IMU or camera. At least one processor may process the sensor data using, for example, a machine learning model (e.g., Model 606) or another solver. As further described below, at least some implementations of at least one processor may ignore data from one or more sensors that are determined to be likely to have scattered or reflected received light.

[0080] In 714, at least one processor associated with the HMD system may track the position (e.g., location, orientation, or movement) of the components of the HMD system in real time while the HMD system is being used by the user in the environment. While the HMD is operating, method 700 may continue to track the position of the components of the HMD system continuously, as described above.

[0081] Figure 8 shows a perspective view of an exemplary angle-sensing detector 800 that may be used in one or more implementations of the present disclosure. In this example, the angle-sensing detector 800 includes an angle-sensing photodiode structure 804. The angle-sensing photodiode structure 804 includes a photodiode 806, a second linear polarizer 808, a spatial variation polarizer 810, and a first linear polarizer 812. The photodiode 806 may be any device that receives light, determines the intensity associated with the light, and outputs a signal (or data) representing the intensity. The first and second linear polarizers 812, 808 may each be any type of optical filter to which light is incident. The first and second linear polarizers 812, 808 may output the linearly polarized component of the incident light (e.g., vertically polarized or horizontally polarized) and filter out (e.g., reflect or reject, absorb) other components of the incident light.

[0082] In at least some implementations, the spatially variable polarizer 810 can be formed from a multi-twist phase difference plate (MTR). This is a waveplate-like phase difference film that provides a precise and customized level of broadband, narrowband, or multiband phase difference in a single thin film. More specifically, the MTR includes two or more twisted liquid crystal (LC) layers on a single substrate, along with a single alignment layer. The later LC layers are directly aligned by the earlier layers, enabling simple manufacturing, achieving automatic interlayer alignment, and resulting in a monolithic film with a continuously varying optical axis.

[0083] The spatially variable polarizer 810 may include a phase difference plate formed from a birefringent material. Birefringence is a property of materials that has a refractive index that depends on the polarization and propagation direction of light. The phase difference plate changes the polarization state or phase of light traveling through it. The phase difference plate may have a slow axis (or special axis) and a fast axis (normal axis). When polarized light travels through the phase difference plate, light along the fast axis travels faster than light along the slow axis.

[0084] As shown in Figure 8, the second linear polarizer 808, the spatial variation polarizer 810, and the first linear polarizer 812 can be stacked on the photodiode 806 to form a continuous layer on the photodiode 806. While polarizers 812 and 808 are described herein as linear polarizers, it should be noted that in various embodiments, polarizers 812 and 808 may be nonlinear polarizers, such as elliptic or circular polarizers. Polarizers 812 and 808 may have identical optical filtering properties and may similarly or identically reject or allow light with a particular polarization to pass through. In this simplified example, the angle-sensing detector 800 includes a cover 814 having an aperture 816 that allows light 818 from a light source 820 to pass through. As shown, the light 818 passing through the aperture 816 forms a light point 822 that can be electrically characterized to determine the angle of the light 818, and therefore the angle of the light source 820 relative to the angle-sensing detector 800. As described below, the systems and methods of this disclosure can determine the position of components of an HMD system using multiple light sources and angle-sensing detectors.

[0085] Figure 9 shows the first linear polarizer 812, the spatial variation polarizer 810, and the second linear polarizer 808 of the angle-sensing photodiode structure 804, as well as the polarization of light 818 or light point 822 that passes through them and reaches the photodiode 806. Initially, light 818 is incident on the first linear polarizer 812. Light 818 can have any polarization and can therefore be said to be unpolarized in at least some implementations. In at least some implementations, the light can be linearly polarized, circularly polarized, or generally elliptically polarized.

[0086] The first linear polarizer 812 allows the linearly polarized component 824 of light 818 to pass through, while rejecting (absorbing or reflecting) the remaining polarized component of light 818. Although the first linear polarizer 812 is shown as a vertical polarizing filter, in various embodiments the first linear polarizer 812 may be, among other things, a horizontal polarizing filter or a circular polarizing filter.

[0087] The linearly polarized component 824 is then incident on a spatially variable polarizer 810 positioned below the first linear polarizer 812. The spatially variable polarizer 810 is adjusted to have optical polarization characteristics that vary according to the position on the spatially variable polarizer 810 where the linearly polarized component 824 (or any incident light) is incident on the spatially variable polarizer 810. In the example shown in Figure 9, the spatially variable polarizer 810 modifies the incident linearly polarized component 824.

[0088] The spatial variation polarizer 810 modifies the incident linear polarization component 824 in such a way that it varies according to the position where the incident linear polarization component 824 is incident on the spatial variation polarizer 810. This position may be substantially the same as the position where the light 818 is incident on the angle-sensing photodiode structure 804.

[0089] In the example shown in this figure, at the first end 826 (shown in the upper right) of the spatially variable polarizer 810, the spatially variable polarizer 810 holds the incident linearly polarized component 824 as a vertically polarized light signal. The spatially variable polarizer 810 allows vertically polarized light to pass through and blocks other polarization components. The linearly polarized component 824 incident on the first end 826 passes through as is.

[0090] The polarization filtering characteristics of the spatial variation polarizer 810 can, as an unrestricted example, gradually change as a function of the distance to the first end. At the second end 828 (shown in the lower left) of the spatial variation polarizer 810, it almost converts the vertically polarized incident linear polarization component 824 into a horizontally polarized light signal. In particular, at the second end 828, the spatial variation polarizer 810 has a linear polarization direction of 175°. Therefore, at the second end 828, the spatial variation polarizer 810 outputs light with a horizontal polarization component larger than the vertical polarization component. Conversely, near the center of the spatial variation polarizer 810, it has a linear polarization direction of approximately 135°, and therefore, it rotates the polarization of the incident linear polarization component 824 (which has vertical polarization) toward horizontal polarization by an angle of approximately 45°. The light emitted from the spatially variable polarizer 810 near its center has a vertical polarization component that is the same size as the horizontal polarization component.

[0091] The spatially variable properties of the spatially variable polarizer 810 allow for the identification of the incident or possible locations of the linearly polarized component 824. The spatially variable polarizer 810 allows filtered light 830 to pass through, as shown in Figure 9. The intensity of the filtered light 830, in either horizontal or vertical polarization, represents the incident or possible location of the linearly polarized component 824 on the spatially variable polarizer 810. When the linearly polarized component 824 is incident on the first end 826, the filtered light 830 has the highest vertical polarization magnitude. The vertical polarization magnitude may be inversely proportional to the distance from the first end 826.

[0092] The filtered light 830 is then incident on a second linear polarizer 808, which operates to remove any horizontal components of the filtered light 830 and allow the vertical light component to pass through. The second linear polarizer 808 allows the filtered linearly polarized component 832 to pass through. The second linear polarizer 808 ensures that the light that passes through the photodiode 806 contains only vertically polarized light and excludes horizontally polarized light.

[0093] The photodiode 806 receives the filtered linearly polarized component 832 and detects the intensity of the filtered linearly polarized component 832. The intensity of the filtered linearly polarized component 832 represents the position or set of positions into which the light 818 enters the spatially variable polarizer 810, and consequently the angle-sensing photodiode structure 804.

[0094] It should be noted that the specific polarizations described with reference to Figure 9 are provided as examples for the sake of clarity. In alternative embodiments, different polarizers, polarizations, or polarization patterns may be used. For example, instead of linear polarization, the first and second linear polarizers 812, 808 and the spatially variable polarizer 810 may utilize circular polarization, elliptic polarization, or any other type of polarization.

[0095] Referring again to Figure 8, the size and position of the aperture 816 define the size of the light spot 822 formed on the angle-sensing photodiode structure 804. The intensity detected by the photodiode 806 represents the intensity of the light spot 822 that has passed through (or been filtered by) the first and second linear polarizers 812, 808 and the spatial variation polarizer 810. The intensity of the light spot 822 may be the sum of the intensities of the rays composed of the light spot 822. The fact that the linearly polarized component 824 of the light spot 822 is incident on an area of ​​the spatial variation polarizer 810 rather than a single point gives additional degrees of freedom in the design of the spatial variation polarizer 810 to enable improved position detection. The spatial variation polarizer 810 may have region-dependent properties to enable improved position detection of the light spot 822.

[0096] It should be noted that in some embodiments, one of the first and second linear polarizers 812, 808 may be omitted. In one embodiment, the first linear polarizer 812 may be omitted, and only horizontal polarization may be emitted for position or angle determination.

[0097] In one embodiment, improved position detection can be achieved by using a photodiode 806 having multiple localized cells.

[0098] Figure 10 shows the first linear polarizer 812, the spatial variation polarizer 810, and the second linear polarizer 808 of the angle-sensing photodiode structure 804, as well as the polarization of light 818 or light point 822 that passes through them and reaches the photodiode 806. In Figure 10, the photodiode 806 is a quadrand-cell photodiode containing four separate photodiode active areas or elements 802a-802d separated by a small gap. It should be understood that other types of angle-sensing detectors, such as photodiode detectors with fewer or more cells, and position-sensing detectors (PSDs), may also be used.

[0099] The active areas (e.g., anodes) of each element 802a-802d are available individually, and as a result, a light spot illuminating a single quadrant can be electrically characterized as being located only in that quadrant. The energy of the light spot is distributed among adjacent elements 802a-802d, and the difference in electrical contributions to each element defines the relative position of the light spot with respect to the center of the angle-sensing detector. The relative intensity profiles of elements 802a-802d can be used in combination with the relative intensity profile of the spatially variable polarizer 810 to determine the position of the light spot.

[0100] In one embodiment, the spatial variation polarizer 810 may be switched off to identify a baseline intensity. The spatial variation polarizer 810 may be coupled to a controller. A controller as described herein, which may be a microcontroller or microprocessor, or in particular one or more controllers 182 or processors 502, may switch the spatial variation polarizer 810 on or off. When the spatial variation polarizer 810 is switched on, it filters light as described herein. Conversely, when the spatial variation polarizer 810 is switched off, it may cease polarization filtering and instead allow the linear polarization component 824 to pass through.

[0101] When the spatial variation polarizer 810 is switched off, the photodiode 806, in combination with the first and second linear polarizers 812, 808, detects the intensity of light 818 (or light point 822) without the attenuation performed by the spatial variation polarizer 810. The detected intensity can be treated as a baseline intensity or a maximum detected intensity. The baseline intensity or maximum detected intensity may correspond to the intensity of light 818 incident on the first end 826.

[0102] When the spatial variation polarizer 810 is switched on, the photodiode 806 detects the intensity of light 818 (or light point 822) using appropriate position-dependent polarization filtering. The relationship between the detected intensities of light 818 (or light point 822) when the position-dependent polarization filtering is appropriate for the baseline intensity indicates the position or set of positions where light 818 is incident on the angle-sensing photodiode structure 804.

[0103] As described herein, the polarization transformation performed by the spatially variable polarizer 810 in combination with filtering by the first and second linear polarizers 812, 808 results in a spatially variable amplitude (or intensity) attenuation of light 818. The amplitude (or intensity) is then detected by the photodiode 806 and used for position determination.

[0104] Figures 11A and 11B show a top view and a perspective view, respectively, of an exemplary angle-sensing detector 1100 that may be used in one or more implementations of the present disclosure. In this example, the angle-sensing detector 1100 includes a quad-cell photodiode comprising four separate photodiode active areas or elements 1102A-1102D separated by small gaps on a common substrate 1104. It should be understood that other types of angle-sensing detectors, such as photodiode detectors with fewer or more cells, and position-sensing detectors, may also be used.

[0105] In the non-restrictively shown examples, the active areas (e.g., anodes) of each element 1102A-1102D are individually available, and as a result, a light spot illuminating a single quadrant can be electrically characterized as being located only in that quadrant. When the light spot is transformed by the angle-sensing detector 1100, the energy of the light spot is distributed among adjacent elements 1102A-1102D, and the difference in the electrical contributions to each element defines the relative position of the light spot with respect to the center of the angle-sensing detector. The relative intensity profiles of elements 1102A-1102D can be used to determine the position of the light spot.

[0106] In this simplified example, the angle-sensing detector 1100 includes a cover 1110 having an aperture 1108 that allows light 1114 from a light source 1112 to pass through. As shown, the light 1114 passing through the aperture 1108 to form a light point 1106 can be electrically characterized to determine the angle of the light 1114 with respect to the angle-sensing detector 1100, and thus the angle of the light source 1112. As described below, the systems and methods of the present disclosure can utilize multiple light sources and angle-sensing detectors to determine the position of components of an HMD system.

[0107] It should be understood that the angle-sensing detectors of this disclosure may include one or more of any preferred types of detectors, including quad-cell photodiode detectors, position-sensing detectors (PSDs) utilizing resistive sheets, photodiode detectors having fewer (e.g., 2) or more (e.g., 16) independent sensing elements, or any other detectors that enable the detection of the arrival angle of light emitted from a light source. Furthermore, as described below, in at least some implementations, the angle-sensing detectors or light sources of this disclosure may utilize various optical components, such as filters, lenses, and polarizers, to improve the functionality of the systems and methods described herein.

[0108] Figure 12 is a simplified diagram of an HMD system environment 1200 in which the position of components of the HMD system is determined using light sources and angle-sensing detectors, in one non-exclusive implementation. In this example, a first component 1202, such as an HMD, includes multiple light sources 1206 (two are shown, 1206a and 1206b), and a second component 1204, such as a controller for the HMD system, includes multiple angle-sensing detectors 1208 (two are shown, 1208a and 1208b). The angle-sensing detectors 1208a and 1208b are separated from each other by a known distance d1 on the second component 1204, and the light sources 1206a and 1206b are separated from each other by a known distance d2 on the first component 1202. The first and second components may be any components of the HMD system, such as an HMD, controller, base station, fixed or mobile light sources, fixed or mobile angle-sensing detectors, etc.

[0109] In this example, angle-sensing detector 1208a acts to determine that light arrives from light source 1206a at angle 1210 and light arrives from light source 1206b at angle 1212. Similarly, angle-sensing detector 1208b acts to determine that light arrives from light source 1206b at angle 1214 and light arrives from light source 1206a at angle 1216. Considering the detected arrival angles 1210, 1212, 1214, and 1216, as well as known geometric relationships (e.g., distances d1 and d2) between light source 1206 and detector 1208, a method (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 described above, one or more solvers or machine learning methods may be used to determine the position of the components using sensor data from angle-sensing detectors and / or light source data that provide information about the light sources of the HMD system.

[0110] Figure 13 shows an example 1300 of a light source 1302 and an angle-sensing detector 1304 of the present disclosure. The light source 1302 and the angle-sensing detector 1304 may be similar to or identical to any of the light sources and angle-sensing detectors described herein and may be used in any of the implementations of the present disclosure. In the example shown, the light source 1302 may include an optical subsystem 1306, and the angle-sensing detector 1304 may include an optical subsystem 1308. The optical subsystems 1306 and 1308 may be identical to or different from each other, and each may include one or more optical components. The optical subsystems 1306 and 1308 may be integrated into the light source 1302 and the angle-sensing detector 1304, or they may be separate components. Non-limiting examples of optical components include one or more lenses, one or more polarizers, one or more filters, one or more apertures, and the like. 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 angle-sensing detectors may include one type of optical subsystem, and one or more other subsets of angle-sensing detectors may include another type of optical subsystem. As an example, an optical subsystem may include filters that filter out visible light or other types of light. As further described above, an optical subsystem may include components that facilitate one or more of the various types of multiplexing described above, which allow multiple light sources to illuminate simultaneously without confusion regarding the light sources.

[0111] Figure 14 shows an example 1400 of the scattered light detection module or scattered light detector 1402 of the present disclosure, which may be used to determine whether light received by one or more optical detectors (e.g., angle-sensing or other types of detectors) was reflected or scattered before being received by the one or more optical detectors. Using such information, at least one processor may act to ignore optical data that has been determined to be scattered or reflected light signals, because such signals do not directly indicate the location of the light source from which the signal was emitted. In at least some implementations, the scattered light detector 1402 may be a separate component used in combination with one or more optical detectors used for position tracking. In other implementations, the scattered light detector 1402 may be integrated with one or more optical detectors (e.g., angle-sensing detectors) used for position tracking. One or more scattered light detectors 1402 may be used in any of the embodiments of the present disclosure. Furthermore, various machine learning or artificial intelligence-based methods may be used to process the scattered light detector data and improve the position tracking capabilities of the tracking system of the present disclosure. For example, machine learning or other AI methods may be used to train a tracking system to use polarization information, which helps improve tracking fidelity.

[0112] In non-limiting examples, a scattered light detector 1402 is shown, as are the first and second light sources 1408 and 1410. In practice, there can be many scattered light detectors and many light sources. In non-limiting examples, the scattered light detector 1402 may be located on one of the HMD and the controller, and the light sources 1408 and 1410 may be located on the other of the HMD and the controller. In at least some implementations, one or more of the scattered light detector 1402 and the light sources 1408 and 1410 may be located on or coupled to a fixed object (e.g., a wall, ceiling, stand) or a movable object (e.g., an HMD, controller). The scattered light detector 1402 and the light sources 1408 and 1410 may be similar to or identical to any of the light sources and scattered light detectors described herein and may be used in any of the implementations of this disclosure.

[0113] In the examples shown, the scattered light detector 1402 may include an optical detector 1404 and an optical subsystem 1406, which may optionally be an angle-sensing detector. The light source 1408 may include a light emitter 1412 (e.g., an LED) and an optical subsystem 1414 that emits light 1420, and the light source 1410 may include a light emitter 1416 and an optical subsystem 1414 that emits light 1422. Some or all of the optical subsystems 1406, 1414, and 1418 may be identical or different from each other, and each may include one or more optical components. The optical subsystems 1406, 1414, and 1418 may be integrated into the detector 1404 and the light sources 1408 and 1410, respectively, or they may be separate components. Non-limiting examples of optical components include one or more lenses, one or more polarizers, one or more phase plates, one or more filters, one or more apertures, and so on. 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 scattered light detectors 1402 may include one type of optical subsystem, and one or more other subsets of scattered light detectors may include another type of optical subsystem. As an example, an optical subsystem may include filters that filter out visible light or other types of light. As further described above, an optical subsystem may include components that facilitate one or more of the various types of multiplexing described above, which allow multiple light sources to be irradiated simultaneously without confusion regarding the light sources of the emitted light.

[0114] The design of the optical subsystems 1406, 1414, and 1418 can be adjusted so that the scattered light detector 1402 acts to detect whether light from light sources 1408 and 1410 is scattered or reflected, or whether light reaches the scattered light detector directly without scattering or reflection. For example, the scattered light detector 1402 may act to detect a change in the type or degree of polarization of light emitted by the light source due to scattering or reflection. In the example shown, light 1420 from light source 1408 is received directly by the scattered light detector 1402, while light 1422 from light source 1410 is reflected at surface 1423 as light 1424 received by the scattered light detector 1402. In this example, light 1420 indicates the relative position of light source 1408 with respect to the scattered light detector 1402, while light 1424 reflected from surface 1423 does not indicate the relative position of light source 1410 with respect to the scattered light detector 1402. Therefore, by detecting that light 1424 has been scattered or reflected, the tracking system may ignore or reject light signals from one or more sensors, such as a scattering light detector and similar position and orientation sensors, when performing position tracking, thereby improving the system's position tracking capabilities.

[0115] There may be multiple configurations that enable the scattered light detector 1402 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 light sources 1408 and 1410 may be polarized in a manner determined by optical systems 1414 and 1418, respectively, and the scattered light detector 1402 may be configured to distinguish between light received directly from light sources 1408 and 1410 and light from light from light sources that has been scattered or reflected before being received by the scattered light detector. For example, the type or degree of polarization of light from a light source may be altered as a result of scattering or specular reflection, and the scattered light detector 1402 may be configured to detect such alteration. As one non-limiting example, the optical subsystem 1414 of light source 1408 and the optical subsystem 1418 of light source 1410 may include either a right-handed or left-handed circular polarizer, and the optical subsystem 1406 of the scattered light detector 1402 may include the other of a right-handed or left-handed circular polarizer. For example, the optical subsystem 1414 of light source 1408 and the optical subsystem 1418 of light source 1410 may include right-handed circular polarizers, and the optical subsystem 1406 of scattered light detector 1402 may include left-handed circular polarizers. In this configuration, the optical subsystem 1406 of scattered light detector 1402 may be used to detect light reflected from a depolarized surface (e.g., having random polarization) or light reflected from a non-depolarized surface (e.g., glass, metal, acrylic, etc.) and then left-circularly polarized after reflection. If such light is above a threshold, the tracking system may ignore signals from one or more detectors that are determined to have also likely received reflected or scattered light.

[0116] An example of this configuration is shown in Example 1500 in Figure 15. This shows a scattered light detector 1502 and a light source 1504. The light source 1504 includes an optical subsystem including a light emitter 1506 (e.g., an LED) and a right-handed circular polarizer 1508. The circular polarizer 1508 in this implementation includes a linear polarizer 1510 and a quarter-wavelength phase plate or wave plate 1512, providing light 1522 having right-handed circular polarization.

[0117] The scattered light detector 1502 includes an optical subsystem including an optical detector 1514 (e.g., a quad-cell detector, a single-cell detector) and a left-handed circular polarizer 1516. The left-handed circular polarizer 1516 includes a quarter-wavelength phase plate or wave plate 1518 and a linear polarizer 1520. Since the scattered light detector 1502 includes a circular polarizer with the opposite dominant hand to the circular polarizer 1508 of the light source, the scattered light detector detects light reflected via specular reflection due to the switching of the dominant hand of the reflected circularly polarized light to the opposite dominant hand (i.e., from right-handed to left-handed in this example).

[0118] During operation, when the scattered light detector 1502 detects scattered or reflected light (e.g., above a determined threshold), the tracking system may reject or ignore light from one or more optical sensors (e.g., sensors in a similar position or orientation to the scattered light detector) that are likely to have received the same light.

[0119] Figure 16 shows information 1600 illustrating a front view of an exemplary HMD device 1644 when worn on the head of a user 1642. The HMD device 1644 includes a front structure 1643 supporting a front or forward camera 1646 and one or more types of angle-sensing detectors 1648a-1648f (collectively 1648). As an example, some or all of the angle-sensing detectors 1648 may help determine the location and orientation of the device 1644 in space, such as optical sensors for detecting and using light information emitted from one or more external devices (not shown, but e.g., base station 214, controller in Figure 2). The angle-sensing detectors 1648 may be any type of detector that acts to detect the angle of arrival of light emitted from a light source. Non-limiting examples of angle-sensing detectors include photodiode detectors (e.g., bicell detectors, quadrandcell detectors), position-sensing detectors using resistive sheets, etc.

[0120] As shown, the forward camera 1646 and angle-sensing detector 1648 are oriented forward toward the actual scene or environment (not shown) in which the user 1642 operates the HMD device 1644. More generally, the angle-sensing detector 1648 may be oriented toward other areas (e.g., up, down, left, right, behind) to detect light from various sources, such as a controller (e.g., held by the user 1642) or objects mounted in various locations (e.g., walls, ceilings). 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 type of object). The particular number of sensors 1648 may be less (e.g., 2, 4) or more (e.g., 10, 20, 30, 40) than the number of sensors shown. The HMD device 1644 may further comprise one or more additional components not mounted on the front structure (e.g., located inside the HMD device), such as an IMU (Inertial Measurement Unit) 1647 electronic device that measures and reports specific forces, angular velocities, and / or magnetic fields surrounding the HMD device (e.g., using a combination of an accelerometer and a gyroscope, and optionally a magnetometer). The HMD device 1644 may further comprise one or more additional components not shown, including one or more display panels and optical lens systems, one or more display panels and optical lens systems oriented toward the user's eyes (not shown), and optionally having one or more mounted internal motors for changing the alignment or other positioning of one or more of the optical lens systems and / or display panels within the HMD device.

[0121] An illustrated example of the HMD device 1644 is supported on the head of a user 1642, at least partially based on one or more straps 1645 attached to the housing of the HMD device 1644 and extending all or partially around the user's head. Not shown herein, the HMD device 1644 may further have one or more external motors, such as those attached to one or more of the straps 1645, and automated compensatory operations may include using such motors to adjust such straps to correct the alignment or other positioning of the HMD device on the user's head. It will be understood that the HMD device may have other support structures not shown herein (e.g., nosepiece, chin strap, etc.), whether in addition to or instead of the illustrated straps, and that some embodiments may have motors attached to one or more such other support structures to adjust their shape and / or position as well to correct the alignment or other positioning of the HMD device on the user's head. Other display devices not fixed to the user's head may be similarly attached to or part of one or more structures that affect the positioning of the display device, and in at least some embodiments may include motors or other mechanical actuators that similarly modify their own shape and / or location to correct the alignment or other positioning of the display device with respect to one or more pupils of one or more users of the display device.

[0122] The HMD device 1644 also includes a plurality of scattered light detectors 1650, 1652, and 1666. The scattered light detectors 1650, 1652, and 1666 may be similar to or identical to any of the scattered light detectors described herein and may act to detect whether the light 1660, 1664, and 1672 from the light sources 1658, 1662, and 1670 associated with the HMD device 1644 was reflected or scattered at a surface before reaching the HMD device. As described above, if scattered light is detected, sensor data from one or more sensors determined to have likely received the same light may be ignored.

[0123] In at least some implementations, a single scattered light detector may be provided for all of the detectors 1648. In other implementations, a separate scattered light detector may be provided for each of the detectors 1648, or the scattered light detector may be included as part of one or more of the detectors 1648. In the simplified example shown, the scattered light detector 1650 located to the right of the front structure 1643 corresponds to detectors 1648a, 1648b, and 1648e, which are used to detect light from a light source (e.g., light source 1658) in region 1654 to the right of the user 1642. That is, if the scattered light detector 1650 detects reflected or scattered light, the tracking system may ignore signals from one or more of the detectors 1648a, 1648b, and 1648e, which are determined to have likely received the same light due to a similar orientation to the scattered light detector 1650. Similarly, the scattered light detector 1652 located on the left side of the front structure 1643 corresponds to detectors 1648c, 1648d, and 1648g, which are used to detect light from a light source (e.g., light source 1662) in region 1656 to the left of the user 1642. The scattered light detector 1666 in the upper region of the front structure 1643 corresponds to detector 1648f, which is used to detect light from a light source (e.g., light source 1670) in region 1668 above the user 1642. As described above, multiplexing (e.g., time, wavelength, pattern, code) may be used to enable the system to know from which light source or group of light sources the light was received by detectors 1648, 1650, 1652, and 1666.

[0124] Figure 17 shows a perspective view of an angle-sensing or scattered light detector 1700 that may be used in one or more implementations of the present disclosure. In this non-limiting example, the scattered light detector 1700, which includes four separate photodiode active areas or elements 1702A-1702D separated by a small gap on a common substrate 1704, includes a quad-cell photodiode. It should be understood that other types of detectors may also be used, such as photodiode detectors with fewer or more cells, or position-sensing detectors.

[0125] In the non-restrictively shown examples, the active areas (e.g., anodes) of each element 1702A-1702D are individually available, and as a result, a light spot illuminating a single quadrant can be electrically characterized as being located only in that quadrant. When the light spot is transformed by detector 1700, the energy of the light spot is distributed among adjacent elements 1702A-1702D, and the difference in electrical contributions to each element defines the relative position of the light spot with respect to the center of the detector. The relative intensity profiles of elements 1702A-1702D can be used to determine the position of the light spot.

[0126] In this simplified example, the detector 1700 includes an opaque cover or mask 1710 having an aperture 1708 that allows light 1714 from a light source 1712 to pass through. As shown, the light 1714 passing through the aperture 1708 forms a light point 1706 that can be electrically characterized to determine the angle of the light 1714 with respect to the detector 1700, and therefore the angle of the light source 1712. As described below, systems and methods of the present disclosure may utilize multiple light sources and detectors to determine the position of components of an HMD system.

[0127] In the example shown, the first circular polarizer 1716 is located close to (e.g., next to) the light source 1712, and the second polarizer 1718 is located close to the detector 1700. In at least some implementations, the light emitted by the light source 1712 may be polarized in a determined manner by the first circular polarizer 1716 and the second circular polarizer 1718, and the scattered light detector 1700 may be configured to distinguish between light directly received from the light source 1712 and light from the light source that has been scattered or reflected before being received by the scattered light detector 1700. In one non-limiting example, one of the first and second circular polarizers 1716 and 1718 may each include either a right-handed or left-handed circular polarizer, 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 example, the first circular polarizer 1716 of the light source 1712 may include a right-handed circular polarizer, and the second circular polarizer 1718 of the scattered light detector 1700 may include a left-handed circular polarizer. In this configuration, the second circular polarizer 1718 of the scattered light detector 1700 may be used to detect light reflected from a depolarized surface (e.g., having random polarization) or light reflected from a non-depolarized surface (e.g., glass, metal, acrylic, etc.) and then left-circularly polarized after reflection. If such light is above a threshold, the tracking system may ignore signals from one or more detectors that are determined to have also likely received reflected or scattered light.

[0128] Figure 18 is a flowchart of Method 1800, an example of how to operate an HMD system to track the position of HMD components during use. Method 1800 may be performed, for example, by the position tracking system or module 512 of the HMD system 500 shown in Figure 5. As described above, Method 1800 can be used to track the position of any component, such as an HMD device wearable on the user's head, one or more handheld controllers, etc.

[0129] An implementation of Method 1800 is shown, beginning with Operation 1802, which provides a first HMD system component having a plurality of angle-sensing detectors. The plurality of angle-sensing detectors may act to detect light emitted from one or more light sources that may be fixedly positioned (e.g., mounted on a wall or ceiling) or movable (e.g., coupled to an HMD headset or controller). During operation, each of the plurality of angle-sensing detectors captures sensor data in the field of view of each of the plurality of angle-sensing detectors at a certain frame rate. The sensor data may include any type of data available to a control circuit (e.g., a processor) to detect the presence and direction of the light source relative to the angle-sensing detector. In at least some implementations, each of the angle-sensing detectors may include one or more sensors (e.g., photodiodes) having an image sensing circuit and optionally an image processing circuit. The angle-sensing detectors may output relatively raw data (e.g., light intensity or power data) or processed data (e.g., incident angle data).

[0130] In 1804, a second HMD system component may be provided that includes multiple light sources (e.g., near-IR LEDs). The second HMD system component may include, for example, a controller, an HMD headset, or light sources positioned in a fixed location (e.g., ceiling, wall).

[0131] In 1806, at least one processor of the HMD system may cause a light source to emit light. The light source may be illuminated in such a manner that each angle-sensing detector may simultaneously detect light from a single light source, or more generally, in such a manner that the system may be able to determine which light source the light detected by the angle-sensing detectors was received from. This may be achieved by multiplexing the illumination of the light source using any suitable type of multiplexing, such as time multiplexing, wavelength multiplexing, frequency multiplexing, polarization multiplexing, or other techniques that enable the system to know the light source of the light received from each angle-sensing detector during use.

[0132] As an example of time multiplexing, at least one processor may simultaneously illuminate only a subset of light sources (e.g., 1, 2, and 4). For example, at least one processor may sequentially illuminate one subset of light sources at a time and collect sensor data in response to each light source.

[0133] As an example of wavelength multiplexing, different subsets of light sources may emit light of different wavelengths, and different subsets of angle-sensing detectors may act to detect light of different wavelengths. Therefore, light sources with different wavelengths can be simultaneously irradiated and detected by corresponding wavelength-sensing detectors.

[0134] As an example of frequency multiplexing, a subset of light sources may be illuminated with patterns or frequencies determined to be detectable by an angle-sensing detector in order to identify a specific light source.

[0135] As an example of polarization multiplexing, a subset of light sources may be polarized differently (e.g., linearly, circularly), and a corresponding subset of angle-sensing detectors may be configured to detect specific polarized light (e.g., using polarizers that allow light with the corresponding polarization to pass through), enabling multiple light sources to illuminate simultaneously.

[0136] Other non-exclusive examples of techniques for illuminating a light source may include frequency or wavelength division multiplexing (FDMA or WDMA), time division multiplexing (TDMA), code division multiplexing (CDMA), orthogonal frequency division multiplexing (OFDMA), etc.

[0137] In 1808, at least one processor associated with the HMD system may receive sensor data from multiple angle-sensing detectors. As described above, for each angle-sensing detector, the sensor data may indicate the angle of arrival of light emitted from a known light source. In 1810, at least one processor associated with the HMD system may optionally receive sensor data from an inertial tracking function or an inertial measurement unit (IMU) that acts to provide sensor data from one or more additional sensors.

[0138] In 1812, at least one processor associated with the HMD system may process the received sensor data, including detecting corrupted data, as further described below. For example, at least one processor may merge some or all of the sensor data together to track one or more features present in the environment in which the HMD system operates. The sensor data may include sensor data from multiple angle-sensing detectors, and optionally, sensor data from an IMU, camera, or other sensor data. At least one processor may process the sensor data using, for example, a machine learning model (e.g., Model 606) or another solver. As further described below, in at least some implementations, at least one processor may ignore data from one or more sensors that have been determined to be corrupted, for example, data from light that is unlikely to have been received directly from the light source of the HMD system and was scattered, reflected, or received from another light source.

[0139] In 1814, at least one processor associated with the HMD system may track the position (e.g., location, orientation, or movement) of the components of the HMD system in real time while the HMD system is being used by the user in the environment. While the HMD is operating, method 1800 may continue to track the position of the components of the HMD system continuously, as described above.

[0140] In processing the received sensor data, the control circuit may identify one or more corrupted sensor data samples, where each of the one or more corrupted sensor data samples includes a sensor data sample from one of several angle-sensing detectors that has been identified as likely not representing light directly received by one of several angle-sensing detectors from one or more light sources. In at least some implementations, the control circuit may be configured to ignore corrupted sensor data samples during the tracking process and may continue to ignore samples from its optical detectors for a fixed or variable period of time.

[0141] Identifying corrupted sensor data samples may be at least partially based on a known geometry of at least one of the first and second head-mounted display system components. For example, a projection model of at least one of the first or second head-mounted display system components may be used to determine which of a plurality of angle-sensing detectors is likely not receiving light directly from one or more of a plurality of light sources, and data from such detectors may be ignored for a period of time. For example, received sensor data samples may be compared to at least one projection model, and received sensor data samples that do not match at least one projection model within a defined threshold may be identified as corrupted sensor data samples that should be ignored.

[0142] Additionally or alternatively, the identification of one or more corrupted sensor data samples may be based at least in part on one or more of the past position or orientation of at least one of the first and second head-mounted display system components, the current position or orientation of at least one of the first and second head-mounted display system components, or the predicted future position or orientation of at least one of the first and second head-mounted display system components.

[0143] In at least some implementations, the number of samples or duration for which one or more detectors are disabled may vary selectively based on various criteria, such as the actual or predicted movement (e.g., direction, velocity, rotation) of at least one of the first or second head-mounted display system components. For example, a comparison with a projection model may indicate that a detector is obscured by an object (e.g., a wall, a person, or another component) or is facing away from the HMD system's light source and therefore unlikely to receive light directly from one of the HMD system's light sources for a certain period. The control circuit may track the position or movement of one or more components to determine the duration. After that period, the detector is expected to receive light again from at least one of the multiple light sources. At this point, the system may reuse samples from the detector for tracking purposes.

[0144] The head-mounted display system components may include a head-mounted display device wearable on the user's head, a controller, a base station, or other HMD system components. As described elsewhere in this specification, to process the received sensor data, the control circuit may provide the received sensor data as input to one or more trained machine learning models.

[0145] Figure 19 is a flowchart of a method for adaptively adjusting the brightness of multiple light sources in a position tracking system of an HMD system, according to an example embodiment of the present disclosure. Method 1900 may be performed, for example, by the position tracking system or module 512 of the HMD system 500 shown in Figure 5. As described above, Method 1900 may be implemented, for example, in combination with Method 1800 in Figure 18, during position tracking of any component such as a wearable HMD device, one or more handheld controllers, etc. Advantageously, the adaptive brightness feature described herein may provide improved performance by utilizing a relatively wide dynamic range of the detector and may increase battery life by reducing power consumption.

[0146] Method 1900 begins in 1902, where the control circuit of the HMD system receives optical detector data from an optical detector (e.g., a photodiode, an angle-sensing detector). In 1904, the control circuit may process the received optical detector data, and in 1906, the control circuit may adaptively adjust the brightness of at least one of a plurality of light sources based at least in part on the processed optical detector data. In at least some implementations, the control circuit adaptively adjusts the brightness of at least one of one or more light sources based on the dynamic range of the optical detector, for example, to maximize the dynamic range of the optical detector. To adjust the brightness, the pulse width of the signals supplied to one or more light sources may be selectively adjusted.

[0147] In at least some implementations, the control circuit may disable one or more light sources ("dark measurement") and receive optical data from optical detectors while one or more light sources are disabled. Such a feature may allow the brightness of one or more light sensors to be adapted based on the ambient light level in the environment in which the HMD system is operated.

[0148] An example of this feature, method 2000, is shown in Figure 20. In 2002, the control circuit may disable one or more (e.g., all) light sources of the HMD system. In 2004, while one or more light sources are disabled, the control circuit may capture sensor data from the optical detector. In 2006, the control circuit may adjust the brightness settings of one or more light sources based on the captured sensor data. In 2008, the control circuit may optionally adjust the rate of sensor data capture for brightness adjustment based on changes in one or more parameters, such as the movement of one or more components, elapsed time, number of samples, amount of ambient light, detected changes in ambient light, etc. To adaptively adjust the brightness of one or more light sources, the received optical detector data may be provided as input to one or more trained machine learning models, as described elsewhere in this specification. In at least some implementations, the control circuit may perform light measurements periodically (e.g., every 5 samples, every 50 samples) and adjust the brightness of the light sources after each measurement based on the results of the measurements.

[0149] Figure 21 is a flowchart of a method for compensating for non-uniform brightness of a light source in a position tracking system of an HMD system, according to an example embodiment of the present disclosure. In practice, an angle-sensing detector such as a quad photodiode (QPD) may include a number of channels that are read sequentially over time (e.g., via multiplexing). Therefore, since not all measurements of the detector's channels are captured simultaneously, any non-uniformity in the brightness of the light source can lead to inaccurate measurements. For example, if an LED is illuminated over an illumination period, its intensity may fluctuate over the illumination period due to heat and other effects (e.g., "droop"). As described below, Method 2100 compensates for this effect, which is advantageous in providing more accurate measurements used for position tracking.

[0150] Method 2100 can be implemented, for example, by the position tracking system or module 512 of the HMD system 500 shown in Figure 5. As described above, Method 2100 can be implemented, for example, in combination with Method 1800 in Figure 18, during position tracking of any component such as a wearable HMD device on the user's head, one or more handheld controllers, etc.

[0151] Method 2100 begins in 2102, where a control circuit may cause one or more light sources to emit light during the irradiation period. In 2104, the control circuit may receive sensor data from an angle-sensing detector, which includes sequentially capturing sensor cell samples from multiple sensor cells during the irradiation period, as described above. For example, the control circuit may include an analog-to-digital converter (ADC), and a multiplexer may be used to sequentially read sensor cell samples from each of multiple (e.g., 4) sensor cells of the angle-sensing detector. Irradiation data may be captured using other methods capable of providing an irradiation profile of the light source with respect to time.

[0152] In 2106, the control circuit may process the received sensor data, which includes determining a correction to account for the non-uniform luminance of one or more light sources during the sequential capture of sensor cell samples. In 2108, the control circuit may use the determined correction to apply calibration data to the sensor cell samples and use the calibrated sensor cell samples to track the position of the first head-mounted display system component. The calibration data may, for example, represent a characteristic gradient of the luminance of one or more light sources during the illumination period.

[0153] In at least some implementations, the control circuit may iteratively determine updated calibration data and use the updated calibration data to track the position of a first head-mounted display system component. For example, to determine updated calibration data, the control circuit may disable one or more light sources over a calibration period, sequentially capture sensor cell samples from multiple sensor cells during the calibration period, interpolate the captured sensor cell samples, and determine the updated calibration data based on the interpolation of the captured sensor cell samples.

[0154] Calibration data may be determined additionally or alternatively during the manufacturing or design process of the HMD system. For example, characteristic gradients or features of a light source (e.g., an LED) may be determined empirically using an angle-sensing detector or other type of optical detector, and such information may be provided to the HMD system to compensate for non-uniformity of the light source (or similar or identical light source) during the operation of the HMD system. More generally, a method for calibrating a head-mounted display system component may include the steps of: emitting light from one or more light sources over an illumination period; sequentially capturing sensor cell samples from multiple sensor cells of an angle-sensing detector; processing the received sensor cell samples to generate calibration data that takes into account the non-uniform brightness of one or more light sources during the illumination period; and storing the calibration data in a non-temporary processor-readable storage medium for later use in tracking at least one component of the head-mounted display system.

[0155] Figure 22 is a flowchart of a method for adaptively enabling and disabling components of a tracking subsystem of an HMD system according to an example embodiment of the present disclosure. In the context of a light source (e.g., an LED), the implementation of method 2200 may be referred to as "adaptive firing" of the LED, thereby, for example, reducing power consumption and thus extending battery life. As described above, method 2200 may be implemented, for example, in combination with method 1800 in Figure 18, during tracking of the position of any component such as a wearable HMD device on a user's head, one or more handheld controllers, etc.

[0156] Method 2200 begins in 2202, in which a control circuit causes one or more of a plurality of light sources to emit light. In 2204, as described elsewhere herein, the control circuit receives sensor data from one or more of a plurality of optical detectors and tracks the position of a first head-mounted display system component based at least in part on the received sensor data.

[0157] In 2206, the control circuit may process the received sensor data, which includes determining whether to disable either an optical detector or a light source based on a determined disabling criterion. In 2208, the control circuit may, during position tracking of the first head-mounted display system component, disable each of the optical detectors or light sources that meet the disabling criterion over their respective disabling periods.

[0158] Generally, deactivation criteria provide or facilitate the determination that light emitted by a light source is unlikely to be received by any of the optical detectors of the first head-mounted display system component. For example, deactivation criteria may determine that a particular light source is facing away from the optical detectors of the HMD system, or is obstructed by an object (e.g., a person, component, furniture, or wall) in the environment in which the HMD system is operating. Similarly, a control circuit may determine that an optical detector is unlikely to receive light from a light source and can therefore be deactivated over a fixed or variable period of time.

[0159] The deactivation criteria may be based at least in part on the determined relative position or movement between a first head-mounted display system component and a second head-mounted display system component, such as the relative position or movement between the controller and the headset, the relative position or movement between the controller and the base station, or the relative position or movement between the headset and the base station. As described above, one or more projection models may be used to assess whether light from a light source is expected to be directly received by the optical sensors of the HMD system. In at least some implementations, position tracking information may be used to predict when a particular component (e.g., light source, detector) may be deactivated and when such a component should be reactivated.

[0160] In at least some implementations, the deactivation criterion provides or facilitates the determination that the light emitted by each light source in a first subset of multiple light sources is likely to be received by at least one of the optical detectors of a first head-mounted display system component, and the deactivation criterion acts to deactivate a second subset of light sources within the first subset of light sources for a deactivation period. For example, the system may determine that a first subset of four distant light sources is likely to be detected by one or more detectors, and may deactivate two light sources in the first subset (i.e., the second subset) so that only two light sources are enabled for a period of time. This feature can increase battery life while still providing light sources detectable by the optical sensor. In at least some implementations, the light sources in the first subset of light sources that are not deactivated may be relatively distant from each other, which can provide a relatively large angle of separation with respect to the optical detectors that detect the light emitted by the light sources, thereby improving measurement accuracy.

[0161] Figure 23 is a flowchart for a method, according to an example embodiment of the present disclosure, for operating the position tracking system of an HMD system to track the position, orientation and / or motion of components of the HMD system in use by fusing inertial sensor data, optical sensor data and image data. As described above, method 2300 can be implemented, for example, in combination with method 1800 of Figure 18 during position tracking of any component such as a wearable HMD device on a user's head, one or more handheld controllers.

[0162] The head-mounted display system may comprise a first head-mounted display system component, an inertial measurement unit (IMU) held by the first head-mounted display system component, a plurality of angle-sensing optical detectors (or other types of optical detectors) held by the first head-mounted display system component, and at least one camera held by the first head-mounted display system component. In 2302, a control circuit associated with the HMD system may receive inertial sensor data from the inertial measurement unit. In 2304, the control circuit may receive optical sensor data from one or more of the plurality of angle-sensing optical detectors or other types of optical detectors. In 2306, the control circuit may receive image sensor data from the camera. As an example, the camera may be a camera in a forward-facing HMD device that can be worn on the user's head.

[0163] In 2308, the control circuit may process or fuse the received inertial sensor data, optical sensor data, and image sensor data. For example, the control circuit may utilize one or more sensor fusion algorithms, including but not limited to the central limit theorem algorithm, Kalman filter, Bayesian network, Dempster-Shafer algorithm, or convolutional neural network. In 2310, the control circuit may track the position of the first head-mounted display system components, at least in part, based on the processing of the received inertial sensor data, optical sensor data, and image sensor data. In at least some implementations, as described elsewhere in this specification (see, for example, Figure 6), the control circuit may provide the received inertial sensor data, optical sensor data, and image sensor data as input to one or more trained machine learning models in order to process the received inertial sensor data, optical sensor data, and image sensor data.

[0164] The detailed description above has illustrated various implementations of devices and / or processes using block diagrams, schematics, and examples. To the extent that such multiple block diagrams, schematics, and examples include one or more functions and / or operations, a person skilled in the art will understand that each function and / or operation in such multiple block diagrams, flowcharts, or examples can be implemented individually and / or collectively by a wide range of hardware, software, firmware, or substantially a combination thereof. In one implementation, the subject matter may be implemented via an application-specific integrated circuit (ASIC). However, a person skilled in the art will recognize that the implementations disclosed herein can be equivalently implemented in whole or in part on a standard integrated circuit 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), one or more programs running on one or more controllers (e.g., microcontrollers), one or more programs running on one or more processors (e.g., microprocessors), as firmware, or virtually any combination thereof, provided that the design of the circuit and / or the writing of the software or firmware code is well within the skill of a person skilled in the art in light of this disclosure.

[0165] Those skilled in the art will recognize that many of the methods or algorithm sets described herein may employ additional operations, omit some operations, and / or perform operations in an order different from that specified.

[0166] In addition, those skilled in the art will understand that several of the mechanisms taught herein can be distributed as program products in various forms, and that exemplary implementations are equally applicable regardless of the specific type of signal-carrying medium used to actually carry out the distribution. Examples of signal-carrying media include, but are not limited to, recordable media such as floppy disks, hard disk drives, CD-ROMs, digital tapes, and computer memory.

[0167] Further implementations can be provided by combining the various implementations described above. Unless inconsistent with the specific teachings and definitions herein, all U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications, and non-patent publications referenced herein are incorporated herein by reference as a whole. Further implementations can be provided by modifying multiple aspects of the implementation as needed, adopting systems, circuits, and concepts from various patents, applications, and publications.

[0168] In light of the detailed description above, these and other modifications may be made to the implementation. In general, the terms used in the following claims should not be construed as limiting the claims to the specification and any specific implementation disclosed herein, but rather as encompassing all possible implementations along the entire equivalent scope to which such claims apply. Thus, the scope of the claims is not limited by the disclosure. [Item 1] A first head-mounted display system component configured to be held or worn by the user; Multiple angle-sensing detectors are held by the first head-mounted display system component; during operation, each of the multiple angle-sensing detectors captures sensor data indicating the arrival angle of light emitted from one or more light sources; A second head-mounted display system component including one or more light sources; and To cause the one or more light sources to emit light; Receiving sensor data from one or more of the aforementioned angle-sensing detectors; Processing the received sensor data, including identifying one or more corrupted sensor data samples, each of which is identified as likely not representing light directly received by one of the angle-sensing detectors from the one or more light sources, including a sensor data sample from one of the angle-sensing detectors. Tracking the position of the second head-mounted display system component based at least in part on the processing of the received sensor data. Control circuits that act for A head-mounted display system equipped with [specific features / features]. [Item 2] The head-mounted display system according to item 1, wherein the control circuit ignores the corrupted sensor data sample in order to track the position of the second head-mounted display system component. [Item 3] The identification of the one or more damaged sensor data samples is at least partially based on the known geometry of at least one of the first head-mounted display system component and the second head-mounted display system component, as described in item 1. [Item 4] The identification of the one or more corrupted sensor data samples is: The past position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component; The current position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component; or The predicted future position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component. A head-mounted display system as described in item 1, based at least in part on one or more of the above. [Item 5] The identification of the one or more damaged sensor data samples comprises determining which of the multiple angle-sensing detectors is most likely not receiving light directly from the one or more of the multiple light sources, using at least one projection model of the first head-mounted display system component or the second head-mounted display system component. [Item 6] The head-mounted display system according to item 5, wherein the use of at least one projection model includes comparing a received sensor data sample with the at least one projection model, and identifying any received sensor data sample that does not match the at least one projection model as a corrupted sensor data sample. [Item 7] Identifying a received sensor data sample that does not match the at least one projection model as a corrupted sensor data sample includes identifying a received sensor data sample that does not match the at least one projection model within a defined threshold as a corrupted sensor data sample, according to item 6. [Item 8] The head-mounted display system according to item 1, further comprising disabling one or more of the angle-sensing detectors associated with the corrupted sensor data sample over a number of samples or period of time. [Item 9] The head-mounted display system according to item 8, wherein the number of samples or the period of time is selectively varied based on the movement of at least one of the first head-mounted display system component or the second head-mounted display system component. [Item 10] The head-mounted display system according to item 1, wherein the second head-mounted display system component includes a wearable head-mounted display device or handheld controller on the user's head. [Item 11] The head-mounted display system according to item 1, wherein each of the plurality of angle-sensing detectors includes one of a photodiode detector or a position-sensing detector. [Item 12] The head-mounted display system according to item 1, wherein each of the plurality of angle-sensing detectors includes a photodiode detector having at least four cells. [Item 13] The head-mounted display system described in item 1, wherein the first head-mounted display system component includes one of a head-mounted display device, a controller, or a base station, and the second head-mounted display system component includes another of a head-mounted display device, a controller, or a base station. [Item 14] The head-mounted display system according to item 1, wherein at least one of the first head-mounted display system component or the second head-mounted display system component includes a component that is fixed in close proximity to the environment in which the head-mounted display system is operated. [Item 15] The head-mounted display system according to item 1, further comprising a scattered light detector that captures scattered light detector data indicating whether light received by one or more of the plurality of angle-sensing detectors may have been reflected or scattered before arriving at one or more of the plurality of angle-sensing detectors, wherein the scattered light detector data is used for the identification of the one or more corrupted sensor data samples. [Item 16] The head-mounted display system according to item 15, wherein the control circuit processes the scattered light detector data to identify the one or more corrupted sensor data samples and ignores the corrupted sensor data samples during the tracking of the position of the second head-mounted display system component. [Item 17] The head-mounted display system according to item 1, further comprising a plurality of scattered light detectors, each of which captures scattered light detector data indicating whether light received by one or more of the plurality of angle-sensing detectors was reflected or scattered before arriving at one or more of the plurality of angle-sensing detectors, wherein the scattered light detector data is used for the identification of the one or more corrupted sensor data samples. [Item 18] The head-mounted display system according to item 1, wherein the control circuit provides the received sensor data as input to a trained machine learning model in order to process the received sensor data. [Item 19] During operation, the control circuit causes the one or more light sources to emit light using multiplexing, as described in item 1. [Item 20] The head-mounted display system according to item 19, wherein the multiplexing includes at least one of time multiplexing, wavelength multiplexing, frequency multiplexing, or polarization multiplexing. [Item 21] A head-mounted display system according to any one of items 1 to 20, wherein, during operation, the control circuit causes the one or more light sources to emit light using at least one of wavelength division multiplexing (WDMA), time division multiplexing (TDMA), code division multiplexing (CDMA), or orthogonal frequency division multiplexing (OFDMA). [Item 22] A first head-mounted display system component configured to be held or worn by the user; An optical detector held by the first head-mounted display system component; during operation, the optical detector captures sensor data indicating light emitted from one or more light sources; A second head-mounted display system component including one or more light sources; and Receiving optical detector data from the aforementioned optical detector; Processing the received optical detector data; and Adaptively adjusting the brightness of at least one of the one or more light sources based at least partially on the processed optical detector data. Control circuits that act for A head-mounted display system equipped with [specific features / features]. [Item 23] The head-mounted display system according to item 22, wherein the control circuit adaptively adjusts the brightness of at least one of the one or more light sources based on the dynamic range of the optical detector. [Item 24] The head-mounted display system according to item 22, wherein the control circuit adaptively adjusts the brightness of at least one of the one or more light sources and adjusts the pulse width of the signal supplied to at least one of the one or more light sources. [Item 25] The head-mounted display system according to item 22, wherein the control circuit disables the one or more light sources and receives optical detector data from the optical detector while the one or more light sources are disabled. [Item 26] The head-mounted display system according to item 22, wherein the control circuit adaptively adjusts the brightness of at least one of the one or more light sources at a rate that varies at least in part based on the parameters of at least one component of the head-mounted display system. [Item 27] The head-mounted display system according to item 26, wherein the parameter includes the movement of at least one component of the head-mounted display system. [Item 28] The head-mounted display system according to item 22, wherein the control circuit adaptively adjusts the brightness of at least one of the one or more light sources at a rate that varies at least in part based on the amount of ambient light in the environment in which the head-mounted display system is operated. [Item 29] The head-mounted display system according to item 22, wherein the control circuit processes the received optical detector data to track the position of at least one of the first head-mounted display system component or the second head-mounted display system component. [Item 30] The head-mounted display system according to item 22, wherein the optical detector includes an angle-sensing detector that acts to detect the angle of arrival of the light detected by the angle-sensing detector. [Item 31] The head-mounted display system according to item 22, wherein the first head-mounted display system component includes a head-mounted display device or handheld controller that can be worn on the user's head. [Item 32] The head-mounted display system according to item 22, wherein the optical detector includes one of a photodiode detector or a position-sensing detector. [Item 33] The head-mounted display system according to item 22, wherein the optical detector comprises a photodiode detector having at least four cells. [Item 34] The head-mounted display system described in item 22, wherein the first head-mounted display system component includes one of a head-mounted display device, a controller, or a base station, and the second head-mounted display system component includes another of a head-mounted display device, a controller, or a base station. [Item 35] A head-mounted display system according to any one of items 22 to 34, wherein the control circuit provides the received optical detector data as input to a trained machine learning model in order to process the received optical detector data. [Item 36] A first head-mounted display system component that can be worn by the user; An angle-sensing detector held by the first head-mounted display system component, during operation, captures sensor data indicating the arrival angle of light emitted from one or more light sources, wherein the angle-sensing detector includes a plurality of sensor cells, and during operation, each of the sensor cells outputs a sensor cell sample representing the intensity of light incident on the sensor cell; A second head-mounted display system component including one or more light sources; and The one or more light sources mentioned above emit light during the irradiation period; Receiving sensor data from the angle-sensing detector, including sequentially capturing sensor cell samples from the plurality of sensor cells during the irradiation period; Processing the received sensor data, including applying calibration data to the sensor cell sample to account for the non-uniform brightness of the one or more light sources during the sequential capture of the sensor cell sample; and Tracking the position of the second head-mounted display system component based at least in part on the processing of the received sensor data. Control circuits that act for A head-mounted display system equipped with [specific features / features]. [Item 37] The calibration data represents the characteristic gradient of the luminance of the one or more light sources during the irradiation period, as described in item 36 for the head-mounted display system. [Item 38] The head-mounted display system according to item 36 or 37, wherein during operation, the control circuit iteratively determines updated calibration data and uses the updated calibration data to track the position of the second head-mounted display system component. [Item 39] To determine the updated calibration data, the control circuit: Disable the one or more light sources over the calibration period; During the calibration period, sensor cell samples are sequentially captured from the plurality of sensor cells; Interpolate the captured sensor cell sample; and Based on the interpolation of the captured sensor cell sample, the updated calibration data is determined. The head-mounted display system described in item 38. [Item 40] A method for calibrating a head-mounted display system component, wherein the head-mounted display system component includes an angle-sensing detector that captures sensor data indicating the angle of arrival of light emitted from one or more light sources during operation, wherein the angle-sensing detector includes a plurality of sensor cells, each sensor cell outputting a sensor cell sample representing the intensity of light incident on the sensor cell, and the method is: A step of causing the one or more light sources to emit light over an irradiation period; A step of receiving sensor data from the angle sensing detector during the irradiation period, which includes sequentially capturing sensor cell samples from the plurality of sensor cells; A step of processing the received sensor cell sample to generate calibration data that takes into account the non-uniform brightness of the one or more light sources during the irradiation period; and Steps to store the calibration data in a non-temporary processor-readable storage medium for later use in tracking at least one component of the head-mounted display system. A method for providing this. [Item 41] The calibration data represents the characteristic gradient of the luminance on the one or more light sources during the irradiation period, as described in item 40. [Item 42] Processing the received sensor cell sample: Interpolating the captured sensor cell sample; and The calibration data is determined based on the interpolation of the captured sensor cell sample. The method described in item 40 or 41, including the method described in item 40 or 41. [Item 43] A first head-mounted display system component that can be worn by the user; Multiple optical detectors held by the first head-mounted display system component; A second head-mounted display system component including multiple light sources; and To cause one or more of the aforementioned multiple light sources to emit light; Receiving sensor data from one or more of the aforementioned optical detectors; Tracking the position of the second head-mounted display system component based at least partially on the received sensor data; Processing the received sensor data, including determining whether to disable either the optical detector or the light source based on the determined deactivation criteria; and During the tracking of the position of the second head-mounted display system component, disable each of the optical detectors or light sources that meet the disabling criteria for the duration of their respective disabling periods. Control circuits that act for A head-mounted display system equipped with [specific features / features]. [Item 44] The head-mounted display system according to item 43, wherein the deactivation criteria are at least partially based on the determined relative position between the first head-mounted display system component and the second head-mounted display system component. [Item 45] The head-mounted display system according to item 43, wherein each of the aforementioned disabled periods is at least partially based on the movement of at least one of the first head-mounted display system component and the second head-mounted display system component. [Item 46] The head-mounted display system according to item 43, wherein, for each of the plurality of light sources of the second head-mounted display system component, the deactivation criterion provides a determination that it is unlikely that light emitted by the light source will be received by any of the optical detectors of the first head-mounted display system component. [Item 47] The head-mounted display system according to item 43, wherein, for each of the plurality of optical detectors of the first head-mounted display system component, the deactivation criterion provides a determination that it is unlikely that light emitted by any of the plurality of light sources of the second head-mounted display system component will be received by the optical detector. [Item 48] The respective disabled period for each of the disabled light sources or optical detectors is: The relative position between the first head-mounted display system component and the second head-mounted display system component; or Relative movement between the first head-mounted display system component and the second head-mounted display system component A head-mounted display system as described in item 43, determined at least in part on at least one of the following. [Item 49] The head-mounted display system according to item 43, wherein the respective disabled period for each of the disabled light sources is determined at least partially based on the position of the light source on the second head-mounted display system component. [Item 50] The head-mounted display system according to item 43, wherein the respective disabled period for each of the disabled optical detectors is determined at least partially based on the position of the optical detector on the first head-mounted display system component. [Item 51] The head-mounted display system according to item 43, wherein the deactivation criterion provides a determination that light emitted by each light source in a first subset of the plurality of light sources is likely to be received by at least one of the optical detectors of the first head-mounted display system component, and the deactivation criterion acts to deactivate a second subset of light sources in the first subset of light sources for each deactivated period. [Item 52] The head-mounted display system according to item 51, wherein the light sources in the second subset of disabled light sources are selected to provide light sources in the first subset of light sources that are not disabled and are relatively far apart from each other, and provide a relatively large angle of separation with respect to the optical detectors that detect the light emitted by the light sources. [Item 53] The head-mounted display system according to any one of items 43 to 52, wherein the deactivation criteria are at least in part based on sensor data previously received from one or more of the plurality of optical detectors. [Item 54] A head-mounted display system, A first head-mounted display system component that can be worn by the user; An inertial measurement unit held by the first head-mounted display system component; Multiple angle-sensing optical detectors held by the first head-mounted display system component; A camera held by the first head-mounted display system component; and Receiving inertial sensor data from the aforementioned inertial measurement unit. Receiving optical sensor data from one or more of the aforementioned angle-sensing optical detectors; To receive image sensor data from the camera; Processing the received inertial sensor data, optical sensor data, and image sensor data; and Tracking the position of at least one head-mounted display system component of the head-mounted display system based at least in part on the processing of the received inertial sensor data, optical sensor data, and image sensor data. Control circuits that act for A head-mounted display system equipped with [specific features / features]. [Item 55] The head-mounted display system according to item 54, further comprising a second head-mounted display system component including one or more light sources, wherein the control circuit causes the one or more light sources to emit light detected by one or more of the plurality of angle-sensing optical detectors during operation. [Item 56] The second head-mounted display system component includes a head-mounted display device, a controller, or a base station, as described in item 55. [Item 57] The head-mounted display system according to item 54, wherein the first head-mounted display system component includes a head-mounted display device that can be worn on the user's head. [Item 58] The head-mounted display system according to item 54, wherein each of the plurality of angle-sensing optical detectors includes one of a photodiode detector or a position-sensing detector. [Item 59] The head-mounted display system according to item 54, wherein each of the plurality of angle-sensing optical detectors includes a photodiode detector having at least four cells. [Item 60] A head-mounted display system according to any one of items 54 to 59, wherein the control circuit provides the inertial sensor data, optical sensor data, and image sensor data as input to a trained machine learning model in order to process the received inertial sensor data, optical sensor data, and image sensor data.

Claims

1. First head-mounted display system component; During operation, each of the multiple angle-sensing detectors captures sensor data indicating the arrival angle of light emitted from one or more light sources, and the multiple angle-sensing detectors are held by the first head-mounted display system component; A second head-mounted display system component including one or more light sources; and To cause light to be emitted from the one or more light sources; Receiving sensor data, including multiple sensor data samples, from one or more of the multiple angle sensing detectors; Processing the received sensor data, including the identification of one or more corrupted sensor data samples, each of which includes a sensor data sample from one of the angle-sensing detectors, which is identified as being highly likely not to represent light directly received by one of the angle-sensing detectors from the one or more light sources. Tracking the position of the second head-mounted display system component based at least in part on the processing of the received sensor data. Control circuits that act for A head-mounted display system equipped with [specific features / features].

2. The head-mounted display system according to claim 1, wherein the control circuit ignores the corrupted sensor data samples in order to track the position of the second head-mounted display system component.

3. The head-mounted display system according to claim 1, wherein the identification of the one or more damaged sensor data samples is at least partially based on a known geometry of at least one of the first head-mounted display system component and the second head-mounted display system component.

4. The identification of the one or more damaged sensor data samples is: The past position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component; The current position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component; or The predicted future position or orientation of at least one of the first head-mounted display system component and the second head-mounted display system component. A head-mounted display system according to claim 1, based at least in part on one or more of the above.

5. The identification of the one or more damaged sensor data samples includes determining which of the multiple angle-sensing detectors is most likely not receiving light directly from the one or more of the multiple light sources, using at least one projection model of the first head-mounted display system component or the second head-mounted display system component.

6. The head-mounted display system according to claim 5, wherein the use of at least one projection model includes comparing the sensor data sample with the at least one projection model and identifying the sensor data sample that does not match the at least one projection model as a corrupted sensor data sample.

7. Identifying a sensor data sample that does not match the at least one projection model as a corrupted sensor data sample includes identifying a sensor data sample that does not match the at least one projection model within a defined threshold as a corrupted sensor data sample, according to claim 6.

8. The head-mounted display system according to claim 1, further comprising disabling one or more of the angle-sensing detectors associated with the corrupted sensor data samples over a number of samples or period of time.

9. The head-mounted display system according to claim 8, wherein the number of samples or the period of time is selectively varied based on the movement of at least one of the first head-mounted display system component or the second head-mounted display system component.

10. The head-mounted display system according to claim 1, wherein the second head-mounted display system component includes a wearable head-mounted display device or handheld controller on the user's head.

11. The head-mounted display system according to claim 1, wherein each of the plurality of angle-sensing detectors includes one of a photodiode detector or a position-sensing detector.

12. The head-mounted display system according to claim 1, wherein each of the plurality of angle-sensing detectors includes a photodiode detector having at least four cells.

13. The head-mounted display system according to claim 1, wherein the first head-mounted display system component includes one of a head-mounted display device, a controller, or a base station, and the second head-mounted display system component includes another of a head-mounted display device, a controller, or a base station.

14. The head-mounted display system according to claim 1, wherein at least one of the first head-mounted display system component or the second head-mounted display system component includes a component fixed in a location close to the environment in which the head-mounted display system is operated.

15. The head-mounted display system according to claim 1, further comprising a scattered light detector that captures scattered light detector data indicating whether light received by one or more of the plurality of angle-sensing detectors may have been reflected or scattered before arriving at one or more of the plurality of angle-sensing detectors, wherein the scattered light detector data is used for the identification of the one or more corrupted sensor data samples.

16. The head-mounted display system according to claim 15, wherein the control circuit processes the scattered light detector data to identify the one or more corrupted sensor data samples and ignores the corrupted sensor data samples during the tracking of the position of the second head-mounted display system component.

17. The head-mounted display system according to claim 1, further comprising a plurality of scattered light detectors, each of which captures scattered light detector data indicating whether light received by one or more of the plurality of angle-sensing detectors was reflected or scattered before arriving at one or more of the plurality of angle-sensing detectors, wherein the scattered light detector data is used for the identification of the one or more corrupted sensor data samples.

18. The head-mounted display system according to claim 1, wherein the control circuit provides the received sensor data as input to a trained machine learning model in order to process the received sensor data.

19. The head-mounted display system according to claim 1, wherein during operation, the control circuit causes the one or more light sources to emit light using multiplexing.

20. The head-mounted display system according to claim 19, wherein the multiplexing includes at least one of time multiplexing, wavelength multiplexing, frequency multiplexing, or polarization multiplexing.

21. The head-mounted display system according to any one of claims 1 to 20, wherein during operation, the control circuit causes the one or more light sources to emit light using at least one of wavelength division multiplexing (WDMA), time division multiplexing (TDMA), code division multiplexing (CDMA), or orthogonal frequency division multiplexing (OFDMA).

Citation Information

Patent Citations

  • Position tracking system for head-mounted display systems

    US20210247842A1