Abstract:
The present invention relates to a method of determining the indoor position of a mobile computing device using the signal strength measurements of a plurality of electromagnetic signals which are emitted from fixed locations. By using a heuristic which takes the observed behavior of signal strength measuring devices into account, the method allows to increase the accuracy and robustness of similar known methods.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    The present invention is the US national stage under 35 U.S.C. §371 of International Application No. PCT/EP2014/078315, which was filed on Dec. 17, 2014, and which claims the priority of application EP 13198427.0 filed on Dec. 19, 2013, the content of which (text, drawings and claims) are incorporated here by reference in its entirety. 
     
    
     FIELD 
       [0002]    The present invention relates to a method for determining the indoor location of a mobile computing device. In particular, it relates to such a method which uses the received signal strength from several signal emitters, which are positioned in fixed locations. The invention further relates to a computer program and device for implementing the described method. 
       BACKGROUND 
       [0003]    The availability of mobile networked computing devices, such as smartphones or tablet computers, has given rise to the deployment of location based services. Known devices are equipped with at least one wireless networking interface, which allows them to connect to wireless local area networks, WLAN, or cellular data transmission networks such as UMTS, HSDPA or LTE networks. Many known devices are further equipped with a Global Positioning System, GPS, receiver, which generally enables the location of the device to be computed if it can receive broadcast signals emitted from at least four distinct GPS satellites. The mobile devices are further equipped with computing means that enable them to run software applications, to receive, send and process data. Location based services typically use the location coordinates as determined by the GPS receiver to provide location specific data via the network to the user. While this solution is both useful and provides sufficient precision for outdoor use cases (an accuracy of about 10 meters is provided), it is not useful when the mobile device to which the location specific data is to be sent is located indoors. As no line of sight from the device to the GPS satellite system exists, the device cannot use GPS data to compute its position and to request location specific data from the network. 
         [0004]    Indoor location determination systems have been proposed based on various technical approaches. It has been proposed to use either active or passive tags, whose presence can be detected by the corresponding detectors or emitters, installed at known locations in an indoor environment. Such solutions rely on a dedicated equipment infrastructure and inherently suffer, besides being costly to put into practice, from scalability issues. As a consequence, the use and adoption of such systems is limited. 
         [0005]    Patent document US 2005/0243936 A1 discloses a method and system for determining user location in a wireless communication network. The method acquires, at a mobile device, an indication of the signal strength of a set of deployed access points, such as for example WLAN access points. By using a previously constructed radio map, which maps the received signal strengths to probabilities of being in a specific location within the coverage area of the access points, the method locates the receiving device as being at a location at which the probability of measuring the set of signal strengths is highest. 
         [0006]    The disclosed system makes use of equipment that is in general already deployed in many indoor locations. Indeed, most buildings or public areas are covered by several WLAN access points, whose locations and geographical coordinates are known. The assumption on the receiving device is that it is equipped with a wireless network interface card, NIC, which is able to provide a received signal strength indication, RSSI. 
         [0007]    While the disclosed method is promising, practical implementations using today&#39;s widely available smartphones or tablet computers, have failed to produce accurate location determinations. This appears to be due to unreliable RSSI values being provided by the operating systems of the mobile devices. While the disclosed system relies on the observation that the measured signal strength increases monotonically with the number of collected measurement samples, this is not true if the lack of measurements is due to the behavior of the measuring device or terminal itself. 
       SUMMARY 
       [0008]    It is an objective of the present invention to provide a method and device for determining indoor locations of mobile receiver units which overcomes at least some of the disadvantages of the prior art. 
         [0009]    In accordance with various embodiments of the invention, there is provided a method for determining the position of a mobile computing device capable of receiving electromagnetic signals from a set of K&gt;1 access points emitting such signals, and measuring the signal power thereof, with respect to a set of predetermined locations. The device can be a mobile smartphone or tablet computing device, which is powered by a battery, and the electromagnetic signals can be a wireless local area network, WLAN signal complying with the IEEE 802.11a, g or n standard. Similarly, the access points can be compliant WLAN access points, which can at the same time be nodes in a data communication network. However, the invention is not limited to such an infrastructure and is readily applicable to any electromagnetic signals emitted by a fixed equipment, and whose signal power can be measured at a mobile computing device or terminal. The access points are part of a fixed infrastructure and their location does not change in time. The set of predetermined locations comprises fixed locations, provided for example by their respective geographical coordinates, which are located within the coverage area of at least one of the access points. In various implementations, the set of predetermined locations comprises a regular grid of predetermined locations. 
         [0010]    The method comprises:
       providing a mapping, which assigns a probability value to each location in the set of predetermined locations, as a function of a vector of determined signal power values, wherein each vector component represents an indication of the power of the signal emitted by a given access point k, 1≦k≦K, as received by the device  100  in a given location;   providing, for the signal emitted by each access point k, an ordered series of increasing distinct signal power values as measured by the device in a given location, together with respective count values indicating how many times each signal power value was measured during a predetermined time period—the corresponding data can, in various instances, be provided by means of a histogram wherein each distinct signal power value is represented by a histogram bin;   for each ordered series of values, detecting a count value or a sequence of count values being equal to zero, which is preceded and followed by a non-zero count value—this step allows to detect empty bins in the histogram, which are surrounded by non-empty bins;   correcting the detected count values to non-zero count values, which are computed using an interpolating function of preceding and/or following non-zero count values, in various instances, of non-zero count values immediately preceding and/or following the detected zero count values in the series;   repeating the previous steps until each ordered series of values comprises no more zero count values, which are preceded and followed by a non-zero count value;   determining a signal power value for the signal emitted by each access point, wherein the value is based on the corrected series of signal power count values;   determining the location of the mobile computing device with respect to the set of predetermined locations, wherein the location is determined using at least the predetermined location for which the mapping indicates the highest probability based on the determined signal power values. The location can, in various instances, be provided by its geographical coordinates, or with respect to its position relative to the coordinates of the predetermined locations.       
 
         [0018]    The steps of detecting and correcting count values, as well as determining a signal power value, can, in various instances, be performed by computing means of the mobile computing device which has measured the signal power values. Alternatively, these steps can be performed by computing means of a computing device on which the original uncorrected measured values are provided. The resulting k determined signal power values are provided on the same device on which the mapping is provided, which can be the measuring mobile computing device, or another computing device. The location of the mobile computing device can be determined by any device which has access to the determined signal power values and the mapping. 
         [0019]    In various embodiments, the step of correcting the detected count values can comprise setting the detected count values so that the preceding and following non-zero count values, and the corrected count values, satisfy a linear function of the signal power. 
         [0020]    The step of correcting the detected count values can alternatively comprise correcting the count values so that all count values satisfy a Gaussian function of the signal power. The Gaussian function can be a normalized Gaussian function. 
         [0021]    The step of determining a signal power can, in various instances, comprise setting the determined signal power to a weighted average of the values in the provided series of measured signal power values, wherein each signal power value is weighted by its corresponding corrected count value. 
         [0022]    The step of position determination can, in various instances, comprise the further step of selecting the location of the receiving device as the predetermined location for which the mapping indicates the highest probability based on the vector of determined signal power values. 
         [0023]    Further, the step of position determination can comprise the step of selecting three or more predetermined locations for which the mapping indicates the three or more highest probabilities based on the vector of determined signal power values, and computing the position of the receiving device as the average location of the selected predetermined locations. 
         [0024]    The determined position can, in various instances, be stored for future use. In particular, a history of determined location can be stored for each uniquely identifiable device whose position is being determined. If a determined position is unlikely with respect to previously determined locations for the same device, the determined position can, in various instances, be rejected as being erroneous. The likelihood of a determined position with respect to previously determined positions can for example be expressed by an inverse of the distance between the determined position and the latest determined position in the device&#39;s location history. 
         [0025]    The step of providing a mapping can, in various instances, comprise the further steps of:
       providing, for the signal emitted by each access point, an ordered series of increasing distinct signal power values as measured by a device in one of the predetermined locations, together with respective count values indicating how many times each signal power value was measured during a predetermined time period;   for each ordered series of values, detecting a count value or a sequence of count values being equal to zero, which is preceded and followed by a non-zero count value;   correcting the detected count values to non-zero count values, wherein the non-zero count values are computed using an interpolating function of preceding and/or following non-zero count values, and in various instances of non-zero count values immediately preceding and/or following the detected zero count values in the series;   repeating the preceding steps until each ordered series of values comprises no zero count values, which are preceded and followed by a non-zero count value;   normalizing in each series the count values so that their sum adds up to one, and so that each normalized value represents the probability of occurrence of the corresponding signal power value;   associating the probabilities with the corresponding access point and the predetermined location;   repeating the above steps for each of the predetermined locations.       
 
         [0033]    The step of correcting the count values during the determination of the mapping can, in various instances, comprise setting the detected count values so that the preceding and following non-zero count values, and the corrected count values, satisfy a linear or affine function of the signal power. Alternatively, the detected count values can be corrected so that all count values satisfy a Gaussian function of the signal power. The Gaussian function can be a normalized Gaussian function. 
         [0034]    Alternatively, the method can comprise providing, for the signal emitted by each access point, an ordered series of increasing distinct signal power values as measured by at least two devices in the same one of the predetermined locations, together with respective count values indicating how many times each signal power value was measured during a predetermined time period by each one of the devices. The step of correcting the count values can in that case further comprise:
       detecting distinct signal power values for which each one of the devices has provided a non-zero count value, and using the average of the count values as the corrected count value for the detected signal power values;   detecting distinct signal power values for which at least one device provided a count value being equal to zero, preceded and followed by non-zero count values, and correcting the detected count value to the average of the non-zero count values that are provided for the same signal power value by other devices.       
 
         [0037]    In various other embodiments of the invention, there is provided a device capable of implementing the method according to the invention. The device comprises:
       a memory element, in which at least one ordered series of increasing distinct signal power values are provided, together with respective count values indicating how many times each signal power value was measured during a predetermined time period by a measuring means during a predetermined time period;   computing means, wherein the computing means are configured to   detect, for each ordered series of values, a count value or a sequence of count values being equal to zero, which is preceded and followed by a non-zero count value;   correct the detected count values to non-zero count values, which are a function of preceding and/or following non-zero count values;   repeat the preceding steps until each ordered series of values comprises no zero count values, which are preceded and followed by a non-zero count value;   store the corrected series in the memory element.       
 
         [0044]    The device can, in various instances, comprise signal receiving and measuring means capable of receiving electromagnetic signals from a set of K&gt;1 access points emitting such signals, and measuring the signal power thereof, with respect to a set of predetermined locations. The computing means can, in various instances, be further configured to:
       measure at least one series of received signal power values during a predetermined time period from at least one access point;   compute for each distinct signal power value, the respective count values indicating how many times each signal power value was measured during the time period, and   store the signal power and count values in the memory element.       
 
         [0048]    Further, the computing means can, in various instances, be configured to determine a signal power value based on each corrected series of signal power count values. The computing means can furthermore be configured to carry out any of the previously described method steps according to the invention. 
         [0049]    In various embodiments, the device can further comprise data receiving and transmitting means capable of receiving and transmitting data from a computing device in a communication network, and wherein the computing means are further configured to:
       transmit the corrected series of values to a computing device using the data transmitting means;   receive a location from the computing device using the data receiving means, wherein the location is determined based on the corrected series of values.       
 
         [0052]    According to various embodiments of invention, there is provided a computer capable of carrying out the method according to the invention. 
         [0053]    In accordance with various embodiments of the invention, there is provided a computer program comprising computer readable code means, which when run on a computer, causes the computer to carry out the method according to the invention. According to yet other embodiments of the invention there is provided a computer program product comprising a computer-readable medium on which this computer program is stored. 
         [0054]    By using the method in accordance to the invention, it becomes possible to extend the known framework of probabilistic device localization in wireless networks to practical cases using widely available consumer grade smartphone and tablet computers. 
         [0055]    Radio maps, which map received signal strengths to the probability of the receiving device being in a specific location in the coverage area of a set of wireless access points, can be provided based on the type of receiving device and/or operating system that is being used on the device. Each device type and operating system potentially exhibits a power saving pattern, which is not directly appreciable by the user, but which impacts the accuracy and/or availability of RSSI values provided for the device&#39;s position determination. For example, due to the power saving pattern, a reported RSSI sample can indicate zero signal strength because the receiving antenna was switched off when the value was requested through the device&#39;s operating system. The method provides a way to correct erroneous RSSI values, which are due to the power saving pattern implemented by the operating system and/or on a chip of the receiving device. The corrected values can be used both during the phase of radio map construction and localization. In order to perform the corrections, the proposed method does not require a large training set or a prolonged training phase. 
         [0056]    The determined location can further be refined based on the movement history of the device and on several assumptions made thereon. 
         [0057]    By using the method according to the invention as an application on out-of-the-box mobile devices, location determination accuracies of up to 1 m have been observed in indoor use cases. This enables the use of the method, among many other imaginable service applications, to be used in indoor location based information systems. For example, a visitor to an art exhibition can receive specific data on his mobile device, depending on his location in the exhibition room. The method can advantageously be deployed as a software service, without requiring the existing equipment infrastructure to be expanded or altered, provided that the area of localization is covered by any existing wireless access point infrastructure. Therefore the method and system in accordance with the invention provides low deployment costs. 
     
    
     
       DRAWINGS 
         [0058]    Several embodiments of the present invention are illustrated by way of figures, which do not limit the scope of the invention. 
           [0059]      FIG. 1  is a schematic illustration of a setup in which the method according to invention finds its application; 
           [0060]      FIG. 2  is a workflow illustrating the main method steps according to various embodiments of the invention; 
           [0061]      FIG. 3  is an example plot of measured and corrected count values of a series of measured signal power values, in accordance with various embodiments of the invention; 
           [0062]      FIG. 4  is a workflow illustrating details of a method step according to various embodiments of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0063]    This section describes the invention in further detail based on various embodiments and on the figures, without limiting the scope of the invention to the disclosed examples. 
         [0064]    The method according to the invention acquires, at a mobile device, an indication of the signal strength or signal power of a set of deployed access points, such as for example WLAN access points. By using a previously constructed mapping, which will be referred to as a radio map, and which maps the received signal strengths to probabilities of being in a specific location within the coverage area of the access points, the method locates the receiving device as being at a location at which the probability of measuring the set of signal strengths is highest. 
         [0065]    It has been observed that without further processing, the received signal strength indication values, RSSI, which are provided by the operating system of the measuring device, are not always accurate and reliable indications of the effective signal strength available at the device&#39;s location. 
         [0066]    The mobile devices of concern are typically equipped with integrated WLAN receiving means, and often different system functions are collocated on the same physical chip inside the device. The WLAN receiving means are often highly directional antennas. The operating systems, OS, used to run the hardware implement trade-offs between the availability of all functions of the device on the one hand, and the availability of battery power on the other hand. In order to reduce system power consumption, the OS can choose to switch several system functions off from time to time, in a way that is not transparent to the user of the device. If a software application requires an RSSI value, it requests it from the OS via a dedicated application programming interface, API, call. Following extensive testing of the provided RSSI values on mobile device having integrated WLAN receiving means, it has been observed that the provided values are polluted by a random noise. Zero values are provided randomly, which cannot be attributed to a channel model of the communication path linking the device to the access point, or to interference with signals external to the device. For two similar devices measuring the power of the same signal in the same location, RSSI values requested at the devices at the same time for the same access points have provided zero values for one, while full signal strength has been reported on the other. This phenomenon has not been described in the prior art and none of the channel models in the prior art are able to take these random noise realizations into account. 
         [0067]    The source of this noise appears to be the power-management of the device, which is implemented in the operating system or directly on the system chip. When zero signal power is reported as an RSSI value, this can be the result of the antenna having been shut down at the time of measurement, in order to reduce overall battery consumption. While during normal operation of the device, these outages take little significance, the proposed localization method relies on a small number of RSSI sample values, on which the produced random noise has a potentially big impact. The method according to the invention allows taking the described noise into account to improve the ability to locate the device based on received signal strength of electromagnetic signals. 
         [0068]    In accordance with the invention, the RSSI values, which are used for the computation of a localization sample and, in various instances, for both the radio map construction and the computation of a localization sample, are indirectly corrected in order to eliminate the incorrect values that are due to power saving methods implemented by the OS or on the chip. While this describes the essence of the present invention in general terms, further details will now be described based on various embodiments of the invention. 
         [0069]      FIG. 1  illustrates a mobile device  100 , which is located or moves within the coverage area of a set of access points AP 1 , . . . , AP K  emitting an electromagnetic signal. The device is equipped with receiving and measuring means, which allow the reception of the electromagnetic signal and the measuring of the signal power thereof. Such receiving and measuring means are well known in the art and known mobile computing devices such as smartphones or tablet computers are equipped with such means. A set of predetermined locations  400  is provided. The locations  400  as well as the positions of the access points are fixed and their positions can be stored in a database by means of 2D or 3D coordinates. The database can be provided on a computing device  102 , on which it can accessible by the device  100  by means of a communication channel, or it can be stored on the device  100 —in which case the computing device  102  and the device  100  are the same physical entity. While the locations  400  are shown to form a grid, the locations  400  can be arbitrarily distributed in the coverage area of the access points. The locations can be spaced by about 5 meters. The distance between neighboring locations can also be less than 5 meters, as for example 1 meter. 
         [0070]      FIG. 2  illustrates the main steps of the method according to the invention. In a first step  10 , a radio map is provided, which assigns a probability value to each location  400  in the set of predetermined locations. Each probability value is associated with a vector of determined signal power values, wherein each vector component Pk, 1≦k≦K, represents an indication of the power of the signal emitted by a given access point, as received by the device  100  in the location of measurement. The radio map can be provided as a look-up table or in a database structure. As will be discussed further below, the radio map can be stored on the device  100 , or it can be stored on a computing device or server  102 , which is collocated with the device  100  on a communication network. 
         [0071]    In a second step  20 , an ordered series of N increasing distinct measured signal power values is provided for each one of the signals emitted by the K access points. The values are measured at the device  100 . The workflow shows the steps for treating the signal emitted by one of the access points for the sake of clarity. The signal power values are ordered according to their magnitude by algorithms known in the art. The values represent the signal power values as measured by the device  100 , and they can be subject to the random noise process realization described above. Together with each signal power value, a count value n is provided, which indicates how often each signal power value was measured by the device during a predetermined time period. 
         [0072]    For example, the time period can be equal to about 5 seconds. Alternatively, the time period can be longer than 5 seconds. For example, it can be equal to about 10 seconds. Depending on the type of device, and its capability to subsequent signal power values, about one measurement per second can be provided per second for each one of the K signals emitted by the K access points. 
         [0073]    The signal power values, provided in —dBm, together with their respective count values can be represented by a histogram, as illustrated in  FIG. 3 . Due to the described measurement outages caused by power-saving routines, some of the count values can be equal to zero, while the physically available signal power at the time of measurement was in fact higher. During step  30 , such erroneous zero count values, or sequences of zero count values, are detected. The erroneous count values correspond to “gaps” in the histogram, which are preceded and followed by non-empty histogram bins. 
         [0074]    During step  40 , a detected erroneous count value, or sequence of such values, is corrected by interpolation. The non-zero value is for example set to a corrected value, which is a function of preceding and/or following non-zero count values. In various embodiments, the corrected value is a function of the non-zero count values immediately preceding and following the detected gap. As illustrated by the example of  FIG. 3 , the corrected values, shown as white dots, can be set so that the corrected values, the preceding and following non-zero values, each satisfy a linear function of the signal power. While other interpolation methods are feasible, this simple heuristic has provided surprisingly good results. Formally, if P i  and P j , i&lt;j, are non-zero signal power values as shown in  FIG. 3 , and n i , n j  are the corresponding count values, then the gap in count values between them will be filled with values that satisfy the following set of equations: 
         [0000]        aP   i   +b=n   i    (E.1)
 
         [0000]        aP   j   +b=n   j    (E.2)
 
         [0000]    Which yields: 
         [0000]    
       
         
           
             
               
                 
                   a 
                   = 
                   
                     
                       
                         n 
                         i 
                       
                       - 
                       
                         n 
                         j 
                       
                     
                     
                       
                         P 
                         i 
                       
                       - 
                       
                         P 
                         j 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     E 
                     . 
                     
                         
                     
                      
                     3 
                   
                   ) 
                 
               
             
             
               
                 
                   b 
                   = 
                   
                     
                       n 
                       i 
                     
                     - 
                     
                       
                         ( 
                         
                           
                             
                               n 
                               i 
                             
                             - 
                             
                               n 
                               j 
                             
                           
                           
                             
                               P 
                               i 
                             
                             - 
                             
                               P 
                               j 
                             
                           
                         
                         ) 
                       
                        
                       
                         P 
                         i 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     E 
                     . 
                     
                         
                     
                      
                     4 
                   
                   ) 
                 
               
             
           
         
       
     
         [0000]    Alternatively, the count values can be corrected so that all count values satisfy a Gaussian function. 
         [0075]    After step  40 , the method checks whether all histogram gap values have been filled. If not, steps  30  and  40  are repeated until all erroneous count values have been corrected as described. Once this is the case, a signal power value Pk is determined in step  50 . In various embodiments Pk is the weighted mean of the measured distinct signal power values, each weighted by their respective corrected count values. Formally, if N is the number of distinct measured signal power values P1, . . . , PN, and if the corrected count values are given by m1, . . . , mN, then for each access point k, the determined received signal power is computed as: 
         [0000]    
       
         
           
             
               
                 
                   Pk 
                   = 
                   
                     
                       1 
                       
                         
                           ∑ 
                           
                             n 
                             = 
                             1 
                           
                           N 
                         
                          
                         
                             
                         
                          
                         
                           m 
                           n 
                         
                       
                     
                      
                     
                       ( 
                       
                         
                           ∑ 
                           
                             n 
                             = 
                             1 
                           
                           N 
                         
                          
                         
                             
                         
                          
                         
                           
                             P 
                             n 
                           
                            
                           
                             m 
                             n 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   
                     E 
                     . 
                     
                         
                     
                      
                     5 
                   
                   ) 
                 
               
             
           
         
       
     
         [0076]    Steps  20  to  50  can be performed by the measuring device  100  or by the computing device or server  102 , after the originally and uncorrected signal power values have been provided at the computing device  102 . 
         [0077]    The resulting values Pk, k, 1≦k≦K, represent the vector which is used in step  60  to determine the location of the device  100 , by means of the radio map  300 . Again, this step can be performed on the mobile computing device  100  itself, or on the computing device or server  102 . In the latter case, the mobile computing device  100  and the device  102  physically correspond to the same entity. The vector of values Pk is also referred to as a localization sample of the available signal powers. The location determination using the radio map is, in various instances, performed as known in the art, for example from patent document US 2005/0243936 A1. In various embodiments, the location of the device  100  is determined as the predetermined location for which the mapping  300  indicates the highest probability based on the vector of determined signal values. 
         [0078]    Specifically, each component Pk corresponding to access point k, maps to a probability value of the device  100  being in each one of the predetermined locations. Indeed each predetermined location is specified by k signal power value probabilities. For each one of the predetermined locations, the k probability values indicated by the mapping  300  are multiplied to yield the probability of the device being in the predetermined location. This allows selecting the most probable among the predetermined locations, given the localization sample. 
         [0079]    Alternatively, the location of the device  100  is determined by selecting three or more predetermined locations for which the mapping  300  indicates the three or more highest probabilities based on the vector of determined signal power values. The position is then computed by taking the average location of the predetermined locations. 
         [0080]    The determined position is, in various instances, stored for future use. In particular, a history of determined locations can be stored for each uniquely identifiable device whose position is being determined. If a determined position is unlikely with respect to previously determined locations for the same device, the determined position can, in various instances, be rejected as being erroneous. The likelihood of a determined position with respect to previously determined positions can for example be expressed by an inverse of the distance between subsequently determined positions. Device or user movement models, which are as such known in the art, can further be implemented to refine the determined location. Further, the determined location of the device can be further refined by using data made available on the device  100  by other sensing means, such as gyroscopes, GPS receivers and others. 
         [0081]    The determined location can be provided in absolute geographical coordinates, which facilitates a possible handover to a GPS positioning service once a line of sight to GPS satellites becomes available at the measuring device. Alternatively, the determined location can be provided in relative coordinates with respect to known reference locations, for example the predetermined locations  400  or the locations of the access points from which the electromagnetic signals are emitted. 
         [0082]    A ground truth radio map can be available for using the localization method in accordance with the invention. Alternatively, if the radio map is computed using a mobile device, during the computation of the radio map  300 , the same phenomenon due to power saving of the measuring device, can distort the values used to compute the probabilities, which are required for location determination. It is therefore useful to apply the same correction method according to the invention during step  10 , in which the radio map  300  is provided. In various embodiments illustrated by the workflow of  FIG. 4 , step  10  comprises steps that correct the measurements used for building the radio map  300 . In step  11 , for the signal emitted by each access point k, an ordered series of increasing distinct signal power values is provided. The signal power values are measured by a device in one of the predetermined locations  400  during a predetermined time period. The time period can for example be a period of 60 seconds or less. Depending on the type of device, and its capability to subsequent signal power values, about one measurement per second can be provided per second for each one of the K signals emitted by the K access points. 
         [0083]    The occurrence of each distinct measured signal power value is counted and associated to the corresponding signal power value. This results in a histogram similar to the histogram of  FIG. 3 . In step  12 , a count value or sequence of count values, which are preceded and followed by a non-zero count value, is detected. The detected values are corrected using one of the methods described above in step  13 . Steps  12  and  13  are repeated until all histogram gaps have been filled. 
         [0084]    Alternatively or additionally, simultaneous measurement from several devices of the same type can be used to measure the signal power strength in the same predetermined locations. The step of correcting the count values  40  in that case further comprises:
       initializing corrected count values for each distinct signal power value to zero;   collecting the measured signal power values from all measuring device at a computing device;   at the computing device, detecting distinct signal power values for which each one of the devices has provided a non-zero count value, and using the average of the count values as the corrected count value for the detected signal power values;   detecting distinct signal power values for which at least one device provided a count value being equal to zero, preceded and followed by non-zero count values, and updating the corrected count value to the average of the non-zero count values that are provided for the same signal power value by other devices.       
 
         [0089]    During step  14 , the resulting corrected count values are normalized so that their sum adds up to one. The normalized histogram value of a histogram bin represents the probability of occurrence of the corresponding signal power value. The resulting distributions for each access point are stored in the radio map  300  in step  15 . The above steps are repeated for each one of the predetermined locations  400  until the radio map is complete. 
         [0090]    It should be noted that the occurrence of “gaps” in the described histograms depends on the type of device that is used to measure the signal strength, that is, on the type of sensing chip and antenna that is used, as well as on the version of the OS that is run on the measuring device. Therefore, in various embodiments of the invention, a plurality of radio maps  300  is generated using different types of devices. If a device intends to determine its position, it identifies its device type first, which determines the radio map that has been generated using the same device type. The corresponding radio map will be used to determine the location in step  60 . Matching the device that computes the corrected localization sample vector with the measuring device that was used to build the radio map increases the accuracy of the positioning algorithm. 
         [0091]    According to various embodiments, the device  100  measures the signal power values using signal measuring means. The measurements are provided as RSSI values and stored in a memory element of the device. The device  100  comprises computing means such as a Central Processing Unit, CPU, which implements steps  30  to  50  as described above. The radio map  300  is also stored in a memory element of the device  100 , so that the device can determine its location by itself. The determined location can then be used by other applications executing on the device, such as location-based services. 
         [0092]    According to other various embodiments, the device  100  measures the signal power values using signal measuring means. The measurements are provided as RSSI values and stored in a memory element of the device. The device  100  comprises computing means such as a Central Processing Unit, CPU, which implements steps  30  to  50  as described above. The determined signal power values Pk are stored in a memory element of the device  100 . The device comprises transmitting means, which allow it to transmit data to a remote computing device  102  by means of a communication channel in a communication network. The device transmits the determined signal power values Pk to the remote computing device, on which the radio map  300  is stored. The remote computing device comprises receiving means for receiving the transmitted values, a memory element and computing means which implement step  60  of the described method. Once the location of the requesting device  100  has been determined, it is transmitted from the remote computing device to the device  100  by means of communication channel. 
         [0093]    According to yet other various embodiments, the device  100  measures the signal power values using signal measuring means. The measurements are provided as RSSI values and stored in a memory element of the device. The device comprises transmitting means, which allow it to transmit data to a remote computing device  102  by means of a communication channel in a communication network. The device transmits the measured, uncorrected signal power values to the remote computing device, which has access to the radio map  300 , which can be stored on the same computing device, or on another computing device in the communication network. The remote computing device comprises receiving means for receiving the transmitted values, a memory element and computing means which implement steps  30  to  60  of the method according to the invention. Once the location of the requesting device  100  has been determined, it is transmitted from the remote computing device to the device  100  by means of communication channel. 
         [0094]    While building the radio map  300 , the device  100  measures the signal power values using signal measuring means. The measurements are provided as RSSI values and stored in a memory element of the device. The device comprises transmitting means, which allow it to transmit data to a remote computing device  102  by means of a communication channel in a communication network. The device transmits the measured, uncorrected signal power values to the remote computing device, which implements steps  11  to  15  to build the radio map. Alternatively, the device  100  implements method steps  11  to  15  and transmits the corrected values to the remote computing device. Once the remote computing device has gathered all the required information for completing the radio map,  300 , the latter is stored either on the remote device, on another remote computing device, or distributed to the mobile terminal devices. 
         [0095]    The skilled person will be able to provide a computer program implementing some or all of the method steps according to the invention based on the provided description and the accompanying drawings. Such a computer program, when run on a computer or mobile computing device, will lead the computer or mobile computing device to execute the described method steps. 
         [0096]    It should be understood that the detailed description of specific exemplary embodiments is given by way of illustration only, since various changes and modifications within the scope of the invention will be apparent to the skilled man. The scope of protection is defined by the following set of claims.