RADIO NODE LOCALIZATION AND CLUSTERING FOR IMPROVED DEVICE LOCALIZATION
20210112519 · 2021-04-15
Assignee
Inventors
- Pavel Ivanov (Tampere, FI)
- Lauri Aarne Johannes Wirola (Tampere, FI)
- Henri Jaakko Julius Nurminen (Tampere, FI)
Cpc classification
G01S5/0242
PHYSICS
H04W64/00
ELECTRICITY
International classification
H04W64/00
ELECTRICITY
Abstract
Inter-alia, a method is disclosed comprising: determining initial positioning information indicative of a respective location of one or more radio nodes; determining distances information indicative of at least one estimated distance between at least two locations of the radio nodes in case the initial positioning information comprises or represents at least two respective locations of the radio nodes; determining cluster information based on the at least one estimated distance; and determining cluster location information indicative of a respective location of one or more clusters. It is further disclosed an according apparatus, computer program and system.
Claims
1. A first method, comprising: determining initial positioning information indicative of a respective location of one or more radio nodes, wherein the initial positioning information is determined based at least partially on one or more fingerprint information comprising one or more radio nodes; determining distances information indicative of at least one estimated distance between at least two locations of the radio nodes in case the initial positioning information comprises or represents at least two respective locations of the radio nodes; determining cluster information based on the at least one estimated distance, wherein at least two of the radio nodes being located in vicinity to each other are determined to be comprised by a respective cluster, wherein a plurality of such clusters are determined in case more than one estimated distance is comprised or represented by the distances information; and determining cluster location information indicative of a respective location of one or more clusters, wherein a respective cluster is associated with one single area of interest, and wherein the cluster location information is to be output for usage in a positioning service.
2. The first method according to claim 1, wherein the at least one fingerprint information comprises at least one identifier of a respective radio node of the one or more radio nodes, and at least one signal strength information indicative of a received signal strength value with which a signal of the respective radio node is observable.
3. The first method according to claim 1, wherein the cluster location information is a part of or being comprised by a radio map.
4. The first method according to claim 1, wherein the distances information is determined based on a signal strength information of a respective radio node of the one or more radio nodes, wherein the signal strength information is selected to be the one with the highest received signal strength value, wherein a respective distance between this respective radio node and another radio node of the one or more radio nodes is determined based on a path loss formula and the respective signal strength information of the other radio node.
5. The first method according to claim 1, further comprising: determining updated positioning information indicative of updated respective locations of the one or more radio nodes, wherein the respective locations of the one or more radio nodes are updated based at least partially on the distances information that is determined based at least partially on the initial distances information, wherein the distances information is determined based on the updated respective locations of the one or more radio nodes.
6. The first method according to claim 5, wherein the updated positioning information is determined based at least partially on a Gauss-Newton iteration.
7. The first method according to claim 1, wherein the cluster information is determined based at least in part on a hierarchical clustering, wherein a pre-defined or defined according to pre-defined rules threshold value is set to represent the minimum distance between two clusters.
8. The first method according to claim 7, wherein the cluster information is determined in an iterative fashion.
9. The first method according to claim 1, wherein a respective location of a respective cluster of the one or more clusters is set to be an average of the respective location of the one or more radio nodes comprised by or being a part of the respective cluster.
10. The first method according to claim 1, further comprising: mapping the respective location of a respective cluster of the one or more clusters of the cluster location information to a venue information indicative of an identifier of a respective venue located at the respective location of the respective cluster.
11. A second method, comprising: receiving or obtaining a positioning request comprising at least one fingerprint information; receiving or obtaining a cluster location information indicative of a respective location of one or more clusters comprising one or more radio nodes; determining a location of a cluster based at least partially on the at least one fingerprint information and the cluster location information, wherein a respective cluster of the one or more clusters of the cluster location information is identified in which a respective location of one or more radio nodes represented by the at least fingerprint information is located; and determining a venue information indicative of an identifier of a venue based on the location of the cluster, wherein the location of the venue corresponds to the respective location of the cluster.
12. The second method according to claim 11, further comprising: outputting the venue information.
13. The second method according to claim 11, wherein the at least one fingerprint information comprises at least one identifier of a radio node, and a signal strength information indicative of a received signal strength value with which a signal of the radio node that is associated with the at least one identifier is observable.
14. The second method according to claim 11, wherein the identifier of the venue is or represents a geocode in the form of a street address and/or latitude-longitude coordinates of the venue.
15. The second method according to claim 14, wherein the geocode is determined based on respective locations of the one or more radio nodes of the one or more clusters of the cluster location information.
16. The second method according claim 15, wherein in case the respective locations of the one or more radio nodes represent more than one geocode, the geocode is set to be a geocode that is equal to the most frequent ones of the one or more radio nodes of the one or more clusters.
17. A first apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the first apparatus to at least: determine initial positioning information indicative of a respective location of one or more radio nodes, wherein the initial positioning information is determined based at least partially on one or more fingerprint information comprising one or more radio nodes; determine distances information indicative of at least one estimated distance between at least two locations of the radio nodes in case the initial positioning information comprises or represents at least two respective locations of the radio nodes; determine cluster information based on the at least one estimated distance, wherein at least two of the radio nodes being located in vicinity to each other are determined to be comprised by a respective cluster, wherein a plurality of such clusters are determined in case more than one estimated distance is comprised or represented by the distances information; and determine cluster location information indicative of a respective location of one or more clusters, wherein a respective cluster is associated with one single area of interest, and wherein the cluster location information is to be output for usage in a positioning service.
18-23. (canceled)
24. A first tangible computer-readable medium storing computer program code, the computer program code when executed by a processor causing an apparatus to perform and/or control the steps of the first method of claim 1.
25. A second tangible computer-readable medium storing computer program code, the computer program code when executed by a processor causing an apparatus to perform and/or control the steps of the second method of claim 11.
26. The first apparatus according to claim 17, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the first apparatus to: map the respective location of a respective cluster of the one or more clusters of the cluster location information to a venue information indicative of an identifier of a respective venue located at the respective location of the respective cluster.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0107] In the figures show:
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
DETAILED DESCRIPTION OF SOME EXEMPLARY EMBODIMENTS
[0115] The following description serves to deepen the understanding of the present invention and shall be understood to complement and be read together with the description as provided in the above summary section of this specification.
[0116]
[0117] Server 110 may alternatively be embodied as a server cloud (e.g. a plurality of servers connected, e.g. via the Internet (not shown in
[0118] Database 120 is optional. Database 120 may for instance be comprised by or connectable to server 110. Database 120 may for instance comprise a memory, e.g. for storing one or more pieces of information (e.g. with respect to
[0119] Radio nodes 150-1 to 150-5 are deployed throughout area 140. Radio nodes 150-2 and 150-3 are deployed inside of building 160-1. Radio node 150-5 is deployed inside of building 160-2. Radio nodes 150-1 and 150-4 are deployed outside of buildings 160-1 and 160-2 within area 140.
[0120] The method according to all aspects of the present invention may for instance comprise a learning phase and a positioning phase.
[0121] Example embodiments enable system 100 to perform and/or control a learning phase of the system 100, performed and/or controlled in particular by server 110 and/or at least one of the radio nodes 150, comprising: [0122] obtain initial estimates (initial positioning information) of the radio node locations based on the GNSS-referenced fingerprints (see step 201 of
[0128] Cluster information determined during such an exemplary learning phase can be further used to determine a specific building represented by a venue information enabling identifying the building in which an electronic device is located.
[0129] Example embodiments enable system 100 to perform and/or control a positioning phase of the system 100, performed and/or controlled in particular by at least one of the electronic devices 130, comprising: [0130] determine cluster (determine cluster of a location) which contains most of the radio nodes detected by the device is identified (see step 303 of
[0132] The method according to all aspects of the present invention enables to use information about distances between radio nodes to improve estimates of radio node locations obtained based on GNSS referenced samples, as well as clustering radio nodes according to building-wise clusters where they are located.
[0133] Having an understanding about the building in which each access point respectively radio node resides, e.g. in positioning phase it may not be necessary to estimate e.g. latitude respectively longitude coordinates at all. Instead, it may for instance suffice to access the radio node building information (respectively venue information) and use e.g. majority voting to decide, which is the most probable building in which the electronic device resides.
[0134] Initial estimate of the radio node location (initial positioning information) may for instance be determined (e.g. computed) as weighted average of the corresponding radio sample locations, wherein each radio sample has a GNSS-based location estimate and sample weight is an increasing function of the associated signal strength.
[0135] Initial radio node locations (of the step of determining initial positioning information, e.g. initial estimate) may be refined based on the information on distances between radio nodes (of the step of determining distances information, e.g. distances between radio nodes) using Gauss-Newton iteration. Gauss-Newton iteration iteratively updates locations of the radio nodes to minimize the difference between distances determined (e.g. computed) according to estimated radio node locations (of the step of determining initial positioning information, e.g. initial estimate), and distance estimated based on the measured radio signals of the step of determining distances information (e.g. estimating distances between radio nodes).
[0136]
[0137] Such estimation is more reliable than estimate based on a single scan since it implicitly uses information about more radio nodes than a single fingerprint can contain. In
[0138] The proposed solution improves accuracy of radio node location estimation as well as it improves the address and building identification performed and/or controlled by a user device.
[0139] Additionally, radio node locations (original estimates or estimates refined with Gauss-Newton) can be used to determine (e.g. compute) geocode (street address) of each radio node. This information can be further used in clustering by assigning geocode for each cluster already during clustering process, and prohibiting combination of clusters with different geocodes. Geocode of a cluster can be determined as most frequent geocode of the radio nodes of the cluster, represented by at least one venue information.
[0140] Additional information about distances between different radio nodes may for instance be utilized. The range of utilizable data is extended, since also non-GNSS referenced data contain such distance information. This improves radio node location estimation accuracy, and as a result, localization performance. Noise of such positioning systems due to estimation of distances between radio nodes may for instance be alleviated by having large amount of data that averages error out.
[0141]
[0142] In a first step 201, initial positioning information indicative of a respective location of one or more radio nodes is/are determined, wherein the initial positioning information is/are determined based at least partially on one or more fingerprint information comprising one or more radio nodes (e.g. radio nodes 150 of
[0143] In a second step 202, distances information indicative of at least one estimated distance between at least two locations of the radio nodes is/are determined. Distances information is/are determined in case the initial positioning information comprises or represents at least two respective locations of the radio nodes. Step 202 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0144] In an optional third step 203, updated positioning information indicative of updated respective locations of the one or more radio nodes is/are determined, wherein the respective locations of the one or more radio nodes are updated based at least partially on the distances information that is/are determined based at least partially on the initial distances information. Step 203 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0145] In a fourth step 204, cluster information based on the at least one estimated distance is/are determined, wherein at least two of the radio nodes being located in vicinity to each other are determined to be comprised by a respective cluster, wherein a plurality of such clusters are determined in case more than one estimated distance is comprised or represented by the distances information. Step 204 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0146] In a fifth step 205, determining cluster location information indicative of a respective location of one or more clusters is/are determined, wherein a respective cluster is associated with one single venue, and wherein the cluster location information is/are to be output for usage in a positioning service. Step 205 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0147] In an optional sixth step 206, cluster location information is/are output, e.g. to an electronic device, e.g. that requested its position to be determined. In case flowchart 200 is performed and/or controlled by server 110 of
[0148] In case optional step 203 is performed and/or controlled, distances information may for instance be determined (another time respectively again) in step 202. This is illustrated in flowchart 200 by the arrow pointing back from step 203 to step 202. Alternatively, in case step 203 is performed and/or controlled, step 203 may for instance be performed prior to step 202 and subsequent to step 201. In the latter case, step 202 of determining distances information may for instance be performed (e.g. only once) but instead of determining distances information at least partially on initial positioning information of step 201, the determining of distances information may for instance be performed and/or controlled based at least partially on updated positioning information of step 203.
[0149]
[0150] In particular, flowchart 200 may for instance be performed by server 110 of
[0151] In a first step 301, a positioning request comprising at least one fingerprint information is received or obtained. The positioning request may for instance stem from an electronic device (e.g. electronic device 130 of
[0152] In a second step 302, a cluster location information indicative of a respective location of one or more clusters comprising one or more radio nodes is/are received or obtained. In case flowchart 300 is performed and/or controlled by the electronic device, the cluster location information may for instance be obtained, e.g. from an application executed by the electronic device (e.g. as a result of an input of a user of the electronic device since e.g. the cluster location information is already stored in a memory comprised by or connectable to the electronic device, and further accessible by the application). In case flowchart 300 is performed and/or controlled by server 110 and/or radio node 150 of
[0153] In a third step 303, a location of a cluster based at least partially on the at least one fingerprint information and the cluster location information is determined, wherein a respective cluster of the one or more clusters of the cluster location information is identified in which a respective location of one or more radio nodes represented by the at least fingerprint information is located. Step 303 may for instance be performed and/or controlled by electronic device, in case flowchart 300 is performed and/or controlled by the electronic device (e.g. performing and/or controlling positioning services in a so-called terminal-based mode). Alternatively, step 303 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0154] In a forth step 304, a venue information indicative of an identifier of a venue based on the location of the cluster is/are determined, wherein the location of the venue corresponds to the respective location of the cluster. Step 304 may for instance be performed and/or controlled by electronic device in case step 301 to 303 have already been performed and/or controlled by electronic device. Step 304 may for instance be performed and/or controlled by server 110 and/or radio node 150 of
[0155] In an optional fifth step 305, the venue information is/are output, e.g. from the electronic device 130 to server 110 and/or radio node 150 of
[0156]
[0157] Apparatus 400 comprises a processor 410, working memory 420, program memory 430, data memory 440, communication interface(s) 450, an optional user interface 460 and optional sensor(s) 470. Apparatus 400 may for instance perform and/or control flowchart 200 of
[0158] Apparatus 400 may for instance be configured to perform and/or control or comprise respective means (at least one of 410 to 470) for performing and/or controlling the method according to the first exemplary aspect of the present invention. Apparatus 400 may as well constitute an apparatus comprising at least one processor (410) and at least one memory (420) including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause an apparatus, e.g. apparatus 400 at least to perform and/or control the method according to the first exemplary aspect of the invention of the present invention.
[0159] Processor 410 may for instance comprise an initial positioning information determiner 411 as a functional and/or structural unit. Initial position information determiner 411 may for instance be configured to determine an initial position information (see step 201 of
[0160] Processor 410 may for instance comprise a distances information determiner 412 as a functional and/or structural unit. Distances information determiner 412 may for instance be configured to determine an initial positioning information (see step 202 of
[0161] Processor 410 may for instance comprise an optional updated positioning information determiner 413 as a functional and/or structural unit. Updated positioning determiner information 413 may for instance be configured to determine an updated positioning information (see optional step 203 of
[0162] Processor 410 may for instance comprise a cluster information determiner 414 as a functional and/or structural unit. Cluster information determiner 414 may for instance be configured to determine a cluster information (see optional step 204 of
[0163] Processor 410 may for instance comprise a cluster location information determiner 415 as a functional and/or structural unit. Cluster location information determiner 415 may for instance be configured to determine a cluster information (see optional step 205 of
[0164] Processor 410 may for instance further control the memories 420 to 440, the communication interface(s) 450, the optional user interface 460 and the optional sensor(s) 470.
[0165] Processor 410 may for instance execute computer program code stored in program memory 430, which may for instance represent a computer readable storage medium comprising program code that, when executed by processor 410, causes the processor 410 to perform the method according to the first exemplary aspect of the present invention.
[0166] Processor 410 (and also any other processor mentioned in this specification) may be a processor of any suitable type. Processor 410 may comprise but is not limited to one or more microprocessor(s), one or more processor(s) with accompanying one or more digital signal processor(s), one or more processor(s) without accompanying digital signal processor(s), one or more special-purpose computer chips, one or more field-programmable gate array(s) (FPGA(s)), one or more controller(s), one or more application-specific integrated circuit(s) (ASIC(s)), or one or more computer(s). The relevant structure/hardware has been programmed in such a way to carry out the described function. Processor 410 may for instance be an application processor that runs an operating system.
[0167] Program memory 430 may also be included into processor 410. This memory may for instance be fixedly connected to processor 410, or be at least partially removable from processor 410, for instance in the form of a memory card or stick. Program memory 430 may for instance be non-volatile memory. It may for instance be a FLASH memory (or a part thereof), any of a ROM, PROM, EPROM and EEPROM memory (or a part thereof) or a hard disc (or a part thereof), to name but a few examples. Program memory 430 may also comprise an operating system for processor 410. Program memory 430 may also comprise a firmware for apparatus 400.
[0168] Apparatus 400 comprises a working memory 420, for instance in the form of a volatile memory. It may for instance be a Random Access Memory (RAM) or Dynamic RAM (DRAM), to give but a few non-limiting examples. It may for instance be used by processor 410 when executing an operating system and/or computer program.
[0169] Data memory 440 may for instance be a non-volatile memory. It may for instance be a FLASH memory (or a part thereof), any of a ROM, PROM, EPROM and EEPROM memory (or a part thereof) or a hard disc (or a part thereof), to name but a few examples. Data memory 440 may for instance store one or more pieces of fingerprint information, one or more pieces of initial positioning information, one or more pieces of distances information, one or more pieces of updated positioning information, one or more pieces of cluster information, one or more pieces of cluster location information, to name but a few non-limiting examples.
[0170] Communication interface(s) 450 enable apparatus 400 to communicate with other entities, e.g. with electronic device 130 of
[0171] User interface 460 is optional and may comprise a display for displaying information to a user and/or an input device (e.g. a keyboard, keypad, touchpad, mouse, etc.) for receiving information from a user.
[0172] Sensor(s) 470 are optional and may for instance comprise a GPS-Sensor, accelerometer, and/or barometric sensor, to name but a few non-limiting examples.
[0173] Some or all of the components of the apparatus 400 may for instance be connected via a bus. Some or all of the components of the apparatus 400 may for instance be combined into one or more modules.
[0174]
[0175] Apparatus 500 comprises a processor 510, working memory 520, program memory 530, data memory 540, communication interface(s) 550, an optional user interface 560 and optional sensor(s) 570.
[0176] Apparatus 500 may for instance be configured to perform and/or control or comprise respective means (at least one of 510 to 570) for performing and/or controlling the method according to the second exemplary aspect of the present invention. Apparatus 500 may as well constitute an apparatus comprising at least one processor (510) and at least one memory (520) including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause an apparatus, e.g. apparatus 500 at least to perform and/or control the method according to the second exemplary aspect of the invention of the present invention.
[0177] Processor 510 may for instance comprise location of a cluster determiner 511 as a functional and/or structural unit. Location of a cluster determiner 511 may for instance be configured to determine a location of a cluster (see step 303 of
[0178] Processor 510 may for instance comprise venue information determiner 512 as a functional and/or structural unit. Venue information determiner 512 may for instance be configured to determine a venue information (see step 304 of
[0179] Processor 510 may for instance further control the memories 520 to 540, the communication interface(s) 550, the optional user interface 560 and the optional sensor(s) 570.
[0180] Processor 510 may for instance execute computer program code stored in program memory 530, which may for instance represent a computer readable storage medium comprising program code that, when executed by processor 510, causes the processor 510 to perform the method according to the second exemplary aspect of the present invention.
[0181] Processor 510 (and also any other processor mentioned in this specification) may be a processor of any suitable type. Processor 510 may comprise but is not limited to one or more microprocessor(s), one or more processor(s) with accompanying one or more digital signal processor(s), one or more processor(s) without accompanying digital signal processor(s), one or more special-purpose computer chips, one or more field-programmable gate array(s) (FPGA(s)), one or more controller(s), one or more application-specific integrated circuit(s) (ASIC(s)), or one or more computer(s). The relevant structure/hardware has been programmed in such a way to carry out the described function. Processor 510 may for instance be an application processor that runs an operating system.
[0182] Program memory 530 may also be included into processor 510. This memory may for instance be fixedly connected to processor 510, or be at least partially removable from processor 510, for instance in the form of a memory card or stick. Program memory 530 may for instance be non-volatile memory. It may for instance be a FLASH memory (or a part thereof), any of a ROM, PROM, EPROM and EEPROM memory (or a part thereof) or a hard disc (or a part thereof), to name but a few examples. Program memory 530 may also comprise an operating system for processor 510. Program memory 530 may also comprise a firmware for apparatus 500.
[0183] Apparatus 500 comprises a working memory 520, for instance in the form of a volatile memory. It may for instance be a Random Access Memory (RAM) or Dynamic RAM (DRAM), to give but a few non-limiting examples. It may for instance be used by processor 510 when executing an operating system and/or computer program.
[0184] Data memory 540 may for instance be a non-volatile memory. It may for instance be a FLASH memory (or a part thereof), any of a ROM, PROM, EPROM and EEPROM memory (or a part thereof) or a hard disc (or a part thereof), to name but a few examples. Data memory 540 may for instance store one or more pieces of cluster location information, (partial and/or global) radio map data, and/or one or more pieces of venue information, to name but a few non-limiting examples.
[0185] Communication interface(s) 550 enable apparatus 500 to communicate with other entities, e.g. with server 110 of
[0186] User interface 560 is optional and may comprise a display for displaying information to a user and/or an input device (e.g. a keyboard, keypad, touchpad, mouse, etc.) for receiving information from a user.
[0187] Sensor(s) 570 are optional and may for instance comprise a GPS-sensor, accelerometer, barometric sensor, to name but a few non-limiting examples.
[0188] Some or all of the components of the apparatus 500 may for instance be connected via a bus. Some or all of the components of the apparatus 500 may for instance be combined into one or more modules.
[0189] In the present specification, any presented connection in the described embodiments is to be understood in a way that the involved components are operationally coupled.
[0190] Thus, the connections can be direct or indirect with any number or combination of intervening elements, and there may be merely a functional relationship between the components.
[0191] Moreover, any of the methods, processes and actions described or illustrated herein may be implemented using executable instructions in a general-purpose or special-purpose processor and stored on a computer-readable storage medium (e.g., disk, memory, or the like) to be executed by such a processor. References to a ‘computer-readable storage medium’ should be understood to encompass specialized circuits such as FPGAs, ASICs, signal processing devices, and other devices.
[0192] The expression “A and/or B” is considered to comprise any one of the following three scenarios: (i) A, (ii) B, (iii) A and B. Furthermore, the article “a” is not to be understood as “one”, i.e. use of the expression “an element” does not preclude that also further elements are present. The term “comprising” is to be understood in an open sense, i.e. in a way that an object that “comprises an element A” may also comprise further elements in addition to element A.
[0193] It will be understood that all presented embodiments are only exemplary, and that any feature presented for a particular example embodiment may be used with any aspect of the invention on its own or in combination with any feature presented for the same or another particular example embodiment and/or in combination with any other feature not mentioned. In particular, the example embodiments presented in this specification shall also be understood to be disclosed in all possible combinations with each other, as far as it is technically reasonable and the example embodiments are not alternatives with respect to each other. It will further be understood that any feature presented for an example embodiment in a particular category (method/apparatus/computer program/system) may also be used in a corresponding manner in an example embodiment of any other category. It should also be understood that presence of a feature in the presented example embodiments shall not necessarily mean that this feature forms an essential feature of the invention and cannot be omitted or substituted.
[0194] The statement of a feature comprises at least one of the subsequently enumerated features is not mandatory in the way that the feature comprises all subsequently enumerated features, or at least one feature of the plurality of the subsequently enumerated features. Also, a selection of the enumerated features in any combination or a selection of only one of the enumerated features is possible. The specific combination of all subsequently enumerated features may as well be considered. Also, a plurality of only one of the enumerated features may be possible.
[0195] The sequence of all method steps presented above is not mandatory, also alternative sequences may be possible. Nevertheless, the specific sequence of method steps exemplarily shown in the figures shall be considered as one possible sequence of method steps for the respective embodiment described by the respective figure.
[0196] The invention has been described above by means of example embodiments. It should be noted that there are alternative ways and variations which are obvious to a skilled person in the art and can be implemented without deviating from the scope of the appended claims.