Patent Publication Number: US-10325411-B1

Title: Egocentric odometry system for maintaining pose alignment between real and virtual worlds

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Patent Application No. 62/598,121, filed Dec. 13, 2017, titled “Egocentric Odometry for Maintaining Pose Alignment between Real and Virtual Worlds,” the entire contents of which are hereby incorporated by reference herein, for all purposes. 
    
    
     TECHNICAL FIELD 
     The present invention relates to navigation systems and, more particularly, to navigation systems that combine inputs from fiducial-based and odometry-based location systems to estimate pose solutions, such as for augmented or virtual reality systems. 
     BACKGROUND ART 
     Many systems benefit from, or require, real-time information about location and/or orientation (pointing direction) of the systems. Examples include augmented reality (AR) glasses (head-mounted displays), guided munitions and aircraft. For example, an AR system needs information about its location in space and its pointing direction (collectively referred to as “pose”) in order to accurately overlay graphics, such as virtual objects or text, on an image or view of the real world. 
     One conventional method for automatically determining pose involves use of reference points in the real world that are identified by visible marks (“fiducial markers” or simply “fiducials”) and have known locations. Fiducials may be manually placed in a real world environment in which a system will operate, such as by adhering tags bearing matrix barcodes (often referred to as Quick Response Codes or “QR” codes) on objects in the real world. Optionally or alternatively, fiducials may be intrinsic to the environment, such as doorways, tables, signs or edges and corners of real world objects. Other methods for automatically determining pose involve illuminating a scene with structured visible or invisible, such infrared (IR), light, or measuring time-of-flight of light signals between objects and a camera to automatically measure distances to the objects. 
     However, many of these approaches rely on building a virtual map of the environment and then using the map to localize position. These approaches require significant computational resources and memory. In addition, they depend on static features in the environment to build and maintain the virtual map and are, therefore, brittle to changes in that environment. In other words, once a mapped feature moves, it must be re-mapped. Active systems, such as structured light systems, consume power flooding the environment with light. Furthermore, such active systems do not perform well or at all outdoors in direct sunlight. 
     Instead of fiducials or structured light, some systems use inertial measurement units (IMUs) to measure forces and angular rates of change (rotations) about one, two or three axes to ascertain system pose. However, IMU-based systems are known to accumulate error over time (drift) and to exhibit repeatability problems. Some IMU-based navigation systems include global positioning system (GPS) receivers to ascertain location, but not pointing direction, from satellite signals and occasionally correct for the drift in the IMU-based systems. However, GPS receivers require that their antennas have clear views of the sky, which may not be available inside buildings, in “urban canyons,” or in other such environments where clear views of the sky are otherwise unavailable. 
     SUMMARY OF EMBODIMENTS 
     An embodiment of the present invention provides a navigation system. The navigation system operates within a reference frame. The navigation system includes a fiducial-based location system and an odometry-based location system. The fiducial-based location system is configured to use fiducials that are fixed, relative to the reference frame, to provide fiducial-based pose information. The navigation system also includes a navigation filter. The navigation filter is coupled to the fiducial-based location system to receive the fiducial-based pose information from the fiducial-based location system. The navigation filter is coupled to the odometry-based location system to receive odometry-based pose information from the odometry-based location system. The navigation filter is configured to repeatedly provide pose solutions. Each pose solution is based at least in part on the fiducial-based pose information when a sufficient number of the fiducials is recognized by the fiducial-based location system to provide the fiducial-based pose information, and on the odometry-based pose information when an insufficient number of the fiducials is recognized by the fiducial-based location system to provide the fiducial-based pose information. 
     The odometry-based location system may include an inertial measurement unit, a non-fiducial, vision-aided navigation unit, and/or a rotary encoder. 
     The navigation filter may be further configured to correct the odometry-based location system based at least in part on the fiducial-based pose information when a sufficient number of the fiducials is recognized by the fiducial-based location system to provide the fiducial-based pose information. 
     The fiducial-based location system may include an optical fiducial-based location system. 
     The fiducial-based location system may include a radio frequency fiducial-based location system. 
     The navigation filter may be configured to provide the pose solutions to a mixed reality system. 
     The reference frame may be moveable within a global reference frame. The navigation system may also include a third location system, distinct from the fiducial-based location system and distinct from the odometry-based location system. The third location system may be configured to automatically ascertain location or movement of the reference frame within the global reference frame. The navigation filter may be further configured, in providing the pose solutions, to compensate for the location or movement of the reference frame within the global reference frame. 
     The third location system may include a global positioning system receiver. 
     The fiducial-based location system may include a model of an environment. The model may include identifications of a plurality of physical features within the environment. Each physical feature of the plurality of physical features may represent a respective one of the fiducials. 
     The navigation system may also include a fourth location system, distinct from the fiducial-based location system and distinct from the odometry-based location system. Each pose solution may be based at least in part on location information from the fourth location system. 
     The fourth location system may include a global positioning system receiver, a LiDAR, an atmospheric pressure-based location system and/or a machine-learning-based localization system. 
     Another embodiment of the present invention provides a method for operating a navigation system within a reference frame. The method includes attempting to recognize a sufficient number of fiducials that are fixed, relative to the reference frame, to provide fiducial-based pose information. When a sufficient number of the fiducials is recognized, the fiducial-based pose information is provided. Odometry-based pose information is provided, independently of the fiducials and independently of the fiducial-based pose information. Pose solutions are repeatedly provided. A given pose solution is based at least in part on the fiducial-based pose information when a sufficient number of the fiducials is recognized. The pose solution is based on the odometry-based pose information when an insufficient number of the fiducials is recognized to provide the fiducial-based pose information. 
     Providing the odometry-based pose information includes using an odometry-based location system that includes an inertial measurement unit, a non-fiducial, vision-aided navigation unit and/or a rotary encoder to provide the odometry-based pose information. 
     Optionally, the odometry-based pose information may be corrected based at least in part on the fiducial-based pose information when a sufficient number of the fiducials is recognized to provide the fiducial-based pose information. 
     Using the fiducials that are fixed, relative to the reference frame, to provide the fiducial-based pose information may include using an optical fiducial-based location system or a radio frequency fiducial-based location system. 
     The pose solutions may be provided to a mixed reality system. 
     The reference frame may be moveable within a global reference frame. Location or movement of the reference frame within the global reference frame may be automatically ascertained, independently of the fiducials, the fiducial-based pose information and the odometry-based pose information. Providing the pose solutions may include automatically compensating for the location or movement of the reference frame within the global reference frame. 
     Automatically ascertaining location or movement of the reference frame within the global reference frame may include using a global positioning system receiver. 
     Providing the fiducial-based pose information may include using a model of an environment. The model may include identifications of a plurality of physical features within the environment. Each physical feature of the plurality of physical features may represent a respective one of the fiducials. 
     Additional location information may be provided from a location system, independently of the fiducials, independently of the fiducial-based pose information and independently of the odometry-based pose information. The pose solutions may be provided based at least in part on the additional location information. 
     The additional location information may be provided by a global positioning system receiver, a LiDAR, an atmospheric pressure-based location system and/or a machine-learning-based localization system. 
     Yet another embodiment of the present invention provides a non-transitory computer-readable medium encoded with instructions. When executed by a processor, the instructions establish processes for performing a computer-implemented method for operating a navigation system within a reference frame. The processes include a process configured to attempt to recognize a sufficient number of fiducials that are fixed, relative to the reference frame, to provide fiducial-based pose information. A process is configured to, when a sufficient number of the fiducials is recognized, provide the fiducial-based pose information. A process is configured to provide odometry-based pose information, independently of the fiducials and independently of the fiducial-based pose information. A process is configured to repeatedly provide pose solutions, including basing a given pose solution at least in part on the fiducial-based pose information when a sufficient number of the fiducials is recognized, and basing the pose solution on the odometry-based pose information when an insufficient number of the fiducials is recognized to provide the fiducial-based pose information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention will be more fully understood by referring to the following Detailed Description of Specific Embodiments in conjunction with the Drawings, of which: 
         FIG. 1  is a schematic diagram of a navigation system, according to an embodiment of the present invention. 
         FIG. 2  is a schematic diagram of a camera having a field of view and an optical axis and that may be used in a fiducial-based location system within the navigation system of  FIG. 1 , according to an embodiment of the present invention. 
         FIG. 3  is a schematic diagram of a radio frequency (RF) receiver and several RF transmitters which, collectively, may be used as a fiducial-based location system within the navigation system of  FIG. 1 , according to an embodiment of the present invention. 
         FIG. 4  is a schematic diagram of a navigation system that may move within a global reference frame, according to an embodiment of the present invention. 
         FIGS. 5( a ) and 5( b )  collectively form a flow chart schematically illustrating operations performed by the navigation system of  FIGS. 1 and 4 , according to an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS 
     Embodiments of the present invention provide navigation systems that provide pose, i.e., location and orientation, solutions using best available location information from two or more location systems. One of the location systems is a fiducial-based location system, which is accurate when a sufficient number of fiducials is recognized. However, when an insufficient number of fiducials is recognized, an odometry-based location system is used. Although the odometry-based location system is subject to drift, when a sufficient number of fiducials is recognized, the fiducial-based location system is used to correct the odometry-based location system. These embodiments provide robust, accurate and timely pose solutions, such as for augmented reality (AR) or virtual reality (VR) systems, without the time-consuming requirement to establish and localize many fiducials, or the computational and memory requirements, of pure fiducial-based location systems, and without the inherent drift of pure odometry-based location systems. 
     As used herein, pose means location in three-dimensional space of a camera or other sensor or a living being (a “user”), and orientation, i.e., direction, such as angles relative to axes of a reference frame, in which the camera or other sensor or the user is aimed. 
     As used herein, a fiducial-based location system is a system that includes a sensor to detect fiducials that are fixed in place, relative to a reference frame in which the fiducial-based location system operates. Thus, the global positioning system (GPS) is not a fiducial-based location system, because GPS satellites orbit the earth (not in geosynchronous orbits) and are not, therefore, fixed in place, relative to the reference frame used by the GPS. A fiducial-based location system detects the fiducials, such as with a camera, and uses apparent locations of, or angles or distances to, the detected fiducials to automatically calculate the camera&#39;s pose, relative to the reference frame. 
     Fiducials may be passive or active. Passive fiducials do not generate signals. That is, passive fiducials merely reflect signals, such as visible or invisible (to humans) light, audible or inaudible (to humans) sound or radio frequency (RF) signals. Examples of passive fiducials include reflective visual markers paced on objects within a scene. Passive fiducial markers may be illuminated by natural light, such as from the sun, or they may be illuminated by artificial light, such as from lamps that are parts of the scene or by lamps or sonic generators in fiducial-based location systems. Some fiducial-based location systems use intrinsic aspects, such as corners or edges, of objects, or recognize the objects themselves, such as doors or tables, in the scene, rather than, or in addition to, markers placed on the objects. 
     Active fiducials generate signals of their own. Examples include RF transmitters used by an RF receiver to measure angles and/or distances to the transmitters, such as by steering a phased array of antennas or measuring time-difference of arrival (TDOA) of signals from the transmitters. 
     As used herein, mixed reality system means a computer system that delivers stimulation to a living being (a “user”), where some aspect of the stimulation depends on pose of a camera or other sensor or of the user. The stimulation may be visual, auditory, haptic and/or olfactory. The stimulation is designed to represent something real or virtual in 2- or 3-dimensional space, such as a table, chair, doorway, pipe, text or real or fictional being. Examples of mixed reality systems include, but are not limited to, virtual reality (VR) systems, in which everything presented to the user is virtual and not mapped onto the real environment of the user, and augmented reality (AR) systems, in which the user perceives at least a portion of the real environment with the presentations mapped on the real environment. 
       FIG. 1  is a schematic diagram of a navigation system  100 , according to an embodiment of the present invention. The navigation system  100  operates within a reference frame, represented by three mutually-orthogonal axes  102 . That is, as the navigation system  100  changes pose within the reference frame  102 , the navigation system  100  outputs real-time pose solutions  104  to another system. A navigation filter  106  receives fiducial-based pose information  108  from a fiducial-based location system  110 , and odometry-based pose information  112  from an odometry-based location system  114 . 
     In the embodiment shown in  FIG. 1 , the navigation system  100  provides real-time pose solutions  104  to a mixed reality system  116 , although in other embodiments the pose solutions  104  may be provided to another system, such as a guided munition  118 , a manned or unmanned aircraft  120  or ground robot (not shown). The mixed reality system  116  may use the real-time pose solutions  104  to select where to display or overlay graphics, such as virtual objects or text, on an image or view of the real world, or on an image of a virtual world, as a user  122  changes his or her pose within the reference frame  102 . Examples of output devices that may be used by the mixed reality system  116  include VR goggles (such as HTC Vive virtual reality system available from Samsung Electronics Co., Ltd., 85 Challenger Road, Ridgefield Park, N.J. 07660 or Oculus Rift virtual reality system available from Oculus VR, LLC, 19800 MacArthur Boulevard, Suite 200, Irvine, Calif. 92612), AR glasses  124  (such as Daqri Smart Glasses augmented reality display available from Daqri, 1201 W. 5th Street, Suite T-900, Los Angeles Calif., 90017, HoloLens augmented reality display available from Microsoft Corporation, 700 Bellevue Way, Bellevue, Wash. 98804 or Google Glass display available from Google LLC, 1600 Amphitheatre Parkway, Mountain View, Calif. 94043), mobile phone or tablet displays  126 , stereophonic or 3-dimensional (3D) audio headphones  128  and haptic gloves  130 . Although embodiments are described as providing graphic outputs, other embodiments provide auditory, haptic and/or olfactory outputs. 
     For clarity, the navigation filter  106  is shown separate from the fiducial-based location system  110  and the odometry-based location system  114 . However, these items can share components. 
     The fiducial-based location system  110  uses an appropriate sensor  132 , such as a visible light or infrared (IR) camera, to detect and recognize fiducials, represented by fiducials  134 ,  136  and  138 , within the fiducial-based location system&#39;s  110  field of view  142 . At any given time, some or all of the fiducials may be outside the field of view  142  of the sensor  132 , as exemplified by fiducial  140 . The navigation system  100  is configured such that the field of view  142  of the sensor  132  changes in correlation with changes in the user&#39;s  122  pose. For example, the mixed reality system  116  may include a camera  144  that remains oriented in the direction of the user&#39;s  122  pose. The fiducials  134 - 140  may be markers placed on objects, and/or the fiducials  134 - 140  may be intrinsic to objects in the scene, for example corners of a table, as exemplified by corner  146 . 
     As noted, in some embodiments, the fiducial-based location system  110  includes an optical fiducial-based location system.  FIG. 2  is a schematic diagram of a camera  200  having a field of view  202  and an optical axis  204 , which corresponds with the camera&#39;s  200  pose. The camera  200  is shown with several fiducials, represented by fiducials  206 ,  208  and  210 , within the field of view  202 . Alternatively, the fiducial-based location system  106  ( FIG. 1 ) may be implemented with a structured (visible or invisible to humans) light system (not shown). 
     In some embodiments, the fiducial-based location system  110  includes a radio frequency (RF) fiducial-based location system. For example, the sensor  132  ( FIG. 1 ) may be an RF receiver  300 , as shown schematically in  FIG. 3 , and the fiducials  134 - 140  ( FIG. 1 ) may be RF transmitters or transponders, represented by RF transmitters  302 ,  304  and  306  in  FIG. 3 . The RF receiver  300  may have one or more antennas  308 . The antennas  308  may be arranged as a phase array of antennas, to facilitate steering the antenna&#39;s  308  sensitivity and, thereby, deducing pose of the receiver  300  from relative signal strengths of the received signals. Multiple antennas  308  may be used to measure TDOA of signals, such as signal  310 , from one or more of the RF transmitters  302 - 306 . Thus, the receiver&#39;s  300  pose may be deduced from ranges to several of the RF transmitters  302 - 306  and relative strengths of signals received from the RF transmitters  302 - 306 . The very-high frequency (VHF) omni-directional radio range (VOR) system is an example of an RF fiducial-based location system. 
     Returning to  FIG. 1 , the fiducial-based location system  110  automatically estimates the user&#39;s  122  pose by measuring apparent movement of recognized fiducials  134 - 140 , from frame to frame or sample to sample, within the field of view  142 . 
     Optionally, the fiducial-based location system  110  includes a model  148  of an environment, in which the fiducial-based location system operates. The model  148  may include information, represented at  150  and  152 , about physical features within the environment, such as descriptions and locations of corners or edges of objects that may serve as fiducials, including identifications of the features. Each physical feature may represent a respective one of the fiducials  134 - 140 . The model  148  may also describe expected or possible changes in images of the environment, as a result of anticipated movements of the navigation system  100 , for example changes in reflectivity depending on illumination angle and view angle, as a result of anticipated movements of a person, drone or other moving platform. The model  148  may be used to automatically identify physical features in the environment on which fiducials markers should be placed, and/or the model  148  may be used to automatically identify physical features in the environment that the fiducial-based location system  110  should treat as intrinsic fiducials, thereby facilitating initialization of pose by the fiducial-based location system  110 , which is required to begin calculating the odometry-based pose information  112 . 
     The odometry-based location system  114  includes a sensor  154 , such as a rotary encoder mechanically coupled to a ground-engaged wheel  156  to measure rotation of the wheel  156 . The odometry-based location system  114  measures movements, forces and/or angular rates of change, such as about one, two or three axes, relative to the reference frame  102  to ascertain pose, as the navigation system  100 , or the user  122 , moves. Alternative odometry-based location systems  114  may include inertial measurement units (IMUs), non-fiducial vision-aided navigation (VAN) units that utilize humanly visible or invisible light, velocimeters, radars, stereo cameras or other types of sensors. For example, U.S. Pat. No. 8,443,662, titled “Geo-location systems and methods based on atmospheric pressure measurement,” the entire contents of which are hereby incorporated by reference herein for all purposes, describes a system that uses barometric pressure readings taken in the vicinity of a device and correlated to datasets of barometric pressure that have pressure gradients over time and space to automatically determine a location of, or path taken by, the system. 
     Optionally, one or more other sensors and/or location systems, collectively indicated at  158 , provide additional pose and/or location information  160  to the navigation filter  106 . Examples of the other sensors and/or location systems  158  include: a GPS receiver, a light detection and ranging (LiDAR) system, an atmospheric pressure-based location system, an IMU-based systems, a fiber optic gyroscopic system, a machine-learning-based localization system and the odometry-based location systems described above. It should be noted that, at any given time, the other sensor(s)  158  may not be able to provide the pose and/or location information  160 , for example when a GPS receiver&#39;s antenna does not have a clear view of a sufficient number of GPS satellites. 
     A machine-learning-based localization system includes a sensor, such as a camera sensitive to visible or invisible (to humans) light, that is configured to observe a field of view as the system moves, and to use the observed view to estimate pose, without reliance on predefined fiducials. Prior to use, the machine-learning-based localization system is trained with real or simulated views designed to represent possible or likely views. The machine-learning-based localization system automatically learns features in the training views that it can then use to estimate pose from real views. 
     As noted, the navigation filter  106  repeatedly provides real-time pose solutions  104  to the augmented reality system  116 . To estimate each pose solution, the navigation filter  106  uses the best pose information then available from the fiducial-based location system  110 , the odometry-based location system  114  and any other sensors and/or location systems  158 . For example, the pose information  108  provided by the fiducial-based location system  110  is considered to be more accurate than the pose information  112  from the odometry-based location system  114 , because the fiducial-based location system  110  does not drift, whereas the odometry-based location system  114  is subject to drift. 
     Therefore, when a sufficient number of the fiducials  134 - 138  is recognized by the fiducial-based location system  110  to provide, or sufficiently accurately provide, the fiducial-based pose information  108 , the navigation filter  106  bases the pose solution  104 , at least in part, on the pose information  108  from the fiducial-based pose system  110 . However, when an insufficient number, such as zero or fewer than four, of the fiducials  134 - 138  is recognized by the fiducial-based location system  110  to provide, or sufficiently accurately provide, the fiducial-based pose information  108 , the navigation filter  106  bases the pose solution  104 , at least in part, on the pose information  112  from the odometry-based location system  114 . In addition, when a sufficient number of the fiducials  134 - 138  is recognized by the fiducial-based location system  110  to provide the fiducial-based pose information  108 , the navigation filter  106  may send a correction signal  162  to the odometry-based location system  114  to correct drift or other error in the odometry-based location system  114 . 
     As noted, the navigation system  100  operates within a reference frame  102 . The reference frame  102  may be fixed, such as relative to earth. For example, if the navigation system  100  is used within a room in an immobile house, and the reference frame  102  is fixed relative to the room, as the user  122  changes pose, such as by moving about the room, the mixed reality system  116  accurately overlays graphics, such as virtual objects or text, on an image or view of the room. That is, the location within the display of the graphics overlays change as the user&#39;s  122  pose changes, so the overlays appear to remain registered on features of the room. 
     In some contexts, however, the reference frame  102  in which the navigation system  100  operates moves, relative to earth or relative to some other reference frame, such as the solar system. For example, the navigation system  100  may be used aboard a moving  400  or rolling  402  ship  404 , as schematically illustrated in  FIG. 4 . If the odometry-based location system  114  ( FIG. 1 ) were implemented with an IMU, the IMU would detect the movement  400  or rolling  402  of the ship  402 . However, a fiducial-based location system  110  that uses fiducials  134 - 140  ( FIG. 1 ) fixed to walls of a room onboard the ship  404  would not detect the movement  400  or rolling  402  of the ship  404  and would, therefore, provide pose information  108  ( FIG. 1 ) that is inconsistent with the pose information  112  provided by the odometry-based location system  114 . 
     Thus, in some contexts, it may be desirable for the navigation system  100  to act as though the room, or the entire ship  404 , within which the navigation system  100  is used remains stationary, relative to the reference frame  102 . The ship  404  and the reference frame  102  may be thought of as moving within a global reference frame, represented by three mutually-orthogonal axes  406 . In such a case, one of the other navigation systems  158 , or a separate navigation system  164 , such as a GPS receiver, that provides location or pose information  166  ( FIG. 1 ) relative to the global reference frame  406  may be used to compensate for the location or movement of the ship  404 . The navigation filter  106  adjusts the pose information  112  from the odometry-based location system  114  to effectively remove the location or movement of the reference frame  102  within the global reference frame  406 . 
       FIGS. 5( a ) and 5( b )  collectively form a flow chart schematically illustrating operations performed by the navigation system  100 , according to an embodiment of the present invention. At  500 , an attempt is made to recognize a sufficient number of the fiducials  134 - 140  that are fixed, relative to the reference frame  102 , to the provide fiducial-based pose information  108 . At  502 , a check is made to determine whether a sufficient number of the fiducials  134 - 140  were recognized. For example, the number of fiducials  134 - 140  that were recognized may be compared to a predetermined number, such as 3 or 4, or to a calculated number, based on a desired confidence level in the pose information  110 . If the sufficient number of fiducials  134 - 140  were recognized, control passes to  504 , where the fiducial-based pose information  110  is provided. 
     However, if an insufficient number of the fiducials  134 - 140  were recognized, control passes to  506 , where the odometry-based location system provides the odometry-based pose information  112 . If the sufficient number of fiducials  134 - 140  were recognized, at  508  control passes to  510 , where the navigation filter  106  provides the pose solution  104  based at least in part on the fiducial-based pose information  110 . In addition, if the sufficient number of fiducials  134 - 140  were recognized, at  512  the odometry-based pose information  112 , and the odometry-based navigation system  114 , is corrected, based on the fiducial-based pose information  110 . 
     On the other hand, if an insufficient number of fiducials  134 - 140  were recognized, control passes to  514 , where the navigation filter  106  provides the pose solution  104  based at least in part on the odometry-based pose information  112 . In either case, control passes to  516 , where, optionally, the location or movement of the reference frame  102  within a global reference frame  406  is ascertained. At  518 , the location or movement of the reference frame  102  within the global reference frame  406  is optionally used to compensate the pose solution  104 . 
     Optionally, at  520 , the other navigation system(s)  158  are used to provide additional location and/or pose information  160  to the navigation filter  106 , and at  522  this additional location and/or pose information  160  is used, at least in part, to estimate the pose solution  104 . 
     At  524 , the estimated pose solution  104  is provided to a mixed reality system  116  or to another system, such as the guided munition  118 , the aircraft  120  or a ground robot (not shown). 
     Optionally, at  526 , a model of the environment may be used to provide the pose solution based on the fiducial-based pose information  108 . 
     Thus, when a sufficient number of the fiducials  134 - 140  is in view, the navigation filter  106  uses them. However, when an insufficient number of the fiducials  134 - 140  is in view, the navigation filter  106  seamlessly switches to the odometry-based navigation information  112 . The result is a tracking system that always provides the best available, most accurate pose solution  104  to the mixed reality system  116 . In addition, the navigation filter  106  treats fixes from fiducials as ground truth, and the navigation filter  106  automatically updates the calculated odometry-based solution and removes accumulated error. 
     Advantageously, embodiments of the present invention need not build a virtual map of the environment or use such a map to estimate poses, thereby requiring fewer computational and memory resources (and therefore less power and volume) than prior art systems. Lower power and volume requirements facilitate longer operations, larger distances over which accurate solutions can be calculated and, therefore, greater portability. Furthermore, embodiments of the present invention calculate odometry in only an egocentric manner, i.e., no off-board processing is required, they do not require any advance information about the environment in which they are to operate, and performance is not affected by changes in the environment, unlike systems that rely on simultaneous mapping and localization (SLAM), which assume their environments are static. 
     The navigation filter  106 , the fiducial-based location system  110 , the odometry-based location system  114 , the other navigation system  158 , the separate navigation system  144  and the model  148  may be fully or partially implemented by one or more processors executing instructions stored in a memory. The instructions may, for example, implement algorithms, such as those illustrated in  FIGS. 5( a )-( b )  and as described herein. 
     While the invention is described through the above-described exemplary embodiments, modifications to, and variations of, the illustrated embodiments may be made without departing from the inventive concepts disclosed herein. For example, although specific types of fiducial-based location systems and specific types of odometry-based location systems may be recited in relation to disclosed embodiments, within the scope of the invention, other types of these system may be used. Unless otherwise indicated in context, or would be understood by one of ordinary skill in the art, terms such as “about” mean within ±20%. 
     As used herein, including in the claims, the term “and/or,” used in connection with a list of items, means one or more of the items in the list, i.e., at least one of the items in the list, but not necessarily all the items in the list. As used herein, including in the claims, the term “or,” used in connection with a list of items, means one or more of the items in the list, i.e., at least one of the items in the list, but not necessarily all the items in the list. 
     As used herein, including in the claims, an element described as configured to perform an operation “or” another operation, for example “a third location system configured to automatically ascertain location or movement of the reference frame within the global reference frame,” is met by an element that is configured to perform one of the operations. That is, the element need not be configured operate in one mode in which it performs one of the operations, and in another mode in which it performs the other operation. The element may, but need not, be configured to perform more than one of the operations. 
     For example, “automatically ascertaining location or movement of the reference frame within the global reference frame” means: (a) automatically ascertaining location of the reference frame within the global reference frame, or (b) automatically ascertaining movement of the reference frame within the global reference frame or (c) automatically ascertaining location and movement of the reference frame within the global reference frame. “Automatically ascertaining location or movement of the reference frame within the global reference frame” does not necessarily require an ability to operate in two modes, where in one mode the location is automatically ascertained, and in the other mode the movement is automatically ascertained. 
     “Or” does not mean “exclusive or.” 
     Some embodiments of the navigation filter  106 , the fiducial-based location system  110 , the odometry-based location system  114 , the other navigation system  158 , the separate navigation system  144  and the model  148  have been described as including a processor controlled by instructions stored in a memory. The memory may be random access memory (RAM), read-only memory (ROM), flash memory or any other memory, or combination thereof, suitable for storing control software or other instructions and data. 
     Although aspects of embodiments may be described with reference to flowcharts and/or block diagrams, functions, operations, decisions, etc. of all or a portion of each block, or a combination of blocks, may be combined, separated into separate operations or performed in other orders. Those skilled in the art should readily appreciate that functions, operations, decisions, etc. of all or a portion of each block, or a combination of blocks, of the flowcharts or block diagrams may be implemented as computer program instructions, software, hardware, firmware or combinations thereof. 
     Those skilled in the art should also readily appreciate that instructions or programs defining the functions of any embodiment may be delivered to a processor in many forms, including, but not limited to, information permanently stored on non-writable storage media (e.g. read-only memory devices within a computer, such as ROM, or devices readable by a computer I/O attachment, such as CD-ROM or DVD disks), information alterably stored on writable storage media (e.g. floppy disks, removable flash memory and hard drives) or information conveyed to a computer through communication media, including wired or wireless computer networks. In addition, while the invention may be embodied in software, the functions necessary to implement the invention may optionally or alternatively be embodied in part or in whole using firmware and/or hardware components, such as combinatorial logic, Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs) or other hardware or some combination of hardware, software and/or firmware components. 
     Disclosed aspects, or portions thereof, may be combined in ways not listed above and/or not explicitly claimed. In addition, embodiments disclosed herein may be suitably practiced, absent any element that is not specifically disclosed herein. Accordingly, the invention should not be viewed as being limited to the disclosed embodiments.