English:
[0001] Global Navigation Satellite System (GNSS) receivers may be used to determine an electronic device's position. The GNSS receivers receive GNSS signals, such as Global Positioning System (GPS), Galileo, Glonass or Compass signals, from GNSS satellites. Based on the received GNSS signals, an electronic device's position may be calculated. However, the GNSS signals are generally not available, or are greatly attenuated, in indoor environments, since the GNSS signals were not designed to penetrate physical structures.
[0002] In indoor environments, the electronic device may still determine its position. An electronic device may determine its position based on signals received from wireless fidelity (WiFi) access points (APs). For example, an approximate location may be determined by receiving the positions of one or more WiFi APs, and attempting to trilaterate the electronic device's position from the WI-FI APs positions. In some conditions, it may be useful to utilize GNSS signals either in addition to indoor transceiver signals, such as WiFi access point signals, or, in some situations, such as where WiFi signals or other indoor transceiver signals are unreliable or unavailable, instead of indoor transceiver signals. However, leaving an electronic device's GNSS receiver powered on despite a lack of reception, or constantly powering on an electronic device's GNSS receivers to test for GNSS satellite reception, consumes an electronic device's limited power and computing resources.
[0003] An example of a method for indoor position determination by a mobile device as described herein includes determining a first indoor position of the mobile device based on indoor transceiver signals; determining, based at least in part on the determined first indoor position, that global navigation satellite system (GNSS) positioning signals are visible; and determining a second indoor position of the mobile device based, at least in part, on GNSS positioning signals.
[0004] An example of a mobile device for enabling indoor position determination as described herein includes a memory to store a position estimation engine and a detector; a GNSS receiver; and a processor coupled with the memory and the GNSS receiver and configured to execute the position estimation engine and the detector to determine a first indoor position of the mobile device based on indoor transceiver signals, determine, based at least in part on the determined first indoor position, that global navigation satellite system (GNSS) positioning signals are visible, and determine a second indoor position of the mobile device based, at least in part, on GNSS positioning signals.
[0005] An example of a computer readable storage medium as described herein includes code for indoor position determination by a mobile device that, when executed by a processor, causes the processor to determine a first indoor position of the mobile device based on indoor transceiver signals; determine, based at least in part on the determined first indoor position, that GNSS positioning signals are visible; and determine a second indoor position of the mobile device based, at least in part, on GNSS positioning signals.
[0006] An example of a system for indoor position determination by a mobile device as described herein includes means for determining a first indoor position of the mobile device based on indoor transceiver signals; means for determining, based at least in part on the determined first indoor position, that GNSS positioning signals are visible; and means for determining a second indoor position of the mobile device based, at least in part, on GNSS positioning signals.
[0007] An example of a method for a server computer system to enable indoor position determination by a mobile device as described herein includes receiving a map of a physical structure, wherein the map includes at least data indicative of a real-world layout of the physical structure; analyzing the map to determine GNSS signal visibility data that includes at least one position relative to the map where global navigation satellite system (GNSS) positioning signals are visible to a mobile device at a corresponding real-world position within the physical structure; and providing the GNSS signal visibility data to the mobile device in response to a request from the mobile device.
[0008] An example of a server computer system to enable indoor position determination by a mobile device as described herein includes a memory to store a directory assistance engine, a structure map analysis engine, and a map of a physical structure; and a processor coupled with the memory and configured to execute the directory assistance engine and the structure map analysis engine to receive the map of a physical structure, wherein the map includes at least data indicative of a real-world layout of the physical structure, analyze the map to determine GNSS signal visibility data that includes at least one position relative to the map where global navigation satellite system (GNSS) positioning signals are visible to a mobile device at a corresponding real-world position within the physical structure, and provide the GNSS signal visibility data to the mobile device in response to a request from the mobile device.
[0009] An example of a computer readable storage medium as described herein includes code to enable indoor position determination by a mobile device, that, when executed by a processor, causes the processor to receive a map of a physical structure, wherein the map includes at least data indicative of a real- world layout of the physical structure; analyze the map to determine GNSS signal visibility data that includes at least one position relative to the map where GNSS positioning signals are visible to a mobile device at a corresponding real-world position within the physical structure; and provide the GNSS signal visibility data to the mobile device in response to a request from the mobile device.
[0010] An example of a system for a server computer system to enable indoor position determination by a mobile device as described herein includes means for receiving a map of a physical structure, wherein the map includes at least data indicative of a real-world layout of the physical structure; means for analyzing the map to determine GNSS signal visibility data that includes at least one position relative to the map where GNSS positioning signals are visible to a mobile device at a corresponding real-world position within the physical structure; and means for providing the GNSS signal visibility data to the mobile device in response to a request from the mobile device.
[0011] Figure 1 is a block diagram of an exemplary system architecture for enabling the use of GNSS signals indoors;
[0012] Figure 2 is block diagram of one embodiment of a mobile device and an assist data server;
[0013] Figure 3A is an example of a detailed map of the interior of a physical structure;
[0014] Figure 3B is another example of a detailed map of the interior of a physical structure;
[0015] Figure 4 is a flow diagram of one embodiment of a method for indoor position determination by a mobile device.
[0016] Figure 5A is a flow diagram of one embodiment of a method for analyzing a map of a physical structure to determine GNSS signal visibility;
[0017] Figure 5B is a flow diagram of one embodiment of a method for transmitting GNSS signal visibility data to a mobile device;
[0018] Figure 6 is a flow diagram of one embodiment of a method for enabling a mobile device to utilize GNSS signals inside a physical structure; and
[0019] Figure 7 is a flow diagram of one embodiment of a method for refining GNSS signal visibility data.
[0020] The word "exemplary" or "example" is used herein to mean "serving as an example, instance, or illustration." Any aspect or embodiment described herein as "exemplary" or as an "example" in not necessarily to be construed as preferred or advantageous over other aspects or embodiments.
[0021] Figure 1 is a block diagram of an exemplary system architecture 100 for enabling the use of GNSS signals indoors. In one embodiment, the system 100 includes a mobile device 1 10 within a physical structure 120. In one embodiment, mobile device 1 10 may be a mobile computing device, such as a mobile telephone, personal digital assistant, tablet computer, etc. In one embodiment, the physical structure 120 may be a shopping mall, aviary, airport, grocery store, company building, or any other physical structure.
[0022] The techniques presented herein are not restricted to the use of GNNSS data, such as GPS, Galileo, Glonass or Compass data, for satellite- based positioning. For example, the techniques provided herein may be applied to or otherwise enabled for use in various regional systems, such as, e.g., Quasi- Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, Beidou over China, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise enabled for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provides integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi- functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like.
[0023] In one embodiment, system 100 also includes a plurality of GNSS satellites 120-1 through 120-N that transmit GNSS signals, a plurality of indoor transceivers 130-1 through 130-M, such as WiFi access points, Bluetooth transceivers, Femto cells, etc., located within physical structure 120 that provide wireless network access for devices, such as mobile device 1 10, to network 102, and assist data server 240 which is coupled with network 102. The assist data server 240 may also be a computing device, such as a server computer, desktop computer, etc.
[0024] The assist data server 240 and mobile device 1 10 may be coupled to network 102, which provides data transfer via any of the standard protocols for the exchange of information. In one embodiment, mobile device 1 10 is coupled with network 102 via a wireless connection provided by one of indoor transceivers 130-1 through 130-M, a cellular telephone connection, or other wireless connection. The mobile device 1 10 and assist data sever 240 may run on one Local Area Network (LAN) and may be incorporated into the same physical or logical system, or different physical or logical systems. Alternatively, the mobile device 1 10 and assist data sever 240 may reside on different LANs, wide area networks, cellular telephone networks, etc. that may be coupled together via the Internet but separated by firewalls, routers, and/or other network devices. In yet another configuration, the assist data server 240 may reside on the same server, or different servers, coupled to other devices via a public network (e.g., the
[0025] In one embodiment, the mobile device 1 10 determines a real world location based on GNSS signals provided by one or more of GNSS satellites 120- 1 through 120-N, and signals provided by one or more of indoor transceivers APs 130-1 through 130-M. Typically, mobile device 1 10 could determine its position with GNSS signals provided by GNSS satellites 120-1 through 120-N when mobile device is outside physical structure 120. Furthermore, mobile device 1 10 would typically determine its position with signals provided by indoor transceivers APs 130-1 through 130-M when mobile device is within physical structure 120. In one embodiment, as discussed in greater detail below, mobile device 1 10 activates a GNSS receiver (not shown) based on a determined location within physical structure 120 that is determined from signals transmitted by at least one of indoor transceivers 130-1 through 130-M. In one embodiment, mobile device 1 10 receives GNSS signals from GNSS satellites 120-1 through 120-N through portions 122 of physical structure, for example, windows, skylights, atriums or other structures which allows GNSS signals to pass through, which provide mobile device 1 10 visibility to one or more of GNSS Satellites 120-1 through 120- N. Upon activation of the GNSS receiver of mobile device 1 10, mobile device 1 10 determines its position based on received GNSS signals, or a combination of the GNSS signals and indoor transceiver signals.
[0026] In one embodiment, when mobile device 1 10 determines an indoor position from signals received from one or more of indoor transceivers 130-1 through 130-M, mobile device 1 10 communicates the position data to assist data server 240 via network 102 as a request for indoor GNSS signal visibility. In one embodiment, assist data server 240 utilizes the received location data to determine which physical structure mobile device 1 10 is within. Based on the determination that mobile device is within a physical structure (i.e., physical structure 120 illustrated in Figure 1 ), assist data server 240 responds to mobile device 1 10 by transmitting mobile device 1 10 indoor GNSS signal visibility data. In one embodiment, the indoor GNSS signal visibility data includes data indicative of locations within physical structure 120 where GNSS signals may be receivable by mobile device 1 10. For example, a window, skylight, atrium, section of vertical windows, open air area, etc. may enable mobile device 1 10 to receive GNSS signals from one or more of GNSS satellites 120-1 through 120-N. In one embodiment, the indoor GNSS signal visibility data encodes the locations within physical structure 120 where GNSS signals may be available as location points, polygonal areas, etc. In one embodiment, the indoor GNSS signal visibility data may be generated by assist data server 240 on-the-fly in response to mobile device's 1 10 current location. In one embodiment, the indoor GNSS signal visibility data may be pre-generated by assist data server 240. The generation of the indoor GNSS signal visibility data is discussed in greater detail below in Figure 4.
[0027] In one embodiment, in response to receipt of the indoor GNSS signal visibility data, mobile device 1 10 determines from the indoor GNSS signal visibility data whether mobile device 1 10 is at a location within physical structure 120 where GNSS signals may be received. When mobile device 1 10 determines that it is within such an area, mobile device 1 10 activates its GNSS receiver (not shown) to receive GNSS signals from one or more of GNSS Satellites 120-1 through 120-N. In one embodiment, mobile device 1 10 utilizes the received GNSS signal to determine its real world or physical location. In one embodiment, the GNSS based signal measurements may be combined with the indoor transceiver based signal measurements to refine mobile device's 1 10 determined location within physical structure 120. In another embodiment, mobile device 1 10 may disregard a location determined from indoor transceiver signals, such as signals received from WiFi APs, and utilize only the location determined from received GNSS signal measurements or, in the alternative, determine the location only from the indoor transceiver signals, ignoring the GNSS signal measurements, or some combination of the two sets of signals based on the quality, strength, or multi-path characteristics of the received signals. Because mobile device 1 10 determines when to turn on and utilize its GNSS receiver based on indoor location and assist data, including GNSS signal visibility data, mobile device 1 10 conserves power and computing resources. That is, mobile device 1 10 need not periodically turn on its GNSS receiver merely to determine that no GNSS signals are available. Instead mobile device 1 10 activates its GNSS receiver when there is a likelihood of available GNSS signals and, in some embodiments, only when the location determined from the indoor transceivers is also below a certain accuracy threshold. Furthermore, the use of GNSS signals to supplement, enhance, or replace a location determined from indoor transceiver signals, increases the accuracy of an indoor location determined by mobile device 1 10 from the indoor transceiver signals alone.
[0028] In one embodiment, when mobile device 1 10 determines, based on the indoor GNSS signal visibility data, to activate its GNSS receiver, mobile device 1 10 further transmits data indicative of the success, failure, signal strength, number of satellites, which satellites were visible, and/or other GNSS signal quality related factors to assist data server 240. In one embodiment, as discussed in greater detail below, assist data server 240 refines indoor GNSS signal visibility data based on mobile device's 1 10 communicated results. For example, the indoor GNSS signal visibility data may be modified to reflect the lack of available satellites, or inability to obtain a GNSS signal, in order to remove, modify, move or shrink indoor GNSS signal visibility data for a location within physical structure's 120 assist data. Conversely, the indoor GNSS signal visibility data may be modified to reflect the ability of mobile device 1 10 to obtain a strong GNSS signal in a previously determined weak indoor reception area. In some embodiments, the satellites, received and the time of receipt can be used to refine the angle of visibility of satellite signals from a given physical location as reported within the GNSS assist data. In one embodiment, assist data server 240 receives such feedback data from a plurality of mobile devices (not shown) to perform crowd sourcing refinements of the GNSS signal visibility data over a period of time. The constant refinement of the GNSS visibility data ensures that the GNSS visibility data is accurate, up to date, and reflects real-world user results. In some embodiments, assist data server 240 may also provide GNSS assistance such as GNSS ephemeris data, almanac data, time and/or satellite constellation information. In other embodiments, a separate GNSS-capable location server (not shown), may be utilized to provide GNSS assistance such as
[0029] Figure 2 is block diagram of one embodiment 200 of a mobile device and an assist data server. Mobile device 210 and assist data server 240 provide additional details for mobile device 1 10 and assist data server 240 discussed above in Figure 1.
[0030] In one embodiment, mobile device 210 is a system, which may include one or more processors 212, a memory 205, I/O controller 225, GNSS receiver 216, network interface 204, and display 220. Mobile device 210 may also include a number of processing modules, which may be implemented as hardware, software, firmware, or a combination, such as detector 235 and position estimation engine 230. It should be appreciated that mobile device 210 may also include, although not illustrated, a user interface (e.g., keyboard, touchscreen, or similar devices), a power device (e.g., a battery), as well as other components typically associated with electronic devices. Network interface 204 may also be coupled to a number of wireless subsystems 215 (e.g., Bluetooth, WiFi, Cellular, or other networks) to transmit and receive data streams through a wireless link to/from a network, or may be a wired interface for direct connection to networks (e.g., the Internet, Ethernet, or other wireless systems). In one embodiment, both network interface 204 and wireless subsystem couple mobile device 210 to network 202.
[0031] Memory 205 may be coupled to processor 212 to store instructions for execution by processor 212. In some embodiments, memory 205 is non- transitory. Memory 205 may also store one or more GNSS signal visibility data or modules (i.e., position estimation engine 230 and/or detector 235) to implement embodiments described below. It should be appreciated that embodiments as will be hereinafter described may be implemented through the execution of instructions, for example as stored in the memory 205 or other element, by processor 212 of mobile device 210 and/or other circuitry of mobile device 210 and/or other devices. Particularly, circuitry of mobile device 210, including but not limited to processor 212, may operate under the control of a program, routine, or the execution of instructions to execute methods or processes in accordance with some embodiments. For example, such a program may be implemented in firmware or software (e.g. stored in memory 205 and/or other locations) and may be implemented by processors, such as processor 212, and/or other circuitry of mobile device 210. Further, it should be appreciated that the terms processor, microprocessor, circuitry, controller, etc., may refer to any type of logic or circuitry capable of executing logic, commands, instructions, software, firmware, functionality and the like.
[0032] Further, it should be appreciated that some or all of the functions, engines or modules described herein may be performed by mobile device 210 itself and/or some or all of the functions, engines or modules described herein may be performed by another system connected through I/O controller 225 or network interface 204 (wirelessly or wired) to mobile device 210. Thus, some and/or all of the functions may be performed by another system and the results or intermediate calculations may be transferred back to mobile device 210. In some embodiments, such other device may comprise a server, such as assist data server 240 configured to process information in real time or near real time. In some embodiments, the other device is configured to predetermine the results, for example based on a known configuration of the mobile device 210.
[0033] In one embodiment, assist data server 240 is a system, which may also include one or more processors 242, map storage 255, and network interface 244. Assist data server 240 may also include a number or processing modules, which may be implemented as hardware, software, firmware, or a combination, such as directory assistance engine 245, structure map analysis 250 module, and a crowd sourcing analysis 260 module. In one embodiment, network interface 244 couples assist data server 240 to network 202. In one embodiment, processing modules of assist data server 240 may be located on a single server, as illustrated, or may be distributed among two or more servers communicatively coupled together via network 202. In some embodiments, assist data server 240 also provides locations of indoor transceivers, indoor transceiver signal-related information such as signal strength and/or round trip time, and/or other indoor-location related information. In some embodiments the information may be provided as annotations on an indoor map, also provided by assist data server 240.
[0034] In one embodiment, the mobile device 210 and assist data server 240 communicate with each other over various networks and network configurations as discussed above in Figure 1. In one embodiment, the interaction of mobile device 210 and assist data server 240 via network enable mobile device 210 to efficiently utilize GNSS signals when inside a physical structure.
[0035] In one embodiment, mobile device 210 receives signals from one or more indoor transceivers (not shown) that enable position estimation engine 230 to determine mobile-device's 210 indoor position. In one embodiment, because mobile device 210 is within a physical structure, GNSS receiver 216 is disabled. In one embodiment, mobile device communicates its determined indoor position to assist data server 240 via network 202. In embodiments with a separate location server (not shown), the location of the mobile device may be provided by the location server to assist data server 240 via network 202.
[0036] Assist data server 240 receives the determined indoor position of mobile device 210. Directory assistance engine 245 utilizes the indoor position to locate a map, stored in memory 255. In one embodiment, the map is a map of the physical structure that mobile device 210 is located within. Furthermore, the map includes data indicative of locations within the physical structure where GNSS signals may be available to mobile device 210. In some embodiments, the map also includes locations of indoor transceivers and/or expected signal strength and/or RTT measurements for indoor transceiver signals. In some embodiments, the map includes estimates of the size, height off of the floor and/or altitude and location of apertures as designated by physical structures, such as portions 122 of physical structure 120 illustrated in Figure 1 , in addition to mobile device locations where signals passing through physical structures are visible.
[0037] In one embodiment, the map stored in memory is pre-computed by structure map analysis 250 module. In one embodiment, an initial map that models physical structure is received by assist data server 240. In one embodiment, the initial map is a commercially available map that includes detailed data about the interior, exterior, and construction of a physical structure, such as layout, latitude and longitude of points on the map, physical dimensions of items on the map, location of stores within a structure, window locations, skylight locations, open areas, etc. In one embodiment, the map provides a detailed multi-dimensional model and/or physical description of a physical structure, in some embodiments, including the height, size and location of signal apertures, such as portions 122 of physical structure 120. An example of a detailed map 300 of the interior of a physical structure is illustrated in Figure 3A. The map 300 illustrates the first level 310, second level 320, and roof 330 of a shopping mall. In the illustrated embodiment, the roof 330 includes two windows 332 that would provide a view of, or line of sight to, a GNSS satellite for a mobile device located within the interior of the physical structure illustrated in map 300.
[0038] In one embodiment, structure map analysis 250 module of assist data sever 240 utilizes the map 300 to determine locations within the physical structure modeled by map 300 where GNSS signals may be available to a mobile device. In some embodiments, the assist data server 240 and/or the mobile device 210 may consider the time of day and the location of the members of the GNSS constellation, as provided by GNSS ephemeris, to predict which satellites will be visible to a given location through apertures such as the windows 332. As illustrated in Figure 3B, and as discussed below, area 340 and area 350 may enable a device located within those areas to receive GNSS signals from one or more GNSS satellites 120-1 through 120-N, whereas area 360 does not enable a device located within that area to receive GNSS signals. In one embodiment, structure map analysis 250 module performs ray tracing for locations on map to determine portions of the map where there is visibility of the sky. That is, the ray tracing determines where a mobile device would have visibility to the sky to enable the device to receive GNSS signals.
[0039] In one the embodiment, ray tracing is performed for each point of a grid of map, for example points in area 350. For each point in the grid, a plurality of rays are projected from the point in random directions, and traced to determine whether the ray will penetrate the structure. That is, structure map analysis 250 module determines whether each ray will pass through a window, skylight, atrium, etc. (i.e., sky penetration), or whether the ray will be blocked by a wall, roof, etc. In one embodiment, the ray tracing is a computer graphics process that is performed based on the detailed physical model and layout of the physical structure provide by map, such as the detailed physical model and layout relative to area 350. For example, ray tracing performed by structure map analysis 250 module at a grid point in area 340 may indicate that all rays 342 have sky penetration, whereas ray tracing by structure map analysis 250 module at a grid point in area 360 may indicate that all rays 362 do not have sky penetration. Furthermore, there may be locations, such as a point in area 350, where ray tracing reveals only a partial number of rays 352 achieve sky penetration, whereas some rays 354 in ray tracing do not achieve sky penetration. In one embodiment, structure map analysis 250 module stores data indicative of the locations where there is sky penetration (i.e., GNSS signals may be visible and receivable by mobile device 210), as grid points on a map. In one embodiment, the mobile device 210 analyzes whether the ray tracing data, and/or confidence levels derived from the ray tracing data, corresponds to particular satellite positions, as predicted by time and satellite ephemeris data, to determine which satellites will be visible through existing apertures and should be searched for.
[0040] In another embodiment, structure map analysis 250 module may store clusters of grid points as a polygon, where any point within the polygon has sky penetration. In one embodiment, based on results of the sky penetration analysis, a confidence level for a grid point or polygon may also be stored. For example, a grid point or polygon related with area 340, where all tracing rays achieved sky penetration, may be associated with a high confidence level, whereas a grid point or polygon related with area 350, where a portion of tracing rays achieved sky penetration, may be associated with a moderate confidence level. In one embodiment, the confidence level may be based relative to the number of tracing rays that achieve sky penetration. The grid points and/or polygons are indoor GNSS signal visibility data that provides a mobile device data indicative of where, within a physical structure, GNSS signals may be available.
[0041] In one embodiment, assist data server 240 transmits the GNSS signal visibility data (e.g., grid points or polygons relevant to a mobile device's current location), to mobile device 210. In one embodiment, the GNSS signal visibility data may be provided in a map generated from the analysis results of structure map analysis 250 module. In another embodiment, the GNSS signal visibility data may be provided in a tile, such as a rectangular, hexagonal, etc. shaped tile, which provides GNSS signal visibility data for an area of the map based on a user's estimated location. In this embodiment, the tile represents a subset of the map analyzed by structure map analysis 250 module, and transmission of the subset of GNSS signal visibility data (e.g., a tile) reduces response time and power consumption at the mobile device 210. In one embodiment, detector 235 analyzes the received indoor GNSS signal visibility data to determine whether the indoor position determined by position estimation engine 230 is within a polygon, or is covered by a sky penetration gridpoint. Where the indoor GNSS signal visibility data includes polygons, detector 235 may utilize a geometric point in a polygon test, such as using a testing ray, sign accumulation, etc. to determine if the estimated indoor location of mobile device 210 is within the polygon. Where the indoor GNSS signal visibility data is a set of grid points, detector 235 may determine whether the estimated indoor location of mobile device 210 is within a predetermined distance from the gridpoint (i.e., within 1 meter, within 2 meters, etc.).
[0042] When detector 235 determines that mobile device 210 is within a location of the interior of a physical structure where GNSS signals are available, detector activates GNSS receiver 216. GNSS receiver 216 turns on and attempts to receive GNSS signals from one or more GNSS satellites (not shown). In some embodiments, GNSS receiver 216 may also utilize GNSS ephemeris data, time and current location to determine which satellites to search for, for example, based on the likelihood that any given satellite would be visible through a particular aperture. Received GNSS signals are forwarded by GNSS receiver 216 to position estimation engine 230, which determines a GNSS-based or a hybrid GNSS and indoor terrestrial signal-based location of mobile device 210. In one embodiment, position estimation engine utilizes the GNSS based position as the location of the mobile device 210. In another embodiment, position estimation engine 230 combines the GNSS based position with the estimated indoor position determined from the indoor transceivers. In one embodiment, position estimation engine 230 uses signals from both GNSS satellites and indoor transceivers to determine a location. In one embodiment, the GNSS satellite signals may be used to compensate for directions where indoor transceivers are not available, such as toward the outside of the building, but where GNSS signals are visible through an aperture in the same direction, thereby improving the signal Dilution of Precision (DOP). The GNSS based position and/or the position estimated from the combined positioning signals enables mobile device 210 to determine a more accurate indoor position for mobile device 210 than a position that relies solely on indoor transceiver signals. Furthermore, because the GNSS receiver 216 of mobile device 210 was not activated until it was determined that mobile device 210 was located within an area of a physical structure where GNSS signals were available, power and computing resources are preserved.
[0044] Figure 4 is a flow diagram of one embodiment of a method 400 for indoor position determination by a mobile device. The method 400 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware, or a combination. In one embodiment, the method 400 is performed by a mobile device (e.g., mobile device 1 10 or 210).
[0045] Referring to Figure 4, processing logic begins by determining a first indoor position of the mobile device based on indoor transceiver signals (processing block 402). In one embodiment, the indoor transceiver signals are signals generated by WiFi APs, Femtocells, Bluetooth transceivers, or a combination of indoor transceivers.
[0046] Processing logic determines, based at least in part on the determined first indoor position, that global navigation satellite system (GNSS) positioning signals are available (processing block 404). As will be discussed in greater detail below, in one embodiment, processing logic may request GNSS signal visibility data based on the first indoor position, and receive data indicative of GNSS signal visibility. In one embodiment, processing logic is used to analyze the received data indicative of GNSS signal visibility to determine if GNSS signals are likely to be available based at least in part on the determined first indoor position. In one embodiment, processing logic is used to analyze the received data indicative of available GNSS signals to determine the direction from which GNSS signals are likely to be available from based at least in part on the determined first indoor position and, in some embodiments, the time and satellite ephemeris information.
[0047] Processing logic then determines a second indoor position of the mobile device based, at least in part, on GNSS positioning signals (processing block 406).
[0048] Figure 5A is a flow diagram of one embodiment of a method 500 for analyzing a map of a physical structure to determine GNSS signal visibility. The method 500 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware, or a combination. In one embodiment, the method 500 is performed by an assist data server (e.g., assist data sever 240 or 240).
[0049] Referring to Figure 5A, processing logic begins by receiving a map of a physical structure (processing block 502). In one embodiment, processing logic may use a map from a commercial provider of maps and mapping data or in another embodiment, the map may be provided by a venue owner or manager associated with the building that the mobile device 1 10 is within. As discussed above, the map may include data about a physical structure's layout, construction, points of interest, relationship between map elements (i.e., floor positioning relative to ceiling, skylight, and open areas), as well as locations of indoor transceivers, indoor transceiver signal information such as signal strength and/or RTT data, and/or location of apertures, etc. In some embodiments, the information such as data about locations of indoor transceivers, indoor transceiver signal information such as signal strength and/or RTT data, and/or location of apertures is determined by assist data server 240 or 240 based on crowd sourced signal data and/or information provided by the venue owner and/or manager.
[0050] Processing logic analyzes the map to determine GNSS signal visibility (processing block 504). In one embodiment, processing logic performs sky penetration analysis for points on the map, such as grid points distributed over floor portions of the map, grid points distributed over physically accessible locations on the map (i.e., grip points located in pedestrian walkways are analyzed, but grid points within walls, fountains, etc. are not analyzed), as well as other points on the map. In one embodiment, the sky penetration analysis performed by processing logic includes ray tracing, as discussed above. In one embodiment, ray tracing is performed for the points on the map. For each point, a plurality of rays are projected from the point in random directions, and traced to determine whether the ray will penetrate the structure, thereby indicating the potential visibility/availability of GNSS signals and, in some embodiments, the expected signal strength of those signals, or in other embodiments, whether those signals are likely to be from satellites within the line of sight of a given location and/or the expected quality and/or strength of those signals. In one embodiment, the extent of sky penetration for each point is also determined (i.e., do all rays achieve sky penetration, do no rays achieve sky penetration, or do a portion of rays achieve sky penetration).
[0051] Processing logic then stores the map analysis results (processing block 506). In one embodiment, processing logic stores data indicative of the locations where analysis indicated sky penetration on the map (i.e., GNSS signals may be receivable by a mobile device). In one embodiment, the data is stored as grid points on a map. In one embodiment, clusters of points may be stored as polygons, where any point within the polygon is determined to have at least partial sky penetration. In one embodiment, quality information, such as likelihood of GNSS signal visibility, likely signal strength, etc. is stored along with the grip points and/or polygons.
[0052] Figure 5B is a flow diagram of one embodiment of a method 550 for transmitting GNSS signal visibility data to a mobile device. The method 550 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware, or a combination. In one embodiment, the method 550 is performed by an assist data server (e.g., assist data sever 240 or 240).
[0053] Referring to Figure 5B, processing logic begins by receiving an indoor transceiver signal-based location, for example, a WiFi-based location, from a mobile device (processing block 552). In some embodiments, the indoor transceivers may include access points, Femto cells, Bluetooth transceivers and other indoor transceivers. In one embodiment, the indoor transceiver signal- based location is a location estimated by a mobile device from access point signals, Femto cell signals, and/or Bluetooth transceiver signals. Processing logic locates GNSS signal visibility data based on the received location (processing block 554). In one embodiment, the indoor transceiver signal-based location may be associated with one or more pre-computed maps of GNSS signal visibility data. In another embodiment, in response to receiving the indoor transceiver signal-based location from the mobile device, processing logic computes, on-the- fly, GNSS signal visibility data when the GNSS signal visibility data cannot be located. In yet another embodiment, processing logic does not attempt to locate stored GNSS signal visibility data, and instead automatically computes GNSS signal visibility data based on the received indoor transceiver signal-based mobile device location.
[0054] Processing logic transmits the GNSS signal visibility data, if any is located, to the mobile device (processing block 556). As discussed above, the GNSS signal visibility data may include points or polygons where GNSS signals are (or are likely to be) available. Furthermore, the GNSS signal visibility data includes additional quality data regarding determined GNSS signal visibility. For example, based on sky penetration analysis, points or polygons associated with GNSS signal visibility may indicate a likelihood score, signal strength prediction, etc. This GNSS signal visibility data and quality data enables a mobile device to determine whether or not to activate its GNSS receiver while within a physical structure. In addition to GNSS signal visibility data, the time, estimated location of the mobile device 1 10, and GNSS ephemeris data may be used to predict the identification of GNSS satellites that would be visible at any given time from an estimated location and/or aperture.
[0055] Figure 6 is a flow diagram of one embodiment of a method 600 for enabling a mobile device to utilize GNSS signals inside a physical structure. The method 600 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware, or a combination. In one embodiment, the method 600 is performed by a mobile device (e.g., mobile device 1 10 or 210).
[0056] Referring to Figure 6, processing logic begins by receiving indoor transceiver signals (processing block 602). In one embodiment, indoor transceivers (such as WiFi APs) are access points that provide network access to devices within a physical structure. Furthermore, in some embodiments, indoor transceiver signals may correspond to the exchange of data of a network by a mobile device, including, in some embodiments, location data embedded within the signals.
[0057] Processing logic estimates a first position of the mobile device based on indoor transceiver signals, such as WiFi AP positioning signals (processing block 604). For example, processing logic may use relative indoor transceiver signal strengths, and/or round trip time (RTT), known positions of APs, etc. to trilaterate a position of the mobile device. Alternatively, processing logic may determine a position of the mobile device as the geometric centroid among a plurality of APs that are visible to the mobile device. In some embodiments, the position of the mobile device may be determined via a least squares fit of the available signals from GNSS satellites and/or indoor terrestrial signals.
[0058] Processing logic then obtains GNSS signal visibility data, based on the estimated first position, from an assist data server (processing block 606). As discussed above, processing logic transmits the estimated first position to an assist data server, and receives a response that includes a map, grid points, and/or polygons that correspond to locations where GNSS signals are likely to be available. Processing logic analyzes the GNSS signal visibility data based on the estimated first position (processing block 608) to determine whether GNSS signal visibility is detected and GNSS signals are likely to be available (processing block 610). In one embodiment, processing logic analyzes the GNSS signal visibility data to detect whether the first location is within a polygon of GNSS signal visibility (e.g., by use of the point in a polygon test). In one embodiment, processing logic determines whether the first location is on, or within a predetermined distance from, a point that indicates GNSS signal visibility. In some embodiments, GNSS visibility may be predicted based on current location of the mobile device and the velocity and heading of the mobile device, enabling a search for GNSS satellites to commence prior to actually reaching a location where GNSS signals may be visible.
[0059] Processing logic returns to processing block 602 to receive updated indoor transceiver signal information when GNSS signal visibility data is not available. However, processing logic activates the GNSS receiver of a mobile device when it is determined that GNSS signals are available (processing block 612). After activation of the GNSS receiver, processing logic attempts to obtain GNSS signals from one or more GNSS satellites (processing block 614). When signal data is received, processing logic estimates a second position of the mobile device based, at least in part, on the received GNSS signals (processing block 616). In one embodiment, the second GNSS-based position estimate may be combined with the indoor transceiver-based position estimate to obtain an improved mobile device position. In one embodiment the GNSS-based signal information and the indoor transceiver-based signal information may be combined to calculate an improved mobile device position. In yet another embodiment, GNSS signal quality data, which is transmitted along with the GNSS signal visibility data, and mobile device location, as discussed above, may determine how and when processing logic utilizes visible GNSS signals. For example processing logic may apply a weight to the GNSS-based position estimate or the indoor transceiver-based position estimate based on signal strength, number of satellites, etc. In an embodiment, processing logic may apply a weight to the GNSS signals or the indoor transceiver-based position estimate based on signal strength, number of satellites, etc. As another example, when GNSS signals are available, but the indicated signal strength, for any given signal, is below a minimum threshold signal strength, processing logic ignores that GNSS signal or signals with below minimum threshold signal strength.
[0060] Regardless of whether or not GNSS signal data was received at processing block 614, processing logic transmits GNSS signal acquisition results to the assist data sever (processing block 618). In one embodiment, additional data, such as strength of received GNSS signals, number of satellite signals received, etc., are also transmitted to the assist data sever. As discussed below in Figure 7, the GNSS signal acquisition results enable an assist data server to refine GNSS signal visibility data with crowd sourcing.
[0061] Furthermore, in one embodiment, the estimate of the first position at processing block 604 may include a determination of the uncertainty associated with the first position. When the determined uncertainty is low, and processing logic has determined an accurate indoor position from indoor transceiver signals, in an alternative embodiment not illustrated, processing logic may skip the remainder of block 606-618. That is, processing logic could determine that the accuracy associated with the indoor transceiver signal-based position determination is sufficient. In this alternative embodiment, processing logic could save power associated with GNSS signal analysis and activation of a GNSS receiver. In another embodiment, the likely angle of arrival of the GNSS signals may be analyzed to determine whether inclusion of GNSS signals would be likely to improve the overall position accuracy, for example, by improving the dilution of precision of the combined signals.
[0062] Figure 7 is a flow diagram of one embodiment of a method 700 for refining GNSS signal visibility data. The method 700 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), firmware, or a combination. In one embodiment, the method 700 is performed by an assist data server (e.g., assist data sever 240 or 240).
[0063] Referring to Figure 7, processing logic begins by receiving GNSS signal acquisition results from mobile devices (processing block 702). In one embodiment, GNSS signal acquisition results are received in real time, or near real time, from one or more mobile devices. In one embodiment, the GNSS signal acquisition results may include additional GNSS signal quality data as discussed above.
[0065] In an alternative embodiment, the processing logic discussed above in Figure 7 that performs crowd sourcing may also be performed at a mobile device, such as mobile device 1 10 or 210. In this embodiment, processing logic at the mobile device could perform processing blocks 704 and 706 to analyze real-world GNSS signal acquisition results, modify GNSS singal visibility data, and transmit results to an assist data sever.
[0066] It should be appreciated that when the devices discussed herein is a mobile or wireless device, that it may communicate via one or more wireless communication links through a wireless network that are based on or otherwise support any suitable wireless communication technology. For example, in some aspects computing device or server may associate with a network including a wireless network. In some aspects the network may comprise a body area network or a personal area network (e.g., an ultra-wideband network). In some aspects the network may comprise a local area network or a wide area network. A wireless device may support or otherwise use one or more of a variety of wireless communication technologies, protocols, or standards such as, for example, CDMA, TDMA, OFDM, OFDMA, WiMAX, LTE, and Wi-Fi. Similarly, a wireless device may support or otherwise use one or more of a variety of corresponding modulation or multiplexing schemes. A mobile wireless device may wirelessly communicate with other mobile devices, cell phones, other wired and wireless computers, Internet web-sites, etc.
[0067] The teachings herein may be incorporated into (e.g., implemented within or performed by) a variety of apparatuses (e.g., devices). For example, one or more aspects taught herein may be incorporated into a phone (e.g., a cellular phone), a personal data assistant (PDA), a tablet, a mobile computer, a laptop computer, a tablet, an entertainment device (e.g., a music or video device), a headset (e.g., headphones, an earpiece, etc.), a medical device (e.g., a biometric sensor, a heart rate monitor, a pedometer, an Electrocardiography (EKG) device, etc.), a user I/O device, a computer, a server, a point-of-sale device, an entertainment device, a set-top box, or any other suitable device. These devices may have different power and data requirements and may result in different power profiles generated for each feature or set of features.
[0068] In some aspects a wireless device may comprise an access device (e.g., a Wi-Fi access point) for a communication system. Such an access device may provide, for example, connectivity to another network (e.g., a wide area network such as the Internet or a cellular network) via a wired or wireless communication link. Accordingly, the access device may enable another device (e.g., a Wi-Fi station) to access the other network or some other functionality. In addition, it should be appreciated that one or both of the devices may be portable or, in some cases, relatively non-portable.
[0069] Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0070] Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
[0071] The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0073] In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software as a computer program product, the functions may be stored on or transmitted over as one or more instructions or code on a non- transitory computer-readable medium. Computer-readable media can include both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such non-transitory computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a web site, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of non-transitory computer- readable media.
[0074] The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

中文:
[0001]全球导航卫星系统(GNSS)接收器可用于确定电子装置的位置。GNSS接收器从GNSS卫星接收GNSS信号,例如,全球定位系统(GPS)、伽利略定位系统、格洛纳斯或指南针信号。基于接收到的GNSS信号,可以计算电子装置的位置。然而,在室内环境中GNSS信号通常是不可供使用的或极大地减弱的,这是由于GNSS信号未被设计成穿透物理结构。
[0002]在室内环境中,电子装置可仍然确定其位置。电子装置可基于从无线保真(WiFi)接入点(AP)中接收的信号确定其位置。举例来说,近似位置的确定可以通过接收一或多个WiFi AP的位置以及尝试从Wi-Fi AP位置中对电子装置的位置进行三角定位。在一些情况中,替代于室内收发器信号,可能有用的是要么除室内收发器信号(例如,WiFi接入点信号)之外利用GNSS信号,要么在一些情形中,例如其中WiFi信号或其它室内收发器信号是不可靠的或不可供使用的时利用GNSS信号。然而,尽管缺乏接收仍然使电子装置的GNSS接收器开启,或对电子装置的GNSS接收器持续地供电以测试GNSS卫星接收会消耗电子装置的有限的电力和计算资源。
[0003]用于通过如本文所述的移动装置的室内位置确定方法的一个实例包含:基于室内收发器信号确定移动装置的第一室内位置;至少部分地基于所确定的第一室内位置确定全球导航卫星系统(GNSS)定位信号是可见的;以及至少部分基于GNSS定位信号确定所述移动装置的第二室内位置。
[0004]用于允许如本文所述的室内位置确定的移动装置的一个实例包含:存储器,其存储位置评估引擎和检测器;GNSS接收器;以及处理器,其与所述存储器和所述GNSS接收器耦合并且经配置以执行所述位置评估引擎和所述检测器以基于室内收发器信号确定移动装置的第一室内位置;至少部分地基于所确定的第一室内位置确定全球导航卫星系统(GNSS)定位信号是可见的;以及至少部分基于GNSS定位信号确定所述移动装置的第二室内位置。
[0005]如本文所述的计算机可读存储媒体的一个实例包含用于通过移动装置的室内位置确定的代码,所述代码在由处理器执行时使得处理器基于室内收发器信号确定移动装置的第一室内位置;至少部分地基于所确定的第一室内位置确定GNSS定位信号是可见的;以及至少部分基于GNSS定位信号确定所述移动装置的第二室内位置。
[0006]用于通过如本文所述的移动装置的室内位置确定的系统的一个实例包含:用于基于室内收发器信号确定移动装置的第一室内位置的装置;用于至少部分地基于所确定的第一室内位置确定GNSS定位信号可见的装置;以及用于至少部分基于GNSS定位信号确定所述移动装置的第二室内位置的装置。
[0007]用于服务器计算机系统以允许通过如本文所述的移动装置的室内位置确定的方法的一个实例包含:接收物理结构的地图,其中所述地图至少包含指示物理结构的现实世界布局的数据;分析所述地图以确定包含相对于地图的其中全球导航卫星系统(GNSS)定位信号在物理结构内的对应的现实世界位置处对移动装置可见的至少一个位置的GNSS信号可见性数据;以及响应于来自移动装置的请求将GNSS信号可见性数据提供到移动装置。
[0008]允许通过如本文所述的移动装置的室内位置确定的服务器计算机系统的一个实例包含:存储器,以存储目录辅助引擎;结构地图分析引擎;以及物理结构的地图;以及处理器,其与所述存储器耦合并且经配置以执行目录辅助引擎和结构地图分析引擎以接收物理结构的地图,其中所述地图至少包含指示物理结构的现实世界布局的数据;分析所述地图以确定包含相对于地图的其中全球导航卫星系统(GNSS)定位信号在物理结构内的对应的现实世界位置处对移动装置可见的至少一个位置的GNSS信号可见性数据;以及响应于来自移动装置的请求将GNSS信号可见性数据提供到移动装置。
[0009]如本文所述的计算机可读存储媒体的一个实例包含代码以允许通过移动装置的室内位置确定,所述代码在由处理器执行时使得处理器接收物理结构的地图,其中所述地图至少包含指示物理结构的现实世界布局的数据;分析所述地图以确定包含相对于地图的其中GNSS定位信号在物理结构内的对应的现实世界位置处对移动装置可见的至少一个位置的GNSS信号可见性数据;以及响应于来自移动装置的请求将GNSS信号可见性数据提供到移动装置。
[0010]一个用于服务器计算机系统以允许通过如本文所述的移动装置的室内位置确定的系统的实例包含:用于接收物理结构的地图的装置,其中所述地图至少包含指示物理结构的现实世界布局的数据;用于分析所述地图以确定包含相对于地图的其中GNSS定位信号在物理结构内的对应的现实世界位置处对移动装置可见的至少一个位置的GNSS信号可见性数据的装置;以及用于响应于来自移动装置的请求将GNSS信号可见性数据提供到移动装置的装置。
[0011]图1是用于允许GNSS信号在室内使用的示范性系统架构的框图;
[0012]图2是移动装置和辅助数据服务器的一个实施例的框图;
[0013]图3A是物理结构的内部的详细地图的一个实例;
[0014]图3B是物理结构的内部的详细地图的另一实例;
[0015]图4是用于通过移动装置的室内位置确定的方法的一个实施例的流程图;
[0016]图5A是用于分析物理结构的地图以确定GNSS信号可见性的方法的一个实施例的流程图;
[0017]图5B是用于将GNSS信号可见性数据发射到移动装置的方法的一个实施例的流程图;
[0018]图6是用于允许移动装置利用物理结构内部的GNSS信号的方法的一个实施例的流程图;以及
[0019]图7是用于精细化GNSS信号可见性数据的方法的一个实施例的流程图。
[0020]词语“示范性”或“实例”在本文中用于意味着“充当实例、例子或说明”。本文中描述为“示范性”或描述为“实例”的任何方面或实施例未必应被解释为比其它方面或实施例优选或有利。
[0021]图1是用于允许GNSS信号在室内使用的示范性系统架构100的框图。在一个实施例中,系统100包含物理结构120内的移动装置110。在一个实施例中,移动装置110可以是移动计算装置,例如,移动电话、个人数字助理、平板计算机等。在一个实施例中,物理结构120可以是购物中心、鸟类饲养场、机场、杂货店、公司建筑物或任何其它物理结构。
[0022]本文中所呈现的技术不限于用于基于卫星的置放的GNNSS数据的使用,例如,GPS、伽利略定位系统、格洛纳斯或指南针数据。举例来说,本文中所提供的技术可应用于或以其它方式经启用以用于在各种地区性系统中使用,例如,日本上方的准天顶卫星系统(QZSS)、印度上方的印度地区性导航卫星系统(IRNSS)、中国上方的北斗卫星等,和/或可与一或多个全球的和/或地区性导航卫星系统相关联或以其它方式经启用以与一或多个全球的和/或地区性导航卫星系统一起使用的各种扩增系统(例如,基于卫星的扩增系统(SBAS))。借助于实例但非进行限制,SBAS可包含提供完整性信息、微分校正等的扩增系统,例如,广域扩增系统(WAAS)、欧洲地球同步卫星导航叠加服务(EGNOS)、多功能卫星扩增系统(MSAS)、GPS辅助地理扩增导航或GPS和地理扩增导航系统(GAGAN),和/或其类似者。
[0023]在一个实施例中,系统100还包含发射GNSS信号的多个GNSS卫星120-1到120-N、多个室内收发器130-1到130-M,例如,WiFi接入点、蓝牙收发器、毫微微小区等,其位于提供用于装置(例如,移动装置110)的到网络102的无线网络接入的物理结构120内,以及与网络102耦合的辅助数据服务器240。辅助数据服务器240还可以是计算装置,例如,服务器计算机、桌上型计算机等。
[0024]辅助数据服务器240和移动装置110可以耦合到网络102,这提供经由用于信息交换的任何标准协议的数据传送。在一个实施例中,移动装置110经由无线连接与网络102耦合,所述无线连接由室内收发器130-1到130-M、蜂窝式电话连接或其它无线连接中的一个提供。移动装置110和辅助数据分开240可以在一个局域网(LAN)上运行并且可以并入到相同物理或逻辑系统或者不同物理或逻辑系统中。替代地,移动装置110和辅助数据分开240可以驻留在可以经由互联网耦合在一起但是通过防火墙、路由器和/或其它网络装置分隔开的不同LAN、广域网、蜂窝式电话网络等上。在又一配置中,辅助数据服务器240可以驻留在经由公用网络(例如,互联网)或专用网络(例如,LAN)耦合到其它装置的相同服务器或不同服务器上。应注意可以使用各种其它网络配置,包含例如代管配置、分布式配置、集中配置等。
[0025]在一个实施例中,移动装置110基于由GNSS卫星120-1到120-N中的一或多个提供的GNSS信号以及由室内收发器AP 130-1到130-M中的一或多个提供的信号来确定现实世界位置。通常,当移动装置是外部物理结构120时,移动装置110可以通过由GNSS卫星120-1到120-N提供的GNSS信号确定其位置。此外,当移动装置在物理结构120内时,移动装置110通常将通过由室内收发器AP 130-1到130-M提供的信号确定其位置。在一个实施例中,如下文更详细地论述的,移动装置110基于物理结构120内确定的位置激活GNSS接收器(未示出),所述位置是从通过室内收发器130-1到130-M中的至少一者发射的信号中确定的。在一个实施例中,移动装置110经过物理结构的部分122从GNSS卫星120-1到120-N接收GNSS信号,所述部分例如窗口、天窗、中庭或允许GNSS信号通过的其它结构,这为移动装置110提供了对GNSS卫星120-1到120-N中的一或多个的可见性。在移动装置110的GNSS接收器的激活之后,移动装置110基于接收到的GNSS信号或GNSS信号与室内收发器信号的组合确定其位置。
[0026]在一个实施例中,当移动装置110从由一或多个室内收发器130-1到130-M中接收的信号中确定室内位置时,移动装置110经由网络102将位置数据传送到辅助数据服务器240作为室内GNSS信号可见性的请求。在一个实施例中,辅助数据服务器240利用接收到的位置数据来确定移动装置110在哪个物理结构中。基于移动装置位于物理结构(即,图1中说明的物理结构120)内的确定,辅助数据服务器240通过向移动装置110发射室内GNSS信号可见性数据而响应于移动装置110。在一个实施例中,室内GNSS信号可见性数据包含指示物理结构120内的位置的数据,在所述位置中GNSS信号可以是通过移动装置110可接收的。举例来说,窗口、天窗、中庭、竖直窗口的部分、露天区域等可以允许移动装置110接收来自GNSS卫星120-1到120-N中的一或多个的GNSS信号。在一个实施例中,室内GNSS信号可见性数据对物理结构120内的位置进行编码,在所述位置中GNSS信号可以供作为位置点、多边形区域等使用。在一个实施例中,室内GNSS信号可见性数据可以响应于移动装置110的当前位置由实时在线的辅助数据服务器240生成。在一个实施例中,室内GNSS信号可见性数据可以由辅助数据服务器240预先生成。室内GNSS信号可见性数据的生成在下文的图4中更详细地论述。
[0027]在一个实施例中,响应于室内GNSS信号可见性数据的接收,移动装置110从室内GNSS信号可见性数据中确定移动装置110是否位于物理结构120内可以接收GNSS信号的位置处。当移动装置110确定它在此类区域内时,移动装置110激活其GNSS接收器(未示出)以从GNSS卫星120-1到120-N中的一或多个中接收GNSS信号。在一个实施例中,移动装置110利用接收到的GNSS信号来确定其现实世界或物理位置。在一个实施例中,基于GNSS的信号测量可以与基于室内收发器的信号测量结合以精细化物理结构120内的移动装置110的确定的位置。在另一实施例中,移动装置110可以不考虑从室内收发器信号(例如,从WiFi AP中接收的信号)中确定的位置,并且仅利用从接收到的GNSS信号测量中确定的位置,或者在替代方案中仅从室内收发器信号中确定位置,忽略GNSS信号测量,或基于接收到的信号的质量、强度或多路径特征的两组信号的一些组合。因为移动装置110确定何时基于室内位置和包含GNSS信号可见性数据的辅助数据开启和利用其GNSS接收器,所以移动装置110节约了电力和计算资源。也就是说,移动装置110不必仅为了确定没有GNSS信号是可供使用的而周期性开启其GNSS接收器。替代地当存在可供使用的GNSS信号的可能性时,并且在一些实施例中仅当从室内收发器中确定的位置也低于特定精度阈值时,移动装置110激活其GNSS接收器。此外,GNSS信号对从室内收发器信号中确定的位置的补充、增强或替换的使用增大了通过移动装置110单独的从室内收发器信号中确定的室内位置的精度。
[0028]在一个实施例中,当移动装置110基于室内GNSS信号可见性数据确定激活其GNSS接收器时,移动装置110进一步发射指示成功、失败、信号强度、卫星(所述卫星是可见的)的数目的数据和/或其它GNSS信号质量相关因素到辅助数据服务器240。在一个实施例中,如下文更详细地论述的,辅助数据服务器240基于移动装置110的传送结果精细化室内GNSS信号可见性数据。举例来说,室内GNSS信号可见性数据可以经修改以反映可供使用的卫星的缺乏,或获得GNSS信号的不可能性,以便针对物理结构120的辅助数据内的位置移除、修改、移动或缩减室内GNSS信号可见性数据。相反地,室内GNSS信号可见性数据可以经修改以反映移动装置110在预先确定的弱室内接收区域中获得强GNSS信号的能力。在一些实施例中,接收到的卫星和接收的时间可用于精细化来自如同在GNSS辅助数据内报告的给定物理位置的卫星信号的可见性的角度。在一个实施例中,辅助数据服务器240从多个移动装置(未示出)中接收此类反馈数据以在一段时间内执行GNSS信号可见性数据的众包精细化。GNSS可见性数据的持续精细化确保GNSS可见性数据是精确的、最新的,并且反映现实世界用户结果。在一些实施例中,辅助数据服务器240也可以提供GNSS辅助,例如,GNSS星历数据、年历数据、时间和/或卫星星座信息。在其它实施例中,可以利用单独的具有GNSS功能的位置服务器(未示出)来提供GNSS辅助,例如,GNSS星历数据、年历数据、时间和/或卫星星座信息。
[0029]图2是移动装置和辅助数据服务器的一个实施例200的框图。移动装置210和辅助数据服务器240为如上文在图1中所论述的移动装置110和辅助数据服务器240提供额外细节。
[0030]在一个实施例中,移动装置210是一个系统,其可以包含一或多个处理器212、存储器205、I/O控制器225、GNSS接收器216、网络接口204和显示器220。移动装置210还可以包含多个处理模块,所述处理模块可以实施为硬件、软件、固件或其组合,例如,检测器235和位置估计引擎230。应了解虽然没有说明,但是移动装置210还可以包含用户接口(例如,键盘、触摸屏或类似装置)、电力装置(例如,电池)以及通常与电子装置相关联的其它组件。网络接口204还可以耦合到多个无线子系统215(例如,蓝牙、WiFi、蜂窝式或其它网络)以经由无线链路将数据流发射到无线网络/从无线网络接收数据流,或者可以是用于直接连接到网络(例如,互联网、以太网或其它无线系统)的有线接口。在一个实施例中,网络接口204和无线子系统这两者都将移动装置210耦合到网络202。
[0031]存储器205可以耦合到处理器212以存储供处理器212执行的指令。在一些实施例中,存储器205是非暂时性的。存储器205也可以存储一或多个GNSS信号可见性数据或模块(即,位置估计引擎230和/或检测器235)以实施下文所描述的实施例。应了解如将在下文中描述的实施例可以通过指令的执行来实施,例如,如同通过移动装置210的处理器212和/或移动装置210的其它电路和/或其它装置而存储在存储器205或其它元件中。具体而言,移动装置210的电路(包含但不限于处理器212)可以在程序、例程或指令的执行的控制下操作以根据一些实施例执行方法或过程。举例来说,此类程序可以在固件或软件中实施(例如,存储在存储器205和/或其它位置中)并且可以由处理器(例如,处理器212)和/或移动装置210的其它电路来实施。另外,应了解,术语“处理器”、“微处理器”、“电路”、“控制器”等可以指能够执行逻辑、命令、指令、软件、固件、功能性等的任何类型的逻辑或电路。
[0032]此外,应了解本文中所描述的功能、引擎或模块中的一些或全部可由移动装210本身执行,和/或本文中所描述的功能、引擎或模块中的一些或全部可由通过I/O控制器225或网络接口204(无线或有线)连接到移动装置210的另一系统执行。因此,一些和/或全部功能可由另一系统执行,并且结果或中间计算可传送回到移动装置210。在一些实施例中,此类其它装置可以包括服务器,例如辅助数据服务器240,其经配置以实时或近实时的处理信息。在一些实施例中,另一装置经配置以例如基于移动装置210的已知配置预先确定结果。
[0033]在一个实施例中,辅助数据服务器240是一个系统,其还可以包含一或多个处理器242、地图存储装置255和网络接口244。辅助数据服务器240还可以包含多个处理模块,其可以实施为硬件、软件、固件或其组合,例如,目录辅助引擎245、结构地图分析250模块和众包分析260模块。在一个实施例中,网络接口244将辅助数据服务器240耦合到网络202。在一个实施例中,如所说明,辅助数据服务器240的处理模块可以位于单个服务器,或者可以分布在经由网络202以通信方式耦合在一起的两个或两个以上服务器中。在一些实施例中,辅助数据服务器240还提供室内收发器的位置、室内收发器信号相关信息,例如,信号强度和/或往返时间,和/或其它室内位置相关信息。在一些实施例中,信息可以提供为室内地图上的标注,还通过辅助数据服务器240提供。
[0034]在一个实施例中,移动装置210和辅助数据服务器240在如上文在图1中所论述的各种网络和网络配置上彼此通信。在一个实施例中,移动装置210和辅助数据服务器240经由网络的相互作用允许移动装置210在位于物理结构内部时有效地利用GNSS信号。
[0035]在一个实施例中,移动装置210接收来自一或多个室内收发器(未示出)的信号,所述信号允许位置估计引擎230确定移动装置210的室内位置。在一个实施例中,因为移动装置210位于物理结构内,所以GNSS接收器216被停用。在一个实施例中,移动装置经由网络202将其确定的室内位置传送到辅助数据服务器240。在具有单独的位置服务器(未示出)的实施例中,所述移动装置的位置可以通过位置服务器提供以经由网络202辅助数据服务器240。
[0036]辅助数据服务器240接收移动装置210的确定的室内位置。目录辅助引擎245利用室内位置来定位存储在存储器255中的地图。在一个实施例中,所述地图是移动装置210位于其中的物理结构的地图。此外,所述地图包含指示物理结构内的位置的数据,在所述位置中GNSS信号可以是可用于移动装置210的。在一些实施例中,地图还包含室内收发器的位置和/或预期的信号强度和/或用于室内收发器信号的RTT测量值。在一些实施例中,除通过物理结构的信号是可见的移动装置位置之外,地图包含如通过物理结构表示的孔隙的大小、离开地板的高度和/或海拔高度和位置的估计,例如,图1中说明的物理结构120的部分122。
[0037]在一个实施例中,存储在存储器中的地图是通过结构地图分析250模块预先计算的。在一个实施例中,对物理结构模型化的初始地图通过辅助数据服务器240接收。在一个实施例中,初始地图是可在市面上购得的地图,其包含关于物理结构的内部、外部和构造的具体数据,例如,地图上的点的布局、经纬度、地图上的项目的三维尺寸、结构内的商店的位置、窗口位置、天窗位置、开放区域等。在一个实施例中,地图提供物理结构的详细多维模型和/或物理描述,在一些实施例中,包含信号孔隙的高度、大小和位置,例如,物理结构120的部分122。在图3A中说明了物理结构的内部的详细地图300的一个实例。地图300说明购物中心的第一层310、第二层320和顶部330。在所说明的实施例中,顶部330包含两个窗口332,其将向用于位于地图300中说明的物理结构的内部中的移动装置的GNSS卫星提供视野或视线。
[0038]在一个实施例中,辅助数据分开240的结构地图分析250模块利用地图300来确定通过地图300建模的物理结构内的位置,在所述位置中GNSS信号可以用于移动装置。在一些实施例中,辅助数据服务器240和/或移动装置210可以考虑一天中的时间和如同通过GNSS星历所提供的GNSS星座的成员的位置,以预测对给定位置贯穿孔隙(例如,窗口332)哪些卫星将是可见的。如图3B中所说明,并且如下文所论述,区域340和区域350可以允许位于这些区域内的装置接收来自GNSS卫星120-1到120-N中的一或多个的GNSS信号,而区域360并不允许位于该区域内的装置接收GNSS信号。在一个实施例中,结构地图分析250模块在地图上针对位置执行射线追踪以确定其中存在天空的可见性的地图的部分。也就是说,射线追踪确定其中移动装置将对天空具有可见性以允许装置接收GNSS信号。
[0039]在一个实施例中,针对地图的网格的每个点执行射线追踪,例如,在区域350中的点。对于网格中的每个点,多条射线从随机方向上的点中投射,并且追踪所述射线以确定所述射线是否将穿透所述结构。也就是说,结构地图分析250模块确定每条射线是否将通过窗口、天窗、中庭等(即,天空穿透),或射线是否将被墙壁、顶部等阻断。在一个实施例中,射线追踪是基于通过地图提供的物理结构的详细物理模型和布局(例如,相对于区域350的详细物理模型和布局)执行的计算机图形过程。举例来说,在区域340中的网格点处通过结构地图分析250模块执行的射线追踪可以指示全部射线342具有天空穿透,而在区域360中的网格点处通过结构地图分析250模块的射线追踪可以指示全部射线362并不具有天空穿透。此外,可能存在位置,例如,区域350中的点,其中射线追踪揭示仅部分数量的射线352实现天空穿透,而射线追踪中的一些射线354并未实现天空穿透。在一个实施例中,结构地图分析250模块存储指示其中存在天空穿透的位置的数据(即,GNSS信号可以是通过移动装置210可见的和可接收的),作为地图上的网格点。在一个实施例中,移动装置210分析射线追踪数据和/或从射线追踪数据中衍生的置信水平是否对应于特定卫星位置,如通过时间和卫星星历数据预测的,以确定哪些卫星将是通过现有孔隙可见的并且应该对其进行搜索。
[0040]在另一实施例中,结构地图分析250模块可以存储网格点的群集作为多边形,其中多边形内的任一点具有天空穿透。在一个实施例中,基于天空穿透分析的结果,还可以存储用于网格点或多边形的置信水平。举例来说,与区域340相关的网格点或多边形(其中全部追踪射线实现天空穿透)可以与高置信水平相关联,而与区域350相关的网格点或多边形(其中追踪射线的一部分实现天空穿透)可以与中等置信水平相关联。在一个实施例中,置信水平可以基于相对于实现天空穿透的追踪射线的数量。网格点和/或多边形是室内GNSS信号可见性数据,其提供指示在物理结构内的何处GNSS信号可供使用的移动装置数据。
[0041]在一个实施例中,辅助数据服务器240将GNSS信号可见性数据(例如,与移动装置的当前位置有关的网格或多边形)发射到移动装置210。在一个实施例中,GNSS信号可见性数据可以提供于从结构地图分析250模块的分析结果中产生的地图中。在另一实施例中,GNSS信号可见性数据可以提供于单元片中,例如,矩形、六边形等形状的单元片中,其基于用户的估计位置提供针对地图的区域的GNSS信号可见性数据。在此实施例中,单元片表示通过结构地图分析250模块分析的地图的子组,并且GNSS信号可见性数据的子组(例如,单元片)的发射减少在移动装置210处的响应时间和电力消耗。在一个实施例中,检测器235分析接收到的室内GNSS信号可见性数据以确定通过位置估计引擎230确定的室内位置是否在多边形内或者由天空穿透网格覆盖。在室内GNSS信号可见性数据包含多边形处,检测器235可利用多边形测试中的几何点,例如使用,测试射线、符号累积等来确定移动装置210的所估计的室内位置是否在多边形内。在室内GNSS信号可见性数据是一组网格点处,检测器235可确定移动装置210的所估计的室内位置是否距离网格点预定距离(即,1米内、2米内等)。
[0042]当检测器235确定移动装置210位于物理结构内部的GNSS信号可供使用的位置中时,检测器激活GNSS接收器216。GNSS接收器216开启并且尝试从一或多个GNSS卫星(未示出)接收GNSS信号。在一些实施例中,GNSS接收器216也可以利用GNSS星历数据、时间和当前位置以确定搜索哪些卫星,例如,基于任何给定卫星将通过特定孔隙可见的可能性。接收到的GNSS信号通过GNSS接收器216转发到位置估计引擎230,其确定移动装置210的基于GNSS的或基于混合GNSS和室内地面信号位置。在一个实施例中,位置估计引擎利用基于GNSS的位置作为移动装置210的位置。在另一实施例中,位置估计引擎230组合基于GNSS的位置与通过室内收发器确定的所估计的室内位置。在一个实施例中,位置估计引擎230使用来自GNSS卫星和室内收发器这两者的信号来确定位置。在一个实施例中,GNSS卫星信号可用于补偿室内收发器不可供使用的方向,例如,朝向建筑物的外部,但是其中GNSS信号在相同方向上是通过孔隙可见的,由此提高信号精度因子(DOP)。基于GNSS的位置和/或从组合定位信号中估计的位置允许移动装置210确定用于移动装置210的与仅依赖于室内收发器信号的位置相比更精确的室内位置。此外,因为直至确定移动装置210位于物理结构的其中GNSS信号可供使用的区域内,移动装置210的GNSS接收器216都不是激活的,所以保存了电力和计算资源。
[0044]图4是用于通过移动装置的室内位置确定的方法400的一个实施例的流程图。方法400通过处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)、固件或其组合。在一个实施例中,方法400通过移动装置执行(例如,移动装置110或210)。
[0045]参考图4,处理逻辑开始于基于室内收发器信号确定移动装置的第一室内位置(处理框402)。在一个实施例中,室内收发器信号是由WiFi AP、毫微微小区、蓝牙收发器或室内收发器的组合生成的信号。
[0046]处理逻辑至少部分地基于所确定的第一室内位置确定全球导航卫星系统(GNSS)定位信号是可供使用的(处理框404)。如下文将更详细地论述,在一个实施例中,处理逻辑可基于第一室内位置请求GNSS信号可见性数据,并且接收指示GNSS信号可见性的数据。在一个实施例中,处理逻辑用于分析指示GNSS信号可见性的接收到的数据以确定GNSS信号是否有可能为至少部分地基于所确定的第一室内位置可供使用的。在一个实施例中,处理逻辑用于分析指示可供使用的GNSS信号的接收到的数据以确定至少部分地基于所确定的第一室内位置GNSS信号有可能是可供使用的方向,并且在一些实施例中,基于时间和卫星星历信息。
[0047]处理逻辑随后至少部分基于GNSS定位信号确定移动装置的第二室内位置(处理框406)。
[0048]图5A是用于分析物理结构的地图以确定GNSS信号可见性的方法500的一个实施例的流程图。方法500通过处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)、固件或其组合。在一个实施例中,方法500通过辅助数据服务器(例如,辅助数据分开240或240)执行。
[0049]参考图5A,处理逻辑开始于接收物理结构的地图(处理框502)。在一个实施例中,处理逻辑可使用来自地图的商业提供商的地图和地图绘制数据,或者在另一实施例中,地图可以由与移动装置110所在的建筑物相关联的场馆所有者或管理者提供。如上文所论述,地图可以包含关于物理结构的布局、构造、关注点,地图元素(即,相对于天花板、天窗和开放区域放置的地板)之间的关系以及室内收发器的位置、室内收发器信号信息(例如,信号强度和/或RTT数据)和/或孔隙的位置等数据。在一些实施例中,信息例如关于室内收发器的位置、室内收发器信号信息(例如,信号强度和/或RTT数据)和/或孔隙的位置等数据是基于由场馆所有者和/或管理者提供的众包信号数据和/或信息由辅助数据服务器240或240确定的。
[0050]处理逻辑分析地图以确定GNSS信号可见性(处理框504)。在一个实施例中,处理逻辑执行针对地图上的点的天空穿透分析,例如,分布在地图的地板部分上的网格点、分布在地图上的物理地可访问的位置上的网格点(即,分析了位于行人走道中的夹点但是并没有分析墙壁、喷泉等内的网格点),以及地图上的其它点。在一个实施例中,如上文所论述,通过处理逻辑执行的天空穿透分析包含射线追踪。在一个实施例中,射线追踪是针对地图上的点执行的。对于每个点,多条射线在随机方向上从点中投射,并且追踪所述射线以确定射线是否将穿透结构,由此指示GNSS信号的潜在可见性/可用性,并且在一些实施例中,指示那些信号的预期的信号强度,或者在其它实施例中,指示那些信号是否有可能为来自给定位置的视线内的卫星的和/或那些信号的预期的质量和/或强度。在一个实施例中,是确定了针对每个点的天空穿透的延伸(即,是否全部射线实现天空穿透、是否没有射线实现天空穿透,或者是否部分射线实现天空穿透)。
[0051]处理逻辑随后存储地图分析结果(处理框506)。在一个实施例中,处理逻辑存储指示其中分析指示地图上的天空穿透的位置的数据(即,GNSS信号可以是通过移动装置可接收的)。在一个实施例中,所述数据作为地图上的网格点存储。在一个实施例中,点的集群可以作为多边形存储,其中多边形内的任一点被确定为具有至少部分天空穿透。在一个实施例中,质量信息,例如,GNSS信号可见性的可能性、可能的信号强度等连同抓握点和/或多边形一起存储。
[0052]图5B是用于将GNSS信号可见性数据发射到移动装置的方法550的一个实施例的流程图。方法550通过处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)、固件或其组合。在一个实施例中,方法550通过辅助数据服务器(例如,辅助数据分开240或240)执行。
[0053]参考图5B,处理逻辑开始于从移动装置中接收基于室内收发器信号的位置,例如基于WiFi的位置(处理框552)。在一些实施例中,室内收发器可以包含接入点、毫微微小区、蓝牙收发器和其它室内收发器。在一个实施例中,基于室内收发器信号的位置是通过移动装置从接入点信号、毫微微小区信号和/或蓝牙收发器信号中估计的位置。处理逻辑基于接收到的位置定位GNSS信号可见性数据(处理框554)。在一个实施例中,基于室内收发器信号的位置可以与GNSS信号可见性数据的一或多个预先计算的地图相关联。在另一实施例中,响应于从移动装置接收基于室内收发器信号的位置,当无法定位GNSS信号可见性数据时,处理逻辑实时在线计算GNSS信号可见性数据。在又一实施例中,处理逻辑并不尝试定位所存储的GNSS信号可见性数据,并且替代地基于接收到的基于室内收发器信号的移动装置位置自动计算GNSS信号可见性数据。
[0054]处理逻辑将GNSS信号可见性数据(如果定位了任何数据的话)发射到移动装置(处理框556)。如上文所论述,GNSS信号可见性数据可以包含其中GNSS信号是(或是可能为)可供使用的点或多边形。此外,GNSS信号可见性数据包含考虑所确定的GNSS信号可见性的额外质量数据。举例来说,基于天空穿透分析,与GNSS信号可见性相关联的点或多边形可指示可能的分数、信号强度预测等。此GNSS信号可见性数据和质量数据允许移动装置确定当在物理结构内时是否激活其GNSS接收器。除GNSS信号可见性数据之外,移动装置110的时间、估计位置以及GNSS星历数据可用于预测将在任何给定时间从估计位置和/或孔隙中可见的GNSS卫星的识别。
[0055]图6是用于允许移动装置利用物理结构内部的GNSS信号的方法600的一个实施例的流程图。方法600通过处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)、固件或其组合。在一个实施例中,方法600通过移动装置执行(例如,移动装置110或210)。
[0056]参考图6,处理逻辑开始于接收室内收发器信号(处理框602)。在一个实施例中,室内收发器(例如,WiFi AP)是提供到物理结构内的装置的网络接入的接入点。此外,在一些实施例中,室内收发器信号可对应于通过移动装置的网络的数据的交换,在一些实施例中,包含嵌入信号内的位置数据。
[0057]处理逻辑基于室内收发器信号(例如,WiFi AP定位信号)估计移动装置的第一位置(处理框604)。举例来说,处理逻辑可使用相关的室内收发器信号强度和/或往返时间(RTT)、AP的已知位置等对移动装置的位置进行三角定位。替代地,处理逻辑可将移动装置的位置确定为几何中心,其中多个AP是对移动装置可见的。在一些实施例中,所述移动装置的位置可以经由来自GNSS卫星的可供使用的信号和/或室内地面信号的最小平方拟合确定。
[0058]处理逻辑随后基于所估计的第一位置从辅助数据服务器中获得GNSS信号可见性数据(处理框606)。如上文所论述,处理逻辑将所估计的第一位置发射到辅助数据服务器,并且接收包含对应于其中GNSS信号可能是可供使用的位置的地图、网格点和/或多边形的响应。处理逻辑基于所估计的第一位置分析GNSS信号可见性数据(处理框608)以确定是否检测到GNSS信号可见性并且GNSS信号是否可能是可供使用的(处理框610)。在一个实施例中,处理逻辑分析GNSS信号可见性数据以检测第一位置是否在GNSS信号可见性的多边形内(例如,通过使用多边形测试中的点)。在一个实施例中,处理逻辑确定第一位置是否在距离指示GNSS信号可见性的点预定距离处或距离指示GNSS信号可见性的点预定距离内。在一些实施例中,GNSS可见性可以基于移动装置的当前位置和移动装置的速度和前进方向预测,允许GNSS卫星的搜索在实际上达到其中GNSS信号可以是可见的位置之前开始。
[0059]当GNSS信号可见性数据是不可供使用的时处理逻辑返回到处理框602以接收更新的室内收发器信号信息。然而,当确定GNSS信号是可供使用的时处理逻辑激活移动装置的GNSS接收器(处理框612)。在GNSS接收器的激活之后,处理逻辑尝试从一或多个GNSS卫星中获得GNSS信号(处理框614)。当接收到信号数据时,处理逻辑至少部分基于接收到的GNSS信号估计移动装置的第二位置(处理框616)。在一个实施例中,基于第二GNSS的位置估计可以与基于室内收发器的位置估计结合以获得改进的移动装置位置。在一个实施例中,基于GNSS的信号信息和基于室内收发器的信号信息可以组合以计算改进的移动装置位置。在又一实施例中,如上文所论述,与GNSS信号可见性数据一起发射的GNSS信号质量数据以及移动装置位置可确定处理逻辑如何且何时利用可见GNSS信号。举例来说,处理逻辑可基于信号强度、卫星的数量等将权重应用于基于GNSS的位置估计或基于室内收发器的位置估计。在一个实施例中,处理逻辑可基于信号强度、卫星的数量等将权重应用于GNSS信号或基于室内收发器的位置估计。作为另一实例,当GNSS信号是可供使用的但是针对任何给定信号所指示的信号强度低于最小阈值信号强度时,处理逻辑忽略具有低于最小阈值信号强度的GNSS信号。
[0060]无论在处理框614处是否接收到GNSS信号数据,处理逻辑将GNSS信号采集结果发射到辅助数据分开(处理框618)。在一个实施例中,额外数据,例如,接收到的GNSS信号的强度、接收到的卫星信号的数量等也被发射到辅助数据分开。如下文在图7中所论述,GNSS信号采集结果允许辅助数据服务器通过众包精细化GNSS信号可见性数据。
[0061]此外,在一个实施例中,在处理框604处第一位置的估计可以包含与第一位置相关联的不确定性的确定。在未说明的替代实施例中,当所确定的不确定性较低并且处理逻辑已经从室内收发器信号中确定精确的室内位置时,处理逻辑可跳过块606到618的剩余部分。也就是说,处理逻辑可以确定与基于室内收发器信号的位置确定相关联的精度是足够的。在此替代实施例中,处理逻辑可以节约与GNSS信号分析和GNSS接收器的激活相关联的电力。在另一实施例中,可以分析GNSS信号的可能的到达角度以确定包含GNSS信号是否将可能提高总体位置精度,例如,通过提高组合信号的精度因子。
[0062]图7是用于精细化GNSS信号可见性数据的方法700的一个实施例的流程图。方法700通过处理逻辑执行,所述处理逻辑可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)、固件或其组合。在一个实施例中,方法700通过辅助数据服务器(例如,辅助数据分开240或240)执行。
[0063]参考图7,处理逻辑以从移动装置中接收GNSS信号采集结果开始(处理框702)。在一个实施例中,GNSS信号采集结果是从一或多个移动装置中实时或近实时接收的。在一个实施例中,GNSS信号采集结果可以包含如上文所论述的额外GNSS信号质量数据。
[0065]在一个替代实施例中,上文在图7中所论述的执行众包的处理逻辑还可以在移动装置(例如,移动装置110或210)处执行。在此实施例中,在所述移动装置处的处理逻辑可以执行处理框704和706以分析现实世界GNSS信号采集结果、修改GNSS信号可见性数据,并且将结果发射到辅助数据分开。
[0066]应了解,当装置为移动或无线装置时其可经由穿过无线网络的一或多个无线通信链路通信,所述无线通信链路基于或以其它方式支持任何合适的无线通信技术。举例来说,在一些方面中,计算装置或服务器可与包含无线网络的网络相关联。在一些方面中,网络可包括人体区域网络或个域网(例如,超宽带网络)。在一些方面中,网络可包括局域网或广域网。无线装置可以支持或以其它方式使用多种无线通信技术、协议或标准(例如,CDMA、TDMA、OFDM、OFDMA、WiMAX、LTE和Wi-Fi等)中的一或多者。类似地,无线装置可以支持或以其它方式使用多种对应调制或多路复用方案中的一或多者。移动无线装置可以无线方式与其它移动装置、手机、其它有线和无线计算机、互联网网站等通信。
[0067]本文中的教示可以并入到多种设备(例如,装置)中(例如,在其内实施或由其执行)。举例来说,本文教示的一或多个方面可并入至电话(例如,蜂窝式电话)、个人数据助理(PDA)、平板计算机、移动计算机、膝上型计算机、平板计算机、娱乐装置(例如,音乐或视频装置)、耳机(例如,头戴式耳机、听筒等)、医疗装置(例如,生物计量传感器、心率监测仪、计步器、心电描记法(EKG)装置等)、用户I/O装置、计算机、服务器、销售点装置、娱乐装置、机顶盒或任何其它合适的装置中。这些装置可具有不同电力和数据要求且可导致针对每一特征或特征集合产生的不同电力分布。
[0068]在一些方面中,无线装置可以包括用于通信系统的接入装置(例如,Wi-Fi接入点)。此接入装置可提供(例如)经由有线或无线通信链路到另一网络(例如,广域网,例如,互联网或蜂窝式网络)的连接性。因此,接入装置可允许另一装置(例如,Wi-Fi站)接入另一网络或某一其它功能性。另外,应了解,所述装置中的一者或两者可为便携式,或在一些情况下,相对非便携式。
[0069]所属领域的技术人员将理解,可使用多种不同技术和技艺中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示可在整个以上描述中参考的数据、指令、命令、信息、信号、位、符号及码片。
[0070]技术人员将进一步了解,结合本文所揭示的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。此类功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决策不应被解释为会导致脱离本发明的范围。
[0071]可使用经设计以执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块及电路。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规的理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器,或任何其它此类配置。
[0073]在一或多个示范性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果以软件实施为计算机程序产品,那么可将功能作为一或多个指令或代码存储于非暂时性计算机可读媒体上或经由非暂时性计算机可读媒体发射。计算机可读媒体可包含计算机存储媒体与通信媒体两者,通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此类非暂时性计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源发射软件,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在非暂时计算机可读媒体的范围内。
[0074]提供对所揭示的实施例的先前描述以使所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易地了解对这些实施例的各种修改,并且可以在不脱离本发明的精神或范围的情况下将本文所定义的一般原理应用到其它实施例中。因此,本发明并不希望限于本文中所示的方面,而应被赋予与本文中所揭示的原理和新颖特征一致的最广范围。