The present embodiments relate generally to wireless communication, and specifically to determining locations of Wi-Fi access points and Wi-Fi enabled mobile devices.
Modern navigation systems frequently use a global navigation satellite system (GNSS) for position determination. However, the recent proliferation of Wi-Fi access points in wireless local area networks (WLANs) has made it possible for navigation systems to use these access points for position determination, especially in areas where there is a large concentration of active Wi-Fi access points (e.g., urban cores, shopping centers, office buildings, and so on). Indeed, WLAN location and navigation systems can be advantageous over GPS location and navigation systems in certain environments because of GPS signal coverage limitations. For example, while GPS signals may not be readily detectable inside structures such as shopping malls and office buildings (e.g., due to signal attenuation and/or multipath effects), wireless signals generated by Wi-Fi access points located within such structures are typically detectable by each other and by a mobile communication device.
For WLAN navigation systems, the locations of the Wi-Fi access points are used as reference points from which well-known trilateration techniques can determine the location of a mobile device (e.g., a Wi-Fi-enabled cell phone, laptop, or tablet computer). More specifically, the mobile device can use the received signal strength indicators (RSSI) associated with a number of visible access points as indications of the distances between the mobile device and each of the detected access points, where a stronger RSSI means that the mobile device is closer to the access point and a weaker RSSI means that the mobile device is further from the access point. The mobile device can also use the round trip time (RTT) of signals transmitted to and from the access points to estimate the distances between the mobile device and the access points. Once these distances are estimated, the location of the mobile device relative to the access points can be determined using trilateration techniques.
Whether using RSSI or RTT techniques to determine the distances between the mobile device and the visible Wi-Fi access points, the precise geographic location (e.g., latitude and longitude) of at least three such access points needs to be known to establish the absolute location of the mobile device. A number of online location databases can be used to determine the locations of large numbers of actively deployed Wi-Fi access points according to their unique basic service set identifier (BSSID) values. For example, companies including Google, Skyhook, Devicescape, and WiGLE have built location databases of BSSID values and the geographic locations of their corresponding access points. Typically, the location of a particular access point is first determined either manually (e.g., using electronic mapping) or using the access point's embedded GPS capabilities, and then the access point's location is uploaded (along with the access point's BSSID value) to the location database. Thereafter, a mobile device can determine the precise location of a selected visible access point by obtaining the BSSID from the access point, providing the BSSID to the location database, and then receiving the access point's location coordinates from the location database.
However, in some environments, the precise location of some access points associated with a particular WLAN may not be known. For example, when establishing or expanding a WLAN within an office building or a shopping mall, some of the access points may not have sufficient line-of-sight with the GPS satellites to independently determine their own location coordinates, and therefore are unable to upload their location coordinates to any access point location databases. Conventional solutions to this problem typically involve manual techniques in which a technician determines a number (e.g., 3 or more) of fixed locations within or around the WLAN, manually measures the exact distances between a selected access point and the fixed locations, and then uses trilateration techniques to calculate the precise location of the selected access point. This process is then repeated for each access point whose precise location is not known.
Although effective in determining the location coordinates of a number of access points associated with a WLAN, such manual techniques are time consuming and expensive (e.g., in terms of man power). Thus, there is a need for the access points associated with a WLAN to be able to automatically determine their own locations without using the manual techniques described above.
The present embodiments are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings, where:
Like reference numerals refer to corresponding parts throughout the drawing figures.
In accordance with the present embodiments, accurate position capability can be provided using a Wireless Local Area Network (WLAN). As used herein, the term WLAN can include communications governed by the IEEE 802.11 standards, Bluetooth, HiperLAN (a set of wireless standards, comparable to the IEEE 802.11 standard, used primarily in Europe), and other technologies having relatively short radio propagation range. In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. Also, in the following description and for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present embodiments. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present disclosure. The term “coupled” as used herein means connected directly to or connected through one or more intervening components or circuits. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit elements or software blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of myriad physical or logical mechanisms for communication between components. The present embodiments are not to be construed as limited to specific examples described herein but rather to include within their scopes all embodiments defined by the appended claims.
As mentioned above, the precise location of some (or all) access points associated with a particular WLAN may not be known. For example, when establishing or expanding a WLAN within an office building or shopping mall, some of the access points may not have sufficient line-of-sight with the GPS satellites to independently determine their own location coordinates, and therefore are unable to upload their location coordinates to any access point location databases. Rather than rely upon manual techniques that use surveying to determine the precise location of each access point and then program each location into the corresponding access point, the present embodiments allow for location information to be automatically shared between a plurality of access points forming a WLAN by configuring each access point to broadcast its location information to all visible access points in response to (1) determining and/or updating its own location information and/or (2) receiving location information from another access point in the WLAN. Thus, for some embodiments, location information stored in and/or calculated by a selected access point can be shared with other non-visible access points in the WLAN by first broadcasting the location information from the selected access point to a first set of access points that are visible to the selected access point, re-broadcasting the location information from the first set of access points to a second set of access points that are visible to the first set of access points, and so on, until the location information has been iteratively broadcast to all the access points in the WLAN. In this manner, the present embodiments allow the access points to iteratively share location information updates across the WLAN without using a central server.
For the embodiments described herein, each of access points AP1-AP7 includes radio frequency (RF) ranging circuitry (e.g., formed using well-known software modules, hardware components, and/or a suitable combination thereof) that can be used to estimate the distance between itself and one or more other visible access points using suitable ranging techniques. For example, each of access points AP1-AP7 can use received signal strength indicator (RSSI) and/or round trip time (RTT) techniques to estimate the distance between itself and another visible access point, for example, by correlating each RSSI or RTT value with a distance. Further, for the embodiments described herein, each of access points AP1-AP7 also includes a processor (e.g., formed using well-known software modules, hardware components, and/or a suitable combination thereof) that can use the estimated distances between itself and a plurality of other access points to calculate its position relative to the other access points using trilateration techniques.
To accurately determine the position of a selected access point relative to other visible access points using trilateration techniques, the distances between the selected access point and at least 3 other access points are used. For example, as depicted in
x0=(w1*x1)+(w2*x2)+(w3*x3)
y0=(w1*y1)+(w2*y2)+(w3*y3), and
z0=(w1*z1)+(w2*z2)+(w3*z3),
wherein
w1=(1/d1)/(1/d1+1/d2+1/d3),
w2=(1/d2)/(1/d1+1/d2+1/d3), and
w3=(1/d3)/(1/d1+1/d2+1/d3).
In accordance with the present embodiments, access points AP1-AP7 of WLAN 110 each include a location table that stores location information for all access points AP1-AP7 in WLAN 110 as well as the estimated distances between pairs of AP1-AP7. More specifically,
For some embodiments, the scanner 350 can search for nearby access points by periodically transmitting MAC address request frames. A neighboring access point within range of access point 300 receives one or more of the requests and can respond by transmitting its MAC address to the access point 300. Once the nearby access point is detected, processor 330 can use the receiver/transmitter circuit 320 to perform RF ranging operations (e.g., using RSSI and/or RTT techniques) to estimate the distance between itself and the other access point. Of course, if the other access point knows its own location coordinates, then it can transmit its location coordinates to access point 300 for storage in the location table 340.
An exemplary format for one embodiment of the location table 340 associated with access point 300 is shown below in Table 1. The location table shown in Table 1 below includes a plurality of row entries, each for a corresponding one of the access points AP1-AP7 associated with the WLAN 110 of
It is to be noted that the row entries in Table 1 are first created for other access points that are visible to the access point 300, and then additional row entries for other non-visible access points can be created in response to other access points sharing their location information with access point 300, as will be discussed in greater detail below.
Referring again to
One common situation in which a number of access points associated with a WLAN do not know their own location coordinates arises when a WLAN is initially deployed in a building or other structure that obscures GPS signals (e.g., thus preventing such signals from being received by the access points associated with the WLAN). For example, referring again to
Thus, in accordance with the present embodiments, each of the access points AP1-AP7 can be configured to automatically detect the presence of other visible access points, to estimate the distances between itself and each of the other visible access points, to calculate its position relative to the other visible access points, and (if possible) to determine or calculate its own location coordinates. In addition, each access point can be configured to store the estimated distances between itself and the other visible access points, its position relative to the other visible access points, and its own location coordinates (if available) as a location information entry into its own location table 340. Further, in accordance with the present embodiments, each of access points AP1-AP7 can be configured to broadcast all location information entries within its location table 340 to all other visible access points. For some embodiments, each access point can broadcast its location table to the other visible access points in response to receiving or detecting an updated field entry of the access point location table 340. For other embodiments, each access point can broadcast its location table to the other visible access points periodically (e.g., according to a broadcast schedule). Then, each of the visible access points that receives the broadcasted location table can (1) update its own location table with any new or modified field entries and (2) broadcast its own updated location table to its set of visible access points. This process can be repeated in multiple phases or waves until all access points in the WLAN have been updated with the most current location information, thereby allowing the location coordinates of sequential sets of access points in the WLAN to be automatically calculated in an iterative fashion.
It is noted that in a network such as WLAN 110 of
However, in accordance with the present embodiments, location information stored in and/or calculated by a selected access point can be shared with other non-visible access points by first broadcasting the location information from the selected access point to a first set of access points that are visible to the selected access point, then re-broadcasting the location information from the first set of access points to a second set of access points that are visible to the first set of access points, and so on, until the location information has been iteratively shared with all the access points in the WLAN (e.g., in an ad-hoc or peer-to-peer manner). For example, location information stored in and/or calculated by AP2 can be shared with AP6 by first broadcasting the location information from AP2 to AP4, and then broadcasting the location information from AP4 to AP6. In this manner, each access point in WLAN 110 can be configured to automatically broadcast its stored location information to other visible access points when either (1) the access point determines or calculates new location information or (2) new location information is received from another access point, thereby allowing the access points to share location information updates across the WLAN without using a central server.
A more detailed operation for determining and sharing location information in the WLAN 110 of
Once the access points AP1-AP7 are initialized and operational, each of access points AP1-AP7 detects other visible access points and can begin using RF ranging techniques to estimate the distance between itself and the other visible access points. For illustrative purposes, the location table 340 associated with AP2 is selected for discussion herein. More specifically, Table 2 below depicts the initial location table 340 stored in AP2 after AP2 estimates the distances between itself and visible access points AP1, AP3, and AP4 using well-known RSSI and/or RTT ranging techniques. Note that because access points AP5-AP7 are not directly visible to AP2 and therefore are not directly detected, the location table associated with AP2 shown below in Table 2 does not initially include entries for the non-visible access points AP5-AP7. It is noted that although this discussion focuses upon AP2, all other access points AP1 and AP3-AP7 can begin detecting other visible access points and can commerce their own ranging operations concurrently with ranging operations performed by AP2.
Once AP2 has estimated the above distances, AP2 shares (e.g., broadcasts) information stored in its location table with the set of visible access points AP1 and AP3-AP4, as depicted in
This process is repeated in an iterative manner until all the currently available location information has been shared by all the access points AP1-AP7.
Now, assume that the location coordinates of selected access points AP1-AP3 are determined and stored in the location table 340 within corresponding access points AP1-AP3. The location coordinates of the selected access points can be determined using any suitable techniques (e.g., manually surveying AP1-AP3, using GPS techniques if satellite signals are available, and so on). The location coordinates for AP1 are expressed herein as (x1, y1, z1), the location coordinates for AP2 are expressed herein as (x2, y2, z2), and the location coordinates for AP3 are expressed herein as (x3, y3, z3). For example,
In accordance with the present embodiments, each of selected access points AP1-AP3 shares its own set of location coordinates with all other visible access points in the manner described above (e.g., via broadcasting). Then, the other visible access points update their location tables with the newly acquired location coordinates for AP1-AP3, and then each of the other visible access points shares the new location information with all other access points visible thereto. Thus, for the present example, AP1-AP3 share their own location coordinates with other and with visible access point AP4 by broadcasting such information to their visible access points, as depicted by broadcast signals 601 in
Further, because the location coordinates of AP1-AP3 are now also known to AP4, AP4 can use the distances between itself and each of AP1-AP3 and the location coordinates of each of AP1-AP3 to calculate its own location coordinates using trilateration techniques. Next, AP4 broadcasts its own location coordinates to AP1-AP3 and to AP5-AP7. Now, the location table 340 stored within each of access points AP1-AP7 now includes the location coordinates of AP4, as indicated in Table 5 below.
The above-described process is repeated until all access points AP1-AP7 store the location coordinates of each other and the distances between each other, for example, as depicted below in Table 6.
Thereafter, the first location information is stored in a location table provided within the third access point (710). The data stored in the location table of the third access point can be updated or supplemented with other data receiving by the third access point and/or with location information determined by the third access point. Then, data stored in the location table of the third access point is broadcast to the second access point (712), the location table of the second access point is updated with the data broadcast by the third access point (714), and then, in response to the updating, data stored in the location table of the second access point is automatically broadcast to the first access point (716). In this manner, the access points of the WLAN can form a mesh to share ranging data and location information with each other in repeated broadcast waves (e.g., in a peer-to-peer manner).
Referring also to
In the foregoing specification, the present embodiments have been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. For example, WLANs having access points configured in accordance with the present embodiments can share location information with a mobile communication device that has become part of the WLAN and/or can use positioning data provided by the mobile communication device to determine the location coordinates of one or more of the access points.