Indoor localization systems seek to determine the location of a 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 mobile 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 estimated. Estimated distances between a mobile device and multiple APs are used to calculate exact location of the mobile device by a multilateration technique. The present systems and methods utilize a combination of time-of-flight (ToF) and energy of direct path (EDP) processes to obtain scalable distance estimations. The systems and methods described herein take advantage of a ToF technique's lack of dependency on the characteristics of wireless medium and the scalability of an EDP technique. Thus, the systems and methods described herein reduce or eliminate noise and lack of scalability in a ToF technique as well as lack of accuracy in the EDP technique.
As used in the present specification and in the appended claims, the terms “scalable,” “scalability,” or similar language are meant to be understood broadly as the ability of a system, network, or process to handle a growing amount of work in a capable manner, or its ability to be enlarged to accommodate that growth. In the context, of the present application, scalability may include the ability of a processing device
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.
The localization system (100) of
In determining or estimating a distance between a target mobile device (101, 102, 103) and an AP (110, 111, 112, 113, 114) may measure the time-of-flight (ToF) of probe packets sent to the target mobile device (101, 102, 103). Lines 130, 131, 132, 133, 134, 135, 136, 137, and 138 designate communications between target mobile devices (101, 102, 103) and the APs (110, 111, 112, 113, 114) including the sending of the probe packets and the receiving of acknowledgement (ACK) packets from the mobile devices (101, 102, 103). A ToF-based distance estimation process captures how long it takes a probe packet from a mobile device (101, 102, 103) to arrive at an AP (110, 111, 112, 113, 114). From a ToF measurement, a propagation delay (T) between an AP (110, 111, 112, 113, 114) and a mobile device (101, 102, 103) can be obtained. Consequently, the distance between the mobile device (101, 102, 103) and the AP (110, 111, 112, 113, 114) 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 need to be collected, and outliers within the captured measurements must be properly removed. This requires an AP (110, 111, 112, 113, 114) 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 the mobile devices (101, 102, 103) that exceed an overhead capacity. Thus, an advantage of the localization system (100), as will be described in more detail below, is to provide a distance estimation that is scalable and retains accuracy.
A ToF-based distance estimation process comprises making two measurements: time-of-departure (ToD) and time-of-arrival (ToA). ToD is the time when an AP (110, 111, 112, 113, 114) completes transmission of a probe packet to a mobile device (101, 102, 103). A probe packet may be any type of data packet including a specially designed or purposed probe packet for distance estimation. In a WiFi network, when a mobile device (101, 102, 103) receives a probe packet, the mobile device (101, 102, 103) transmits an acknowledgement (ACK) packet back to the AP (110, 111, 112, 113, 114) within a fixed amount of time called a Short Interframe Space (SIFS). When an AP (110, 111, 112, 113, 114) starts receiving an ACK packet from the mobile device (101, 102, 103), the AP (110, 111, 112, 113, 114) records the time as ToA. ToF is calculated as below.
ToF=(ToA−ToD−SIFS)/2 Eq. 2
Among the three terms in Equation 2, ToD is deterministic since ToD is the completion time of transmitting a packet, and is tightly synchronized with the clock of the AP (110, 111, 112, 113, 114). Further, since reception of a probe packet at the mobile device (101, 102, 103) and response by the mobile device (101, 102, 103) with an ACK packet is implemented in hardware, SIFS is deterministic as well. However, ToA is random since the reception of a probe packet at the mobile device (101, 102, 103) is not synchronized with the clock of the AP (110, 111, 112, 113, 114), and detection of an acknowledgement packet preamble is not deterministic.
One method of obtaining an accurate estimation where the ToA measurements are random is to send many probe packets as depicted in
In one example, the probe packets (207) sent in a ToF-based distance estimation process is approximately 100 probe packets (207). These probe packets (207) may be sent by the AP (201) to the mobile device (202) as probe packet sets (203, 204, 205, 206), each probe packet set comprising 100 probe packets (207). The ACK packets sent from the mobile device (202) to the AP (201) are not depicted in
As depicted in
Further, even though obtaining the ToF measurements on the order of approximately 100 measurements from approximately 100 probe packets (207) sent by the AP (201) to the mobile device (202) provides increased accuracy of distance estimation, sending these many probe packets (207) limits the scalability of the localization system (100) significantly. In a WiFi-based localization system, at least three APs (110, 111, 112, 113, 114, 201) send probe packets (207) to a mobile device (101, 102, 103, 202) to perform multilateration. This situation results in an increase in the overhead of probe packets by three times. Further, if an application scenario directs APs (110, 111, 112, 113, 114, 201) to send probe packets (207) frequently due to mobility of the mobile device (101, 102, 103, 202), the overhead of probe packets (207) increases even more.
Another method of estimating a distance between a mobile device (101, 102, 103, 202) and an AP (110, 111, 112, 113, 114, 201) is to measure the energy of direct path (EDP). In an EDP-based distance estimation process, an AP (110, 111, 112, 113, 114, 201) transmits a probe packet to a mobile device (101, 102, 103, 202), and the mobile device (101, 102, 103, 202) sends back an ACK packet. With the assumption of knowing the received energy (P0) at 1 meter away from a mobile device (101, 102, 103, 202), the distance between the AP (110, 111, 112, 113, 114, 201) and the mobile device (101, 102, 103, 202) may be estimated using the following equation:
P
R
=P
0−10γ log(d) Eq. 3
where PR is received energy of direct path at the AP (110, 111, 112, 113, 114, 201), γ is a path loss exponent, and d is the distance between a mobile device (101, 102, 103, 202) and an AP (110, 111, 112, 113, 114, 201). The variance of estimated distance measurements using the EDP-based distance estimation process is minimal. Hence, an EDP-based distance estimation process does not require many samples of EDP measurements as described above in connection with the ToF-based distance estimation process of
While distance estimation using the EDP-based distance estimation process is scalable due to the need to send only one probe packet (307), the accuracy of an EDP-based distance estimation process depends on accurate path loss exponent γ, which changes over time according to changes in the environment around the mobile device (101, 102, 103, 202) or an AP (110, 111, 112, 113, 114, 201). Prior solutions use an EDP and received signal strength indicator (RSSI), where RSSI contains energy of all signals from multiple paths for γ. However, this method is also not accurate.
The AP (500) may be utilized in any data processing scenario including, stand-alone hardware, mobile applications, through a computing network, or combinations thereof. Further, the AP (500) 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 (500) 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 (500) are executed by a local administrator.
To achieve its desired functionality, the AP (500) comprises various hardware components. Among these hardware components may be processors (501), data storage devices (502), network adapters (503), and peripheral device adapters (504). These hardware components may be interconnected through the use of busses and/or network connections. In one example, the processor (501), data storage device (502), network adapter (503), and peripheral device adapter (504) may be communicatively coupled via a bus (505).
The processor (501) may include the hardware architecture to retrieve executable code from the data storage device (502) and execute the executable code. The executable code may, when executed by the processor (501), cause the processor (501) to implement at least the functionality of connecting the mobile devices (101, 102, 103, 202) to a computing network, determining the location of the mobile devices (101, 102, 103, 202), determining the distance between the mobile devices (101, 102, 103, 202) and the AP (500), other functionality, or combinations thereof according to the methods of the present specification described herein. In the course of executing code, the processor (501) may receive input from and provide output to the remaining hardware units internal and external to the AP (500).
The data storage device (502) may store data such as executable program code that is executed by the processor (501) or other processing device. As will be discussed, the data storage device (502) may specifically store computer code representing applications that the processor (501) executes to implement at least the functionality described herein.
The data storage device (502) may include various types of memory modules, including volatile and nonvolatile memory. For example, the data storage device (502) of the present example includes Random Access Memory (RAM) (506), Read Only Memory (ROM) (507), and Hard Disk Drive (HDD) memory (508). 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 (502) as may suit a particular application of the principles described herein. In certain examples, different types of memory in the data storage device (502) may be used for different data storage needs. For example, in certain examples the processor (501) may boot from Read Only Memory (ROM) (507), maintain nonvolatile storage in the Hard Disk Drive (HDD) memory (508), and execute program code stored in Random Access Memory (RAM) (506).
Generally, the data storage device (502) 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 (502) 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 (503, 504) in the AP (500) enable the processor (501) to interface with various other hardware elements, external and internal to the AP (500). For example, the peripheral device adapters (503) may provide an interface to input/output devices, such as, for example, display device, a mouse, or a keyboard connected directly to the AP (500) or through another external device such as a router, server, or other computing device. The peripheral device adapters (503) 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 network adapter (504) may provide an interface to other computing devices within, for example, a network, thereby enabling the transmission of data between the AP (500) and other devices located within the network.
The AP (500) further comprises modules used in the implementation of connecting the mobile devices (101, 102, 103, 202) to a computing network, determining the location of the mobile devices (101, 102, 103, 202), determining the distance between the mobile devices (101, 102, 103, 202) and the AP (500), other functionality, or combinations thereof according to the methods of the present specification described herein. The various modules within the AP (500) 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 (500) may be combined within computer program products; each computer program product comprising the modules.
The AP (500) may include a time-of-flight (ToF) module (510) to, when executed by the processor (501), perform calculations associated with the above-described ToF-based distance estimation process. The ToF module (510) sends probe packets to a mobile device (101, 102, 103, 202), receives ACK packets from the mobile device (101, 102, 103, 202), determines a distance between the mobile device (101, 102, 103, 202) and the AP (110, 111, 112, 113, 114, 201), and, through coordination with other APs (110, 111, 112, 113, 114, 201), determines the location of the mobile device (101, 102, 103, 202) within an area. The ToF module (510) may perform these functions in connection with any number of mobile devices (101, 102, 103, 202) in serial, in parallel, or combinations thereof.
The AP (500) may include an energy of direct path (EDP) module (511) to, when executed by the processor (501), perform calculations associated with the above-described EDP-based distance estimation process. The EDP module (511) sends probe packets to a mobile device (101, 102, 103, 202), receives ACK packets from the mobile device (101, 102, 103, 202), determines a distance between the mobile device (101, 102, 103, 202) and the AP (110, 111, 112, 113, 114, 201), and, through coordination with other APs (110, 111, 112, 113, 114, 201), determines the location of the mobile device (101, 102, 103, 202) within an area. The EDP module (511) may perform these functions in connection with any number of mobile devices (101, 102, 103, 202) in serial, in parallel, or combinations thereof.
The AP (500) may include an access point multilateration module (512) to, when executed by the processor (501), coordinate with the APs (110, 111, 112, 113, 114, 201) within the localization system (100) to determine the location of the mobile devices (101, 102, 103, 202) within an area using the output of the ToF module (510) and EDP module (511). Lines 140, 141, and 142 of
The AP (500) may include an overhead determination module (513) to, when executed by the processor (501), determine the overhead of the probe packets sent to mobile devices (101, 102, 103, 202). The AP (500) may include a round robin scheduling module (514) to, when executed by the processor (501), schedule, according to a round robin scheduling algorithm, the determination of a location of the mobile devices (101, 102, 103, 202) based on the overhead determined by the overhead determination module (513).
The method includes calculating (block 602), with the ToF module (510), a preliminary distance value (d0) using a ToF-based distance equation determined by the ToF module (510). The ToF-based distance is determined using the processes and equations described above in connection with the ToF-based distance estimation process of
The method further includes selecting (block 603), with the ToF module (510), an ACK packet with a distance closest to d0 from the ACK packets. At block 603, the ToF module (510) of the AP (110, 111, 112, 113, 114, 201) determines the median of ToF measurements as the d0 value.
With d0 and EDP PR determined at block 601 of the chosen ACK packet, an initial path loss exponent, γ0, may be calculated (block 604) using Equation 3, above by executing the EDP module (511). In one example, the processes described above in connection with blocks 601 through 604 may be designated as an initial phase. The next phase described hereafter may be referred to as the secondary phase, and includes the processes associated with blocks 605 through 607.
The method (600) of
The method may proceed by calculating (block 606), with the EDP module (511), a supplemental distance value using an EDP-based distance equation and the γ0 value. The AP (110, 111, 112, 113, 114, 201), in conjunction with additional APs (110, 111, 112, 113, 114, 201) within the localization system (100) and with the access point multilateration module (512), determines (block 607) the location of the mobile device (101, 102, 103, 202) using multilateration and the supplemental distance value calculated at block 606. Lines 140, 141, and 142 of
The method of
The method further includes selecting (block 704), with the ToF module (510), an ACK packet with a distance closest to d0 from the ACK packets. The process of block 704 is performed by the APs (110, 111, 112, 113, 114, 201) for each group of ACK packets sent by each of the individual mobile devices (101, 102, 103, 202) to obtain an ACK packet with a distance closest to d0 from the ACK packets sent from each individual mobile devices (101, 102, 103, 202). At block 704, the ToF module (510) of the AP (110, 111, 112, 113, 114, 201) determines the median of ToF measurements as the d0 value.
With d0 and EDP PR determined at block 701 of each of the chosen ACK packets, an initial path loss exponent, γ0, may be calculated (block 705) using Equation 3, above and executing the EDP module (511). In one example, the processes described above in connection with blocks 701 through 705 may be designated as an initial phase. The next phase described hereafter may be referred to as the secondary phase, and includes the processes associated with block 706.
The method (700) of
The method (700) of
After the secondary EDP phase, the method (700) of
Outliers within the second time of flight (ToF) values measured at block 708 are removed (block 709) or disregarded using. In one example, a propagation delay is estimated from the values obtained from the EDP-based distance estimation process of block 708, and the APs (110, 111, 112, 113, 114, 201), executing the ToF module (510), remove outliers and estimate distances between the APs (110, 111, 112, 113, 114, 201) and the mobile devices (101, 102, 103, 202) by calculating the median of valid ToF measurements. In the electromagnetism field, the propagation delay is the length of time it takes for a signal to travel to its destination. For example, in the case of the probe packets (207), it is the time taken for the probe packets (207) to travel through the media between the APs (110, 111, 112, 113, 114, 201) and the mobile devices (101, 102, 103, 202).
The APs (110, 111, 112, 113, 114, 201) update (block 710) the path loss exponent (γ) of Equation 3. The APs (110, 111, 112, 113, 114, 201) use the newly updated path loss exponent (γ) in subsequent EDP-based distance estimation process. This updating (block 710) of path loss exponent is performed in order to ensure that different environments that have different path loss exponents are taken into account throughout the processes described herein.
As described in connection with the method (600) of
The method (700) of
N*t
probe
=OH Eq. 4
where tprobe_ack represents the time duration from the start of transmission of a probe packet (207, 307) to the end of reception of a corresponding ACK packet.
The method (700) of
To maintain fairness between mobile devices (101, 102, 103, 202), the round robin scheduling module (514) of the AP (110, 111, 112, 113, 114, 201) performs round robin process iterations until the number of probe packets is equal to the number of probe packets minus the number of probe packets for the ToF-based distance estimation process as follows:
N=N−N
ToF Eq. 5
This may be understood with reference to
The APs (110, 111, 112, 113, 114, 201) within the localization system (100) and with the access point multilateration module (512), determine (block 713) the location of the mobile devices (101, 102, 103, 202) using multilateration and the values calculated at blocks 701 through 712. The APs AP (110, 111, 112, 113, 114, 201, 500), with their respective access point multilateration modules (512) executed by the processor (501), coordinate with each other to determine the location of the mobile devices (101, 102, 103, 202) within the indoor environment (150) using the output of the ToF module (510) and EDP module (511), the overhead determination module (513), and the round robin scheduling module (514).
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 processors (501) of the access points (500) 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 mobile computing device includes measuring a first time of flight (ToF) value and a first value of received energy of direct path (EDP) (PR) of a number of acknowledgement (ACK) packets received in response to a number of first probe packets sent to a first mobile device. The method calculates a preliminary distance value (d0) using a ToF-based distance equation, selects an ACK packet with a distance closest to d0 from the number of ACK packets, calculates an initial path loss exponent (γ0) of the selected ACK packet sample using d0 and PR. With the access point, the method also includes measuring a second PR for a second number of ACK packets received in response to a number of second probe packets sent to the first mobile device, calculates a supplemental distance value using an EDP-based distance equation and the γ0, and determines the location of the mobile device using multilateration and the supplemental distance value
These methods, systems, and computer program products for determining the location of a mobile computing device may have a number of advantages, including providing more accurate localization of the mobile computing device with a decrease in overhead in computational resources.
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.
Number | Date | Country | |
---|---|---|---|
Parent | 15307884 | Oct 2016 | US |
Child | 16691752 | US |