WO2015191083A1 - Determining the location of a client device - Google Patents

Determining the location of a client device Download PDF

Info

Publication number
WO2015191083A1
WO2015191083A1 PCT/US2014/042332 US2014042332W WO2015191083A1 WO 2015191083 A1 WO2015191083 A1 WO 2015191083A1 US 2014042332 W US2014042332 W US 2014042332W WO 2015191083 A1 WO2015191083 A1 WO 2015191083A1
Authority
WO
WIPO (PCT)
Prior art keywords
aps
client device
quadrilateral
location
quadrilaterals
Prior art date
Application number
PCT/US2014/042332
Other languages
French (fr)
Inventor
Souvik SEN
Dongho Kim
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2014/042332 priority Critical patent/WO2015191083A1/en
Publication of WO2015191083A1 publication Critical patent/WO2015191083A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/14Determining absolute distances from a plurality of spaced points of known location
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/04Position of source determined by a plurality of spaced direction-finders
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0257Hybrid positioning
    • G01S5/0268Hybrid positioning by deriving positions from different combinations of signals or of estimated positions in a single positioning system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • H04W64/006Locating users or terminals or network equipment for network management purposes, e.g. mobility management with additional information processing, e.g. for direction or speed determination

Definitions

  • 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.
  • AP access point
  • FIG. 1 is a schematic depiction of a localization system within an indoor environment, according to one example of the principles described herein.
  • FIG. 2 is a schematic depiction of access points within the localization system of Fig. 1 , according to one example of the principles described herein.
  • FIG. 3 is a diagram of an access point (AP), according to one example of the principles described herein.
  • Fig. 4 is a flowchart showing a method of determining the location of a client device, according to one example of the principles described herein.
  • FIG. 5 is a flowchart showing a method of determining the location of a client device, according to another example of the principles described herein.
  • FIG. 6 is a schematic depiction of access points within the localization system of Fig. 2 in relation to x,y coordinate planes, according to one example of the principles described herein.
  • 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.
  • TOF time-of-flight
  • 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.1 1 format and can be implemented on off-the-shelf wireless chipsets.
  • ToF-based distance estimation processing is a viable and robust method for locating a client device within an area.
  • the localization system is a WiFi-based indoor localization system.
  • 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.
  • the present systems and methods can select an appropriate set of APs that participate in ToF-based distance estimation and localization.
  • APs may participate in locating the client device.
  • Fig. 1 is a schematic depiction of a localization system (100) in within an indoor environment (150), according to one example of the principles described herein.
  • the localization system (100) is depicted as being used within the indoor environment (150), the localization system (100) may be employed in any indoor or outdoor environment in which the location of a mobile device may be determined.
  • Mobile devices (101 , 102) may be located within rooms (130, 131 , 132, 133, 134) of the indoor environment (150).
  • the mobile devices may be mobile phones (101 , 102), laptop computing devices, tablet computing devices, or other types of mobile computing devices.
  • the localization system (100) of Fig. 1 may comprise access points (1 10, 1 1 1 , 1 12, 1 13, 1 14, 1 15, 1 1 6, 1 17, 1 18, 1 19, 120, 121 , 122, 123, 124, 125, 126), collectively referred to as element "1 10, et cetera", may be distributed throughout the indoor environment (150).
  • the access points (APs) (1 10, et cetera) may be located within the rooms (130, 131 , 132, 133, 134) of the indoor environment (150).
  • the APs (1 10, et cetera) may be located within common areas such as hallways, stairwells, and reception areas, for example.
  • the APs (1 10, et cetera) may communicate with any number of the mobile devices (101 , 102) and any number of other APs (1 10, et cetera).
  • the AP may measure the time-of- flight (ToF) of probe packets sent to the target client device (101 , 102).
  • ToF time-of- flight
  • the AP (1 10, et cetera) receives acknowledgement (ACK) packets sent by the client devices (101 , 102).
  • ACK acknowledgement
  • 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 (1 10, et cetera).
  • a propagation delay (T) between an AP (1 10, et cetera) and a client device (101 , 102) can be obtained. Consequently, the distance between the client device (101 , 102) and the AP (1 10, et cetera) may be estimated by the following equation:
  • 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.
  • 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.
  • ToF-based distance estimation process many samples of ToF measurements are collected, and outliers within the captured measurements are removed. This requires an AP (1 10, 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.
  • an advantage of the localization system (100), as will be described in more detail below, is to limit the number of APs (1 10, 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 (1 10, 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 (1 10, 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 (1 10, et cetera), and instruct those chosen APs (1 10, et cetera) to determine the location of the client device (101 , 102).
  • a wrong set of APs (1 10, et cetera) may adversely affect the accuracy of the localization system (100).
  • the present systems and methods select the most appropriate set of APs (1 10, et cetera) so that location accuracy is not compromised.
  • client device (101 ) may be located by any set of 3 or4 APs (1 10, et cetera).
  • the closest 4 APs (1 10, et cetera) may be chosen which are, in the case of client device 101 , AP (1 13), AP (121 ), AP (122), and AP (124).
  • AP (1 10), AP (1 1 1 ), AP (1 12), or AP (126), for example, should be chosen over AP (122) because these APs form a quadrilateral within which the client device (101 ) is located.
  • the present systems and methods select a set of 4 APs (1 10, et cetera) such that the client device (101 , 102) is located within a quadrilateral formed by the 4 APs (1 10, et cetera).
  • a similar situation may arise in connection with mobile device (102) and the APs (1 15, 1 1 6, 1 17, 1 18, 1 19, 120) that surround it.
  • Fig. 2 is a schematic depiction of access points (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 124, 125, 126) within the localization system (100) of Fig. 1 , according to one example of the principles described herein.
  • quadrilaterals may be formed from 4 APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 124, 125, 126).
  • Fig. 2 is included here to provide a detail view of the various quadrilaterals that are formed including and in addition to those depicted in Fig. 1 .
  • at least seven quadrilaterals (201 , 202, 203, 204, 205, 206, 207) may be formed between APs (1 10, 1 1 1 ,
  • APs 123 and 125 are not included as one of four points in any quadrilateral (201 , 202, 203, 204, 205, 206, 207). This is because, in this example, APs 123 and 125 are out of range with respect to the client device (101 ), and, therefore, cannot communicate with the client device (101 ), determine a distance between themselves and the client device (101 ) using a ToF-based distance estimation process, or determine the location of the client device (101 ).
  • Quadrilaterals are designated by different line patterns in Fig. 2, and will now be described in more detail.
  • Quadrilateral (201 ) is formed from APs 1 10, 1 13, 124, and 126, and has within its borders the client device (101 ).
  • Quadrilateral (202) is formed from APs 1 10, 1 13, 122, and 124, and has within its borders the client device (101 ).
  • Quadrilateral (204) is formed from APs 1 12, 1 13, 1 14, and 124, and has within its borders the client device (101 ).
  • Quadrilateral (205) is formed from APs 1 12,
  • Quadrilateral (206) is formed from APs 1 10, 1 13, 122, and 124, and has within its borders the client device (101 ).
  • quadrilateral (203) is formed from APs 1 10, 1 1 1 , 1 12, and 1 13, and does not contain the client device (101 ) within its borders.
  • quadrilateral (207) is formed from APs 1 13, 121 , 122, and 124, and also does not contain the client device (101 ) within its borders.
  • quadrilateral (203) is not considered as a candidate quadrilateral because it does not contain the mobile device (101 ).
  • Fig. 3 is a diagram of an access point (AP) (1 10, et cetera), according to one example of the principles described herein.
  • the AP depicted in Fig. 3 is exemplary for all APs utilized within the localization system (100).
  • the AP (300) may be any electronic computing device that allows the mobile devices (101 , 102) to connect to a wired network using, for example, Wi- Fi, or related standards. Examples of APs (300) include standalone electronic devices to connect the mobile devices (101 , 102) to a router, routers, wireless routers, industrial access points, and industrial wireless access points, among other electronic devices.
  • 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.
  • 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 (laaS) 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.
  • SaaS Software as a Service
  • PaaS Platform as a Service
  • laaS Infrastructure as a Service
  • APIaaS application program interface
  • 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.
  • the methods provided by the AP (300) are executed by a local administrator.
  • the AP (300) comprises various hardware components.
  • these hardware components may be processors (301 ), data storage devices (302), peripheral device adapters (303), and network adapters (304). These hardware components may be
  • 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 (1 10, 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) (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102), each set of four APs (1 10, 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 (1 10, et cetera) based on policies, and with the first quadr
  • 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.
  • 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).
  • RAM Random Access Memory
  • ROM Read Only Memory
  • HDD Hard Disk Drive
  • 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.
  • different types of memory in the data storage device (302) may be used for different data storage needs.
  • 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).
  • 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.
  • 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.
  • a 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.
  • 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.
  • 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).
  • 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
  • the various modules within the AP (300) comprise executable program code that may be executed separately.
  • the various modules may be stored as separate computer program products.
  • 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) (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102), each set of four APs (1 10, 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
  • the AP (300) may also include a time-of-flight (ToF) distance estimation module (31 1 ) 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
  • Each AP (1 10, et cetera) within the localization system (100) comprises the quadrilateral selection module (310) and the ToF distance estimation module (31 1 ) to support the functionality described herein.
  • the APs (1 10, et cetera) may coordinate data among each other to, for example, identify or determine quadrilaterals (201 , 202, 203, 204, 205, 206, 207) that are formed between sets of four APs (1 10, et cetera), applying the policies described herein, and to execute ToF-based distance estimation processing to determine the location of the client device (101 , 103) among other functions.
  • Fig. 4 is a flowchart (400) showing a method of determining the location of a client device (101 , 102), according to one example of the principles described herein.
  • the method (400) of Fig. 4 may begin by selecting (block 401 ), with the quadrilateral selection module (310) executed by the processor (301 ) of one or more APs (1 10, et cetera), sets of four APs (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102).
  • Each set of four APs (1 10, et cetera) forms a quadrilateral (201 , 202, 203, 204,
  • the quadrilateral selection module (310) executed by the processor (301 ) selects (block 402) a first quadrilateral from quadrilaterals (201 , 202, 203, 204, 205,
  • Fig. 5 is a flowchart showing a method (500) of determining the location of a client device (101 , 102), according to another example of the principles described herein.
  • the method (500) may begin by determining (block 501 ), with the APs (1 10, et cetera) whether the location of the client device (101 , 102) is known. If the location of the target client device (101 , 102) is not known (block 501 , determination NO), then the localization system (100) uses the APs (1 10, et cetera) to determine (block 502) the location of the target client device (101 , 102).
  • Those APs used to determine the location of the target device (101 , 102) execute, with the processor (301 ), the ToF distance estimation module (31 1 ) to determine the ToF distance as described above.
  • all nearby APs (1 10, et cetera) are used to determine the location of the target client device (101 , 102).
  • predetermined distance from the client device (101 , 102) participate in the ToF- based distance estimation process.
  • all APs (1 10, et cetera) that can communicate with the client device (101 , 102) are used to determine the location of the client device (101 , 102).
  • the localization system (100) executing the quadrilateral selection module (310) with the processor (101 ) of each AP 1 10 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 Fig.
  • At least seven quadrilaterals may be formed between APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 125, 126) in the example of Fig. 2.
  • APs 123 and 125 of Fig. 2 are not included as one of four points in any quadrilateral (201 , 202, 203, 204, 205, 206, 207).
  • the quadrilaterals (201 , 202, 203, 204, 205, 206, 207) are formed by creating boundary lines between neighboring APs (1 10, et cetera). Thus, the joining of lines between APs (1 10, et cetera) creates the quadrilaterals (201 , 202, 203, 204, 205, 206, 207).
  • Block 503 may begin by determining all possible quadrilaterals (201 , 202, 203, 204, 205, 206, 207) formed by all APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 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 (31 1 ) 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.
  • 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 (1 10, et cetera) that can communicate with the client device (101 , 102) as depicted in, for example, Fig. 2.
  • a quadrilateral is convex if its diagonals intersect. Conversely, if two line segments intersect, then their four endpoints make a convex quadrilateral.
  • the processor executing the quadrilateral selection module (31 1 ), selects every pair of points (APs 1 10, et cetera) that yields a line segment. Every point of intersection between two line segments corresponds to a convex quadrilateral.
  • the number of quadrilaterals (1 10, 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.
  • the predetermined length may be 40 meters.
  • 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 APs (1 1 0, et cetera) forming the vertices of this selected quadrilateral (201 , 202, 203, 204, 205, 206, 207) are the APs (1 10, et cetera) that participate in determining the location of the client device (1 01 , 1 02).
  • 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 (1 10, 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 ,
  • quadrilateral may be, for example, either quadrilateral (201 ) or quadrilateral (205), both of which have relatively smaller areas than other quadrilaterals.
  • the processor executing the quadrilateral selection module (31 1 ), may determine area using the following equation for the area of a convex quadrilateral :
  • 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 (1 01 , 1 02) and the vertices formed by the APs (1 1 0, et cetera) is a minimum.
  • Still another such policy is selection of the quadrilateral (201 , 202,
  • the APs (1 10, et cetera) within the selected quadrilateral (201 , 202, 203, 204, 205, 206, 207) execute the ToF distance estimation module (31 1 ) to determine (block 506) the location of the client device (101 , 102).
  • 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).
  • the APs (1 10, et cetera) may be selected by the quadrilateral selection module (31 1 ) executed by the processor (310) based on the position of the APs (1 10, et cetera) within an x,y coordinate plane.
  • Fig. 6 is a schematic depiction of APs (1 10, et cetera) within the localization system (100) of Fig. 2 in relation to x,y coordinate planes (601 , 602), according to one example of the principles described herein. In the example of Fig.
  • the APs (1 10, et cetera), executing the quadrilateral selection module (31 1 ), may choose 4 APs (1 10, et cetera) and their corresponding quadrilaterals (201 , 202, 203, 204, 205, 206, 207) as candidate APs and quadrilaterals based on whether those four APs are each separately located in one of four quadrants of a coordinate plane parallel to the area in which the client device (101 , 102) exists, and whose origin is the client device (101 , 102).
  • coordinate plane (601 ) separates APs (1 13, 1 14) in the first quadrant, from APs (1 10, 1 1 1 , 1 12) in the second quadrant, APs (124, 126) in the third quadrant, and APs (121 , 122) in the fourth quadrant.
  • Quadrilateral (206) contains AP (1 13) in the first quadrant, AP (1 10) 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 (1 13, 1 10, 124, 122) are each located in separate quadrants of the coordinate plane (601 ). Similarly, quadrilateral (202) is a candidate quadrilateral using APs (1 13, 1 10, 124, 121 ) as each of these APs are each located in separate quadrants of the coordinate plane (601 ).
  • quadrilateral (201 ) 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).
  • the coordinate plane may be oriented in any manner as depicted with coordinate plane (602) being oriented differently with respect to coordinate plane (601 ).
  • coordinate plane (602) may be 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).
  • 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 (1 10, et cetera) or other programmable data processing apparatus, implement the functions or acts specified in the flowchart and/or block diagram block or blocks.
  • 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.
  • 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.
  • ToF time-of-flight
  • 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.1 1 formats. Further, the present systems and methods drastically reduce overhead associated with multiple APs performing localization processes and sending probe packets over a network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A method of 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 method 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.

Description

DETERMINING THE LOCATION OF A CLIENT DEVICE
BACKGROUND
[0001] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] 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.
[0003] Fig. 1 is a schematic depiction of a localization system within an indoor environment, according to one example of the principles described herein.
[0004] Fig. 2 is a schematic depiction of access points within the localization system of Fig. 1 , according to one example of the principles described herein.
[0005] Fig. 3 is a diagram of an access point (AP), according to one example of the principles described herein. [0006] Fig. 4 is a flowchart showing a method of determining the location of a client device, according to one example of the principles described herein.
[0007] Fig. 5 is a flowchart showing a method of determining the location of a client device, according to another example of the principles described herein.
[0008] Fig. 6 is a schematic depiction of access points within the localization system of Fig. 2 in relation to x,y coordinate planes, according to one example of the principles described herein.
[0009] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
DETAILED DESCRIPTION
[0010] 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.1 1 format and can be implemented on off-the-shelf wireless chipsets.
[0011] 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.
[0012] 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.
[0013] 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.
[0014] Fig. 1 is a schematic depiction of a localization system (100) in within an indoor environment (150), according to one example of the principles described herein. Although the localization system (100) is depicted as being used within the indoor environment (150), the localization system (100) may be employed in any indoor or outdoor environment in which the location of a mobile device may be determined. Mobile devices (101 , 102) may be located within rooms (130, 131 , 132, 133, 134) of the indoor environment (150). The mobile devices may be mobile phones (101 , 102), laptop computing devices, tablet computing devices, or other types of mobile computing devices.
[0015] The localization system (100) of Fig. 1 may comprise access points (1 10, 1 1 1 , 1 12, 1 13, 1 14, 1 15, 1 1 6, 1 17, 1 18, 1 19, 120, 121 , 122, 123, 124, 125, 126), collectively referred to as element "1 10, et cetera", may be distributed throughout the indoor environment (150). In one example, the access points (APs) (1 10, et cetera) may be located within the rooms (130, 131 , 132, 133, 134) of the indoor environment (150). In another example, the APs (1 10, et cetera) may be located within common areas such as hallways, stairwells, and reception areas, for example. The APs (1 10, et cetera) may communicate with any number of the mobile devices (101 , 102) and any number of other APs (1 10, et cetera).
[0016] In determining or estimating a distance between a target client device (101 , 102) and an AP (1 10, 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 (1 10, 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 (1 10, et cetera). From a ToF measurement, a propagation delay (T) between an AP (1 10, et cetera) and a client device (101 , 102) can be obtained. Consequently, the distance between the client device (101 , 102) and the AP (1 10, et cetera) may be estimated by the following equation:
T * c Eq. 1 where c is the speed of light.
[0017] 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 (1 10, 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 (1 10, et cetera) engaged in the process of locating a particular client device (101 , 102).
[0018] ToF-based distance estimation process may use 3 or 4 APs (1 10, 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 (1 10, 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 (1 10, et cetera), and instruct those chosen APs (1 10, et cetera) to determine the location of the client device (101 , 102). However a wrong set of APs (1 10, 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 (1 10, et cetera) so that location accuracy is not compromised.
[0019] In experimental analysis, it was found that a ToF-based
localization process works well when the chosen set of APs (1 10, et cetera) surrounds the target client device (101 , 102). As depicted in Fig. 1 , for example, client device (101 ) may be located by any set of 3 or4 APs (1 10, et cetera). In one example, the closest 4 APs (1 10, et cetera) may be chosen which are, in the case of client device 101 , AP (1 13), AP (121 ), AP (122), and AP (124).
However, AP (1 10), AP (1 1 1 ), AP (1 12), or AP (126), for example, should be chosen over AP (122) because these APs form a quadrilateral within which the client device (101 ) is located. Given this observation, the present systems and methods select a set of 4 APs (1 10, et cetera) such that the client device (101 , 102) is located within a quadrilateral formed by the 4 APs (1 10, et cetera). A similar situation may arise in connection with mobile device (102) and the APs (1 15, 1 1 6, 1 17, 1 18, 1 19, 120) that surround it.
[0020] Fig. 2 is a schematic depiction of access points (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 124, 125, 126) within the localization system (100) of Fig. 1 , according to one example of the principles described herein. As depicted in both Figs. 1 and 2, quadrilaterals may be formed from 4 APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 124, 125, 126). Fig. 2 is included here to provide a detail view of the various quadrilaterals that are formed including and in addition to those depicted in Fig. 1 . As depicted in Fig. 2, at least seven quadrilaterals (201 , 202, 203, 204, 205, 206, 207) may be formed between APs (1 10, 1 1 1 ,
1 12, 1 13, 1 14, 121 , 122, 123, 125, 126). It is noted that APs 123 and 125 are not included as one of four points in any quadrilateral (201 , 202, 203, 204, 205, 206, 207). This is because, in this example, APs 123 and 125 are out of range with respect to the client device (101 ), and, therefore, cannot communicate with the client device (101 ), determine a distance between themselves and the client device (101 ) using a ToF-based distance estimation process, or determine the location of the client device (101 ).
[0021] The various quadrilaterals (201 , 202, 203, 204, 205, 206, 207) are designated by different line patterns in Fig. 2, and will now be described in more detail. Quadrilateral (201 ) is formed from APs 1 10, 1 13, 124, and 126, and has within its borders the client device (101 ). Quadrilateral (202) is formed from APs 1 10, 1 13, 122, and 124, and has within its borders the client device (101 ).
Quadrilateral (204) is formed from APs 1 12, 1 13, 1 14, and 124, and has within its borders the client device (101 ). Quadrilateral (205) is formed from APs 1 12,
1 13, 121 , and 124, and has within its borders the client device (101 ). Quadrilateral (206) is formed from APs 1 10, 1 13, 122, and 124, and has within its borders the client device (101 ).
[0022] In contrast, quadrilateral (203) is formed from APs 1 10, 1 1 1 , 1 12, and 1 13, and does not contain the client device (101 ) within its borders.
Further, quadrilateral (207) is formed from APs 1 13, 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 1 13, 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 ).
[0023] Turning to Fig. 3, Fig. 3 is a diagram of an access point (AP) (1 10, et cetera), according to one example of the principles described herein. The AP depicted in Fig. 3 is exemplary for all APs utilized within the localization system (100). The AP (300) may be any electronic computing device that allows the mobile devices (101 , 102) to connect to a wired network using, for example, Wi- Fi, or related standards. Examples of APs (300) include standalone electronic devices to connect the mobile devices (101 , 102) to a router, routers, wireless routers, industrial access points, and industrial wireless access points, among other electronic devices.
[0024] 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 (laaS) 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.
[0025] 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 (1 10, 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.
[0026] 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) (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102), each set of four APs (1 10, 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 (1 10, 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.
[0027] 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.
[0028] 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).
[0029] 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.
[0030] 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.
[0031] 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.
[0032] The AP (300) may include a quadrilateral selection module (310) to, when executed by the processor (301 ), select sets of four access points (APs) (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102), each set of four APs (1 10, 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 (1 10, et cetera) based on a policy, among other processes. [0033] The AP (300) may also include a time-of-flight (ToF) distance estimation module (31 1 ) 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 Figs. 4 and 5. Each AP (1 10, et cetera) within the localization system (100) comprises the quadrilateral selection module (310) and the ToF distance estimation module (31 1 ) to support the functionality described herein. Further, the APs (1 10, et cetera) may coordinate data among each other to, for example, identify or determine quadrilaterals (201 , 202, 203, 204, 205, 206, 207) that are formed between sets of four APs (1 10, et cetera), applying the policies described herein, and to execute ToF-based distance estimation processing to determine the location of the client device (101 , 103) among other functions.
[0034] Fig. 4 is a flowchart (400) showing a method of determining the location of a client device (101 , 102), according to one example of the principles described herein. The method (400) of Fig. 4 may begin by selecting (block 401 ), with the quadrilateral selection module (310) executed by the processor (301 ) of one or more APs (1 10, et cetera), sets of four APs (1 10, et cetera) from APs (1 10, et cetera) that can communicate with a client device (101 , 102).
Each set of four APs (1 10, et cetera) forms a quadrilateral (201 , 202, 203, 204,
205, 206, 207) that contains the location of the client device (101 , 102). The quadrilateral selection module (310) executed by the processor (301 ) selects (block 402) a first quadrilateral from quadrilaterals (201 , 202, 203, 204, 205,
206, 207) formed by the sets of four APs (1 10, et cetera) based on a policy. The ToF distance estimation module (31 1 ), executed by the processor (301 ) executes (block 403) a time-of-flight (ToF)-based distance estimation process, using the first quadrilateral as input, to determine the location of the client device. Details regarding the method of Fig. 4 will now be described in connection with Fig. 5.
[0035] Fig. 5 is a flowchart showing a method (500) of determining the location of a client device (101 , 102), according to another example of the principles described herein. The method (500) may begin by determining (block 501 ), with the APs (1 10, et cetera) whether the location of the client device (101 , 102) is known. If the location of the target client device (101 , 102) is not known (block 501 , determination NO), then the localization system (100) uses the APs (1 10, et cetera) to determine (block 502) the location of the target client device (101 , 102). Those APs used to determine the location of the target device (101 , 102) execute, with the processor (301 ), the ToF distance estimation module (31 1 ) to determine the ToF distance as described above. In one example, all nearby APs (1 10, et cetera) are used to determine the location of the target client device (101 , 102). In this example, APs (1 10, et cetera) within a
predetermined distance from the client device (101 , 102) participate in the ToF- based distance estimation process. In another example, all APs (1 10, et cetera) that can communicate with the client device (101 , 102) are used to determine the location of the client device (101 , 102).
[0036] 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 1 10 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 Fig. 2, at least seven quadrilaterals (201 , 202, 203, 204, 205, 206, 207) may be formed between APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 121 , 122, 123, 125, 126) in the example of Fig. 2. APs 123 and 125 of Fig. 2 are not included as one of four points in any quadrilateral (201 , 202, 203, 204, 205, 206, 207). This is because, in this example, APs 123 and 125 are out of range with respect to the client device (101 ), and, therefore, cannot communicate with the client device (101 ), determine a distance between themselves and the client device (101 ) using a ToF-based distance estimation process, or determine the location of the client device (101 ). The quadrilaterals (201 , 202, 203, 204, 205, 206, 207) are formed by creating boundary lines between neighboring APs (1 10, et cetera). Thus, the joining of lines between APs (1 10, et cetera) creates the quadrilaterals (201 , 202, 203, 204, 205, 206, 207). [0037] Block 503 may begin by determining all possible quadrilaterals (201 , 202, 203, 204, 205, 206, 207) formed by all APs (1 10, 1 1 1 , 1 12, 1 13, 1 14, 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 (31 1 ), 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.
[0038] 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 (1 10, et cetera) that can communicate with the client device (101 , 102) as depicted in, for example, Fig. 2. A quadrilateral is convex if its diagonals intersect. Conversely, if two line segments intersect, then their four endpoints make a convex quadrilateral. In this example, the processor, executing the quadrilateral selection module (31 1 ), selects every pair of points (APs 1 10, et cetera) that yields a line segment. Every point of intersection between two line segments corresponds to a convex quadrilateral.
[0039] The localization system (100), executing the quadrilateral selection module (31 1 ) by the processor (301 ), reduces (block 504) the number of quadrilaterals. In one example, the number of quadrilaterals (1 10, 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.
[0040] The localization system (1 00), executing the quadrilateral selection module (31 1 ), selects (block 505) a quadrilateral from the candidate set obtained at blocks 503 and 504 based on a policy. The APs (1 1 0, et cetera) forming the vertices of this selected quadrilateral (201 , 202, 203, 204, 205, 206, 207) are the APs (1 10, et cetera) that participate in determining the location of the client device (1 01 , 1 02). 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 (1 10, et cetera):
[0041 ] 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 Fig. 2, this selected
quadrilateral may be, for example, either quadrilateral (201 ) or quadrilateral (205), both of which have relatively smaller areas than other quadrilaterals. The processor, executing the quadrilateral selection module (31 1 ), may determine area using the following equation for the area of a convex quadrilateral :
K = ^pq sin 9 Eq. 2 where the lengths of the diagonals are p and q and the angle between them is Θ.
[0042] Selection of the quadrilateral (201 , 202, 203, 204, 205, 206, 207) under this policy will ensure that the distance of the client device (1 01 , 1 02) from the APs (1 1 0, et cetera) are shorter, resulting in better localization performance.
[0043] 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 (1 01 , 1 02) and the vertices formed by the APs (1 1 0, et cetera) is a minimum.
[0044] 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 (1 10, 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.
[0045] Using the selected quadrilateral (201 , 202, 203, 204, 205, 206, 207), the APs (1 10, et cetera) within the selected quadrilateral (201 , 202, 203, 204, 205, 206, 207) execute the ToF distance estimation module (31 1 ) 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).
[0046] In the processes described above and in one example, the APs (1 10, et cetera) may be selected by the quadrilateral selection module (31 1 ) executed by the processor (310) based on the position of the APs (1 10, et cetera) within an x,y coordinate plane. Fig. 6 is a schematic depiction of APs (1 10, et cetera) within the localization system (100) of Fig. 2 in relation to x,y coordinate planes (601 , 602), according to one example of the principles described herein. In the example of Fig. 6, the APs (1 10, et cetera), executing the quadrilateral selection module (31 1 ), may choose 4 APs (1 10, et cetera) and their corresponding quadrilaterals (201 , 202, 203, 204, 205, 206, 207) as candidate APs and quadrilaterals based on whether those four APs are each separately located in one of four quadrants of a coordinate plane parallel to the area in which the client device (101 , 102) exists, and whose origin is the client device (101 , 102). The example of Fig. 6, coordinate plane (601 ) separates APs (1 13, 1 14) in the first quadrant, from APs (1 10, 1 1 1 , 1 12) in the second quadrant, APs (124, 126) in the third quadrant, and APs (121 , 122) in the fourth quadrant.
[0047] Quadrilateral (206), for example, contains AP (1 13) in the first quadrant, AP (1 10) 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 (1 13, 1 10, 124, 122) are each located in separate quadrants of the coordinate plane (601 ). Similarly, quadrilateral (202) is a candidate quadrilateral using APs (1 13, 1 10, 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).
[0048] 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).
[0049] 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 (1 10, 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.
[0050] 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.1 1 formats. Further, the present systems and methods drastically reduce overhead associated with multiple APs performing localization processes and sending probe packets over a network.
[0051] 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.

Claims

CLAIMS WHAT IS CLAIMED IS:
1 . A method of determining the location of a client device, comprising: selecting sets of four access points (APs) from APs that can
communicate with a client device, each set of four APs forming a quadrilateral that contains the location of the client device,
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.
2. The method of claim 1 , in which each quadrilateral is defined by joining the APs of a set of APs.
3. The method of claim 1 , further comprising, prior to selecting the sets of four APs, determining the location of the client device using the APs that can communicate with the client device.
4. The method of claim 1 , in which selecting the four APs comprises selecting the four APs from the APs in which the quadrilateral formed by joining the selected APs comprises the smallest area.
5. The method of claim 1 , in which selecting the sets of four APs from the APs comprises finding all the quadrilaterals given a set of 2-dimensional (2D) points, the 2D points representing the location of the APs that can communicate with the client.
6. The method of claim 1 , further comprising reducing the number of quadrilaterals by excluding those quadrilaterals that comprise line segments which are less than a predefined distance.
7. The method of claim 6, in which the predefined distance is 40 meters.
8. The method of claim 1 , in which the quadrilaterals are convex
quadrilaterals.
9. The method of claim 1 , further comprising reducing the number of quadrilaterals based on whether a set of four APs are each separately located in one of four quadrants of a coordinate plane parallel to the area in which the client device exists, and whose origin is the client device.
10. The method of claim 1 , in which the policy comprises:
selecting the first quadrilateral from the quadrilaterals that comprises the smallest area;
selecting the first quadrilateral from the quadrilaterals that comprises a minimum sum of the distances of the location of the client device from the vertices of the quadrilateral; or
selecting the first quadrilateral from the quadrilaterals that comprises a minimum sum-squared of the distances of the location of the client device from the vertices of the quadrilateral.
1 1 . The method of claim 1 , in which a point-in-polygon process is executed to determine whether each set of four APs forming a quadrilateral contains the location of the client device.
12. A computer program product for selecting access points (APs) for time- of-flight (ToF)-based positioning of a client device, the computer program product comprising:
a computer readable storage medium comprising computer usable program code embodied therewith, the computer usable program code comprising:
computer usable program code to, when executed by a processor, select sets of four APs from APs that can communicate with a client device, each set of four APs forming a quadrilateral that contains the location of the client device; and
computer usable program code to, when executed by the processor, select a first quadrilateral from the quadrilaterals formed by the sets of four APs based on a policy.
13. The computer program product of claim 12, further comprising computer usable program code to, when executed by the processor, with the first quadrilateral, execute a time-of-flight (ToF)-based distance estimation process to determine the location of the client device.
14. A localization system for locating a client device in an area, comprising: a plurality of access points (APs) located within the area, each AP comprising:
a processor; and
a memory, the memory comprising executable code that, when executed by the processor:
determines whether a location of the client device is know; if the location of the client device is not known, determines the location of the client device using the APs;
determines all possible quadrilaterals, the quadrilaterals being formed by selecting sets of four APs from APs that can communicate with a client device, each set of four APs forming a quadrilateral that contains the location of the client device;
reduces the number of quadrilaterals to create a group of candidate quadrilaterals;
selects a quadrilateral from the group of candidate quadrilaterals; and
with the selected quadrilateral, executing a time-of-flight (ToF)-based distance estimation process to determine the location of the client device.
15. The localization system of claim 14, in which the memory comprises executable code that, when executed by the processor, reduces the number of quadrilaterals based on whether a set of four APs are each separately located in one of four quadrants of a coordinate plane parallel to the area in which the client device exists, and whose origin is the client device.
PCT/US2014/042332 2014-06-13 2014-06-13 Determining the location of a client device WO2015191083A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2014/042332 WO2015191083A1 (en) 2014-06-13 2014-06-13 Determining the location of a client device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/042332 WO2015191083A1 (en) 2014-06-13 2014-06-13 Determining the location of a client device

Publications (1)

Publication Number Publication Date
WO2015191083A1 true WO2015191083A1 (en) 2015-12-17

Family

ID=54834030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/042332 WO2015191083A1 (en) 2014-06-13 2014-06-13 Determining the location of a client device

Country Status (1)

Country Link
WO (1) WO2015191083A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018169310A (en) * 2017-03-30 2018-11-01 Kddi株式会社 Terminal position estimation device, program and method in which mobile object recognition information is taken into account

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154657A (en) * 1997-10-21 2000-11-28 Telefonaktiebolaget Lm Ericsson Smart subdivision of base station candidates for position location accuracy
US20110207456A1 (en) * 2009-08-21 2011-08-25 Qualcomm Incorporated Systems, Methods and Apparatus Configured to Manage Neighbor Cell Lists
US20130225199A1 (en) * 2012-02-29 2013-08-29 RetailNext, Inc. Method and system for wifi-based identification of person tracks
US20130294265A1 (en) * 2012-04-13 2013-11-07 Huawei Technologies Co., Ltd. Positioning method, device and system
US20140078910A1 (en) * 2012-09-17 2014-03-20 Uri Schatzberg Reduction of power consumption and time for time-of-flight positioning via neighbor list

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154657A (en) * 1997-10-21 2000-11-28 Telefonaktiebolaget Lm Ericsson Smart subdivision of base station candidates for position location accuracy
US20110207456A1 (en) * 2009-08-21 2011-08-25 Qualcomm Incorporated Systems, Methods and Apparatus Configured to Manage Neighbor Cell Lists
US20130225199A1 (en) * 2012-02-29 2013-08-29 RetailNext, Inc. Method and system for wifi-based identification of person tracks
US20130294265A1 (en) * 2012-04-13 2013-11-07 Huawei Technologies Co., Ltd. Positioning method, device and system
US20140078910A1 (en) * 2012-09-17 2014-03-20 Uri Schatzberg Reduction of power consumption and time for time-of-flight positioning via neighbor list

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018169310A (en) * 2017-03-30 2018-11-01 Kddi株式会社 Terminal position estimation device, program and method in which mobile object recognition information is taken into account

Similar Documents

Publication Publication Date Title
US20170059690A1 (en) Determining the location of a mobile computing device
US8744352B2 (en) Automatic access point location, planning, and coverage optimization
CN111194414B (en) Time alignment of motion detection signals using buffers
CN108112071B (en) Positioning method, positioning base station, positioning server and positioning system
US8848565B2 (en) Method for performing measurements and positioning in a network based WLAN positioning system
EP2936189B1 (en) Determining a location of a mobile user terminal
US20170115376A1 (en) Method for effectively estimating three-dimensional location by using trilateration in wireless network, and recording medium in which program is recorded for carrying out same
EP3036556A1 (en) Frequency transformed radiomap data set
US11768266B2 (en) System and method for estimating the angle of arrival using antenna arrays
EP3117233B1 (en) Location of terminals in a communications network
CN108353246A (en) Localization method, server, base station, mobile terminal in mobile network and system
KR20160034967A (en) Ap location query
JP2018522208A (en) Positioning method, positioning server and positioning system
EP3308190B1 (en) Determining of model parameters for positioning purposes
US10613191B2 (en) Object tracking and ranging
US20200280820A1 (en) Enabling efficient positioning of a target device in a wireless communication system
JP2019507518A (en) Floor positioning method and system, and device
CN110730413A (en) Terminal positioning method and device
WO2017103331A1 (en) Positioning of mobile device
CN114041308A (en) Positioning signal search window configuration in a wireless communication system
US10694459B2 (en) Positioning access points selection
WO2015191083A1 (en) Determining the location of a client device
US20150103738A1 (en) Selecting an access point for determining position of a device based on traffic load information
US20200326405A1 (en) Scalability of location in the cloud with angle of arrival (aoa) search on the edge
US10887822B2 (en) Dynamic multi-size radio clustering using RF constellation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14894213

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14894213

Country of ref document: EP

Kind code of ref document: A1