The deployment of multiple access point (APs) in a large facility is a complex undertaking. The deployment requires balancing of numerous factors in determining the best location of each of a large number of access points. Further, the planned placement of the access points may require modification as new conditions are discovered or as changes occur within the facility.
Further, once the access points are installed, later determining the precise location of each access point for servicing or replacement can be challenging. The access points may be well hidden behind walls, ceilings, and other structures, thus requiring that the access points be located based upon recorded information or through a search process.
For example, the location of access points may be determined based on an access point map if such map exists. However, generation of an access point map is difficult and labor-intensive, and the map may be inaccurate or out of date when the map is actually needed.
If a map of access points is unavailable or is unhelpful because of inaccuracy, then the determination of the location of access points may require electronic search means, such as use of a spectrum analyzer. A search for access points in this manner is extremely time consuming, and may not be helpful if an access point has failed, or if a particular signal is difficult to track.
Embodiments described here are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.
Embodiments described herein are directed to automatic location of access points in a network.
In order for an operator who is deploying a large number of access points (APs) to generate and maintain an accurate AP installation map (such as generated with Visual RF or another software tool for planning) using conventional means, a labor intensive manual effort is generally needed to precisely note each AP location and mark the location on a floor map during or after AP installation. With such a manual process, there is a high probability of human error in documenting each AP location.
In addition, access points that are deployed in large installations are frequently displaced from the original intended location due to a variety of reasons, such as unfavorable mounting support for the AP, lack of equipment to reach a specific spot, a physical obstruction that was not marked in the floorplan, and many other reasons. In order for the AP map to be complete and up-to-date at all times, any changes to the customer site must be logged and the AP map updated promptly. If an AP map is not accurate, upgrading to new hardware or replacing faulty hardware may require many hours of labor and a great amount of cost to locate all the access points, which are often mounted in ceilings, placed behind drywall, or otherwise hidden from view. In certain installations, the operator may specifically wish to hide all AP installations and markings from view of facility customers, and thus there may be few, if any, visual clues as to the AP locations.
In some embodiments, an apparatus, system, or process provides automatic location of access points after deployment of APs is complete. The generated set of access point locations may be utilized for any purpose relating to the access points. For example, the generated set of locations for the access points may be used to generate a map of the access points, or any other representation of the access point locations. The automatic generation of access point locations may be utilized to save the cost and effort required for carefully recording and modifying a map for AP deployment in a complex environment, or for discovering AP locations that are hidden within a building when there is a failure, an upgrade, or other issue requiring knowledge of the location of APs. Further, accurate AP placements are increasingly important as more customers implement indoor location services that are based on the AP operation, and knowledge of the location of the access points is necessary for accurate location services.
Embodiments of automatic AP location may be utilized in any facility that includes multiple access points, with automatic AP location being of particular value in large office or campus complexes, stadiums, casinos, and other facilities having expansive environments that are difficult to map or search. Certain types of facilities, such as hospitals, public safety facilities (such as police stations), airports, and casinos, are rarely if ever closed, and thus any search for access points must occur while the facility is open and operating.
As used herein, access point (AP) (also referred to as a wireless access point (WAP)) refers to a networking hardware device that allows devices to connect to a wired network, including connection to the Internet or an intranet. The AP may connect to a router (via a wired network) as a standalone device or may be an integral component of the router itself. An access point may include, but is not limited to, a Wi-Fi access point operating under operating under one or more IEEE (Institute of Electrical and Electronics Engineers) 802.11 standards. An access point may also operate using any other wireless communication technology, including, for example, cellular communications (including 4G and 5G technology), Bluetooth, ZigBee, and other technologies.
In a conventional operation, it would be necessary to physically map the location of AP-1 through AP-9 as such APs are installed (which may utilize Visual RF or another software tool), and to maintain the accuracy of the maps as any modifications to the network are made. However, human error and other factors may create significant difficulties in such operation. For example, in the facility 100 it is possible that one or more APs, such as AP-2, are not mapped because the APs were later added or simply forgotten for purposes of mapping. Further, one or more APs, such as AP-7 in
In some embodiments, automatic location of the access points AP-1 through AP-9 is performed, as further illustrated in
(1) Distance Determination: In some embodiments, the APs are instructed to determine a distance between each pair of APs. The APs may, for example, determine the distances using AP signaling, such as using measurement of time of flight of signals between the APs to determine the distance between each pair of APs. For example, a distance determination is made between AP-4 and each other AP of the set of APs, as illustrated in
(2) Generation of Proximity Matrix: The result of the distance measurement process between each pair of access points is a set of data describing distances between all APs. In some embodiments, a table may be generated to represent the set of data (such as illustrated in
In some embodiments, an apparatus, system, process may further provide for calculation or estimation of missing distance values, or the correction of erroneous distance values, in the proximity matrix. Missing or erroneous values may result from pairs of APs that are not within direct signal transmission of each other, such as in circumstances in which a structure or transmitter blocks or interferes with the signal between a sending AP and a receiving AP. For example, computing device 150 may detect missing data or erroneous data (such as by identifying distance measurements that are outside an expected range of values) and provide a correction process to calculate or estimate the needed distance values. A process may include a process such as illustrated in
(3) Solving of AP Distance Data to Locate APs: The proximity matrix data does not in itself describe the physical locations of the access points that represented in the matrix. In some embodiments, the proximity matrix is solved to determine a location of each AP in relation to each of the other APs. In some embodiments, the determined locations may be used in generating a map of the APs.
However, the solving of a proximity matrix with a large number of values is computationally very difficult. In some embodiments, determining location of access points from the proximity data is performed utilizing machine learning (ML), and more specifically is solved by computing device 150 using the ML technology Multidimensional Scaling (MDS). MDS may be applied to generate a set of locations representing the relative positions of a number of objects based upon a table of the distances between them. The set of locations may be in any number of dimensions, and more specifically, in terms of AP mapping in a facility, may provide both 2D and 3D mapping based on a proximity table describing the distances between each pair of APs. Stated mathematically, MDS may be applied to translate information about pairwise distances among a set of n objects into a configuration of n points mapped into cartesian space.
The result of the solving of the AP distance data for a plurality of APs is a full set of locations of the access points, such as illustrated in the map of access points in
Each access point 200 further includes firmware or hardware or both 240. In some embodiments, the firmware or hardware 240 includes instructions or hardware to provide for determination of distance between the access point and another access point 245. In some embodiments, the distance determination by the access points utilizes measurement of time of flight of signals between the access points to determine the distance between each pair of APs. In particular the measurement of distance may include support for Fine Timing Measurement (FTM).
In some embodiments, upon receipt of a request, such as request from a computing device 250, each access point AP-1 to AP-4 is to provide for distance measurement between each other AP to provide a set of pairwise distance measurements between the APs. For example, a distance determination, such as an FTM measurement, is performed between AP-1 and each other AP, this being AP-2, AP-3, and AP-4 in this example, as well as each other pair of APs.
In some embodiments, each inter-AP distance value is then provided to the computing device 250, such as computing device 300 illustrated in
The communication package 306 enables wireless and/or wired communications for the transfer of data to and from the computing device 300, including transmission to and from the access points 350. The communication package 306 may implement any of a number of wireless or wired standards or protocols, including but not limited to Wi-Fi (IEEE 802.11 family), WiMAX (IEEE 802.16 family), Bluetooth, and other wireless technologies.
In some embodiments, the computing device 300 is to transmit to the access points 350 one or more requests for distance determination between each pair of access points 340. The distance determination may include performance of signal transmission for distance measurements between each pair of APs, such as the FTM processes illustrated in
In some embodiments, the computing system 300 is then to generate a proximity matrix representing the distance values, such as illustrated in
Operation of the set of access points within the facility may be initiated 400, thereby enabling the transmission of frames between pairs of access points. In some embodiments, a request is made for determination of distances between each pair of access points in the set of APs 404. The request may be made by a computing device, such as the computing device 300 illustrated in
In some embodiments, the process may further include one or more correction process to address inaccurate data 412. The correction processes may include filtering of inaccurate measurements, such as eliminating measurements resulting from non-line-of-sight signals in which a signal may bounce and thus cause significant errors in determined locations.
In some embodiments, the proximity matrix is solved utilizing the MDS technology 416, such as illustrated in
However, determination of the locations of the APs requires a full set of values for the proximity matrix, which often is not possible because each AP in the set may not receive a direct signal from each other AP due to obstructions, excessive distances, interference, or other reasons. Missing data within the proximity matrix, such as illustrated in
In some embodiments, a set of locations of the access points in relation to each other is determined based on the solution of the proximity matrix 422. In some embodiments, a map of the access points (referred to herein as an AP map) may be generated based on the determined locations of the access points. The generated AP map may be a 2D or 3D map representing the locations of the APs in relation to each other, such as illustrated in
However, while the set of locations of the access points provides the distance relationship between all access points, this does not resolve the rotation and inversion of the locations in 3D (or 2D) space. In some embodiments, the rotation and inversion of the AP locations are resolved using one or more actual known locations of access points 424. The known access points, referred to as anchor points, are applied in the solving of the proximity matrix to generate a fully resolved set of access point locations. The actual locations of the anchor points may be determined by any means, including, for example, use of GPS location data. The locations of at least three anchor points are generally required to resolve the locations of the access points represented by the proximity matrix in 3D space, but the actual number required may depend on the circumstances. In the example illustrated in
The process may then output the resulting set of locations for the access points that are present within the facility 430. The resulting AP locations may be stored 434, such as in the form of an AP map, to allow reference as needed to locate individual access points within the facility. Further, upon changes being made to the AP structure of the facility, the full process illustrated in
In some embodiments, the distance values between each pair of access points are tabulated into a proximity matrix, as illustrated in
In some embodiments, the proximity matrix may then be solved, such as processing the proximity matrix using MDS, to generate a set of locations for the access points based upon the determined distances between each pair of access points. The determined set of locations may be utilized for one or more operations. For example, a map of the access points may be generated based on the determined set of locations for the access points. The resulting map of the plurality of access points may be as illustrated in
While the set of locations of the access points provides the relationship of all access points in relation to each other, the locations are not resolved with regard to rotation or inversion in 3D space. In some embodiments, the rotation and inversion of the set of AP locations is resolved using one or more actual known locations of access points (referred to anchor points). For example, the location at least three anchor points may in general be used to resolve the locations of the access points in 3D space.
In the particular example illustrated in
As used herein, a set of points representing a complete proximity matrix is referred to as a clique. In some embodiments, an incomplete proximity matrix, such as illustrated in
In general, the process of stitching together solutions for cliques allows for scaling to a large number of APs with a particular set of anchor points, such as three initial anchor points. However, when scaling to a larger number of APs it becomes much more difficult to effectively split the original proximity matrix into cliques. In order to perform this division of the proximity matrix, the Bron-Kerbosch maximal clique finding algorithm may be applied, wherein this algorithm allows the generation of a minimized set of cliques to be solved and stitched together to generate the complete set of access point locations.
For a particular clique that is solved based upon a new set of anchor points generated from a previous solution, the generated anchor points may include an error that results from inaccuracy of the distances reported. Such errors will accumulate as the process progresses away from the first clique that is solved. In some embodiments, in order to improve the final output, a process may include choosing multiple starting points within the set of access point locations to generate multiple solutions, and then merging the solutions together to reduce the total error.
In some embodiments, an incomplete proximity matrix may alternatively be filled using a “best-guess” value for the distance. For example, distance values may be generated by applying Dijkstra's shortest path algorithm to the incomplete proximity matrix. For the proximity matrix shown in
The following clauses and/or examples pertain to further embodiments or examples. Specifics in the examples may be applied anywhere in one or more embodiments. The various features of the different embodiments or examples may be variously combined with certain features included and others excluded to suit a variety of different applications. Examples may include subject matter such as a method, means for performing acts of the method, at least one machine-readable medium, such as a non-transitory machine-readable medium, including instructions that, when performed by a machine, cause the machine to perform acts of the method, or of an apparatus or system for facilitating operations according to embodiments and examples described herein.
In some embodiments, one or more non-transitory computer-readable storage mediums have stored thereon executable computer program instructions that, when executed by one or more processors, cause the one or more processors to perform operations including transmitting a request from a computing device to a plurality of access points in a network to determine a distance between each pair of access points of the plurality of access points; receiving at the computing device the determined distances between each pair of access points of the plurality of access points; generating a proximity matrix containing the determined distances between each pair of access points of the plurality of access points; solving the proximity matrix to automatically generate a set of locations for the plurality of access points; and orienting the generated set of locations for the plurality of access points based on known locations of one or more anchor points in a subset of the plurality of access points.
In some embodiments, a computing device includes one or more processors; a memory to store data; and a transmitter and receiver, wherein the computing device is to transmit a request to a plurality of access points in a network to determine a distance between each pair of access points of the plurality of access points; receive the determined distances between each pair of access points of the plurality of access points; generate a proximity matrix containing the determined distances between each pair of access points of the plurality of access points; solve the proximity matrix to automatically generate a set of locations for the plurality of access points; and orient the generated set of locations for the plurality of access points based on known locations of one or more anchor points in a subset of the plurality of access points.
In some embodiments, a method for automatic generation of access point locations includes transmitting a request from a computing device to a plurality of access points in a network to determine a distance between each pair of access points of the plurality of access points, wherein the determination of the distance between each pair of access points includes measurement of time of flight of signals transmitted between each pair of access points; receiving at the computing device the determined distances between each pair of access points of the plurality of access points; generating a proximity matrix containing the determined distances between each pair of access points of the plurality of access points; solving the proximity matrix to automatically generate set of locations for the plurality of access points; and orienting the generated set of locations for the plurality of access points based on known locations of one or more anchor points in a subset of the plurality of access points.
In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the described embodiments. It will be apparent, however, to one skilled in the art that embodiments may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form. There may be intermediate structure between illustrated components. The components described or illustrated herein may have additional inputs or outputs that are not illustrated or described.
Various embodiments may include various processes. These processes may be performed by hardware components or may be embodied in computer program or machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes. Alternatively, the processes may be performed by a combination of hardware and software.
Portions of various embodiments may be provided as a computer program product, which may include a computer-readable medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) for execution by one or more processors to perform a process according to certain embodiments. The computer-readable medium may include, but is not limited to, magnetic disks, optical disks, read-only memory (ROM), random access memory (RAM), erasable programmable read-only memory (EPROM), electrically-erasable programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, or other type of computer-readable medium suitable for storing electronic instructions. Moreover, embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer. In some embodiments, a non-transitory computer-readable storage medium has stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform certain operations.
Many of the methods are described in their most basic form, but processes can be added to or deleted from any of the methods and information can be added or subtracted from any of the described messages without departing from the basic scope of the present embodiments. It will be apparent to those skilled in the art that many further modifications and adaptations can be made. The particular embodiments are not provided to limit the concept but to illustrate it. The scope of the embodiments is not to be determined by the specific examples provided above but only by the claims below.
If it is said that an element “A” is coupled to or with element “B,” element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification or claims state that a component, feature, structure, process, or characteristic A “causes” a component, feature, structure, process, or characteristic B, it means that “A” is at least a partial cause of “B” but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing “B.” If the specification indicates that a component, feature, structure, process, or characteristic “may”, “might”, or “could” be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, this does not mean there is only one of the described elements.
An embodiment is an implementation or example. Reference in the specification to “an embodiment,” “one embodiment” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments. It should be appreciated that in the foregoing description of exemplary embodiments, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various novel aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed embodiments requires more features than are expressly recited in each claim. Rather, as the following claims reflect, novel aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims are hereby expressly incorporated into this description, with each claim standing on its own as a separate embodiment.
This application is a continuation of, and claims the priority benefit of, U.S. patent application Ser. No. 16/831,213, filed on Mar. 26, 2020, now U.S. Pat. No. 11,229,000, which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
8509806 | West | Aug 2013 | B2 |
11009000 | Moffat | May 2021 | B2 |
11064568 | Jester | Jul 2021 | B2 |
20050113107 | Meunier | May 2005 | A1 |
20120122475 | Ahmed et al. | May 2012 | A1 |
20140105195 | Balasubarmaniyan et al. | Apr 2014 | A1 |
20140187257 | Emadzadeh | Jul 2014 | A1 |
20140226503 | Cooper | Aug 2014 | A1 |
20140266916 | Pakzad | Sep 2014 | A1 |
20150045022 | Prechner | Feb 2015 | A1 |
Number | Date | Country |
---|---|---|
105934685 | Sep 2016 | CN |
107005810 | Aug 2017 | CN |
602004008555 | Dec 2007 | DE |
201635730 | Oct 2016 | TW |
Number | Date | Country | |
---|---|---|---|
20220116905 A1 | Apr 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16831213 | Mar 2020 | US |
Child | 17560840 | US |