System and method for determining access point location

By using automatic positioning components and machine learning models, and by exchanging ranging data through precise timing measurements and time-of-flight measurements, the problem of inaccurate access point location was solved, enabling efficient self-positioning and location updates for access points.

CN114930180BActive Publication Date: 2026-02-06CISCO TECHNOLOGY INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202180008139.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-01-21
Filing Date
2021-01-20
Publication Date
2026-02-06
Estimated Expiration
2041-01-20

AI Technical Summary

Technical Problem

In a geographical area, inaccurate or moved location records of access points make it difficult and time-consuming to find them, affecting service and maintenance efficiency.

Method used

Edge access points are identified from multiple access points using an automatic positioning component, ranging data from fine-grained timing measurements and time-of-flight measurements are exchanged, the relative distances between access points are determined, and location-related data is updated. The location determination process is optimized using a machine learning model.

Benefits of technology

It improves the accuracy and efficiency of access point location determination, reduces service and maintenance time costs, and supports access point self-location and location updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114930180B_ABST
    Figure CN114930180B_ABST
Patent Text Reader

Abstract

A system can be configured to identify, from a plurality of access points in a region that are in communication with a network, a plurality of edge access points associated with an edge of the region. Further, the system can be configured to determine first edge location-related data of a first edge access point and first interior location-related data of a first interior access point. Determining the first interior location-related data of the first interior access point includes exchanging ranging data indicating a first relative distance between the first edge access point and the first interior access point. The ranging data can be based at least in part on fine timing measurements and / or time-of-flight based measurements. Determining the first interior location-related data of the first interior access point can further include communicating the first edge location-related data from the first edge access point to the first interior access point.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application is a continuation of and claims priority to U.S. Patent Application No. 16 / 748,565, filed January 21, 2020, the disclosure of which is incorporated by reference herein. TECHNICAL FIELD

[0003] The present disclosure generally relates to systems and methods for determining locations of access points in a geographic area (e.g., a building or other structure). BACKGROUND

[0004] Network systems can include a plurality of access points located in a geographic area (e.g., a building or other structure). An access point is a hardware device that facilitates connecting wireless devices to a hardwired network in the geographic area. For example, a building can include one or more networks that are used for data communication between different devices associated with the one or more networks. Some buildings can include a relatively large number of access points installed throughout the building, which are often located in unobvious locations. In some cases, the location of an access point can be recorded at the time of installation of the access point. However, some locations can be recorded inaccurately at the time of installation. In addition, some access points can move over time, resulting in a change in location of the access points, in addition, access points can be added to the network, for example, as an organization grows in size. As a result, finding an access point can be difficult and time consuming, resulting in difficulty performing services or maintenance associated with the access point.

[0005] Accordingly, it can be advantageous to develop techniques for determining locations of access points in a geographic area. SUMMARY

[0006] One aspect of the application provides a system comprising: one or more processors; and one or more computer-readable media having stored computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: identifying, via an automatic positioning component, a plurality of edge access points associated with an edge of an area from a plurality of access points in the area in communication with a network; determining first edge location-related data for a first edge access point of the plurality of edge access points; and determining first interior location-related data for a first interior access point of the plurality of access points, wherein determining the first interior location-related data for the first interior access point comprises: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge location-related data from the first edge access point to the first interior access point.

[0007] Another aspect of the application provides a method for determining location-related data for a plurality of access points in communication with a network located in an area, the method comprising: identifying, via an automatic positioning component, a plurality of edge access points associated with an edge of the area from the plurality of access points; determining first edge location-related data for a first edge access point of the plurality of edge access points; and determining first interior location-related data for a first interior access point of the plurality of access points, wherein determining the first interior location-related data for the first interior access point comprises: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge location-related data from the first edge access point to the first interior access point.

[0008] Yet another aspect of the present application provides one or more computer- readable media storing computer-executable instructions that, when executed, cause one or more processors to perform operations comprising: identifying, via an automatic positioning component, a plurality of edge access points associated with an edge of an area from a plurality of access points in the area that are in communication with a network; determining first edge location-related data for a first edge access point of the plurality of edge access points; and determining first interior location-related data for a first interior access point of the plurality of access points, wherein determining the first interior location-related data for the first interior access point comprises: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge location-related data from the first edge access point to the first interior access point. BRIEF DESCRIPTION OF DRAWINGS

[0009] A detailed description will follow with reference to the accompanying drawings. In the drawings, the left-most digit(s) of each reference numeral identifies the figure in which that reference numeral first appears. Like or similar components in different figures can be identified by the use of like reference numerals. The systems depicted in the figures are not drawn to scale and the dimensions of the various components can be exaggerated for clarity of illustration.

[0010] Figure 1 An example environment including an example geographic area including a plurality of access points, a pair of example stations associated with the geographic area, and an example automatic positioning component of a system for performing a process of determining locations of at least some of the access points in the geographic area is shown.

[0011] Figure 2 is a component diagram showing example components of an example system for determining locations of at least some access points located in a geographic area.

[0012] Figure 3 An example environment including an example geographic area including a plurality of access points, a pair of example stations associated with the geographic area, and an example automatic positioning component of a system for performing a process of determining locations of at least some of the access points in the geographic area is shown.

[0013] Figure 4 An example environment including an example geographic area including a pair of edge access points of the geographic area, two example stations in communication with one of the edge access points, and an example automatic positioning component of a system for performing an example process for determining location-related data for the edge access points is shown.

[0014] Figure 5 An example environment including an example geographic area including a pair of edge access points of the geographic area, two example stations in communication with one of the edge access points, and an example automatic positioning component of a system for performing an example process for determining location-related data for the edge access points is shown. Figure 4An example environment including one of the edge access points exchanging ranging data with two stations, as shown in FIG. 1 1, and a block diagram showing an example of using the ranging data exchange to determine location-related data for the edge access point.

[0015] Figure 6 An example environment, as shown in FIG. 1 1, showing an example process for using the ranging data exchange to determine location-related data for the edge access point. Figure 4 and Figure 5 An example environment, as shown in FIG. 1 1, showing an example process for using the ranging data exchange to determine location-related data for the edge access point.

[0016] Figure 7 An example environment, as shown in FIG. 1 1, showing an example process for using the ranging data exchange to determine location-related data for the edge access point. Figures 4-6 An example environment, as shown in FIG. 1 1, and another example process for using the ranging data exchange to determine location-related data for the edge access point, including a confidence level and a time stamp associated with the ranging data.

[0017] Figure 8 An example environment including an example geographic region including a plurality of access points exchanging ranging data between adjacent access points, and a block diagram showing an example process for updating location-related data associated with at least some of the access points based on the exchange of ranging data.

[0018] Figure 9A and Figure 9B A flowchart showing an example process for determining locations of at least some access points in a geographic region and updating the locations based at least in part on a confidence level associated with the locations.

[0019] Figure 10 FIG. 1 1 is a computer architecture diagram showing an illustrative computer hardware architecture for a device that can be used to implement aspects of the various technologies presented herein. DETAILED DESCRIPTION

[0020] SUMMARY

[0021] The present disclosure, in part, describes a system configured to identify, via an automatic positioning component, a plurality of edge access points associated with an edge of an area from a plurality of access points in the area in communication with a network. Further, the system can also be configured to determine first edge location-related data for a first edge access point of the plurality of edge access points, and determine first interior location-related data for a first interior access point of the plurality of access points. Determining the first interior location-related data for the first interior access point can include exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point. The ranging data can be based, at least in part, on at least one of a fine timing measurement or a time-of-flight based measurement. Determining the first interior location-related data for the first interior access point can also include communicating the first edge location-related data from the first edge access point to the first interior access point.

[0022] Further, the techniques described herein can be performed via a method and / or a computer-readable medium having stored thereon computer-executable instructions that, when executed by one or more processors, perform the methods described herein.

[0023] Example Embodiments

[0024] As described above, a network system can include a plurality of access points located in a geographic area (e.g., a building or other structure). For example, a building can include one or more networks for communicating data between different devices associated with the one or more networks, and some buildings can include a relatively large number of access points throughout the building, which are often located in unobvious locations. Finding access points can be difficult and time consuming for a variety of reasons, thereby making it difficult to perform services or maintenance associated with the access points.

[0025] IEEE 802.11az and 802.11-2016 (Fine Timing Measurement (FTM)) facilitates the exchange of ranging messages between two stations (e.g., between a smartphone and an access point) so that the relative position between the two stations can be determined. However, if the position of at least one of the two stations is known, the ranging message exchange can be useful only for location-based services. However, if neither of the two positions is known, even if a first station of the two stations can be able to determine its relative distance to a second station, without more information, it can not be possible to determine the position of the first station based on the ranging message exchange between the two stations. The above-mentioned protocols facilitate either of the two stations to communicate geographic coordinate information in a field called Location Configuration Information (LCI). However, without additional information (e.g., the position of one of the two stations), the LCI cannot help determine the position of the two stations. For example, a first station (e.g., a smartphone) needs the LCI from a second station (e.g., an access point), but the second station as an indoor access point does not have a position determination mechanism (e.g., a GPS system) to provide the LCI.

[0026] Accordingly, the present disclosure describes techniques for determining location-related data associated with a plurality of access points in a geographic area (e.g., a building). For example, a system can be configured to determine location-related data for a plurality of access points in a geographic area that communicate with a network. In some examples, the location-related data can be determined through data exchange between one or more stations and at least some of the access points. For example, the present disclosure describes techniques for generating LCI data from a seed exchange between stations (e.g., between a smartphone and an access point), and in some examples, facilitates substantially continuous learning to increase location parameters. In some examples, the system can enable access points to self-localize to each other on a common plane of geographic location (e.g., a floor of a building).

[0027] In some examples, a system can be configured to identify, via an automatic localization component, a plurality of edge access points associated with an edge of an area from a plurality of access points in the area that communicate with a network. The system can also be configured to determine first edge location-related data for a first edge access point of the plurality of edge access points, and determine first interior location-related data for a first interior access point of the plurality of access points. In some examples, determining the first interior location-related data for the first interior access point can include exchanging ranging data indicating a first relative distance between the first edge access point and the first interior access point, where the ranging data can be based at least in part on fine timing measurement (FTM) and / or time-of-flight based measurements. Determining the first interior location-related data for the first interior access point can also include communicating the first edge location-related data from the first edge access point to the first interior access point.

[0028] In some examples, identifying a plurality of edge access points associated with the edge of the region can include determining a number of neighboring access points for at least some of the plurality of access points, and from the at least some of the plurality of access points, identifying an access point having a smallest number of neighboring access points as an edge access point. In some examples, identifying the plurality of edge access points can include identifying an access point that first detects a presence of a station configured to communicate with at least some of the plurality of access points as an edge access point. In other examples, identifying the plurality of edge access points can include identifying an access point that lacks neighboring access points in at least a one-hundred and eighty degree region around the access point as an edge access point. In some examples, this can be performed by an automatic positioning component (e.g., an automatic positioning engine) (and / or an engine configured to determine station and / or access point locations and / or represent at least some of the locations on a map) running on a Connected Mobile Experience (CMX) that can be configured to collect data associated with access points and detect access points located at an edge of a geographic location (e.g., a perimeter of a building interior). TM (CMX) that can be configured to collect data associated with access points and detect access points located at an edge of a geographic location (e.g., a perimeter of a building interior).

[0029] In some examples, determining first edge location-related data for a first edge access point of the plurality of edge access points can include detecting, via the first edge access point, a presence of a first station configured to communicate with at least some of the plurality of access points. The first station can be a mobile device, such as a smartphone or tablet computer. Determining the first edge location-related data can further include initiating, via the first edge access point, a communication with the first station, and determining first station ranging data indicative of a first station relative distance between the first station and the first edge access point. In some examples, the first station ranging data can be based at least in part on fine timing measurement (FTM) and / or time-of-flight based measurements. Determining the first edge location-related data can further include communicating first station location-related data to the first edge access point, such as an LCI associated with the first station. The first station location-related data can include one or more of a first station location of the first station, a first confidence associated with an accuracy of the first station location, or a first timestamp associated with a first time period between a determination time at which the determination of the first station location occurred and a communication time at which the first station location-related data was communicated to the first edge access point. For example, the first edge access point can retrieve the LCI associated with the first station from the first station.

[0030] In some examples, determining the first edge location-related data can further include detecting, via the first edge access point, a presence of a second station configured to communicate with at least some of the plurality of access points. The second station can further include a mobile device. Determining the first edge location-related data can further include initiating, via the first edge access point, a communication with the second station and determining second station ranging data indicative of a second station relative distance between the second station and the first edge access point. In some examples, the second station ranging data can be based at least in part on FTM. Determining the first edge location-related data can further include communicating second station location-related data to the first edge access point, e.g., an LCI associated with the second station. The second station location-related data can include one or more of: a second station location of the second station, a second confidence associated with an accuracy of the second station location, or a second timestamp associated with a second time period between a determination time at which the determination of the second station location occurred and a communication time at which the second station location-related data was communicated to the first edge access point. For example, the first edge access point can retrieve the LCI associated with the second station from the second station.

[0031] In some examples, the system can be configured to determine a first circle having a first center defined at least in part by the first station location and a first radius defined at least in part by the first station relative distance. The system can be further configured to determine a second circle having a second center defined at least in part by the second station location and a second radius defined at least in part by the second station relative distance. The system can be further configured to identify an intersection of the first circle and the second circle as the first edge access point location.

[0032] In some examples, the first station location-related data can include a first confidence associated with an accuracy of the first station location and / or the second station location-related data can include a second confidence associated with an accuracy of the second station location. In some such examples, the system can be further configured to determine a first edge access point confidence associated with an accuracy of the first edge access point location based at least in part on the first confidence and / or the second confidence. In some such examples, the first circle can include a first inner radius and a first outer radius indicative at least in part of the first confidence and the second circle can include a second inner radius and a second outer radius indicative at least in part of the second confidence. In some such examples, identifying the intersection of the first circle and the second circle as the first edge access point location can include identifying an intercept centroid relative to the first circle and the second circle as the first edge access point location.

[0033] In some examples of the system, the system can be configured to determine, for example, edge location correlation data of at least some of the located edge access points among a plurality of edge access points, and internal location correlation data of the located internal access points among a plurality of internal access points, by exchanging ranging data and location correlation data between adjacent access points. In some examples, this may include initiating ranging data exchange between (1) adjacent located edge access points, (2) between a located edge access point and an adjacent located internal access point, and (3) and / or between adjacent located internal access points. In some examples, the system can be configured to update the location correlation data of the plurality of edge access points and the plurality of internal access points at least in part based on the exchanged ranging data. In some examples, updates may be performed substantially continuously until, for example, the location correlation data of an access point reaches a threshold confidence level. Furthermore, in some examples, the system can be configured to automatically determine the location correlation data of one or more of the plurality of access points via an automatic location component when one or more access points are relocated, and / or automatically determine the location correlation data of one or more additional access points added to the plurality of access points via an automatic location component.

[0034] In some examples, at least some of the above-described processes can be executed by an analytics model trained by machine learning. For example, the autolocalization component can execute this analytics model.

[0035] Some implementations and embodiments of this disclosure will now be described more fully with reference to the accompanying drawings, in which various aspects are illustrated. However, these aspects may be implemented in many different forms and should not be construed as limited to the implementations set forth herein. As described herein, this disclosure includes variations of the embodiments. The same reference numerals consistently refer to the same elements.

[0036] Figure 1 An example environment 100 is illustrated, including an example geographic area 102 comprising multiple access points 104 (e.g., API, AP2, AP3, ... APn), a pair of example stations 106 (e.g., STA1 and STA2) associated with geographic area 102, and an example system 108 including an example autolocation component 110 for performing a process to determine location-related data for at least some of the access points 104 in geographic area 102. Geographic area 102 may include any area where one or more networks are deployed, such as a building or other structure. Access points 104 may include any hardware device that creates a wireless local area network (WLAN), for example, that facilitates connecting wireless devices to a hardwired network in geographic area 102. Other types of access point devices are also conceivable.

[0037] Station 106 may include any mobile computing device configured, for example, to be transported by respective persons 112A and 112B, and configured to wirelessly communicate with one or more of access points 104, for example, to obtain access to one or more networks in geographic area 102. Station 106 may be configured to communicate with one or more of access points 104 via any known wireless communication protocol, such as Bluetooth. TM This includes General Packet Radio Service (GPRS), Cellular Digital Packet Data (CDPD), Mobile Solution Platform (MSP), Multimedia Messaging Service (MMS), Wireless Application Protocol (WAP), Code Division Multiple Access (CDMA), Short Message Service (SMS), Wireless Markup Language (WML), Handheld Device Markup Language (HDML), Wireless Binary Runtime Environment (BREW), Radio Access Network (RAN), Packet Switched Core Network (PS-CN), and any protocol related to IEEE 802.11 and / or Ultra Wideband (UWB) (e.g., any form associated with IEEE 802.15.4, 802.15.4a, and / or 802.15.4z). All generations of wireless technologies are also included. Any other known or anticipated wireless protocols and technologies may be used. Station 106 can be any type of mobile computing device, such as a computer, network device, internet device, tablet computer, PDA, cordless phone, smartphone, pager, etc. Other types of stations and / or protocols are contemplated.

[0038] like Figure 1 As shown, one or more of stations 106 may wirelessly communicate with one or more Global Positioning System (GPS) satellites 114 (e.g., three or more GPS satellites) to help provide the position and / or orientation of each station 106. Other forms and / or devices for determining the position and / or orientation of stations 106 are contemplated. For example, one or more of stations 106 may include one or more accelerometers, one or more gyroscopes, and / or one or more inertial measurement units to replace and / or supplement the position and / or orientation determined via communication with GPS satellites 114, for example, when stations 106 cannot communicate with GPS satellites 114 or the signal from GPS satellites 114 is weak, corrupted, and / or otherwise results in inaccurate position / or orientation information.

[0039] As described above, the system 108 for determining location-related data associated with one or more of the access points 104 may include an automatic positioning component 110 configured to coordinate the determination of location-related data associated with one or more of the plurality of access points 104 in the geographic region 102. Figure 1Includes a block diagram illustrating an example process 116, which can be performed by the automatic positioning component 110 associating communication between one or more of GPS satellites 114 and stations 106, and between stations 106 and at least some of the plurality of access points 104.

[0040] like Figure 1 As shown, example process 116 at 118 may include identifying one or more edge access points from a plurality of access points 104 located in geographic region 102, for example, as described herein regarding Figure 3 As discussed herein. Edge access points may include any access point 104 located along or near the periphery of geographic region 102 (e.g., the interior of a building). Once one or more edge access points have been identified, at 120, example process 116 may include detection via one or more of the one or more edge access points at one or more detection stations 106, for example, as described herein. Figure 4 As described herein. At 122, process 116 may include enabling one or more edge access points to communicate with one or more stations 106 to determine location-related data associated with the one or more stations 106, and at least in part based on the location-related data associated with the one or more stations 106. At 124, example process 116 may include determining location-related data for one or more edge access points, for example, as described herein regarding... Figures 5-7 As described herein. In some examples, location-related data associated with stations STA1 and / or STA2 may include the location of the respective stations, the distance between the respective stations and the respective edge access points, for example, as described in this article regarding... Figure 5 and Figure 6 As described herein. In some examples, location-related data associated with each edge access point may include an identifier of the location of the respective access point. In 126, example procedure 116 may include determining location-related data for one or more internal access points among a plurality of access points 104, for example, as described herein. Figure 8 The discussion focuses on this. In some examples, location-related data associated with each internal access point may include an identifier of the corresponding access point's location. In some examples, internal access points may include any access point not identified as an edge access point, for example, as discussed regarding... Figure 3 The subject of discussion.

[0041] like Figure 1 As shown, in some examples, example process 116 at 128 may include determining the confidence level of location-related data, such as the confidence level of location-related data associated with one or more of stations STA1 or STA2, one or more of edge access points, and / or one or more of internal access points, for example, as described herein regarding Figure 7 and Figure 8described. At 130, some examples of the process 116 can include exchanging ranging data between neighboring access points, e.g., as discussed above with respect to Figure 8 discussed. In some examples, the ranging data can include one or more of: locations of the neighboring access points, relative locations between the neighboring access points, or a confidence associated with the relative locations between the respective neighboring access points. In some examples, the neighboring access points can be access points that are within a threshold distance of each other based at least in part on, e.g., signal strengths associated with signals communicated between the access points 104, e.g., as discussed above with respect to Figure 3 discussed. At 132, some examples of the process 116 can include updating location-related data associated with one or more of the access points 104 based at least in part on the exchange of ranging data between the access points 104 at 130, e.g., as discussed above with respect to Figure 8 discussed.

[0042] As Figure 1 shown in FIG. 2, in some examples, the process 116 can also include determining location-related data for relocated access points at 134. For example, one or more of the access points 104 can be relocated, e.g., due to a change in geographic location (e.g., a change in a building interior and / or a rearrangement of access points due to an addition or deletion of access points). Some examples of the process 116 can include determining a location of a relocated access point, e.g., as discussed above with respect to Figure 8 discussed. In some examples, the process 116 at 136 can include determining location-related data for added access points, e.g., as discussed above with respect to Figure 8 discussed.

[0043] Figure 2 is a component diagram 200 illustrating example components of an example system 108 for determining location-related data associated with at least some of the access points 104 located in the geographic region 102. As shown, the system 108 can include one or more computer systems 202, which can include one or more hardware processors 204 configured to execute one or more stored instructions. The processor 204 can include one or more cores, and the computer system 202 can include one or more network interfaces 206 configured to provide for communication between the computer system 202 and other devices (e.g., the access points 104 and / or the stations 106), e.g., via one or more networks 208. The network interfaces 206 can include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), etc. For example, the network interfaces 206 can include devices compatible with Ethernet, Wi-Fi TM , Ultra-WideBand (UWB), etc.

[0044] The computer system 202 can include a computer-readable medium 210 storing one or more operating systems 212. The operating system(s) 212 can generally support basic functions of the devices of the computer system 202, such as scheduling tasks on the devices, executing applications on the devices, controlling peripheral devices, etc. The computer-readable medium 210 can also store an automatic positioning component 110 that is configured to perform at least the functions described herein when executed by the processor 204.

[0045] In some examples, the automatic positioning component 110 can include an edge AP identifier component 214 that is configured to identify edge access points from the plurality of access points 104 in the geographic region 102, e.g., as described herein. The automatic positioning component 110 can also include a station locator component 216 that is configured to identify respective locations of respective stations 106, e.g., based on communications between the access points 104 and the stations 106, which can be via one or more networks 208 and / or directly via respective transceivers associated with the access points 104 and the stations 106, e.g., as described herein. In some examples, the automatic positioning component 110 can also include an access point locator component 218 that is configured to determine and / or update respective location-related data associated with one or more of the access points 104, e.g., as described herein. In some examples, the automatic positioning component 110 can also include a confidence component 220 that is configured to determine a confidence associated with location-related data associated with the access points 104 and / or the stations 106, e.g., as described herein.

[0046] As Figure 2As shown in FIG. 1, some examples of the system 108 can include a location update component 222 configured to update respective location-related data associated with the access points 104 and / or the stations 106, e.g., when two or more of the access points 104 and / or the stations 106 exchange ranging data, e.g., as described herein. In some examples, the location update component 222 can include a location model 224 execution of which can result in updating location-related data associated with one or more of the access points 104 and / or one or more of the stations 106, e.g., as described herein. In some examples, the location model 224 can include an analytical model configured to update location-related data, e.g., based on data exchange between the access points 104 and / or the stations 106. In some examples, the location model 224 can include a machine learning trained analytical model. For example, the computer system 202 can include and / or be in communication with a machine learning engine 226 configured to use training data 228 to improve the ability of the system 108 to determine respective location-related data associated with the access points 104 and / or the stations 106, e.g., as described herein. For example, the training data 228 can be generated by repeatedly determining location-related data associated with the access points 104 and / or the stations 106.

[0047] In some examples, the machine learning engine 226 can be part of or incorporated into a machine learning network that can execute any one or more machine learning algorithms, e.g., a neural network. A neural network can be a biologically inspired algorithm that passes input data through a series of connected layers to produce an output. One example of a neural network is a convolutional neural network (CNN). Each layer in a CNN can also include another CNN, or can include any number of layers. Neural networks can utilize machine learning, which is a broad class of such algorithms in which an output is generated based on learned parameters.

[0048] Although discussed in the context of neural networks, any type of machine learning consistent with the present disclosure can be used. For example, machine learning algorithms can include, but are not limited to, regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally estimated scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression tree (CART), iterative dichotomiser 3 (ID3), chi- squared automatic interaction detection (CHAID), decision stump, conditional decision tree), Bayesian algorithms (e.g., Naive Bayes, Gaussian Naive Bayes, Multinomial Naive Bayes, average one-dependence estimators (AODE), Bayesian belief network (BNN), Bayesian network), clustering algorithms (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., perceptron, back-propagation, hopfield network, radial basis function network (RBFN)), deep learning algorithms (e.g., deep Boltzmann machine (DBM), deep belief network (DBN), convolutional neural network (CNN), stacked autoencoder), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixture discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., Boosting, Bagging (bootstrap aggregating), AdaBoost, Stacked Generalization (blending), gradient boosting machines (GBM), gradient boosting regression trees (GBRT), random forest), SVM (support vector machines), supervised learning, unsupervised learning, semi-supervised learning, etc.

[0049] In some examples, more than one type of machine learning network can be used to provide a respective result for each type of machine learning used. In some examples, a confidence score can be associated with each result, and the result relied upon can be based at least in part on the confidence score associated with that result. For example, a result associated with the highest confidence score can be selected over other results, or the results can be combined based on the confidence scores, e.g., based on a statistical method such as a weighted average.

[0050] As Figure 2As shown in FIG. 1, the computer system 202 can include and / or have access to a data store 230. The data store 230 can include a file store including data associated with one or more of the access points 104, data associated with locations of one or more of the access points 104, data associated with one or more of the stations 106, data associated with one or more of the locations of the stations 106, and / or associated with the geographic region 102.

[0051] Figure 3 An example environment 300 is shown including an example geographic region 302 including a plurality of access points 104, an example station STA1, and an example auto-locating component 110 of a system 108 for performing a process for identifying edge access points from a plurality of access points in the geographic region 302. The environment 300 and geographic region 302 can correspond to Figure 1 The environment 100 and geographic region 102 shown in FIG. 1. Figure 3 A block diagram is shown including an example process 300 for identifying edge access points from a plurality of access points 104 located in a geographic region 302.

[0052] As Figure 3 As shown in FIG. 3, at 306, identifying a plurality of edge access points from a plurality of access points 104 in communication with one or more networks in the geographic region 302 via the auto-locating component 110 can include identifying access points having a minimum number of neighboring access points. In some examples, this can include determining a number of neighboring access points for at least some of the plurality of access points 104 and identifying the access points 104 having the minimum number of neighboring access points as edge access points. For example, access points expected to be located at an edge of the geographic region 302 (e.g., a building) will have a relatively lower count of neighboring access points than access points located in an interior region of the geographic region 302. In some examples, the auto-locating component 110 can be configured to determine a number of neighboring access points for one or more of the access points 104 located in the geographic region 302. In some examples, this can be performed by an auto-locating component (e.g., an auto-locating engine) running on a Connected Mobile Experience TM (CMX) (and / or any other engine configured to determine station and / or access point locations and / or represent at least some locations on a map), which can be configured to collect data associated with access points and detect access points located at an edge of a geographic location (e.g., a perimeter of a building interior).

[0053] In some examples, the determination of whether an access point 104 is a neighboring access point relative to another access point can be based on a signal strength of a signal communicated between the two access points 104. For example, if the signal strength is greater than or equal to a threshold signal strength, the two access points 104 can be determined to be neighboring access points relative to each other. Conversely, if the signal strength is less than the threshold signal strength, the access points can be determined not to be neighboring access points relative to each other.

[0054] Figure 3 An example of a plurality of access points API to APn is shown, and a representation is shown for illustrating the number of neighboring access points 104 relative to each access point 104. In the illustrated example, access points API, AP2, AP3, AP4, AP6, AP7, AP10, AP13, and AP14 are edge access points located around the outside perimeter of the geographic area 302. In the illustrated example, each edge access point has three or fewer neighbors. Figure 3 Also shown are interior access points AP5, AP8, AP9, and AP12, which are not edge access points. Unlike the edge access points, each interior access point has four or more neighbors. Thus, in some examples, edge access points can be distinguished from interior access points by a statistical analysis of the number of neighboring access points for each access point, and those access points that are statistically more likely to be edge access points are identified as edge access points. In some examples, one or more of the access points 104 and / or one or more of the stations 106 can include a sensor configured to generate sensor data indicative of an elevation of the respective access point and / or respective station. In some such examples, the sensor can include a barometric pressure measuring device. In some such examples, one or more signals generated by the sensor can be used to determine whether the access points 104 are located on the same horizontal plane as each other (e.g., on the same floor of a multi-story building). In some examples, access points 104 that are not on the same horizontal plane can be considered not to be neighboring access points relative to each other.

[0055] In some examples, at 308, edge access points can be identified as the access points in the plurality of access points 104 that first detect the presence of an access point 104 and / or a station 106. For example, one or more of the access points 104 can be configured to report detected probe requests from other access points 104 and / or one or more stations 106, and the detected media access control (MAC) addresses can be recorded along with the MAC address of the reporting access point. In some such examples, if a MAC address has already been detected by another access point, the reporting access point can be determined not to be an edge access point. For example, when a station 106 enters a building, it would be expected to be detected first by an edge access point, rather than an interior access point.

[0056] In some examples, the automatic positioning component 110 can be configured to mitigate or eliminate false determinations of edge access points. For example, although one or more of the stations 104 can not repeatedly change MAC addresses for each scan, at least some stations can change local MAC addresses at time intervals, potentially creating the phenomenon of previously undetected MAC addresses appearing. In some examples, the automatic positioning component 110 can be configured to determine at least some such false positives, at least because the MAC address rotation interval can differ from the access point-to-access point roaming speed in two or more access points, and the MAC address rotation can occur multiple times within a single cell, or can occur in more than one cell, at least in some cases can make outliers easy to identify.

[0057] In another example in which edge access points can be inaccurately identified, an access point on a non-ground level (e.g., on an upper level of a multi-level building) can detect probes from MAC addresses that can have been detected by a ground level access point. However, in some cases, a station can appear on a non-ground level without first being detected on a ground level, for example, when a building includes a parking garage and an elevator or stairwell allows direct access to a non-ground level (e.g., an upper level of a building) and / or the non-ground level is part of a different network from the network on the ground level. In some such cases, in a station that includes a GPS, the GPS signal transmitted to the access point can be stale and / or unavailable, and a response to a prompt of the access point (e.g., an LCI exchange) can fail. In some such examples, the automatic positioning component 110 can be configured to take this into account and determine that the access point is not an edge access point, even though it was the first access point to detect the station on a given level. In some examples, at least similar techniques can be used to identify false edge access points when a geographic region has an invented edge, for example, where an access point around an edge of a geographic region has more neighboring access points than at least some other access points, a station behaves as a hub. In some such examples, the automatic positioning component 110 can be configured to switch from one model to another upon detecting such a hub.

[0058] In some examples, the process of identifying edge access points 304 can include a combination of both 306 and 308. In some examples, the process 300 for identifying edge access points 304 can include identifying an access point as an edge access point if it lacks neighboring access points in at least a one-hundred eighty degree region around the access point, for example, as shown in Figure 3 Figure 3 ​The access point AP4 shown in FIG. 4 has three neighboring access points 104 (AP3, AP5, and AP9), and AP4 is an edge access point. As shown, the access point AP4 has no neighboring access points in at least a one hundred eighty degree area 312 around the access point AP4. In some examples, a constellation map can be created for one or more of the access points 104, and the results of the constellation calculation can be directly translated into the respective locations of the access points 104. The access point neighborhood and direction map can be used to detect access points that have no neighboring access points in two or more of the four quadrants, e.g., so edge access points have no neighboring access points in a one hundred eighty degree or greater area. In some examples, 310 can use a standard indoor path loss model available in CMX and can perform a reverse path loss to convert RSSI to a distance metric. In some examples, an alternative method can use FTM to perform access point to access point distance calculations and incorporate the distance calculations directly into the access point neighborhood map. In some examples, the process 300 for identifying edge access points 304 can include both 306 and 310, or can replace 306 with 310.

[0059] Figure 4 An example environment 400 is shown that includes an example geographic region 402 that includes two edge access points 104 (e.g., AP1 and AP2) of the geographic region 402, two example stations STA1 and STA2 that are in communication with one of the edge access points 104 (i.e., AP1), and an example automatic positioning component 110 of a system 108 for performing an example process for determining location-related data of one of the edge access points 104. The environment 400 and the geographic region 402 can correspond to the environment 100 and the geographic region 102 as shown in FIG. 1. Figure 1 Figure 4 A block diagram is included that shows an example process 404 for determining location-related data of one or more of the edge access points (e.g., edge access point AP1). For example, at 406, the process 404 can include detecting, via the edge access point AP1, a presence of a first station STA1, which can be a station configured to communicate with at least some of the plurality of access points 104. At 408, the process 404 can include initiating, via the edge access point AP1, a communication with the first station STA1. In some examples, at 408, the process 404 can also include determining ranging data indicative of a relative distance between the first station STA1 and the edge access point AP1. In some examples, the ranging data can be based at least in part on FTM.

[0060] ​For example, the first station STA1 can be an FTM-enabled station, which can be detected by the edge access point API and / or the edge access point AP2, e.g., upon entering the geographic area 402. In some examples, the edge access point API can initiate a ranging exchange and retrieve location-related data associated with the first station STA1, which can include an LCI. In some such examples, the edge access point API can be configured to communicate the ranging data including the LCI to the automatic positioning component 110, e.g., which can add data associated with the ranging exchange to the training data 228 Figure 2 ). In some examples, if the first station STA1 does not include an LCI, the edge access point API can be configured to ignore the ranging data received from the first station STA1 and continue detecting stations 106. In some examples, the stations 106 can be FTM-enabled stations, and the LCIs can include current GPS data (and / or other location data) associated with the respective stations 106. In some examples, the stations 106 can be FTM-plus-enabled stations 106, and the ranging data can include an LCI field that includes a confidence and / or a timestamp indicating, e.g., a time interval that has elapsed since the LCI and / or GPS data was sent. The confidence can indicate an expected accuracy of the LCI and / or GPS data. In some examples, the access points 104 can include a sensor (e.g., a barometer) configured to generate one or more signals indicative of an altitude of the access point 104, e.g., as described herein, and which can be used to determine a floor level of a building in which the access point is located.

[0061] Some stations 106 can include GPS hardware with an accuracy on the order of ten meters. Some stations 106 can include relatively higher accuracy GPS hardware (e.g., L5-enabled GPS hardware) with an accuracy range of about one meter to about three meters. Some stations 106 can incorporate post-processing programs with ground amplifiers (e.g., Beidou TM ), and can have an accuracy of about one meter or less. In some example stations 106, once the GPS signal count falls below a minimum threshold accuracy level, which can be a hardware-dependent limit, some stations 106 can extrapolate position changes based on sensors (e.g., accelerometers, gyroscopes, and / or inertial measurement units incorporated into the stations 106). In some such examples, location-related data associated with the stations 106 can continue to be determined, but with a reduced confidence associated with the accuracy of the location-related data determinations. The confidence can represent a sum of these considerations.

[0062] In some examples, as more stations 106 enter the geographic area 402, location related data can be determined for the edge access point 104. In some examples, the location related data can include relative distances to the various stations 104, as well as a confidence associated with the relative distances to the various stations. One or more of the access points 104 (e.g., the edge access point 104) can use this data to determine its respective access point location related data (e.g., its LCI and confidence), e.g., as described with respect to Figures 5-7

[0063] Figure 5 An example environment 400 including an edge access point (e.g., AP1) of the edge access points 104 exchanging ranging data with a first station STA1 and a second station STA2 is shown in Figure 4 Figure 5 As shown, when the first station STA1 enters the geographic area 402 (e.g., a building), the access point AP1 detects the first station STA1. The access point AP1 can initiate a ranging exchange and retrieve ranging data RD1 associated with the first station STA1, which can include an LCI. In some such examples, the edge access point AP1 can be configured to communicate the ranging data RD1 including the LCI to the automatic positioning component 110. As shown in Figure 5 The ranging data RD1 associated with the first station STA1 can include a relative distance 502 between the first station STA1 and the edge access point AP1, as well as a location 1 of the first station STA1. Similarly, when the second station STA2 enters the geographic area 402, the access point AP1 can detect the second station STA2. The access point AP1 can initiate a ranging exchange and retrieve ranging data RD2 associated with the second station STA2, which can include an LCI. In some such examples, the edge access point AP1 can be configured to communicate the ranging data RD2 including the LCI to the automatic positioning component 110. As shown in Figure 5 The ranging data RD2 associated with the second station STA2 can include a relative distance 504 between the second station STA2 and the access point AP1, as well as a location 2 of the second station STA2.

[0064] Figure 6 An example environment 400 including an edge access point (e.g., AP1) of the edge access points 104 exchanging ranging data with a first station STA1 and a second station STA2 is shown in Figure 4 and Figure 5 ​​The example environment 400 shown illustrates an example process 500 for determining location-related data of an edge access point AP1 using ranging data exchange. For example, process 500 may include determining a first circle 600 having a first center 602 and a first radius R1, the first center 602 being at least partially defined by a location 1 associated with a first station STA1, and the first radius R1 being at least partially defined by a relative distance 502 between the first stations. Process 500 may also include determining a second circle 604 having a second center 606 and a second radius R2, the second center 606 being at least partially defined by a location 2 associated with a second station STA2, and the second radius R2 being at least partially defined by a relative distance 504 between the second stations. Process 500 may also include identifying the intersection 608 of the first circle 600 and the second circle 604 with each other as the location of the first edge access point.

[0065] Figure 7 It shows Figures 4-6 The example environment 400 shown, and another example of the process 500 for determining location-related data 700 of an edge access point AP1 using ranging data exchange, wherein ranging data RD1 and RD2 include confidence levels and timestamps associated with the respective ranging data. For example, as Figure 7 As shown, the location-related data associated with the first station STA1 (e.g., ranging data RD1) includes, in addition to the relative distance 502 and location 1 associated with the first station STA1, a confidence level 702 associated with the accuracy of location 1 of the first station STA1 and a timestamp 704 associated with the first station STA1, for example, as described herein. Furthermore, the location-related data associated with the second station STA2 (e.g., ranging data RD2) includes, in addition to the relative distance 504 and location 2 associated with the second station STA2, a confidence level 706 associated with the accuracy of location 2 of the second station STA2 and a timestamp 708 associated with the second station STA2, for example, as described herein. In some such examples, process 500 may also include determining a confidence level 710 associated with the accuracy of the location-related data 700 associated with the edge access point AP1 (including, for example, the location 712 of access point AP1), based at least in part on the first confidence level 702 and / or the second confidence level 706.

[0066] like Figure 7As shown in FIG. 6, in some examples of process 500, first circle 600 can include a first inner radius RII and a first outer radius ROl, which at least partially indicate a confidence 702 associated with the location-related data associated with first station STAl. Similarly, in some examples, second circle 604 can include a second inner radius RI2 and a second outer radius R02, which at least partially indicate a confidence 706 associated with the location-related data associated with second station STA2. The difference between the inner and outer radii can indicate the confidence, e.g., a relatively larger difference indicates a relatively lower confidence. For example, as shown in FIG. 6, because the difference between second outer radius R02 and second inner radius RI2 is larger relative to the difference between first outer radius ROl and first inner radius RII, the confidence associated with first circle 600 is expected to be relatively higher than the confidence associated with second circle 604. Figure 7

[0067] In some examples, process 500 can include identifying the intercept centroid 714 relative to first circle 600 and second circle 604 as edge access point API location 712, e.g., as shown in FIG. 6. Figure 7 As shown in FIG. 6, in some examples, process 500 can consider the confidence associated with determining the location of various access points 104, including edge access points and / or interior access points. In some examples, one or more of access points 104 can be configured to determine its own location-related data, including its location and a corresponding confidence associated with the respective location.

[0068] Figure 8 ​An example environment 800 is shown that includes an example geographic region 802 that includes a plurality of access points 104 that exchange ranging data RD between neighboring access points 104, and a block diagram of an example process 804 for updating location-related data associated with at least some of the access points 104 based on the exchange of ranging data RD. For example, at 806, the process 804 includes exchanging ranging data RG between neighboring access points 104. In some examples, the ranging data can include access point locations 808, relative locations between neighboring access points 810, and / or a confidence 812 associated with the ranging data of one or more of the access points 104. In some such examples, the process 804 can include determining updated location-related data 814 for one or more of the access points 104. For example, the process 804 can include determining location-related data for a plurality of edge access points 104, and associating a respective confidence 808 for each of the plurality of edge access points 104. Similarly, the process 804 can include determining location-related data for a plurality of interior access points 104, and associating a respective confidence for each of the plurality of interior access points 104. Further, the process 804 can include updating at least some of the location-related data associated with the edge and / or interior access points 104, e.g., to improve at least some of the respective confidences 812. In some examples, the process 804 can also include exchanging additional ranging data indicating additional relative distances between at least some pairs of the plurality of access points 104 over time, and determining updated location-related data for at least some of the access points 104 (e.g., edge and / or interior access points) based at least in part on the additional ranging data and / or additional location-related data. In some examples, the updating can be performed by the location model 224 (see Figure 2 ) which, in some examples, can be an analytical model trained by the machine learning engine 226 (e.g., using the training data 228).

[0069] In some examples, as repeated exchanges of ranging data occur between the stations 106 and the access points 104 and / or between neighboring access points 104, the accuracy of the location-related data for each pair of access points that exchanges can also increase. In some examples, once the confidence of a pair of access points reaches a threshold confidence, the access point that includes the LCI can be caused to skip ranging exchanges with access points that also have LCIs associated with a high confidence.

[0070] As the ranging data exchange between access points continues, it is possible that conflicting information can be identified from LCI calculations originating from different edge access points 104. In such examples, the confidence of the access point being calculated can correspondingly decrease. Inputs from more than two access point neighbors can be affected by inaccuracies, so in some examples, the system can be configured to perform a minimum mean square error (MMSE) process and / or any other error reduction method to reconcile LCI information and associated confidence, e.g., any Euclidean distance matrix (EDM) resolution techniques, etc.

[0071] In some examples, once the exchange has terminated, each access point of a given level of the area (e.g., on a common floor of a building) can have location-related data (e.g., LCI) associated with a reliable confidence. Further, the system can utilize the location-related data (e.g., by the CMX) to automatically locate the access points 104 on, for example, one or more maps on which the initial geo-tagging was arranged.

[0072] In some examples, the process 804 can further include automatically determining, via the automatic location component 110, location-related data for one or more of the access points 104 upon repositioning of one or more of the access points 104. Further, in some examples, the process 804 can further include automatically determining, via the automatic location component 110, location-related data for one or more of additional access points added to the access points 104. In such example manners, the system 108 can self-heal by exchanging ranging data, repositioned access points can be automatically detected at their respective new locations, and / or newly added access points can be detected at their respective locations. For example, any repositioned access point can trigger a decrease in confidence upon moving from its initial location and determine new location-related data upon repositioning to its new location. Further, any access point added to the area can generate an access point pair, one access point of the access point pair (e.g., the newly added access point) having no location-related data, which can trigger the other access point to initiate a ranging data exchange, thereby enabling determination of location-related data for the new access point.

[0073] Figure 9A and Figure 9BA flow diagram collectively illustrating an example process 900 for determining location-related data for a plurality of access points in communication with a network located in a geographic area is shown. The process is illustrated as a logical flow diagram, the operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or in parallel to implement the process.

[0074] As described above, Figure 9A and Figure 9B A flow diagram collectively illustrating an example process 900 for determining location-related data for a plurality of access points in communication with a network located in a geographic area is shown. As Figure 9A illustrated, operation 902 represents identifying, from the plurality of access points, a plurality of edge access points associated with an edge of the area. For example, the automatic positioning component can be configured to identify edge access points by, e.g., identifying access points with a minimum number of neighboring access points as edge access points, and / or identifying access points that first detect the presence of a station configured to communicate with at least some of the access points under identification as edge access points. In some examples, identifying edge access points can include identifying access points that lack neighboring access points in at least a one-hundred eighty degree area around the access points.

[0075] Operation 904 represents detecting, via a first edge access point, the presence of a first station configured to communicate with at least some of the plurality of access points, e.g., as described herein with respect to Figures 4-7 Operation 906 represents initiating, via the first edge access point, communication with the first station, and operation 908 represents determining first station ranging data, the first station ranging data indicating a first station relative distance between the first station and the first edge access point. In some examples, this can be based on FTM. Operation 910 represents communicating first station location-related data to the first edge access point, e.g., as described herein with respect to Figures 5-7 As explained herein, in some examples, this can include LCI.

[0076] Operation 912 represents detecting, via the first edge access point, the presence of a second station configured to communicate with at least some of the plurality of access points, e.g., as described herein with respect to Figures 5-7as described herein with respect to FIG. 8. Operation 914 represents initiating, via the first edge access point, a communication with a second station, and operation 916 represents determining second station ranging data, the second station ranging data being indicative of a second station relative distance between the second station and the first edge access point, e.g., as described herein with respect to FIG. 8. Figures 5-7 Operation 918 represents communicating second station location related data to the first edge access point.

[0077] Figure 9B Continuing the illustration of process 900 and including determining, at operation 920, a first circle, the first circle having a first center defined at least in part by the first station location related data and a first radius, e.g., as described herein with respect to FIG. 8. Figure 6 and 7 Operation 922 represents determining a second circle, the second circle having a second center defined at least in part by the second station location related data and a second radius. Operation 924 represents identifying an intersection of the first circle and the second circle as the first edge access point location.

[0078] Operation 926 represents determining a plurality of edge location related data for a plurality of edge access points and associating an edge access point confidence for each of the plurality of edge access points, e.g., as described herein with respect to FIG. 8. Figure 8 Operation 928 represents determining a plurality of interior location related data for a plurality of interior access points and associating an interior access point confidence for each of the plurality of interior access points, e.g., as described herein with respect to FIG. 8. Figure 8

[0079] Operation 930 represents exchanging additional ranging data indicative of additional relative distances between at least some of the plurality of access points, and operation 932 represents exchanging additional station location related data with at least one additional station.

[0080] Operation 934 represents determining updated access point location related data for at least some of the edge access points or at least some of the interior access points, e.g., as described herein with respect to FIG. 8. Figure 8

[0081] Implementations of the various components described herein are a choice of design depending on the performance and other requirements of the computing system. As a result, the logical operations described herein are variously referred to as operations, structural devices, acts, or modules. These operations, structural devices, acts, and modules can be implemented in software, firmware, special-purpose digital logic, and any combination thereof. It should also be understood that, in some embodiments, the operations, structural devices, acts, and modules described herein can be performed by a processing device that is distinct from the computing system. Figure 1 , Figures 3-8 , Figure 9A and Figure 9B ​​shown and more or less operations as described herein. These operations can also be performed in parallel, or in a different order than as described herein. Some or all of these operations can also be performed by components other than the specific components identified. Although the techniques described in this disclosure are with reference to particular components, in other examples, these techniques can be implemented by fewer components, more components, different components, or any configuration of components.

[0082] Figure 10 is a computer architecture diagram illustrating an illustrative computer hardware architecture for implementing one or more devices 1000 that can be used to implement aspects of the various techniques presented herein. The automated positioning component 110 discussed above can include some or all of the components discussed below with reference to the device 1000.

[0083] As previously noted, computing resources provided by a cloud computing network, data center, etc. can be data processing resources such as VM instances or hardware computing systems, database clusters, computing clusters, storage clusters, data storage resources, database resources, network resources, etc. Some of the devices 1000 can also be configured to execute a resource manager that is capable of instantiating and / or managing computing resources. For example, in the case of VM instances, the resource manager can be a hypervisor, or other type of program configured to enable multiple VM instances to be executed on a single server device 1000. The devices 1000 in a data center can also be configured to provide network services and other types of services.

[0084] The device 1000 includes a baseboard 1002, or “motherboard,” which is a printed circuit board to which a multitude of components or devices can be connected by a system bus or other electrical communication paths. In one illustrative configuration, one or more central processing units (CPUs) 1004 operate in conjunction with a chipset 1006. The CPUs 1004 can be standard programmable processors that execute algorithmic tasks for performing the operations of the device 1000.

[0085] The CPUs 1004 perform operations through transformations to and from some physical quantities within the memory elements, which are some variation of machine data. These quantity changes include those related to the configuration of the CPU's operational parameters such as the number of threads, number of instructions executed, clock frequency, etc.

[0086] Chipset 1006 provides an interface between the CPU 1004 and the rest of the bus 1002 and the other components of the device 1000. Chipset 1006 can provide an interface to a RAM 1008 used as main memory in the device 1000. Chipset 1006 can further provide an interface to a computer-readable storage medium, such as a read-only memory (ROM) 1010 or non-volatile RAM (NVRAM), used to store basic routines that help to startup the device 1000 and transfer information between the various components and devices. The ROM 1010 or NVRAM can also store other software components necessary for operating the device 1000 according to the configurations described herein.

[0087] The device 1000 can operate in a networked environment using logical connections to remote computing devices and computer systems through a network, such as the local area network 1024. The chipset 1006 can include functionality for providing network connectivity through a network interface card (NIC) 1012, such as a gigabit Ethernet adapter. The NIC 1012 is capable of connecting the device 1000 to other computing devices over the network. It will be appreciated that multiple NICs 1012 can be present in the device 1000 to connect the computer to other types of networks and remote computer systems.

[0088] The device 1000 can be connected to a storage device 1018 that provides non-volatile storage for the computer. The storage device 1018 can store the operating system 1020, programs 1022, and data, which have been described in greater detail herein. The storage device 1018 can be connected to the device 1000 through a storage controller 1014 connected to the chipset 1006. The storage device 1018 can be composed of one or more physical storage units. The storage controller 1014 can interact with the physical storage units through a serial attached SCSI (SAS) interface, a serial advanced technology attachment (SATA) interface, an FC interface, or other type of interface for physically connecting and transferring data between computers and physical storage units.

[0089] The device 1000 can store data on the storage device 1018 by transforming the physical state of the physical storage units to reflect the information being stored. The specific transformation of physical state can depend on various factors, in different embodiments of the description. Examples of such factors can include, but are not limited to, the technology used to implement the physical storage units, whether the storage device 1018 is characterized as primary or secondary storage, or the like.

[0090] For example, device 1000 can store information in storage device 1018 by issuing instructions via storage controller 1014 to change the magnetic properties of a specific location within a disk drive unit, the reflection or refraction properties of a specific location in an optical storage unit, or the electrical properties of a specific capacitor, transistor, or other discrete component in a solid-state storage unit. Other transformations of the physical medium are possible without departing from the scope and spirit of this description; the foregoing examples are provided merely for the purpose of facilitating this description. Device 1000 can further read information from storage device 1018 by detecting the physical state or characteristics of one or more specific locations within the physical storage unit.

[0091] In addition to the aforementioned high-capacity storage device 1018, device 1000 can access other computer-readable storage media to store and retrieve information, such as program modules, data structures, or other data. Those skilled in the art will understand that a computer-readable storage medium is any available medium that provides non-transitory storage of data and is accessible by device 1000.

[0092] By way of example and not limitation, computer-readable storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology. Computer-readable storage media include, but are not limited to, RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid-state storage technologies, optical disc ROM (CD-ROM), digital versatile disk (DVD), high-definition DVD (HD-DVD), Blu-ray or other optical storage, magnetic tape cassettes, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information in a non-transitory manner.

[0093] As described above, storage device 1018 may store operating system 1020 for controlling the operation of device 1000. According to one embodiment, the operating system includes a Linux operating system. According to another embodiment, the operating system includes a Microsoft Corporation from Redmond, Washington. SERVER operating system. According to further embodiments, the operating system may include one of the UNIX operating systems or variants thereof, and / or MacOS. TM It should be understood that other operating systems can also be used. Storage device 1018 can store other systems, applications, and data used by device 1000.

[0094] In one embodiment, the storage device 1018 or other computer readable storage medium is encoded with computer-executable instructions which, when loaded into the apparatus 1000, transform the computer from a general-purpose computing system into a special- purpose computing system capable of implementing the embodiments described herein. As stated above, these computer-executable instructions transform the apparatus 1000 by specifying how the CPU 1004 transitions between states, thereby changing the way the apparatus 1000 operates. According to one embodiment, the apparatus 1000 has access to computer-readable storage media storing computer-executable instructions which, when executed by the apparatus 1000, perform the various processes described above with regard to Figures 1-9B the various processes described herein. The apparatus 1000 can also include computer- readable storage media having stored thereon instructions for performing any of the other computer-implemented operations described herein.

[0095] The apparatus 1000 can also include one or more input / output controllers 1016 which receive and process input from one or more input devices not shown in FIG. 10, such as a keyboard, mouse, touchpad, touchscreen, electronic pen, or other type of input device. Similarly, the input / output controller 1016 can provide output to one or more display devices, such as a computer monitor, flat- panel display, digital projector, printer, or other type of output device. It will be appreciated that the apparatus 1000 can not include all of the components shown in FIG. 10, can include other components not explicitly shown in FIG. 10, or can utilize an architecture completely different than that shown in FIG. 10. Figure 10 Figure 10 Figure 10

[0096] The apparatus 1000 can also store in the storage device 1018 the automatic positioning component 110 for use in performing some or all of the techniques described above with regard to the automatic positioning component 110. Figures 1-9B

[0097] While the application has been described with respect to specific embodiments, it will be appreciated that the scope of the application is not limited to these specific embodiments. Various modifications and changes can be made as would be obvious to a person skilled in the art having the benefit of this disclosure, and it is intended to embrace all such modifications and changes and, accordingly, they fall within the scope of this application as claimed.

[0098] While this application describes embodiments with specific features and / or methods, it will be appreciated that the claims are not limited to specific features or methods. Rather, the specific features and methods are merely illustrative of some embodiments falling within the scope of the claims.​​​​

Claims

1. A system for determining location-related data for a plurality of access points in communication with a network located in an area, the system comprising: one or more processors; and one or more computer-readable media having stored computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: identifying, via an automatic positioning component, a plurality of edge access points associated with an edge of the area from a plurality of access points in communication with a network located in an area; determining first edge location-related data for a first edge access point of the plurality of edge access points; and determining first interior location-related data for a first interior access point of the plurality of access points, wherein determining first interior location-related data for a first interior access point comprises: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge location-related data from the first edge access point to the first interior access point.

2. The system of claim 1, the operations further comprising determining at least one of: second edge location-related data for a second edge access point of the plurality of edge access points; and second interior location-related data for a second interior access point of the plurality of access points. identifying a plurality of edge access points associated with an edge of the area comprises at least one of:

3. The system of claim 1 or 2, wherein, determining a number of neighboring access points for at least some of the plurality of access points, identifying an access point of the at least some of the plurality of access points having a smallest number of neighboring access points as an edge access point; identifying, as an edge access point, an access point of the at least some of the plurality of access points that first detects a presence of a station configured to communicate with at least some of the plurality of access points; and identifying, as an edge access point, an access point of the at least some of the plurality of access points that lacks a neighboring access point in an at least one hundred eighty degree region around the access point. determining first edge location-related data for a first edge access point of the plurality of edge access points comprises: detecting, via the first edge access point, a presence of a first station configured to communicate with at least some of the plurality of access points, the first station comprising a mobile device; 4. The system of claim 1, wherein, initiating, via the first edge access point, a communication with the first station; determining first station ranging data indicative of a first station relative distance between the first station and the first edge access point, the first station ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and ​ ​ communicating first station location related data to the first edge access point, the first station location related data comprising at least one of: a first station location of the first station, a first confidence associated with an accuracy of the first station location, and a first timestamp associated with a first time period between a determination time at which a determination of the first station location occurred and a communication time at which the first station location related data was communicated to the first edge access point.

5. The system of claim 4, the operations further comprising: detecting, via the first edge access point, a presence of a second station, the second station configured to communicate with at least some of the plurality of access points, the second station comprising a mobile device; initiating, via the first edge access point, a communication with the second station; determining second station ranging data, the second station ranging data indicative of a second station relative distance between the second station and the first edge access point, the second station ranging data based at least in part on a fine timing measurement; and communicating second station location related data to the first edge access point, the second station location related data comprising at least one of: a second station location of the second station, a second confidence associated with an accuracy of the second station location, and a second timestamp associated with a second time period between a determination time at which a determination of the second station location occurred and a communication time at which the second station location related data was communicated to the first edge access point.

6. The system of claim 5, wherein: at least one of: the first station location related data comprises a first confidence associated with an accuracy of the first station location, and the second station location related data comprises a second confidence associated with an accuracy of the second station location; and the operations further comprise determining a first edge access point confidence associated with an accuracy of a first edge access point location based at least in part on at least one of: the first confidence associated with the accuracy of the first station location, and the second confidence associated with the accuracy of the second station location.

7. The system of claim 5 or claim 6, the operations further comprising: determining a first circle, the first circle having a first center and a first radius, the first center defined at least in part by the first station location, the first radius defined at least in part by the first station relative distance; determining a second circle, the second circle having a second center and a second radius, the second center defined at least in part by the second station location, the second radius defined at least in part by the second station relative distance; and identifying an intersection of the first circle and the second circle with each other as a first edge access point location.

8. The system of claim 7, wherein: at least one of: the first station location related data comprises a first confidence associated with an accuracy of the first station location, and the second station location related data comprises a second confidence associated with an accuracy of the second station location; and at least one of: the first circle includes a first inner radius and a first outer radius that at least partially indicate the first confidence; and the second circle includes a second inner radius and a second outer radius that at least partially indicate the second confidence.

9. The system of claim 8, wherein, identifying an intersection of the first circle and the second circle as the first edge access point location comprises identifying a center of intersection for the first circle and the second circle as the first edge access point location.

10. The system of claim 1, wherein: determining first edge location related data for a first edge access point of the plurality of edge access points comprises: detecting, via the first edge access point, a presence of a first station, the first station configured to communicate with at least some of the plurality of access points, the first station comprising a mobile device; and detecting, via the first edge access point, a presence of a second station, the second station configured to communicate with at least some of the plurality of access points, the second station comprising a mobile device; and the operations further comprise: determining a plurality of edge location related data for a plurality of edge access points, and associating an edge access point confidence for each edge access point of the plurality of edge access points; determining a plurality of interior location related data for a plurality of interior access points, and associating an interior access point confidence for each interior access point of the plurality of interior access points; and updating at least some of the edge location related data to improve at least some of the edge access point confidences, and updating at least some of the interior location related data to improve at least some of the interior access point confidences.

11. The system of claim 10, wherein, the updating comprises at least one of: exchanging additional ranging data indicating additional relative distances between at least some pairs of the plurality of access points; exchanging additional station location related data with at least one additional station; and and determining, based at least in part on at least one of the additional ranging data and the additional station location related data, updated access point location related data for at least some of the edge access points or at least some of the interior access points.

12. The system of claim 11, wherein, the updating is performed via an analysis model trained via machine learning.

13. The system of claim 4, wherein: at least one of the first station and at least some of the plurality of access points comprises a sensor configured to generate sensor data indicating an altitude of the at least one of the first station and at least some of the plurality of access points; and the operations further comprise determining, based at least in part on the sensor data, whether the at least one of the first station and at least some of the plurality of access points is located on a common floor of a building.

14. The system of claim 1 or 2, wherein, the operations further comprise: determining edge location related data for a located edge access point of at least some of the plurality of edge access points; determining interior location related data for a located interior access point of a plurality of interior access points; initiating ranging data exchanges between: adjacent, localized edge access points, localized edge access points and adjacent, localized interior access points, and adjacent, localized interior access points; and updating location-related data for the plurality of edge access points and the plurality of interior access points based at least in part on the exchanged ranging data.

15. The system of claim 14, the operations further comprising at least one of: automatically determining, via the automatic localization component, location-related data for one or more of the plurality of access points upon repositioning of the one or more of the plurality of access points; and automatically determining, via the automatic localization component, location-related data for one or more of additional access points added to the plurality of access points.

16. A method for determining location-related data for a plurality of access points in communication with a network located in an area, the method comprising: identifying, via an automatic localization component, a plurality of edge access points associated with an edge of the area from the plurality of access points; determining first edge location-related data for a first edge access point of the plurality of edge access points; and determining first interior location-related data for a first interior access point of the plurality of access points, wherein determining first interior location-related data for the first interior access point comprises: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge location-related data from the first edge access point to the first interior access point.

17. The method of claim 16, wherein, identifying a plurality of edge access points associated with an edge of the area comprises at least one of: determining a number of neighboring access points for at least some of the plurality of access points, identifying as an edge access point an access point of the at least some of the plurality of access points having a smallest number of neighboring access points; identifying as an edge access point an access point of the at least some of the plurality of access points that first detects a presence of a station configured to communicate with at least some of the plurality of access points; and identifying as an edge access point an access point of the at least some of the plurality of access points that lacks neighboring access points in an at least one hundred eighty degree area around the access point.

18. The method of claim 16, wherein, determining first edge location-related data for a first edge access point of the plurality of edge access points comprises: detecting, via the first edge access point, a presence of a first station configured to communicate with at least some of the plurality of access points, the first station comprising a mobile device; initiating, via the first edge access point, a communication with the first station; determining first station ranging data indicative of a first station relative distance between the first station and the first edge access point, the first station ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating first station position-related data to the first edge access point, the first station position-related data including at least one of: a first station position of the first station, a first confidence associated with an accuracy of the first station position, and a first timestamp associated with a first time period between a determination time at which the determination of the first station position occurred and a communication time at which the first station position-related data was communicated to the first edge access point.

19. The method of claim 16, wherein: determining first edge position-related data for a first edge access point of the plurality of edge access points includes: detecting, via the first edge access point, a presence of a first station, the first station configured to communicate with at least some of the plurality of access points, the first station including a mobile device; and detecting, via the first edge access point, a presence of a second station, the second station configured to communicate with at least some of the plurality of access points, the second station including a mobile device; and the method further comprising: determining a plurality of edge position-related data for a plurality of edge access points and associating an edge access point confidence for each edge access point of the plurality of edge access points; determining a plurality of interior position-related data for a plurality of interior access points and associating an interior access point confidence for each interior access point of the plurality of interior access points; and updating at least some of the edge position-related data to improve at least some of the edge access point confidences and updating at least some of the interior position-related data to improve at least some of the interior access point confidences.

20. One or more computer-readable media having stored computer-executable instructions that, when executed, cause one or more processors to perform operations comprising: identifying, via an automatic positioning component, a plurality of edge access points associated with an edge of an area from a plurality of access points in the area that are in communication with a network; determining first edge position-related data for a first edge access point of the plurality of edge access points; and determining first interior position-related data for a first interior access point of the plurality of access points, wherein determining first interior position-related data for a first interior access point includes: exchanging ranging data indicative of a first relative distance between the first edge access point and the first interior access point, the ranging data based at least in part on at least one of a fine timing measurement and a time-of-flight based measurement; and communicating the first edge position-related data from the first edge access point to the first interior access point.

Citation Information

Patent Citations

  • Finding wireless network access points

    CN104041133A

  • Access point location discovery in unmanaged networks

    CN105981456A

  • Calculating wi-fi access point locations using wave of discovery

    US20130172005A1