Indoor localization systems seek to determine the location of a client computing device such as a mobile phone within an area such as an office space. Being able to determine the location of a mobile device in such an environment may assist in locating the device as well as an individual using the device, and has potential for application in various location-based services. One component in an indoor localization system is a mechanism that estimates a distance between the mobile device and an access point (AP). Estimated distances between a mobile device and multiple APs may be used to calculate the exact location of the mobile device through a multilateration technique.
The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The illustrated examples are given merely for illustration, and do not limit the scope of the claims.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
Methods, systems, and computer program products are described herein for use in determining the location of client devices within an area. In one example, the area is an indoor area such as an office or home. The distance between a mobile device and an access point (AP) is determined by four APs, the APs forming a quadrilateral. The APs utilize a time-of-flight (ToF)-based distance estimation process to determine the location of the client device. Many quadrilaterals of APs may exist around the client device, and processes and policies are applied to determine the four APs and their associated quadrilateral that may best determine the location of the client device. The systems and methods described herein reduce network overhead associated with the transmission of multiple probe packets to a client device by multiple APs. The systems and methods described herein do not require any change in the IEEE 802.11 format and can be implemented on off-the-shelf wireless chipsets.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present systems and methods. It will be apparent, however, to one skilled in the art that the present apparatus, systems and methods may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described in connection with that example is included as described, but may not be included in other examples.
ToF-based distance estimation processing is a viable and robust method for locating a client device within an area. In one example, the localization system is a WiFi-based indoor localization system. In ToF-based distance estimation processing, each access point (AP) estimates the distance of a client device from themselves. The APs calculate the client device's location using an optimization called multilateration. The localization system uses ToF-based distance estimation processing values from at least 3 or 4 APs to determine the location of the client device. In some cases, there may be several APs that can estimate the client device's location. However, using, for example, 10 APs to determine the client device's location adds significantly to the overhead experienced within the WiFi-based localization system. Further, these APs may introduce errors in location estimation, and, for this reason should be avoided. Thus, the present systems and methods can select an appropriate set of APs that participate in ToF-based distance estimation and localization.
However, for a specific client device, there may be several APs that may participate in locating the client device. For example, in an enterprise environment such as an office space, there may be more than 10 APs that are within the client's range that may participate in locating the client device. However, as described above, using all 10 APs may increase the network overhead of ToF-based distance estimation processing and localization. This is because each AP transmits multiple probe packets to estimate the distance of the client device. Thus, the higher number of APs used in this processing, the greater the number of probe packets sent within the localization system. This will, in turn, increase the overhead within the localization system.
The localization system (100) of
In determining or estimating a distance between a target client device (101, 102) and an AP (110, et cetera), the AP may measure the time-of-flight (ToF) of probe packets sent to the target client device (101, 102). Upon sending the probe packets, the AP (110, et cetera) receives acknowledgement (ACK) packets sent by the client devices (101, 102). A ToF-based distance estimation process captures how long it takes a probe packet from a client device (101, 102) to arrive at an AP (110, et cetera). From a ToF measurement, a propagation delay (T) between an AP (110, et cetera) and a client device (101, 102) can be obtained. Consequently, the distance between the client device (101, 102) and the AP (110, et cetera) may be estimated by the following equation:
T*c Eq. 1
where c is the speed of light.
The advantage of a ToF-based distance estimation process is that this process does not depend on the characteristics of the wireless medium in which the probe packets are transmitted since the speed of light does not change depending on the medium. However, ToF-based distance estimation processes and their associated measurements include noise. This is because the detection time of an acknowledgement packet preamble in WiFi is not fixed. Hence, to obtain accuracy in a ToF-based distance estimation process, many samples of ToF measurements are collected, and outliers within the captured measurements are removed. This requires an AP (110, et cetera) to send many probe packets in a given time period. Sending many probe packets in this manner creates a large overhead to the wireless network in which the ToF-based distance estimation process is being used. This overhead limits the number of users that a localization system (100) can support. This also restricts the scalability of the localization system (100), increasing the cost in time and processing resources to determine the location of client devices (101, 102) that exceed an overhead capacity. Thus, an advantage of the localization system (100), as will be described in more detail below, is to limit the number of APs (110, et cetera) engaged in the process of locating a particular client device (101, 102).
ToF-based distance estimation process may use 3 or 4 APs (110, et cetera) to calculate the location of the client device (101, 102). The present systems and methods assist in determining which 3 or 4 APs (110, et cetera) should participate in determining the location of the client device (101, 102) within the indoor environment (150). One option may be to randomly choose 3 or 4 APs (110, et cetera), and instruct those chosen APs (110, et cetera) to determine the location of the client device (101, 102). However a wrong set of APs (110, et cetera) may adversely affect the accuracy of the localization system (100). Thus, the present systems and methods select the most appropriate set of APs (110, et cetera) so that location accuracy is not compromised.
In experimental analysis, it was found that a ToF-based localization process works well when the chosen set of APs (110, et cetera) surrounds the target client device (101, 102). As depicted in
The various quadrilaterals (201, 202, 203, 204, 205, 206, 207) are designated by different line patterns in
In contrast, quadrilateral (203) is formed from APs 110, 111, 112, and 113, and does not contain the client device (101) within its borders. Further, quadrilateral (207) is formed from APs 113, 121, 122, and 124, and also does not contain the client device (101) within its borders. Thus, in one example, quadrilateral (203) is not considered as a candidate quadrilateral because it does not contain the mobile device (101).Thus, in one example, quadrilateral (207), despite comprising APs 113, 121, 122, and 124 that are located closer to the client device (101) than other APs, is not considered as a candidate quadrilateral because it does not contain the mobile device (101).
Turning to
The AP (300) may be utilized in any data processing scenario including, stand-alone hardware, mobile applications, through a computing network, or combinations thereof. Further, the AP (300) may be used in a computing network, a public cloud network, a private cloud network, a hybrid cloud network, other forms of networks, or combinations thereof. In one example, the methods provided by the AP (300) are provided as a service over a network by, for example, a third party. In this example, the service may comprise, for example, the following: a Software as a Service (SaaS) hosting applications; a Platform as a Service (PaaS) hosting a computing platform comprising, for example, operating systems, hardware, and storage, among others; an Infrastructure as a Service (IaaS) hosting equipment such as, for example, servers, storage components, network, and components, among others; application program interface (API) as a service (APIaaS), other forms of network services, or combinations thereof. The present systems may be implemented on one or multiple hardware platforms, in which the modules in the system can be executed on one or across multiple platforms. Such modules can run on various forms of cloud technologies and hybrid cloud technologies or offered as a SaaS (Software as a service) that can be implemented on or off the cloud. In another example, the methods provided by the AP (300) are executed by a local administrator.
To achieve its desired functionality, the AP (300) comprises various hardware components. Among these hardware components may be processors (301), data storage devices (302), peripheral device adapters (303), and network adapters (304). These hardware components may be interconnected through the use of busses and/or network connections. In one example, the processor (301), data storage device (302), peripheral device adapters (303), and a network adapter (304) may be communicatively coupled via a bus (305). Each AP (110, et cetera) within the localization system (100) comprises the processor (301), data storage device (302), peripheral device adapters (303), and a network adapter (304) may be communicatively coupled via a bus (305) to support the functionality described herein.
The processor (301) may include the hardware architecture to retrieve executable code from the data storage device (302) and execute the executable code. The executable code may, when executed by the processor (301), cause the processor (301) to implement at least the functionality of selecting sets of four access points (APs) (110, et cetera) from APs (110, et cetera) that can communicate with a client device (101, 102), each set of four APs (110, et cetera) forming a quadrilateral (201, 202, 203, 204, 205, 206, 207) that contains the location of the client device (101, 102), selecting a first quadrilateral (201, 202, 203, 204, 205, 206, 207) from the quadrilaterals (201, 202, 203, 204, 205, 206, 207) formed by the sets of four APs (110, et cetera) based on policies, and with the first quadrilateral (201, 202, 203, 204, 205, 206, 207), executing a time-of-flight (ToF)-based distance estimation process to determine the location of the client device (101, 102), according to the methods of the present specification described herein. In the course of executing code, the processor (301) may receive input from and provide output to the remaining hardware units.
The data storage device (302) may store data such as executable program code that is executed by the processor (301) or other processing device. As will be discussed, the data storage device (302) may specifically store computer code representing applications that the processor (301) executes to implement at least the functionality described herein.
The data storage device (302) may include various types of memory modules, including volatile and nonvolatile memory. For example, the data storage device (302) of the present example includes Random Access Memory (RAM) (306), Read Only Memory (ROM) (307), and Hard Disk Drive (HDD) memory (308). Many other types of memory may also be utilized, and the present specification contemplates the use of many varying type(s) of memory in the data storage device (302) as may suit a particular application of the principles described herein. In certain examples, different types of memory in the data storage device (302) may be used for different data storage needs. For example, in certain examples the processor (301) may boot from Read Only Memory (ROM) (307), maintain nonvolatile storage in the Hard Disk Drive (HDD) memory (308), and execute program code stored in Random Access Memory (RAM) (306).
Generally, the data storage device (302) may comprise a computer readable medium, a computer readable storage medium, or a non-transitory computer readable medium, among others. For example, the data storage device (302) may be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the computer readable storage medium may include, for example, the following: an electrical connection having a number of wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store computer usable program code for use by or in connection with an instruction execution system, apparatus, or device. In another example, a computer readable storage medium may be any non-transitory medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The hardware adapters (303, 304) in the AP (300) enable the processor (301) to interface with various other hardware elements, external and internal to the AP (300). For example, the peripheral device adapters (303) may provide an interface to input/output devices, such as, for example, a display device, a mouse, or a keyboard. The peripheral device adapters (303) may also provide access to other external devices such as an external storage device, network devices such as, for example, servers, switches, and routers, client devices, other types of computing devices, and combinations thereof.
The AP (300) further comprises modules used in the implementation of the localization system (100). The various modules within the AP (300) comprise executable program code that may be executed separately. In this example, the various modules may be stored as separate computer program products. In another example, the various modules within the AP (300) may be combined within computer program products, each computer program product comprising the modules.
The AP (300) may include a quadrilateral selection module (310) to, when executed by the processor (301), select sets of four access points (APs) (110, et cetera) from APs (110, et cetera) that can communicate with a client device (101, 102), each set of four APs (110, et cetera) forming a quadrilateral (201, 202, 203, 204, 205, 206, 207) that contains the location of the client device (101, 102). The quadrilateral selection module (310) may also select a first quadrilateral (201, 202, 203, 204, 205, 206, 207) from quadrilaterals (201, 202, 203, 204, 205, 206, 207) formed by the sets of four APs (110, et cetera) based on a policy, among other processes.
The AP (300) may also include a time-of-flight (ToF) distance estimation module (311) to, when executed by the processor (301), with the first quadrilateral, executing a time-of-flight (ToF)-based distance estimation process to determine the location of the client device (101, 102), among other processes. The methods by which the APs within the localization system (100) processes data will now be described in more detail in connection with
If the location of the target client device (101, 102) is known (block 501, determination YES), or if the location of the target client device (101, 102) is determined at block 502, then the localization system (100), executing the quadrilateral selection module (310) with the processor (101) of each AP 110 et cetera), determines (block 503) all possible quadrilaterals within which the client device (101, 102) is located. As described above in connection with the description of
Block 503 may begin by determining all possible quadrilaterals (201, 202, 203, 204, 205, 206, 207) formed by all APs (110, 111, 112, 113, 114, 121, 122, 123, 125, 126), and then disregarding those quadrilaterals (201, 202, 203, 204, 205, 206, 207) that do not contain the client device (101, 102). To determine which quadrilaterals (201, 202, 203, 204, 205, 206, 207) do and do not contain the client device (101, 102), the processor, executing the quadrilateral selection module (311), iterates through the entire set of quadrilaterals (201, 202, 203, 204, 205, 206, 207), and, for each quadrilateral (201, 202, 203, 204, 205, 206, 207), tests whether the location of the client device is contained therein. A computational geometry algorithm called “point-in-polygon” may perform this test. A point-in-polygon algorithm determines whether a given point in the plane such as the client device (101, 102) lies inside, outside, or on the boundary of a polygon.
In one example, all possible convex quadrilaterals are found at block 503 for each set of four two-dimensional (2D) points. The 2D points represent the location of the APs (110, et cetera) that can communicate with the client device (101, 102) as depicted in, for example,
The localization system (100), executing the quadrilateral selection module (311) by the processor (301), reduces (block 504) the number of quadrilaterals. In one example, the number of quadrilaterals (110, et cetera) may be reduced by applying one or more optimizations. One optimization may include not considering large quadrilaterals. The localization system (100) may be able to find smaller quadrilaterals containing the location of the client device (101, 102). In one example of avoiding large quadrilaterals (201, 202, 203, 204, 205, 206, 207), the localization system (100) selects only line segments that are shorter than a predetermined length. For example, the predetermined length may be 40 meters. Thus, in this example, quadrilaterals (201, 202, 203, 204, 205, 206, 207) that comprise one or both line segments that are longer than 40 meters, then that quadrilateral (201, 202, 203, 204, 205, 206, 207) is not considered a candidate.
The localization system (100), executing the quadrilateral selection module (311), selects (block 505) a quadrilateral from the candidate set obtained at blocks 503 and 504 based on a policy. The APs (110, et cetera) forming the vertices of this selected quadrilateral (201, 202, 203, 204, 205, 206, 207) are the APs (110, et cetera) that participate in determining the location of the client device (101, 102). This selected quadrilateral (201, 202, 203, 204, 205, 206, 207) from the candidate set is determined using one of several policies that avoid relatively distant APs (110, et cetera):
One such policy is selection of the quadrilateral (201, 202, 203, 204, 205, 206, 207) with the smallest area as the selected quadrilateral (201, 202, 203, 204, 205, 206, 207). In the example of
K=½pq·sin θ Eq. 2
where the lengths of the diagonals are p and q and the angle between them is θ.
Selection of the quadrilateral (201, 202, 203, 204, 205, 206, 207) under this policy will ensure that the distance of the client device (101, 102) from the APs (110, et cetera) are shorter, resulting in better localization performance.
Another such policy is selection of the quadrilateral (201, 202, 203, 204, 205, 206, 207) whose sum of the distances between the location of the client device (101, 102) and the vertices formed by the APs (110, et cetera) is a minimum.
Still another such policy is selection of the quadrilateral (201, 202, 203, 204, 205, 206, 207) whose sum-squared of the distances between the location of the client device (101, 102) and the vertices formed by the APs (110, et cetera) is a minimum. Experimentation, data indicates that application of this sum-squared policy provides a relatively higher accuracy using ToF-based distance estimation processing.
Using the selected quadrilateral (201, 202, 203, 204, 205, 206, 207), the APs (110, et cetera) within the selected quadrilateral (201, 202, 203, 204, 205, 206, 207) execute the ToF distance estimation module (311) to determine (block 506) the location of the client device (101, 102). In the processes described herein, once the location of the client device (101, 102) is determined, this location information may be presented to a user of the localization system (100) for use in locating the client device (101, 102) or a separate user using the client device (101, 102).
In the processes described above and in one example, the APs (110, et cetera) may be selected by the quadrilateral selection module (311) executed by the processor (310) based on the position of the APs (110, et cetera) within an x,y coordinate plane.
Quadrilateral (206), for example, contains AP (113) in the first quadrant, AP (110) in the second quadrant, AP (124) in the third quadrant, and AP (122) in the fourth quadrant. Therefore, under this additional x,y coordinate plane policy, quadrilateral (206) is a candidate quadrilateral because APs (113, 110, 124, 122) are each located in separate quadrants of the coordinate plane (601). Similarly, quadrilateral (202) is a candidate quadrilateral using APs (113, 110, 124, 121) as each of these APs are each located in separate quadrants of the coordinate plane (601). However, quadrilateral (201), for example, is not considered a candidate quadrilateral because APs (124, 126) lie in the same quadrant of the coordinate plane (601). The above may be similarly applied to quadrilaterals (203, 204, 205, 207).
In another example using this additional x,y coordinate plane policy, the coordinate plane may be oriented in any manner as depicted with coordinate plane (602) being oriented differently with respect to coordinate plane (601). The above analysis with regard to coordinate plane (601) described above, may be applied in connection with coordinate plane (602).
Aspects of the present system and method are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to examples of the principles described herein. Each block of the flowchart illustrations and block diagrams, and combinations of blocks in the flowchart illustrations and block diagrams, may be implemented by computer usable program code. The computer usable program code may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the computer usable program code, when executed via, for example, the processor (301) of the APs (110, et cetera) or other programmable data processing apparatus, implement the functions or acts specified in the flowchart and/or block diagram block or blocks. In one example, the computer usable program code may be embodied within a computer readable storage medium; the computer readable storage medium being part of the computer program product. In one example, the computer readable storage medium is a non-transitory computer readable medium.
The specification and figures describe methods, systems, and computer program products for determining the location of a client device includes selecting sets of four access points (APs) from APs that can communicate with a client device. Each set of four APs forms a quadrilateral that contains the location of the client device. The methods, systems, and computer program products further includes selecting a first quadrilateral from quadrilaterals formed by the sets of four APs based on a policy, and, with the first quadrilateral, executing a time-of-flight (ToF)-based distance estimation process to determine the location of the client device. This present systems and methods may have a number of advantages, including: the ability to locate a client device in an area without requiring a change in the IEEE 802.11 formats. Further, the present systems and methods drastically reduce overhead associated with multiple APs performing localization processes and sending probe packets over a network.
The preceding description has been presented to illustrate and describe examples of the principles described. This description is not intended to be exhaustive or to limit these principles to any precise form disclosed. Many modifications and variations are possible in light of the above teaching.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US14/42380 | 6/13/2014 | WO | 00 |