1. Field of the Disclosure
The disclosure relates generally to methods and systems of projecting one or more images onto a screen in a head-mounted display. According to certain embodiments, one or more sensors may be used to detect movement of a head of a wearer of a head-mounted display and a controller may be used to reorient one or more mirrors to control the projection of one or more images to compensate for the detected head movement.
2. General Background
Head-mounted electronic displays have existed for many years. For example, helmet mounted displays were first deployed by the U.S. Army in the Apache helicopter in 1984. These head-mounted displays have many advantages over fixed displays. For example, head mounted displays may be relatively small and compact but can display images that, if they were to be displayed on conventional fixed displays, would require extremely large screens.
One issue when designing such a system is that the user may shift his head faster than the head-mounted display can redraw the image. This is because it takes some discrete period of time for the head tracker and graphics software to decide what image to draw. This is called the combined latency. Many head-mounted-display-based systems have a combined latency over 100 milliseconds (ms). At a moderate head or object rotation rate of 50 degrees per second, 100 ms of latency causes 5 degrees of angular error. When a high angular error is introduced, the image or the display will not be correlated with the physical world seen by the user. It is even more of a problem when the user's head moves so fast that part of the frame correlates with one head position and the rest of the frame correlates with a different head position. Once the graphics processor used to draw the frames has started drawing the frame, it is generally committed to drawing the entire frame and cannot compensate for changes in the user's head orientation. In order to keep the image shown on the screen correlated with user's head, it is necessary to design a separate system to move the frame with very low latency.
There is a need in the art for a system that can quickly compensate for the user's head movement.
By way of example, reference will now be made to the accompanying drawings, which are not to scale.
Those of ordinary skill in the art will realize that the following description of certain embodiments is illustrative only and not in any way limiting. Other embodiments will readily suggest themselves to such skilled persons, having the benefit of this disclosure. Reference will now be made in detail to specific implementations as illustrated in the accompanying drawings. The same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts.
In general, a head-mounted display may consist of an image projector mounted to the head that projects one or more images onto a screen in front of one or both of the user's eyes. Both the screen and the projector may be mounted onto the user's head such that they are in a fixed position relative to the user's eyes. The screen may be positioned between the projector and the user's eye in a rear-projection format or the screen may be positioned in front of both the projector and the eye in a front-projection format. Images on the display may be drawn as a series of discrete frames that may be displayed sequentially at high rate of speed. The frames may be displayed so rapidly that the human eye cannot detect individual frames but rather sees the series of images as continuous motion. The frames themselves may be drawn a line at a time and may take several microseconds to complete.
Moreover, head-mounted displays may also include electronics to track the position of the user's head. This tracking information can then be used as an input to change the display projected to the user—creating a Virtual Realty environment.
Head tracking may be combined with transparent or semi-transparent display screens, to enable a user to see both a projected image and the physical world beyond the display screen. A transparent screen may be combined with head tracking to superimpose images on the user's view of the physical world. For example, when the user looks at a particular person, the display may project that person's name as a label over the person's head. The head tracking function may allow the label to remain in a constant position over the person's head even when the user moves his head up, down, or sideways. This may be referred to as Augmented Reality.
In certain embodiments, a mirror may be positioned between a projector and a screen in front of the user's eye such that the image created by the projector bounces off the mirror before appearing on the display. This mirror may be interposed between the projector and the screen in both rear-projection and front-projection formats.
In certain embodiments, the mirror may be coupled to a pivoting actuator or other mechanical device known to those of skill in the art that may change the orientation of the mirror. In certain embodiments, the orientation of the mirror may be changed to change the position of the image from the projector relative to a fixed location on the screen. For example, the mirror can be moved to shift the entire frame shown by the projector up and down and/or left and right on the screen.
In certain embodiments, a controller may be used to move the mirror based on input from sensors measuring the movement of the user's head. Thus, the mirror may be used to keep the image shown on the screen in a fixed position even when the user moves his head.
In certain embodiments, the mirror may be positioned at a fixed “centered” position at the start of each frame. While the frame is drawn, the mirror may act to move the entire image to keep it in the desired position. At the end of the frame, the mirror may then be re-centered. In certain embodiments, the software controlling the projector may not need to compensate for head movement during the drawing of the frame, but rather at the start of each frame.
In certain embodiments, a head-mounted display is disclosed, comprising: a screen; a projector for projecting one or more images onto one or more mirrors; a controller for orienting the one or more mirrors to direct the one or more images onto one or more locations on the screen. The head-mounted display may further comprise: one or more sensors for detecting movement of a head of a wearer of the head-mounted display; and wherein the controller is configured for orienting the one or more mirrors to redirect the one or more images to compensate for the detected head movement. The projector may be configured for rendering the one or more images in one or more frames. The controller may be configured to center the one or more mirrors between each of the one or more frames. The projector may be configured for projecting images on the back of the screen. The projector may be configured for projecting images on the front of the screen. The one or more images may comprise one or more labels and the one or more locations may comprise one or more locations on the screen proximate to one or more objects viewable through the screen. The screen may be transparent. The screen may be semi-transparent. The controller may comprise a rotating actuator. The controller may comprise one or more actuators for orienting the one or more mirrors in one or more dimensions.
In certain embodiments, a method for compensating for head movement of a wearer of a head-mounted display is disclosed, comprising: providing a head-mounted display comprising a screen: projecting one or more images onto one or more mirrors; orienting the one or more mirrors to redirect the one or more images onto one or more locations on the screen. The method may further comprise: detecting movement of a head of a wearer of the head-mounted display; and orienting the one or more mirrors to redirect the one or more images to compensate for the detected head movement. The step of projecting one or more images may comprise projecting one or more frames. The step of orienting the one or more mirrors may comprise centering the one or more mirrors between each of the one or more frames. The one or more images may comprise one or more labels and the one or more locations may comprise one or more locations on the screen proximate one or more objects viewable through the screen. The screen may be transparent. The screen may be semi-transparent.
Further, certain figures in this specification are flow charts illustrating methods and systems. It will be understood that each block of these flow charts, and combinations of blocks in these flow charts, may be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine, such that the instructions which execute on the computer or other programmable apparatus create structures for implementing the functions specified in the flow chart block or blocks. These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction structures which implement the function or functions specified in the flow chart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flow chart block or blocks.
Accordingly, blocks of the flow charts support combinations of structures for performing the specified functions and combinations of steps for performing the specified functions. It will also be understood that each block of the flow charts, and combinations of blocks in the flow charts, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
For example, any number of computer programming languages, such as C, C++, C# (CSharp), Perl, Ada, Python, Pascal, SmallTalk, FORTRAN, assembly language, and the like, may be used to implement aspects of the present invention. Further, various programming approaches such as procedural, object-oriented or artificial intelligence techniques may be employed, depending on the requirements of each particular implementation. Compiler programs and/or virtual machine programs executed by computer systems may translate higher level programming languages to generate sets of machine instructions that may be executed by one or more processors to perform a programmed function or set of functions.
The term “machine-readable medium” may include any structure that participates in providing data which may be read by an element of a computer system. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media may include, for example and without limitation, optical or magnetic disks and other persistent memory. Volatile media may include, for example and without limitation, dynamic random access memory (DRAM) and/or static random access memory (SRAM). Transmission media may include, for example and without limitation, cables, wires, and fibers, including the wires that comprise a system bus coupled to processor. Common forms of machine-readable media include, for example and without limitation, a floppy disk, a flexible disk, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, a DVD, any other optical medium.
In certain embodiments, as shown in
In certain embodiments, as shown in
For the sake of simplicity,
The screens 104 and 204 may be transparent or semitransparent such that the user may see images on the screens 104 and 204 and objects in the real world substantially simultaneously. For example and without limitation, in
In certain embodiments as shown in
In certain embodiments as shown in
In certain embodiments as shown in
In certain embodiments as shown in
Certain figures in this specification are flow charts illustrating methods and systems. It will be understood that each block of these flow charts, and combinations of blocks in these flow charts, may be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine, such that the instructions which execute on the computer or other programmable apparatus create structures for implementing the functions specified in the flow chart block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction structures which implement the function specified in the flow chart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flow chart block or blocks.
Accordingly, blocks of the flow charts support combinations of structures for performing the specified functions and combinations of steps for performing the specified functions. It will also be understood that each block of the flow charts, and combinations of blocks in the flow charts, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
For example, any number of computer programming languages, such as C, C++, C# (CSharp), Perl, Ada, Python, Pascal, SmallTalk, FORTRAN, assembly language, and the like, may be used to implement certain embodiments. Further, various programming approaches such as procedural, object-oriented or artificial intelligence techniques may be employed, depending on the requirements of each particular implementation. Compiler programs and/or virtual machine programs executed by computer systems may translate higher level programming languages to generate sets of machine instructions that may be executed by one or more processors to perform a programmed function or set of functions.
The term “machine-readable medium” should be understood to include any structure that participates in providing data which may be read by an element of a computer system. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM) and/or static random access memory (SRAM). Transmission media include cables, wires, and fibers, including the wires that comprise a system bus coupled to processor. Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, a DVD, any other optical medium.
Network 935 may include one or more networks of any type, including a Public Land Mobile Network (PLMN), a telephone network (e.g., a Public Switched Telephone Network (PSTN) and/or a wireless network), a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), an Internet Protocol Multimedia Subsystem (IMS) network, a private network, the Internet, an intranet, and/or another type of suitable network, depending on the requirements of each particular implementation.
One or more components of networked environment 905 may perform one or more of the tasks described as being performed by one or more other components of networked environment 905.
Processor 1005 may include any type of conventional processor, microprocessor, or processing logic that interprets and executes instructions. Main memory 1010 may include a random-access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 1005. ROM 1015 may include a conventional ROM device or another type of static storage device that stores static information and instructions for use by processor 1005. Storage device 1020 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device(s) 1025 may include one or more conventional mechanisms that permit a user to input information to computing device 1000, such as a keyboard, a mouse, a pen, a stylus, handwriting recognition, voice recognition, biometric mechanisms, and the like. Output device(s) 1030 may include one or more conventional mechanisms that output information to the user, including a display, a projector, an A/V receiver, a printer, a speaker, and the like. Communication interface 1035 may include any transceiver-like mechanism that enables computing device/server 1000 to communicate with other devices and/or systems. For example, communication interface 1035 may include mechanisms for communicating with another device or system via a network, such as network 1035 as shown in
As will be described in detail below, computing device 1000 may perform operations based on software instructions that may be read into memory 1010 from another computer-readable medium, such as data storage device 1020, or from another device via communication interface 1035. The software instructions contained in memory 1010 cause processor 1005 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with the present invention. Thus, various implementations are not limited to any specific combination of hardware circuitry and software.
Certain embodiments of the present invention described herein are discussed in the context of the global data communication network commonly referred to as the Internet. Those skilled in the art will realize that embodiments of the present invention may use any other suitable data communication network, including without limitation direct point-to-point data communication systems, dial-up networks, personal or corporate Intranets, proprietary networks, or combinations of any of these with or without connections to the Internet.
While the above description contains many specifics and certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention is not limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art, as mentioned above. The invention includes any combination or subcombination of the elements from the different species and/or embodiments disclosed herein.
This application claims priority of U.S. patent application Ser. No. 13/831,180, entitled “Head-Mounted Display,” and filed Mar. 14, 2013. The entirety of each of the foregoing patent applications is incorporated by reference herein to the extent consistent with the present disclosure.
Number | Date | Country | |
---|---|---|---|
Parent | 13831180 | Mar 2013 | US |
Child | 15474565 | US |