BR112016024340B1 - METHOD IMPLEMENTED BY COMPUTER AND PROCESSING DEVICE FOR DETERMINING LOCATION ERROR RADIUS - Google Patents
METHOD IMPLEMENTED BY COMPUTER AND PROCESSING DEVICE FOR DETERMINING LOCATION ERROR RADIUS Download PDFInfo
- Publication number
- BR112016024340B1 BR112016024340B1 BR112016024340-4A BR112016024340A BR112016024340B1 BR 112016024340 B1 BR112016024340 B1 BR 112016024340B1 BR 112016024340 A BR112016024340 A BR 112016024340A BR 112016024340 B1 BR112016024340 B1 BR 112016024340B1
- Authority
- BR
- Brazil
- Prior art keywords
- geographic area
- error radius
- error
- location
- data structure
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-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/0205—Details
- G01S5/0236—Assistance data, e.g. base station almanac
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-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/0252—Radio frequency fingerprinting
Abstract
DETERMINAÇÃO DE RAIO DE ERRO DE LOCALIZAÇÃO A invenção refere-se a um sistema e método que determinam um raio de erro que reflete a precisão de uma posição calculada de um dispositivo de processamento. Uma estrutura de dados inclui um raio de erro mapeado para uma área geográfica dimensionada ou "azulejo" compreendendo uma área na qual uma posição calculada pode ser determinada. A estrutura de dados pode incluir uma pluralidade de primeiros campos identificando uma área geográfica dimensionada base em um sistema de referência de projeção global, e uma pluralidade de segundos campos identificando, para cada um dos primeiros campos, um raio de erro de posição associado com uma área geográfica dimensionada e nível. Para qualquer cálculo de uma posição deduzida com base nas observações de balizador, uma consulta rápida da área dimensionada correspondente incluindo a nova posição deduzida na estrutura de dados retorna um raio de erro para a nova posição deduzida.LOCATION ERROR RADIUS DETERMINATION The invention relates to a system and method that determines an error radius that reflects the accuracy of a calculated position of a processing device. A data structure includes an error radius mapped to a scaled geographic area or "tile" comprising an area in which a calculated position can be determined. The data structure may include a plurality of first fields identifying a geographic area scaled based on a global projection reference system, and a plurality of second fields identifying, for each of the first fields, a position error radius associated with a scaled geographic area and level. For any calculation of a deduced position based on beacon observations, a quick query of the corresponding scaled area including the new deduced position in the data structure returns an error radius for the new deduced position.
Description
[001] A estimativa de localização é utilizada por dispositivos de processamento móveis para estabelecer a localização do dispositivo e é um atributo utilizado por vários aplicativos no dispositivo. Geralmente, as técnicas de estimativa de localização podem utilizar diversas fontes de dados diferentes para calcular uma posição. Os sistemas de posicionamento Wi-Fi podem proporcionar informação de localização quando tais dispositivos estão em ambientes fechados utilizando a disponibilidade de pontos de acesso sem uso de fios. A precisão de tais abordagens depende do número de posições que são conhecidas para o algoritmo de posicionamento. As flutuações possíveis de sinal que podem ocorrer, entretanto, podem aumentar os erros e impreci-sões no caminho do usuário. Tipicamente, um raio de erro é determinado para uma posição calculada, o qual reflete a precisão da determinação. Em algumas aplicações, tais como aplicações de mapeamento, um raio de erro é exibido ao redor de uma posição calculada.[001] Location estimation is used by mobile processing devices to establish the location of the device and is an attribute used by various applications on the device. Generally, location estimation techniques can utilize several different data sources to calculate a position. Wi-Fi positioning systems can provide location information when such devices are indoors using the availability of wireless access points. The accuracy of such approaches depends on the number of positions that are known to the positioning algorithm. The possible signal fluctuations that may occur, however, can increase errors and inaccuracies in the user's path. Typically, an error radius is determined for a calculated position, which reflects the accuracy of the determination. In some applications, such as mapping applications, an error radius is displayed around a calculated position.
[002] É proporcionada tecnologia para determinar um raio de erro refletindo a precisão de uma posição deduzida (ou calculada) de um dispositivo de processamento. Uma estrutura de dados inclui um raio de erro mapeado para uma área geográfica ou "azulejo"("tile")dimensionado compreendendo uma área na qual uma posição deduzida pode ser determinada. Para qualquer cálculo de uma posição deduzida baseada em observações de balizadores, uma consulta rápida da área dimensionada correspondente incluindo a nova posição deduzida na estrutura de dados retorna um raio de erro para a nova posição dedu- zida.[002] Technology is provided for determining an error radius reflecting the accuracy of a position deduced (or calculated) from a processing device. A data structure includes an error radius mapped to a geographic area or sized "tile" comprising an area in which a deduced position can be determined. For any calculation of a deduced position based on beacon observations, a quick query of the corresponding scaled area including the new deduced position in the data structure returns an error radius for the new deduced position.
[003] A estrutura de dados pode incluir uma pluralidade de pri meiros campos identificando uma área geográfica dimensionada em um sistema de referência de projeção global, e uma pluralidade de segundos campos identificando, para cada um dos primeiros campos, um raio de erro de posição associado com uma área e nível de área geográfica dimensionada. Cada raio de erro de posição é calculado para ser um raio de erro máximo para pelo menos uma porcentagem limite de posições deduzidas na área geográfica dimensionada associada.[003] The data structure may include a plurality of first fields identifying a geographic area scaled in a global projection reference system, and a plurality of second fields identifying, for each of the first fields, a position error radius associated with an area and scaled geographic area level. Each position error radius is calculated to be a maximum error radius for at least a threshold percentage of inferred positions in the associated scaled geographic area.
[004] Este Sumário é proporcionado para introduzir uma seleção de conceitos de uma forma simplificada, os quais são adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou essenciais do assunto reivindicado, nem é pretendido para ser utilizado como um auxílio ao determinar o escopo do assunto reivindicado.[004] This Summary is provided to introduce a selection of concepts in a simplified form, which are further described below in the Detailed Description. This Summary is not intended to identify key or essential aspects of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
[005] Figura 1 é um diagrama de blocos representando dispositi vos de computação móveis em relação aos balizadores sem uso de fios utilizados para cálculos de posição.[005] Figure 1 is a block diagram representing mobile computing devices in relation to wireless beacons used for position calculations.
[006] Figura 2 é uma vista em perspectiva explodida de uma lo calização interna com uma pluralidade de balizadores sem uso de fios.[006] Figure 2 is an exploded perspective view of an internal location with a plurality of wireless bollards.
[007] Figura 3 é um fluxograma representando um método de acordo com a presente tecnologia para determinar uma posição e raio de erro.[007] Figure 3 is a flowchart representing a method in accordance with the present technology for determining a position and radius of error.
[008] Figura 4 é um diagrama de blocos de uma representação funcional de um primeiro dispositivo de processamento e de um dispositivo de computação.[008] Figure 4 is a block diagram of a functional representation of a first processing device and a computing device.
[009] Figura 5 é um diagrama de blocos de uma representação funcional de um segundo dispositivo de processamento e de um dis- positivo de computação.[009] Figure 5 is a block diagram of a functional representation of a second processing device and a computing device.
[0010] Figura 6 é um fluxograma representando um método para preencher uma estrutura de dados para uso ao determinar um raio de erro de acordo com a presente tecnologia.[0010] Figure 6 is a flowchart depicting a method for populating a data structure for use in determining an error radius in accordance with the present technology.
[0011] Figura 7 é um fluxograma ilustrando uma etapa na Figura 3 para determinar um raio de erro.[0011] Figure 7 is a flowchart illustrating a step in Figure 3 for determining an error radius.
[0012] Figura 8A é uma representação de um sistema de referen cia de projeção global com áreas geográficas dimensionadas de vários níveis.[0012] Figure 8A is a representation of a global projection reference system with multi-level scaled geographic areas.
[0013] Figura 8B é uma representação de uma estrutura de dados.[0013] Figure 8B is a representation of a data structure.
[0014] Figura 9A é um gráfico de uma correlação entre posições deduzidas calculadas baseadas em dois conjuntos de dados.[0014] Figure 9A is a graph of a correlation between deduced positions calculated based on two sets of data.
[0015] Figura 9B é uma representação das correlações para um conjunto de áreas geográficas dimensionadas em um azulejo.[0015] Figure 9B is a representation of the correlations for a set of geographic areas scaled in a tile.
[0016] Figura 9C é uma representação de uma função de distribui ção acumulativa (CDF) em relação a um raio de erro calculado.[0016] Figure 9C is a representation of a cumulative distribution function (CDF) in relation to a calculated error radius.
[0017] Figura 10 é um diagrama de blocos de um sistema de pro cessamento.[0017] Figure 10 is a block diagram of a processing system.
[0018] Figura 11 é um diagrama de blocos de um segundo sistema de processamento.[0018] Figure 11 is a block diagram of a second processing system.
[0019] É proporcionada a tecnologia para determinar um raio de erro refletindo a precisão de uma posição deduzida (ou calculada) de um dispositivo de processamento. É proporcionada uma estrutura de dados que inclui um raio de erro mapeado para uma área ou "azulejo" geográfico dimensionado compreendendo uma área na qual uma posição deduzida pode ser determinada. Cada raio de erro na estrutura de dados foi calculado para ser preciso através de uma porcentagem limite de posições deduzidas correlacionadas. Cada associação de raio de erro - área geográfica dimensionada resulta a partir de uma correlação entre erros nas posições deduzidas determinadas para dois conjuntos de dados (um conjunto de dados de treinamento e um conjunto de dados de teste) baseado em observações de balizador de uma dada localização, e em relação aos dados reais em terra para a localização. Um erro de porcentagem limite para a correlação é estabelecido e as áreas dimensionadas atendendo ao limite são incluídas na estrutura de dados. Para qualquer cálculo subsequente de uma posição deduzida baseada em novas observações ser feito, uma consulta rápida da área dimensionada correspondente na estrutura de dados retorna um raio de erro para a posição deduzida. O raio de erro pode ser utilizado para proporcionar realimentação para um usuário de um aplicativo ci-ente da localização em um dispositivo de processamento. A tecnologia pode ser executada totalmente em um dispositivo de processamento móvel, em um sistema de computação acoplado com um dispositivo móvel via uma rede, ou dividida entre o dispositivo móvel e um sistema de computação conectado por rede.[0019] Technology is provided for determining an error radius reflecting the accuracy of a position deduced (or calculated) from a processing device. A data structure is provided that includes an error radius mapped to a sized geographic area or "tile" comprising an area in which a deduced position can be determined. Each error radius in the data structure was calculated to be accurate through a threshold percentage of correlated inferred positions. Each error radius - scaled geographic area association results from a correlation between errors in the deduced positions determined for two data sets (a training data set and a test data set) based on beacon observations of a given location, and relative to actual ground data for location. A threshold percentage error for the correlation is established and areas sized meeting the threshold are included in the data structure. For any subsequent calculation of a deduced position based on new observations to be made, a quick query of the corresponding scaled area in the data structure returns an error radius for the deduced position. The error radius can be used to provide feedback to a user of a location-aware application on a processing device. The technology can run entirely on a mobile processing device, on a computing system coupled with a mobile device via a network, or split between the mobile device and a network-connected computing system.
[0020] No contexto desta revelação, uma posição deduzida pode incluir uma latitude, longitude e outra informação de localização lógica tal como um identificador de local, um identificador de depósito e um identificador de andar dentro do local. A Figura 1 ilustra um digrama de blocos de vários dispositivos de computação móveis 102 e 104 que utilizam um ou mais balizadores 110a até 110d ou outros locais da célula 120a e 120b para calcular uma posição para o dispositivo móvel. Os dispositivos de computação móveis 102, e 104 observam ou de outro modo detectam um ou mais dos balizadores 110 e 120 e utilizam os sinais a partir destes balizadores para calcular uma posição. Bali- zadores ilustrativos incluem torres de celular, estações base, estações transceptoras base, locais de estação base, e/ou quaisquer outros elementos de rede suportando qualquer quantidade e tipo de modo de repouso. Tipicamente, os balizadores 110a até 110d representam bali- zadores de fidelidade sem uso de fios (Wi-Fi) que possuem propriedades e sinais de propagação conhecidos que proporcionam informação para permitir aos dispositivos móveis calcular posições em áreas onde outros tipos de sinais podem não estar presentes, tal como o interior de prédios e assim por diante. Cada um dos dispositivos de computação móvel 102 e 104 pode armazenar propriedades para cada baliza- dor observado 110 e 120. Em algumas concretizações, propriedades ilustrativas incluem uma latitude e longitude do dispositivo de computação móvel de observação e um tempo da observação. Nas localizações internas tal como um local, as observações podem incluir informação mais granular, tal como uma localização do andar.[0020] In the context of this disclosure, a deduced position may include a latitude, longitude, and other logical location information such as a location identifier, a warehouse identifier, and a floor identifier within the location. Figure 1 illustrates a block diagram of various mobile computing devices 102 and 104 that use one or more beacons 110a through 110d or other cell locations 120a and 120b to calculate a position for the mobile device. The mobile computing devices 102, and 104 observe or otherwise detect one or more of the beacons 110 and 120 and use signals from these beacons to calculate a position. Illustrative beacons include cell towers, base stations, base transceiver stations, base station locations, and/or any other network elements supporting any number and type of sleep mode. Typically, beacons 110a through 110d represent wireless fidelity (Wi-Fi) beacons that have known propagation properties and signals that provide information to allow mobile devices to calculate positions in areas where other types of signals may not be available. present, such as the interior of buildings and so on. Each of the mobile computing devices 102 and 104 may store properties for each observed beacon 110 and 120. In some embodiments, illustrative properties include a latitude and longitude of the observing mobile computing device and a time of the observation. In internal locations such as a venue, observations may include more granular information such as a floor location.
[0021] Cada dispositivo de computação móvel pode ele mesmo executar um cálculo de posição, ou pode ser conectar com um provedor de serviço de localização 125 via uma rede 50. Cada dispositivo móvel pode aplicar um filtro de Kalman (ou outro método) para uma impressão digital do balizador (por exemplo, conjunto de balizadores observados pelo dispositivo de computação) para produzir uma posição do dispositivo deduzida. O raio de erro do dispositivo é recuperado a partir da estrutura de dados discutida neste documento. O raio de erro pode ser refletido como um círculo possuindo o raio de erro do dispositivo estimado em seu raio. Como resultado, se um balizador particular for detectado com um dado nível de confiança, uma posição do dispositivo deduzida pode ser produzida, a qual está dentro de um círculo centrado na posição do balizador estimada com o raio do bali- zador estimado como ilustrado em 418 da Figura 4.[0021] Each mobile computing device may itself perform a position calculation, or may connect with a location service provider 125 via a network 50. Each mobile device may apply a Kalman filter (or other method) to a fingerprint of the beacon (e.g., set of beacons observed by the computing device) to produce a deduced device position. The device error radius is retrieved from the data structure discussed in this document. The error radius can be reflected as a circle having the estimated device error radius in its radius. As a result, if a particular beacon is detected with a given level of confidence, a deduced device position can be produced which is within a circle centered on the estimated beacon position with the estimated beacon radius as illustrated at 418. of Figure 4.
[0022] O provedor de serviço de localização 125 que pode execu tar um cálculo de localização baseado nas observações do dispositivo de computação móvel (102, 104), nos levantamentos de localização pérvia e em outros dados que são agrupados e armazenados no provedor de serviço de localização 125. Em algumas concretizações, o provedor de serviço de localização 125 pode coletar dados a partir de vários diferentes dispositivos de computação móvel bem como de observações programadas de balizadores em relação às posições reais conhecidas, referidas neste documento como dados reais em terra. Os dispositivos de computação móvel 102 e 104 podem enviar as propriedades de posições observadas e dos balizadores observados nas váriaslocalizações para o serviço de localização via a rede 50. O provedor de serviço de localização 125 pode operar um ou mais dispositivos de computação como ilustrados neste documento para proporcionar serviços de determinação de localização para os dispositivos de processamentomóvel via a rede 50.[0022] Location service provider 125 that can perform a location calculation based on observations from the mobile computing device (102, 104), pervious location surveys, and other data that is collated and stored at the service provider location service provider 125. In some embodiments, location service provider 125 may collect data from several different mobile computing devices as well as from programmed observations of beacons relative to known actual positions, referred to herein as ground truth data. Mobile computing devices 102 and 104 may send properties of observed positions and observed beacons at various locations to the location service via network 50. Location service provider 125 may operate one or more computing devices as illustrated herein. to provide location determination services to mobile processing devices via network 50.
[0023] Uma posição calculada ou deduzida pode incluir tanto posi ção como possuir um raio de erro associado. O raio de erro é uma reflexão da incerteza ou do erro que pode estar presente no cálculo da posição. Uma ilustração de um raio de erro como exibido por um aplicativo de mapeamento utilizando uma posição calculada é exposta na Figura 4. Geralmente, o raio de erro representa uma área envolvendo a posição calculada que indica para o usuário da posição calculada a precisão relativa do cálculo.[0023] A calculated or deduced position may include both position and have an associated error radius. The error radius is a reflection of the uncertainty or error that may be present in the position calculation. An illustration of an error radius as displayed by a mapping application using a calculated position is shown in Figure 4. Generally, the error radius represents an area surrounding the calculated position that indicates to the user of the calculated position the relative accuracy of the calculation. .
[0024] As observações podem ser utilizadas em conjunto com ser viços dos Sistemas de Posicionamento Global (GPS) para determinar uma posição. Em alguns casos, os dados GPS não estão disponíveis. O GPS é um sistema de navegação por satélite que utiliza mais do que duas dúzias de satélites GPS que orbitam a Terra e transmitem sinais de rádio que são recebidos pelos receptores GPS e permitem aos receptores GPS determinarem sua própria localização, velocidade, e direção. Assim, os satélites GPS transmitem sinais para receptores GPS no solo, e os receptores GPS passivamente recebem estes sinais de satélite e processam os mesmos (mas, geralmente, não transmitem quaisquer sinais por parte dos mesmos). Entretanto, quando um dis- positivo de computação móvel está presente em um interior de um local edificado, o acesso aos dados GPS geralmente é difícil de receber. Por consequência, o uso de WiFi ou de outra informação pode produzir dados de posição deduzida mais precisos.[0024] Observations can be used in conjunction with Global Positioning Systems (GPS) services to determine a position. In some cases, GPS data is not available. GPS is a satellite navigation system that uses more than two dozen GPS satellites that orbit the Earth and transmit radio signals that are received by GPS receivers and allow GPS receivers to determine their own location, speed, and direction. Thus, GPS satellites transmit signals to GPS receivers on the ground, and GPS receivers passively receive these satellite signals and process them (but generally do not transmit any signals from them). However, when a mobile computing device is present inside a building, access to GPS data is often difficult to receive. Consequently, the use of WiFi or other information can produce more accurate deduced position data.
[0025] A Figura 2 ilustra uma vista em perspectiva explodida de um local 200 possuindo vários balizadores Wi-Fi posicionados ao redor do interior da estrutura. O local 200 pode ser, por exemplo, um centro comercial, escola, prédio comercial, aeroporto ou outra construção onde o acesso aos dados GPS não está prontamente disponível. A Figura 2 ilustra um primeiro andar 210 e um segundo andar 212 do local 200. Uma pluralidade de paredes 220 separam os vários ambientes 225 dentro do local 200. Os balizadores 110 estão posicionados ao longo de ambos os andares da estrutura 200. Um dispositivo de processamento pode utilizar as propriedades dos balizadores dentro do local 200 para calcular a posição do dispositivo de processamento. Geralmente, as posições calculadas são retornadas para os aplicativos que utilizam a posição calculada para proporcionar informação para o usuário. Apesar de existirem vários tipos diferentes de aplicativos de localização, um aplicativo de mapeamento é um uso típico de uma posição calculada.[0025] Figure 2 illustrates an exploded perspective view of a location 200 having several Wi-Fi beacons positioned around the interior of the structure. Location 200 may be, for example, a shopping center, school, office building, airport, or other building where access to GPS data is not readily available. Figure 2 illustrates a first floor 210 and a second floor 212 of location 200. A plurality of walls 220 separate the various rooms 225 within location 200. Bollards 110 are positioned along both floors of structure 200. A Processing may utilize the properties of beacons within location 200 to calculate the position of the processing device. Generally, calculated positions are returned to applications that use the calculated position to provide information to the user. Although there are several different types of location apps, a mapping app is a typical use of a calculated position.
[0026] O posicionamento local é feito utilizando muitas proprieda des diferentes. Alguns utilizam propriedades físicas do sinal, enquanto outros utilizam o tempo levado para o sinal alcançar o nó destino. Algunsmétodos comuns de posicionamento incluem métodos de posicionamento sem uso de fios baseados no Ângulo de Chegada, na Identidade da Célula, no Tempo de Chegada, na Diferença de Tempo de chegada e potência. Uma abordagem comum emprega levantamento de informação da potência do sinal em uma área particular. Estainformação forma uma base de dados descrevendo uma impressão digital da potência do sinal desta área. A base de dados é posterior- mente utilizada para determinar a localização de um dispositivo móvel por um algoritmo particular de correspondência de padrão. Outra abordagem de posicionamento sem uso de fios baseada em potência utiliza um modelo de perda de caminho para estimar a relação entre a potência do sinal e a distância a partir dos transmissores. As distâncias estimadas a partir de três ou mais transmissores são utilizadas para "trilaterar" ("verificar por três lados") a posição final do dispositivo. Qualquer um dos métodos mencionados acima pode ser utilizado de acordo com a tecnologia da presente invenção.[0026] Local positioning is done using many different properties. Some use physical properties of the signal, while others use the time taken for the signal to reach the destination node. Some common positioning methods include wireless positioning methods based on Angle of Arrival, Cell Identity, Time of Arrival, Time of Arrival Difference, and power. A common approach employs information gathering of signal strength in a particular area. This information forms a database describing a fingerprint of the signal strength of this area. The database is subsequently used to determine the location of a mobile device by a particular pattern matching algorithm. Another power-based wireless positioning approach uses a path loss model to estimate the relationship between signal power and distance from transmitters. Estimated distances from three or more transmitters are used to "trilaterate" ("check from three sides") the final position of the device. Any of the methods mentioned above can be used in accordance with the technology of the present invention.
[0027] A Figura 3 é um fluxograma ilustrando um método de acor do com a tecnologia da presente invenção para determinar um raio de erro associado com uma posição calculada ou deduzida de um dispositivo de processamento móvel. O método pode ser executado no todo ou em parte em um dispositivo de processamento móvel sozinho, ou em comunicação e cooperação com um serviço de localização 125. Na etapa 310, a informação de levantamento de posição é adquirida para uma ou mais instalações físicas. A informação de levantamento de posição pode compreender impressões digitais de balizador de localizações de balizadores que são detectados nas instalações. Os balizado- res detectados por um dispositivo de computação móvel 102 e 104, em um dado ponto no tempo representam observações de posição e incluem uma impressão digital do balizador. A impressão digital do ba- lizador também pode incluir outros atributos da detecção tal como potência do sinal, data e hora da observação, etc. As instalações não precisam ser instalações internas, e podem ser localizações onde vários balizadores estão presentes. Um mecanismo para reunir informações do local é revelado no Pedido de Patente US n° US20140057651A1.[0027] Figure 3 is a flowchart illustrating a method in accordance with the technology of the present invention for determining an error radius associated with a calculated or deduced position of a mobile processing device. The method may be performed in whole or in part on a mobile processing device alone, or in communication and cooperation with a location service 125. In step 310, position survey information is acquired for one or more physical facilities. The position survey information may comprise beacon fingerprints of beacon locations that are detected on the premises. The beacons detected by a mobile computing device 102 and 104 at a given point in time represent position observations and include a fingerprint of the beacon. The beacon fingerprint may also include other detection attributes such as signal strength, date and time of observation, etc. The facilities do not need to be indoor facilities, and may be locations where multiple beacons are present. A mechanism for gathering location information is disclosed in US Patent Application No. US20140057651A1.
[0028] Geralmente, a informação de levantamento de posição po de ser reunida por fisicamente fazer o levantamento de um local utili- zando um dispositivo de processamento móvel, determinar uma impressão digital de balizador para a localização e estabelecer um conjunto de dados reais em terra de localizações reais associados com impressões digitais de balizadores para o local. Para estabelecer dados reais em terra para um local particular, os dados observados para o local são associados com posições conhecidas para os dados observados. Os dados observados podem ser associados por meio de um levantamento utilizando informação de posição conhecida (em termos de latitude, longitude, e de posições do andar conhecidas) que é mapeada para uma impressão digital de balizador em um dado momento. As impressões digitais dos balizadores conhecidos em cada um de um conjunto de localizações do mapa são criadas.[0028] Generally, position survey information can be gathered by physically surveying a location using a mobile processing device, determining a beacon fingerprint for the location, and establishing a ground-truth data set. of real locations associated with fingerprints of beacons for the location. To establish ground truth data for a particular location, the observed data for the location is associated with known positions for the observed data. Observed data can be associated through a survey using known position information (in terms of latitude, longitude, and known floor positions) that is mapped to a beacon fingerprint at a given time. Fingerprints of known beacons at each of a set of map locations are created.
[0029] Os dados reais em terra e observações são utilizados, co mo discutido abaixo, para calcular posições deduzidas para determinar uma distância de erro entre a posição deduzida e a posição conhecida para vários conjuntos de dados. Uma correlação entre os erros deduzidos em vários níveis de áreas geográficas dimensionadas é utilizada para avaliar a precisão do raio de erro nas posições deduzidas e designar para o raio de erro para cada uma de um conjunto particular de áreas geográficas dimensionadas um sistema de referência de projeção global.[0029] Actual ground data and observations are used, as discussed below, to calculate deduced positions to determine an error distance between the deduced position and the known position for various data sets. A correlation between the deduced errors at various levels of scaled geographic areas is used to evaluate the accuracy of the error radius at the deduced positions and assign the error radius to each of a particular set of scaled geographic areas in a projection reference system. global.
[0030] Na etapa 320, para qualquer uma das localizações levanta das,estatísticas de erro são utilizadas para determinar um raio de erro obtendo uma correlação maior do que a correlação limite entre as posições calculadas ou deduzidas dentro de uma área geográfica dimensionada. Estas áreas geográficas dimensionadas dentro das quais as estatísticas de erro indicam que um raio de erro é provável de ser preciso acima de um limite de correlação selecionado são associadas com um raio de erro em uma estrutura de dados em 330. Deve ser entendido que as etapas 320 e 330 podem ser executadas em um dispo- sitivo de processamento móvel, ou pelo provedor de serviço de localização em um ou mais dispositivos de processamento. Um método para determinar as áreas dentro de uma área geográfica dimensionada predefinida é discutido com respeito à Figura 6.[0030] In step 320, for any of the surveyed locations, error statistics are used to determine an error radius obtaining a correlation greater than the limit correlation between the calculated or deduced positions within a sized geographic area. These scaled geographic areas within which error statistics indicate that an error radius is likely to be accurate above a selected correlation threshold are associated with an error radius in a 330 data structure. It should be understood that the steps 320 and 330 may be performed on a mobile processing device, or by the location service provider on one or more processing devices. A method for determining areas within a predefined sized geographic area is discussed with respect to Figure 6.
[0031] Uma vez que a estrutura de dados seja criada em 330, a estrutura de dados pode ser armazenada em um dispositivo de computação móvel 102 e 104, e/ou mantida em um serviço de localização 124. Isto permite que cada dispositivo de computação móvel buscando deduzir uma posição e o raio de erro associado recupere um raio de erro preciso rapidamente com referência à estrutura de dados em tempo real no dispositivo.[0031] Once the data structure is created at 330, the data structure can be stored on a mobile computing device 102 and 104, and/or maintained in a location service 124. This allows each computing device mobile device seeking to deduce a position and the associated error radius recover an accurate error radius quickly with reference to the real-time data structure on the device.
[0032] Em qualquer ponto após a criação da estrutura de dados em 330, na etapa 340, a solicitação de determinação de localização é recebida. A solicitação pode ser recebida pelo serviço de localização ou pelo dispositivo de processamento móvel. Na 345, observações de posição (impressões digitais) de uma localização de um dispositivo se originando da solicitação em 340 são recuperadas. E, 350, uma posição deduzida é calculada a partir das observações de posição feitas por um dispositivo solicitante. De acordo com o algoritmo particular utilizado para cálculo de determinação de posição, na etapa 350, uma posição deduzida é calculada para o dispositivo solicitante.[0032] At any point after creation of the data structure at 330, in step 340, the location determination request is received. The request may be received by the location service or mobile processing device. At 345, position observations (fingerprints) of a location of a device originating from the request at 340 are retrieved. And, 350, a deduced position is calculated from position observations made by a requesting device. According to the particular algorithm used for position determination calculation, in step 350, a deduced position is calculated for the requesting device.
[0033] Uma vez que a posição deduzida seja calculada, em 360, uma consulta da área geográfica dimensionada correspondente na estrutura de dados correspondendo à posição de localização deduzida determina o raio de erro associado com a área geográfica dimensionada. Em 370, para a localização deduzida determinada, o raio de erro associado com a localização é retornado baseado na área geográfica dimensionada.[0033] Once the deduced position is calculated, in 360, a query of the corresponding scaled geographic area in the data structure corresponding to the deduced location position determines the error radius associated with the scaled geographic area. At 370, for the given inferred location, the error radius associated with the location is returned based on the scaled geographic area.
[0034] A Figura 4 ilustra um diagrama de blocos de um dispositivo de computação móvel 400 que pode compreender um dos dispositivo de processamento móvel 102 e 104 da Figura 1, e pode incluir elementos de um dispositivo móvel tais como estes ilustrados na Figura 10. O dispositivo de computação 400 pode incluir, por exemplo, um processador 412 e uma interface com o usuário 418. Uma vista explodida de um vídeo de uma exibição de uma interface com o usuário 418 ilustra uma vista plana de um mapa 200a de um local, tal como o local 200, com uma indicação 415 de uma posição deduzida exibida no mapa junto com o raio de erro 417 envolvendo a indicação 415 da localização deduzida.[0034] Figure 4 illustrates a block diagram of a mobile computing device 400 that may comprise one of the mobile processing devices 102 and 104 of Figure 1, and may include elements of a mobile device such as those illustrated in Figure 10. Computing device 400 may include, for example, a processor 412 and a user interface 418. An exploded view of a video display of a user interface 418 illustrates a plan view of a map 200a of a location. such as location 200, with an indication 415 of a deduced position displayed on the map together with the error radius 417 surrounding the indication 415 of the deduced location.
[0035] O dispositivo 400 inclui a memória 410 que pode armazenar uma pluralidade de observações de posição 411 e 412. Apesar de somente duas observações de posição 411 e 422 serem indicadas, será entendido que várias observações de posição estarão presentes na memória 410. Cada observação de posição inclui uma impressão digital de balizadores 402 e dados associados do balizador 404. As observações de posição podem ser utilizadas por um aplicativo de cálculo de posição 420. O aplicativo de cálculo de posição 420 pode ser utilizado para calcular uma posição deduzida a partir das observações de posição 411 e 422. O aplicativo de cálculo de posição 420 pode utilizar a estrutura raio de erro - área dimensionada 425 para designar um raio de erro para uma localização deduzida calculada pelo aplicativo de cálculo de posição. Os aplicativos cientes da localização 430 utilizam a posição deduzida calculada pela posição do aplicativo de cálculo para qualquer um dentre vários propósitos. Em uma concretização (ilustrada na Figura 4), o aplicativo ciente da localização pode ser um aplicativo de mapa e exibir a posição deduzida junto com o raio de erro em uma interface com o usuário. Será entendido que vários outros tipos de aplicativos fazem uso de localizações deduzidas, e a tecnologia discutida neste documento não está limitada aos aplicativo cientes de localização que são aplicativos de mapeamento.[0035] Device 400 includes memory 410 that can store a plurality of position observations 411 and 412. Although only two position observations 411 and 422 are indicated, it will be understood that several position observations will be present in memory 410. Each position observation includes a fingerprint of beacons 402 and associated data from beacon 404. The position observations may be used by a position calculation application 420. The position calculation application 420 may be used to calculate a position deduced from of position observations 411 and 422. The position calculation application 420 may utilize the error radius - dimensioned area structure 425 to assign an error radius to a deduced location calculated by the position calculation application. Location-aware applications 430 utilize the inferred position calculated by the position of the calculating application for any of several purposes. In one embodiment (illustrated in Figure 4), the location-aware application may be a map application and display the deduced position along with the error radius in a user interface. It will be understood that several other types of applications make use of inferred locations, and the technology discussed in this document is not limited to location-aware applications that are mapping applications.
[0036] A Figura 5 ilustra um diagrama de blocos dos componentes funcionais de um dispositivo de computação 500 que em uma concretização pode executar as etapas ilustradas na Figura 3. O dispositivo de computação 500 inclui um processador 512 e a interface com o usuário 518. O dispositivo 500 pode adicionalmente incluir a memória 510 possuindo componentes proporcionados na mesma incluindo posições observadas 511 e observações reais em terra 522. Como citado acima, as observações reais em terra podem incluir, para um conjunto de posições em uma latitude, longitude, e andar de um cárcere de posição conhecidos, um conjunto de impressões digitais de balizadores conhecidos observados na posição conhecida. Como descrito abaixo com respeito à Figura 6, esta informação pode ser utilizada em conjunto com observações de posição para determinar um raio de erro, o qual é mapeado para uma área geográfica dimensionada. Ao executar o método da Figura 6, o conjunto de observações de posição 520 é dividido em um conjunto de dados de treinamento 550 e em um conjunto de dados de teste 560. A memória 510 pode adicionalmente incluir dados de área geográfica dimensionada 570, um aplicativo de correlação 580, um aplicativo de cálculo de raio 575, e pode opcionalmente incluir o aplicativo de cálculo de posição 576 e os aplicativos cientes de localização 578. Um exemplo de um sistema de referência de projeção global utilizando área geográfica dimensionada é o sistema Bing Maps Tile (http://msdn.microsoft.com/en-us/library/bb259689.aspx). Os azulejos utilizados no mesmo podem compreender dados de área geográfica dimensionada. Uma área geográfica dimensionada ilustrada e descrita com respeito à Figura 8A. O aplicativo de cálculo de posição 576 opera de uma maneira similar a esta apresentada na Figura 4. Os aplicativos cientes de localização 578 podem ser similares àqueles aplicativos descritos acima com respeito à Figura 4.[0036] Figure 5 illustrates a block diagram of the functional components of a computing device 500 that in one embodiment can perform the steps illustrated in Figure 3. The computing device 500 includes a processor 512 and user interface 518. Device 500 may additionally include memory 510 having components provided therein including observed positions 511 and actual ground observations 522. As noted above, actual ground observations may include, for a set of positions at a latitude, longitude, and floor. from a known position prison, a set of fingerprints of known beacons observed at the known position. As described below with respect to Figure 6, this information can be used in conjunction with position observations to determine an error radius, which is mapped to a sized geographic area. When executing the method of Figure 6, the set of position observations 520 is divided into a training data set 550 and a testing data set 560. Memory 510 may additionally include scaled geographic area data 570, an application correlation application 580, a radius calculation application 575, and may optionally include position calculation application 576 and location-aware applications 578. An example of a global projection reference system utilizing scaled geographic area is the Bing Maps system. Tile (http://msdn.microsoft.com/en-us/library/bb259689.aspx). The tiles used in it can comprise scaled geographic area data. A sized geographic area illustrated and described with respect to Figure 8A. The position calculation application 576 operates in a manner similar to that shown in Figure 4. Location-aware applications 578 may be similar to those applications described above with respect to Figure 4.
[0037] A Figura 6 ilustra um método de acordo com a tecnologia da presente invenção para executar a etapa 330 na Figura 3 para de- terminar um erro associado com as áreas geográficas dimensionadas que possuem uma correlação de erro deduzida que é maior do que um limite definido de modo a criar uma estrutura de dados de raio de erro para azulejo. Na etapa 610, os dados de levantamento para uma localização são coletados. Os dados de levantamento serão o conjunto de observações a partir do qual uma posição deduzida pode ser calculada. Os dados de levantamento são distintos dos dados reais em terra para a localização. Isto permite que o raio de erro seja correlacionado com áreas geográficas dimensionadas a serem baseadas nas posições deduzidas, não posições verdadeiras, uma vez que que a posição verdadeira é desconhecida na prática quando uma solicitação em tempo real para uma determinação de posição é feita (como na etapa 340 da Figura 3).[0037] Figure 6 illustrates a method in accordance with the technology of the present invention for performing step 330 in Figure 3 to determine an error associated with sized geographic areas that have a deduced error correlation that is greater than a threshold defined in order to create an error radius data structure for tile. In step 610, survey data for a location is collected. The survey data will be the set of observations from which a deduced position can be calculated. Survey data is distinct from actual ground data for location. This allows the error radius to be correlated with geographic areas sized to be based on inferred positions, not true positions, since the true position is unknown in practice when a real-time request for a position determination is made (such as in step 340 of Figure 3).
[0038] Na 615, os dados de levantamento são divididos em um conjunto de dados de treinamento e em um conjunto de dados de teste. O conjunto de dados de treinamento inclui observações de posição de treinamento enquanto o conjunto de dados de teste inclui observações de posição de teste. Em algumas concretizações, o conjunto de dados de treinamento é utilizado para construir um modelo de localização enquanto o conjunto de dados de teste e o modelo de localização são utilizados para gerar localizações deduzidas que são testadas em relação aos dados de treinamento. Os cálculos de posição deduzida podem ser derivados a partir de cada um dentre os conjuntos de dados de treinamento e de teste, o erro entre cada posição deduzida do conjunto de dados e o dados reais em terra calculados, e uma correlação entre os dois erros utilizada para determinar se este cálculo é suficientemente preciso para se confiar no cálculo do raio de erro para uma área geográfica dimensionada particular.[0038] At 615, the survey data is divided into a training data set and a testing data set. The training dataset includes training position observations while the testing dataset includes test position observations. In some embodiments, the training data set is used to construct a location model while the test data set and the location model are used to generate inferred locations that are tested against the training data. Deduced position calculations can be derived from each of the training and test data sets, the error between each deduced position of the data set and the actual ground data calculated, and a correlation between the two errors used. to determine whether this calculation is sufficiently accurate to rely on calculating the error radius for a particular sized geographic area.
[0039] Na 620, um modelo de posição de localização é criado utili zando conjunto de dados de treinamento. A criação do modelo de po- sicionamento de localização é a criação do cálculo particular que será utilizado para deduzir a posição a partir das observações de posição. Qualquer número de diferentes tipos de cálculos de posição pode ser utilizado, o uso de um algoritmo de correspondência de padrão, trilate- ração, ou o método descrito em "Indoor Localization Without the Pain", de K. Chintalapudi e V. Padmanabhan, MOBICOM, Association for Computing Machinery, Inc., Setembro de 2010 (http://research.microsoft.com/pubs/135721/ez-mobicom.pdf).[0039] At 620, a location position model is created using the training data set. The creation of the location positioning model is the creation of the particular calculation that will be used to deduce the position from the position observations. Any number of different types of position calculations can be used, the use of a pattern matching algorithm, trilateration, or the method described in "Indoor Localization Without the Pain", by K. Chintalapudi and V. Padmanabhan, MOBICOM , Association for Computing Machinery, Inc., September 2010 (http://research.microsoft.com/pubs/135721/ez-mobicom.pdf).
[0040] Na 625, o conjunto de dados de treinamento é avaliado uti lizando o modelo de posição de localização selecionado em 620 para determinar um resultado de erro dos dados de treinamento. A avaliação na etapa 625 pode incluir, para um conjunto de observações no conjunto de dados de treinamento, determinar erros de posições e distância para as posições relativas aos dados reais em terra. Na 630, e de uma maneira similar à etapa 625, o conjunto de dados de teste é avaliado utilizando o modelo de posição de localização para retornar resultados de erro dos dados de teste.[0040] At 625, the training data set is evaluated using the location position model selected at 620 to determine an error result from the training data. Evaluation in step 625 may include, for a set of observations in the training data set, determining position and distance errors for positions relative to actual ground data. At 630, and in a similar manner to step 625, the test data set is evaluated using the location position model to return error results from the test data.
[0041] Na 635, os erros de treinamento e os erros de teste são agregados pela área geográfica conhecida (azulejo) e por local e por andar para recuperar estatísticas de erro utilizando uma função de distribuição acumulativa (CDF) para cada área geográfica dimensionada (isto é, por azulejo) e pela designação de um resultado de erro para cada área geográfica dimensionada baseado na posição deduzida calculada para cada uma. A área dimensionada a qual o resultado de erro pertence é, portanto, baseada em uma posição deduzida, ao invés do que em uma posição verdadeira. A Figura 9A é um gráfico de uma função de distribuição acumulativa para uma área geográfica dimensionada. O valor do eixo geométrico X compreende uma distância de erro enquanto o valor do eixo geométrico y é o erro percentual.[0041] At 635, training errors and testing errors are aggregated by known geographic area (tile) and by location and by floor to recover error statistics using a cumulative distribution function (CDF) for each sized geographic area ( i.e. per tile) and by assigning an error result to each scaled geographic area based on the inferred position calculated for each. The scaled area to which the error result belongs is therefore based on a deduced position, rather than a true position. Figure 9A is a plot of a cumulative distribution function for a scaled geographic area. The x axis value comprises an error distance while the y axis value is the percentage error.
[0042] A Figura 8A ilustra 3 níveis de uma área geográfica dimen- sionada adequados para uso neste documento. As áreas geográficas dimensionadas e o sistema de projeção utilizados neste exemplos é Bing Maps Tile System. Como ilustrado na Figura 8A, cada área dimensionada ou camada de azulejo consiste de um conjunto de arquivos de azulejos uniformemente dimensionados (256 por 256 pixels). Cada um desses azulejos está alinhado em uma grade fixada global na projeção Spherical Web Mercator. Cada um destes azulejos é uma imagem ou mapa do solo em um nível de ampliação fixo predeterminado. Assim, cada pixel em cada azulejo em qualquer nível de ampliação representa uma única localização do solo fixa. O número de azulejos no conjunto de azulejos (e seu tamanho armazenado) depende do tamanho da área representada, da resolução da imagística ou do mapa fonte, e do número de níveis de ampliação criados para visualizar o conjunto de azulejos. O Bing Maps utiliza uma sequência numerada de níveis de ampliação como apresentado na ilustração da Figura 8A. O nível de ampliação menos detalhado é o nível 1, o qual representa todo o globo com uma grade de azulejos de 2x2. O canto comum destes quatro azulejos está localizado na longitude de 0 graus e na latitude de 0 graus. Cada aumento de número inteiro no nível de ampliação dobra o número de azulejos tanto na direção norte-sul como leste-oeste. O nível de ampliação 2 cobre o globo com uma grade de azulejos de 4 por 4, o nível 3 com uma grade 8 por 8, e assim por diante. Devido ao tamanho do azulejo ser fixo, cada aumento no nível de ampliação também reduz o tamanho da área no solo representada por um pixel em um azulejo por um fator de 2, proporcionando detalhe visual crescente no conjunto de azulejos em níveis maiores de ampliação.[0042] Figure 8A illustrates 3 levels of a sized geographic area suitable for use in this document. The scaled geographic areas and projection system used in these examples is Bing Maps Tile System. As illustrated in Figure 8A, each scaled area or tile layer consists of a set of uniformly scaled tile files (256 by 256 pixels). Each of these tiles is aligned on a global fixed grid in the Spherical Web Mercator projection. Each of these tiles is an image or map of the ground at a predetermined fixed magnification level. Thus, each pixel on each tile at any magnification level represents a single fixed ground location. The number of tiles in the tile set (and their stored size) depends on the size of the area represented, the resolution of the imagery or source map, and the number of magnification levels created to view the tile set. Bing Maps uses a numbered sequence of magnification levels as shown in the illustration in Figure 8A. The least detailed magnification level is level 1, which represents the entire globe with a 2x2 tile grid. The common corner of these four tiles is located at 0 degrees longitude and 0 degrees latitude. Each whole number increase in magnification level doubles the number of tiles in both the north-south and east-west directions. Magnification level 2 covers the globe with a 4-by-4 tile grid, level 3 with an 8-by-8 grid, and so on. Because the tile size is fixed, each increase in magnification level also reduces the size of the area on the ground represented by a pixel on a tile by a factor of 2, providing increasing visual detail in the tile set at higher magnification levels.
[0043] A designação de erros de teste para áreas geográficas di mensionadas pode ser executada na etapa 640, para cada azulejo em vários níveis selecionados no sistema de projeção (três níveis neste exemplo), e, na 645, para um conjunto de percentuais de erro para ca- da local e andar, um gráfico de pontos de dados é criado onde, para cada ponto, os dados de erro de treinamento são utilizados como o valor X e o erro de teste como o valor Y na 650. Em uma concretização, somente pontos de dado maiores do que um tamanho de amostra definido tanto para os erros de teste como para de treinamento - por exemplo, 30 amostras - são considerados válidos.[0043] Assigning test errors to sized geographic areas can be performed at step 640, for each tile at various levels selected in the projection system (three levels in this example), and, at 645, for a set of percentages of error for each location and floor, a plot of data points is created where, for each point, the training error data is used as the X value and the testing error as the Y value at 650. In one embodiment , only data points larger than a defined sample size for both testing and training errors - for example, 30 samples - are considered valid.
[0044] Esta representação gráfica é ilustrada nas Figuras 9A e 9B. A Figura 9A é uma vista ampliada de um gráfico para um azulejo com erro de 95%. A Figura 9B ilustra estatísticas de erro para os níveis 18, 19 e 20 de um sistema de projeção dimensionada, em relação a um local, para erros percentuais de 50%, 67%, 80%, 85%, 90% e 95%. Como ilustrado na Figura 9A, os dados de erro como o valor X e o erros de teste como o valor Y, uma correlação perfeita entre erros de teste resultaria em uma linha de pontos de dados possuindo uma curva de 1. Entretanto, como ilustrado nas Figuras 9A e 9B, os pontos de dados em níveis inferiores (menor resolução) e em percentuais de erro inferiores irão se aproximar desta distribuição. Nas representações gráficas apresentadas na Figura 9B, as áreas dimensionadas (azulejos) de nível 19 em erro de 95% podem ser aceitáveis.[0044] This graphic representation is illustrated in Figures 9A and 9B. Figure 9A is an enlarged view of a graph for a 95% error tile. Figure 9B illustrates error statistics for levels 18, 19, and 20 of a scaled projection system, relative to a location, for percentage errors of 50%, 67%, 80%, 85%, 90%, and 95%. As illustrated in Figure 9A, with error data as the X value and test errors as the Y value, a perfect correlation between test errors would result in a line of data points having a slope of 1. However, as illustrated in Figures 9A and 9B, data points at lower levels (lower resolution) and at lower error percentages will approximate this distribution. In the graphical representations shown in Figure 9B, scaled areas (tiles) of level 19 at 95% error may be acceptable.
[0045] Na 655, uma área geográfica dimensionada é selecionada para uso se o erro de treinamento estiver dentro de certa distância. Por exemplo, uma área geográfica dimensionada é dita como atendendo ao requerimento de correlação se o erro de treinamento e o erro de teste estiverem suficientemente próximos, por exemplo, dentro de 5 ou 10 metros. A seleção ocorre a partir do nível mais alto de resolução (nível 20 nos exemplos) até o mais baixo (nível 18 no exemplo).[0045] At 655, a scaled geographic area is selected for use if the training error is within a certain distance. For example, a scaled geographic area is said to meet the correlation requirement if the training error and testing error are sufficiently close, for example, within 5 or 10 meters. Selection occurs from the highest resolution level (level 20 in the examples) to the lowest (level 18 in the example).
[0046] Na 660, as áreas geográficas dimensionadas são selecio nadas para cada nível de resolução e para cada local, andar, e azulejo, os azulejos que realmente se correlacionam são selecionados (e estes que não se correlacionam são saltados) para serem incluídos na estrutura de dados de raio de erro. O modelo de erro para um local consiste do pares de chave-valor <andar-azulejo, erro de 95%> e dos erros de 95% em nível de andar. A Figura 9C representa um gráfico para o erro percentual relativo à distância de erro determinada para um azulejo particular. Neste exemplo, 95% das posições deduzidas irão possuir um erro menor do que uma dada distância de raio.[0046] At 660, scaled geographic areas are selected for each resolution level and for each location, floor, and tile, the tiles that actually correlate are selected (and those that do not correlate are skipped) to be included in the error radius data structure. The error model for a location consists of the <floor-tile, 95% error> key-value pairs and the floor-level 95% errors. Figure 9C represents a graph for the percentage error relative to the error distance determined for a particular tile. In this example, 95% of the deduced positions will have an error smaller than a given radius distance.
[0047] Na 665, as áreas geográficas dimensionadas são mapea das para a distância de erro em uma estrutura de dados tal como esta ilustrada na Figura 8B. Em uma concretização, a estrutura de dados é proporcionada para um dispositivo de processamento móvel para determinar o raio de erro localmente no dispositivo em conjunto com azulejos do mapa utilizados na posição de interesse para o dispositivo móvel. A etapa 665 é equivalente à etapa 330 na Figura 3.[0047] At 665, the sized geographic areas are mapped to the error distance in a data structure such as that illustrated in Figure 8B. In one embodiment, the data structure is provided to a mobile processing device to determine the error radius locally on the device in conjunction with map tiles used at the position of interest to the mobile device. Step 665 is equivalent to step 330 in Figure 3.
[0048] Deve ser reconhecido no exemplo precedente que vários parâmetros podem ser alterados sem afastamento da tecnologia da presente invenção. Por exemplo, apesar de azulejos possuindo um erro de 95% serem utilizados no exemplo precedente, níveis diferentes de erro serão utilizados. A Figura 7 ilustra um método para executar a etapa 360 da Figura 3 para consultar uma área geográfica dimensionada correspondendo a uma localização determinada e retornar uma distância de erro correspondente. No exemplo apresentado na Figura 7, e em uma concretização da tecnologia, o sistema de posicionamento pode utilizar as áreas geográficas dimensionadas para retornar dados de mapeamento para um aplicativo ciente da localização. Em tais casos, um azulejo correspondendo à posição deduzida será conhecido a partir da posição deduzida. Como ilustrado na Figura 3, na etapa 350, a posição de dispositivo de processamento móvel é deduzida utilizando os dados de levantamento e os balizadores detectados. A seguir, na etapa 360, é feito primeiro um cálculo de raio de erro, na 710, utilizar a posição deduzida para determinar o azulejo correspondente nível mais alto até o mais baixo da resolução. Na 715, uma primeira área dimensionada possuindo o nível mais alto de resolução para uma área particular é selecionada. No exemplo apresentado na Figura 8A, o nível 20 é o nível mais alto de resolução. Na 720, é feita uma determinação quanto a se o azulejo do nível mais alto encontrado está presente na estrutura de dados de raio de erro. Se o azulejo selecionado possuir um raio de erro de 95%, então, o raio de erro para este azulejo é retornado na 735; se não, então, na 725, é feita uma determinação quanto a se um próximo nível de resolução inferior está disponível. Se estiver, o próximo nível e a resolução selecionados na 730, e o método retorna para 720. Se nenhum azulejo adicional estiver disponível, a estrutura de dados pode incluir um raio de erro de retorno para o local e o raio de erro associado com o retorno para o local é retornado na 740.[0048] It should be recognized in the preceding example that several parameters can be changed without departing from the technology of the present invention. For example, although tiles having an error of 95% are used in the preceding example, different levels of error will be used. Figure 7 illustrates a method for performing step 360 of Figure 3 to query a sized geographic area corresponding to a given location and return a corresponding error distance. In the example shown in Figure 7, and in one embodiment of the technology, the positioning system can use the scaled geographic areas to return mapping data to a location-aware application. In such cases, a tile corresponding to the deduced position will be known from the deduced position. As illustrated in Figure 3, in step 350, the position of the mobile processing device is deduced using the survey data and the detected beacons. Next, in step 360, an error radius calculation is first made, at 710, using the deduced position to determine the tile corresponding to the highest to lowest level of resolution. At 715, a first scaled area having the highest level of resolution for a particular area is selected. In the example shown in Figure 8A, level 20 is the highest level of resolution. In 720, a determination is made as to whether the highest level tile found is present in the error radius data structure. If the selected tile has an error radius of 95%, then the error radius for this tile is returned at 735; if not, then at the 725 a determination is made as to whether a next lower resolution level is available. If so, the next level and resolution selected at 730, and the method returns to 720. If no additional tiles are available, the data structure can include a return error radius for the location and the error radius associated with the return to the location is returned on 740.
[0049] A Figura 10 representa um diagrama de blocos ilustrativo de um dispositivo móvel para implementar as operações da tecnologia revelada. O sistema de circuitos eletrônicos ilustrativo de um telefone celular típico é representado. O dispositivo móvel 1400 inclui um ou mais microprocessadores 1412, e a memória 1410 (por exemplo, memória não volátil tal como ROM, e memória, tal como RAM), a qual armazena código legível por processador que é executado por um ou mais processadores do processador de controle 1412 para implementar a funcionalidade descrita neste documento.[0049] Figure 10 represents an illustrative block diagram of a mobile device for implementing the operations of the disclosed technology. The illustrative electronic circuit system of a typical cell phone is depicted. Mobile device 1400 includes one or more microprocessors 1412, and memory 1410 (e.g., non-volatile memory such as ROM, and memory such as RAM), which stores processor-readable code that is executed by one or more processors of the device. control processor 1412 to implement the functionality described in this document.
[0050] O dispositivo móvel 1400 pode incluir, por exemplo, proces sadores 1412, a memória 1410, incluindo aplicativos e armazenamentonão volátil. O processador 1412 pode implementar comunicações, bem como qualquer número de aplicativos, incluindo os aplicativos discutidos neste documento. A memória 1410 pode ser qualquer variedade de tipos de meio de armazenamento em memória, incluindo memória não volátil e volátil. Um sistema operacional do dispositivo manipula as diferentes operações do dispositivo móvel 1400 e pode conter interfaces com o usuário para operações, tal como fazer e receber chamadas telefônicas, troca de mensagens de texto, verificar correio de voz, dentre outras. Os aplicativos 1430 podem ser qualquer agrupamento de programas, tal como um aplicativo de câmera para fotografias e/ou vídeos, um catálogo de endereços, um aplicativo de agenda, um reprodutor de mídia, um navegador da Internet, jogos, um aplicativo de alarme ou outros aplicativos externos. O componente de armazenamento não volátil 1440 na memória 1410 contém dados tais como caches da Rede, música, fotografias, dados de contato, dados de agendamento, e outros arquivos.[0050] Mobile device 1400 may include, for example, processors 1412, memory 1410, including applications, and non-volatile storage. The processor 1412 can implement communications as well as any number of applications, including the applications discussed in this document. Memory 1410 may be any variety of types of memory storage medium, including non-volatile and volatile memory. A device operating system handles the different operations of the mobile device 1400 and may contain user interfaces for operations such as making and receiving phone calls, exchanging text messages, checking voicemail, among others. Applications 1430 can be any grouping of programs, such as a camera application for photos and/or videos, an address book, a calendar application, a media player, an Internet browser, games, an alarm application, or other external applications. The non-volatile storage component 1440 in memory 1410 contains data such as network caches, music, photographs, contact data, scheduling data, and other files.
[0051] O processador 1412 também se comunica com o sistema de circuitos de transmissão/recepção RF 1406, o qual por sua vez está acoplado a uma antena 1402, com um transmissor/receptor infravermelho 1408, e com um sensor de movimento/orientação 1414, tal como um acelerômetro e um magnetômetro 1415. Os acelerômetros foram incorporados nos dispositivos móveis para permitir aplicativos tais como interfaces com o usuário inteligentes que deixam os usuários informar comandos através de gestos, funcionalidade GPS em ambiente interno que calcula o movimento e a direção do dispositivo após o contato ser interrompido com um satélite GPS, e para detectar a orientação do dispositivo e automaticamente alterar uma exibição do formato de retrato para formato de paisagem quando o telefone é girado. Um acelerômetro pode ser proporcionado, por exemplo, por um sistema micro-eletromecânico (MEMS) que é um dispositivo mecânico diminuto (de dimensões em micrômetro) embutido em um chip semicondutor. A direção de aceleração, bem como a orientação, vibração e impacto podem ser percebidos. O processador 1412 adicionalmente se comunica com uma campainha/vibrador 1416, com um bloco de teclas/tela de interface com o usuário 1418, com um alto-falante 1420, com um microfone 1422, com uma câmera 1424, com um sensor de luz 1426, e com um sensor de temperatura 1428. Os magnetômetros foram incorporados nos dispositivos móveis para permitir aplicativos tais como bússola digital que medem a direção e a magnitude de um campo magnético próximo do dispositivo móvel, rastreiam alterações no campo magnético e exibem a direção do campo magnético para usuários.[0051] The processor 1412 also communicates with the RF transmit/receive circuitry system 1406, which in turn is coupled to an antenna 1402, an infrared transmitter/receiver 1408, and a motion/orientation sensor 1414 , such as an accelerometer and a magnetometer 1415. Accelerometers have been incorporated into mobile devices to enable applications such as intelligent user interfaces that let users enter commands through gestures, indoor GPS functionality that calculates the movement and direction of the device after contact is broken with a GPS satellite, and to detect the orientation of the device and automatically change a display from portrait format to landscape format when the phone is rotated. An accelerometer can be provided, for example, by a micro-electromechanical system (MEMS) which is a minute mechanical device (with dimensions in micrometers) embedded in a semiconductor chip. The direction of acceleration as well as orientation, vibration and impact can be sensed. The processor 1412 further communicates with a buzzer/vibrator 1416, with a user interface keypad/screen 1418, with a speaker 1420, with a microphone 1422, with a camera 1424, with a light sensor 1426 , and with a temperature sensor 1428. Magnetometers have been incorporated into mobile devices to enable applications such as digital compasses that measure the direction and magnitude of a magnetic field near the mobile device, track changes in the magnetic field, and display the direction of the field magnetic for users.
[0052] O processador 1412 controla a transmissão e a recepção de sinais sem uso de fios. Durante um modo de transmissão, o processador 1412 proporciona um sinal de voz a partir do microfone 1422, ou outro sinal de dados, para o sistema de circuitos de transmis- são/recepção 1406. O sistema de circuitos de transmissão/recepção 1406 transmite o sinal para uma estação remota (por exemplo, uma estação fixa, operador, outros telefones celulares, etc.) para comunicação através da antena 1402. A campainha/vibrador 1416 é utilizado para sinalizar uma chamada que chega, mensagem de texto, lembrete de agenda, lembrete de relógio de alarme, ou outra notificação para o usuário. Durante um modo de recepção, o sistema de circuitos de transmissão/recepção 1406 recebe um sinal de dados de voz ou outro sinal de dados a partir de uma estação remota através da antena 1402. Um sinal de voz recebido é proporcionado para o alto-falante 1420 enquanto outros sinais de dados recebidos também são processados apropriadamente.[0052] Processor 1412 controls the transmission and reception of wireless signals. During a transmission mode, the processor 1412 provides a voice signal from the microphone 1422, or another data signal, to the transmit/receive circuitry 1406. The transmit/receive circuitry 1406 transmits the signal to a remote station (e.g., a fixed station, operator, other cell phones, etc.) for communication via the antenna 1402. The buzzer/vibrator 1416 is used to signal an incoming call, text message, calendar reminder , alarm clock reminder, or other notification to the user. During a receive mode, the transmit/receive circuitry 1406 receives a voice data signal or other data signal from a remote station through the antenna 1402. A received voice signal is provided to the speaker 1420 while other received data signals are also processed appropriately.
[0053] Adicionalmente, um conector físico 1488 pode ser utilizado para conectar o dispositivo móvel 100 com uma fonte de alimentação externa, tal como um adaptador CA ou estação de acoplamento com energia. O conector físico 1488 também pode ser utilizado como uma conexão de dados com um dispositivo de computação. A conexão de dados permite operações tais como sincronizar os dados do dispositivomóvel com os dados de computação em outro dispositivo. Um re ceptor do serviço de posicionamento global (GPS) 1465 utilizando navegação por rádio baseada em satélite para retransmitir a posição dos aplicativos do usuário é habilitado para tal serviço.[0053] Additionally, a physical connector 1488 may be used to connect the mobile device 100 with an external power source, such as an AC adapter or powered docking station. The physical connector 1488 may also be used as a data connection to a computing device. The data connection allows operations such as synchronizing mobile device data with computing data on another device. A global positioning service (GPS) receiver 1465 utilizing satellite-based radio navigation to relay the position of user applications is enabled for such service.
[0054] A Figura 10 representa um diagrama de blocos ilustrativo de um dispositivo móvel para implementar as operações da tecnologia revelada. O dispositivo da Figura 10 é uma ilustração mais detalhada, por exemplo, dos dispositivos 102 e 104 da Figura 1. O sistema de cir-cuitoseletrônicos ilustrativo de um dispositivo de processamento móveltípico é representado. O dispositivo móvel 1000 inclui um ou mais microprocessadores 1012, uma memória 1010 (por exemplo, memória não volátil, tal como ROM, e memória volátil, tal como RAM) que armazenacódigo legível por processador que é executado por um ou mais processadores do processador de controle 1012, de modo a implementar a funcionalidade descrita neste documento.[0054] Figure 10 represents an illustrative block diagram of a mobile device for implementing the operations of the disclosed technology. The device of Figure 10 is a more detailed illustration, for example, of devices 102 and 104 of Figure 1. The illustrative electronic circuit system of a typical mobile processing device is represented. Mobile device 1000 includes one or more microprocessors 1012, a memory 1010 (e.g., non-volatile memory, such as ROM, and volatile memory, such as RAM) that stores processor-readable code that is executed by one or more processor processors. control 1012, in order to implement the functionality described in this document.
[0055] O dispositivo móvel 1000 pode incluir, por exemplo, os pro cessadores 1012, a memória 1010, incluindo aplicativos e armazenamentonão volátil. O processador 1012 pode implementar comunicações, bem como qualquer número de aplicativos, incluindo os aplicativos discutidos neste documento. A memória 1010 pode ser qualquer variedade de tipos de meio de armazenamento em memória, incluindo memória não volátil e volátil. Um sistema operacional do dispositivo manipula as diferentes operações do dispositivo móvel 1000 e pode conter interfaces com o usuário para operações, tais como fazer e receber chamadas telefônicas, troca de mensagens de texto, verificar correio de voz, dentre outras. Os aplicativos 1030 pode ser qualquer agrupamento de programas, tal como um aplicativo de câmera para fotografia e/ou vídeos, uma agenda telefônica, um aplicativo de agenda, um reprodutor de mídia, um navegador da Internet, jogos, um aplicativo de alarme ou outros aplicativos externos. O componente de armazenamentonão volátil 1040 na memória 1010 contém dados, tais como caches da Rede, música, fotografias, dados de contato, dados de agendamento, e outros arquivos.[0055] Mobile device 1000 may include, for example, processors 1012, memory 1010, including applications, and non-volatile storage. Processor 1012 can implement communications as well as any number of applications, including the applications discussed in this document. Memory 1010 may be any variety of types of memory storage medium, including non-volatile and volatile memory. A device operating system handles the different operations of the mobile device 1000 and may contain user interfaces for operations such as making and receiving phone calls, exchanging text messages, checking voicemail, among others. Applications 1030 can be any grouping of programs, such as a camera application for photography and/or videos, a phone book, a calendar application, a media player, an Internet browser, games, an alarm application, or the like. external applications. The non-volatile storage component 1040 in memory 1010 contains data such as network caches, music, photographs, contact data, scheduling data, and other files.
[0056] O processador 1012 também se comunica com o sistema de circuitos de transmissão/recepção RF 1006, que, por sua vez, está acoplado à uma antena 1002, com um transmissor/receptor infravermelho 1008, e com um sensor de movimento/orientação 1014, tal como um acelerômetro e um magnetômetro 1015. Os acelerômetros foram incorporados nos dispositivos móveis para permitir aplicativos, tais como interfaces com o usuário inteligentes que deixam os usuários informar comandos através de gestos, funcionalidade GPS em ambiente interno que calcula o movimento e a direção do dispositivo após o contato ser interrompido com um satélite GPS, e para detectar a orientação do dispositivo e automaticamente alterar a exibição do formato de retrato para o formato de paisagem quando o telefone é girado. Um acelerômetro pode ser proporcionado, por exemplo, por um sistema micro-eletromecânico (MEMS) que é um dispositivo mecânico diminuto (de dimensões em micrômetro) embutido em um chip semicondutor. A direção de aceleração, bem como a orientação, vibração e impacto podem ser percebidos. O processador 1012 adicionalmente se comunica com uma campainha/vibrador 1016, com um bloco de teclas/tela de interface com o usuário 1018, com um alto-falante 1020, com um microfone 1022, com uma câmera 1024, com um sensor de luz 1026 e com um sensor de temperatura 1028. Os magnetômetros foram incorporados nos dispositivos móveis para permitir aplicativos tais como bússola digital que mede a direção e a magnitude de um campo magnético próximo do dispositivo móvel, rastreia alterações para o campo magnético e exibe a direção do campo magnético para os usuários.[0056] The processor 1012 also communicates with the RF transmit/receive circuitry system 1006, which, in turn, is coupled to an antenna 1002, an infrared transmitter/receiver 1008, and a motion/orientation sensor 1014, such as an accelerometer and a magnetometer 1015. Accelerometers have been incorporated into mobile devices to enable applications such as intelligent user interfaces that let users enter commands through gestures, indoor GPS functionality that calculates movement and device direction after contact is broken with a GPS satellite, and to detect the device orientation and automatically change the display from portrait format to landscape format when the phone is rotated. An accelerometer can be provided, for example, by a micro-electromechanical system (MEMS) which is a minute mechanical device (with dimensions in micrometers) embedded in a semiconductor chip. The direction of acceleration as well as orientation, vibration and impact can be sensed. The processor 1012 further communicates with a buzzer/vibrator 1016, with a user interface keypad/screen 1018, with a speaker 1020, with a microphone 1022, with a camera 1024, with a light sensor 1026 and with a 1028 temperature sensor. Magnetometers have been incorporated into mobile devices to enable applications such as a digital compass that measures the direction and magnitude of a magnetic field near the mobile device, tracks changes to the magnetic field, and displays the direction of the field magnetic to users.
[0057] O processador 1012 controla a transmissão e a recepção de sinais sem uso de fios. Durante um modo de transmissão, o processador 1012 proporciona um sinal de voz a partir do microfone 1022, ou outro sinal de dados, para o sistema de circuitos de transmis- são/recepção 1006. O sistema de circuitos de transmissão/recepção 1006 transmite o sinal para uma estação remota (por exemplo, uma estação fixa, operador, outros telefones celulares, etc.) para comunicação através da antena 1002. A campainha/vibrador 1016 é utilizado para sinalizar uma chamada que chega, mensagem de texto, lembrete de agenda, lembrete de relógio de alarme, ou outra notificação para o usuário. Durante um modo de recepção, o sistema de circuitos de transmissão/recepção 1006 recebe um sinal de dados de voz ou outro sinal de dados a partir de uma estação remota através da antena 1002. Um sinal de voz recebido é proporcionado para o alto-falante 1020, enquanto outros sinais de dados recebidos também são processados apropriadamente.[0057] Processor 1012 controls the transmission and reception of wireless signals. During a transmission mode, the processor 1012 provides a voice signal from the microphone 1022, or another data signal, to the transmit/receive circuitry 1006. The transmit/receive circuitry 1006 transmits the signal to a remote station (e.g., a fixed station, operator, other cell phones, etc.) for communication via the antenna 1002. The buzzer/vibrator 1016 is used to signal an incoming call, text message, calendar reminder , alarm clock reminder, or other notification to the user. During a receive mode, the transmit/receive circuitry 1006 receives a voice data signal or other data signal from a remote station through the antenna 1002. A received voice signal is provided to the speaker 1020, while other received data signals are also processed appropriately.
[0058] Adicionalmente, um conector físico 1088 pode ser utilizado para conectar o dispositivo móvel 100 com uma fonte de alimentação externa, tal como um adaptador CA ou estação de acoplamento com energia. O conector físico 1088 também pode ser utilizado como uma conexão de dados para um dispositivo de computação. A conexão de dados permite operações, tais como sincronizar os dados do dispositivomóvel com os dados de computação em outro dispositivo. Um receptor do serviço de posicionamento global (GPS) 1065 utilizando navegação por rádio baseada em satélite para retransmitir a posição dos aplicativos do usuário é habilitado para tal serviço.[0058] Additionally, a physical connector 1088 may be used to connect the mobile device 100 with an external power source, such as an AC adapter or powered docking station. The physical connector 1088 can also be used as a data connection to a computing device. The data connection allows operations such as synchronizing mobile device data with computing data on another device. A global positioning service (GPS) receiver 1065 utilizing satellite-based radio navigation to relay the position of user applications is enabled for such service.
[0059] A Figura 11 ilustra um exemplo de um ambiente de sistema de computação adequado 900, tal como um computador pessoal no qual a tecnologia pode ser implementada. O ambiente de sistema de computação 900 é somente um exemplo de um ambiente de computação adequado e não é pretendido para sugerir qualquer limitação quanto ao escopo de uso ou quanto à funcionalidade da tecnologia. O ambiente de computação 900 também não deve ser interpretado como possuindo qualquer dependência ou requerimento se relacionando com qualquer um ou com uma combinação dos componentes ilustrados no ambiente operacional ilustrativo 900.[0059] Figure 11 illustrates an example of a suitable computing system environment 900, such as a personal computer in which the technology can be implemented. Computing system environment 900 is only an example of a suitable computing environment and is not intended to suggest any limitations on the scope of use or functionality of the technology. The computing environment 900 should also not be construed as having any dependency or requirement relating to any one or a combination of the components illustrated in the illustrative operating environment 900.
[0060] Em uma concretização, o sistema da Figura 9 ou múltiplos do mesmo podem ser utilizados para proporcionar o serviço de localização 150.[0060] In one embodiment, the system of Figure 9 or multiples thereof may be used to provide location service 150.
[0061] Os componentes do computador 910 podem incluir, mas não estão limitados a uma unidade de processamento 920, uma memória do sistema 930, e um barramento do sistema 921 que acopla vários componentes do sistema, incluindo a memória do sistema com a unidade de processamento 920. O barramento do sistema 921 pode ser qualquer um dentre vários tipos de estruturas de barramento incluindo um barramento de memória ou controlador de memória, um barramento periférico, e um barramento local utilizando qualquer uma dentre várias arquiteturas de barramento. A título de exemplo e não de limitação, tais arquiteturas incluem o barramento da Arquitetura Padrão da Indústria (ISA), o barramento da Arquitetura de Micro-canal (MCA), o barramento ISA Aprimorado (EISA), o barramento local da Associação de Padrões de Eletrônica e Vídeo (VESA), e o barramento de Interconexão de Componente Periférico (PCI), também conhecido como barramento Mezzanine.[0061] Computer components 910 may include, but are not limited to, a processing unit 920, a system memory 930, and a system bus 921 that couples various system components, including system memory with the processing 920. System bus 921 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of several bus architectures. By way of example and not limitation, such architectures include the Industry Standard Architecture (ISA) bus, the Micro-Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Standards Association local bus Electronics and Video (VESA), and the Peripheral Component Interconnect (PCI) bus, also known as the Mezzanine bus.
[0062] O computador 910 tipicamente inclui uma variedade de meios legíveis por computador. Os meios legíveis por computador podem ser qualquer meio disponível que possa ser acessado pelo computador 910 e inclui tanto meio volátil como não volátil, e meio removível e não removível. A título de exemplo e não de limitação, o meio legível por computador pode compreender armazenamento do computador. O meio de armazenamento do computador inclui tanto meio volátil como não volátil, e removível e não removível, para armazenamento de informação, tais como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. O meio de armazenamento do computador inclui, mas não está limitado a RAM, ROM, EEPROM, memória flash ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento em disco ótico, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros dispositivo de armazenamento magnético, ou qualquer outro meio que possa ser utilizado para armazenar as informações desejadas e que possa ser acessado pelo computador 910.[0062] Computer 910 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 910 and includes both volatile and non-volatile media, and removable and non-removable media. By way of example and not limitation, the computer-readable medium may comprise computer storage. Computer storage media includes both volatile and non-volatile, and removable and non-removable media, for storing information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, storage on a magnetic disk or other magnetic storage device, or any other means that can be used to store the desired information and that can be accessed by the computer 910.
[0063] A memória do sistema 930 inclui meio de armazenamento do computador na forma de memória volátil e/ou não volátil, tal como memória somente para leitura (ROM) 931 e memória de acesso aleatório (RAM) 932. O sistema básico de entrada/saída (BIOS) 933, contendo rotinas básicas que ajudam a transferir informações entre os elementos dentro do computador 910, tal como durante a inicialização, tipicamente é armazenado na ROM 931. A RAM 932 tipicamente contém dados e/ou módulos de programa que são imediatamente acessíveis e/ou estão atualmente sendo operados pela unidade de processamento 920. A título de exemplo, e não de limitação, a Figura 9 ilustra o sistema operacional 934, os programas aplicativos 935, outros mó-dulos de programa 936, e os dados de programa 939.[0063] System memory 930 includes computer storage media in the form of volatile and/or non-volatile memory, such as read-only memory (ROM) 931 and random access memory (RAM) 932. The basic input system /output (BIOS) 933, containing basic routines that help transfer information between elements within computer 910, such as during startup, is typically stored in ROM 931. RAM 932 typically contains data and/or program modules that are 934, application programs 935, other program modules 936, and data program 939.
[0064] O computador 910 também pode incluir outro meio de ar mazenamento do computador tangível, removível/não removível, volá- til/não volátil. Somente a título de exemplo, a Figura 9 ilustra uma unidade de disco rígido 940 que lê a partir ou grava junto ao meio magnéticonão removível, não volátil, uma unidade de disco magnético 951 que lê a partir ou grava junto a um disco magnético removível, não volátil 952, e uma unidade de disco ótico 955 que lê a partir ou grava junto a um disco ótico removível, não volátil 956, tal como um CD ROM ou outro meio ótico. Outros meios de armazenamento do computador removíveis/não removíveis, voláteis/não voláteis que podem ser utili- zados no ambiente operacional ilustrativo incluem, mas não estão limitados a cassetes de fita magnética, cartões de memória flash, discos versáteis digitais, fita de vídeo digital, RAM de estado sólido, ROM de estado sólido, dentre outros. A unidade de disco rígido 941 tipicamente está conectada com o barramento do sistema 921 através de uma interface de memória não removível, tal como a interface 940, e a unidade de disco magnético 951 e a unidade de disco ótico 955 tipicamenteestão conectadas com o barramento do sistema 921 por uma interface de memória removível, tal como a interface 950.[0064] Computer 910 may also include other tangible, removable/non-removable, volatile/non-volatile computer storage media. By way of example only, Figure 9 illustrates a hard disk drive 940 that reads from or writes to non-removable, non-volatile magnetic media, a magnetic disk drive 951 that reads from or writes to a removable magnetic disk, non-volatile 952, and an optical disk drive 955 that reads from or writes to a removable, non-volatile optical disk 956, such as a CD ROM or other optical medium. Other removable/non-removable, volatile/non-volatile computer storage media that may be used in the illustrative operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape , solid state RAM, solid state ROM, among others. The hard disk drive 941 typically is connected to the system bus 921 through a non-removable memory interface, such as interface 940, and the magnetic disk drive 951 and the optical disk drive 955 typically are connected to the system bus. system 921 by a removable memory interface, such as interface 950.
[0065] As unidades e seus meios de armazenamento do computa dor associados discutidos acima e ilustrados na Figura 9, proporcionam armazenamento de instruções legíveis por computador, estruturas de dados, módulos de programa e outros dados para o computador 910. Na Figura 9, por exemplo, a unidade de disco rígido 941 é ilustrada como armazenando o sistema operacional 944, os programas aplicativos 945, outros módulos de programa 946 e os dados de programa 949. Observe que estes componentes podem ser os mesmos ou diferentes do sistema operacional 934, dos programas aplicativos 935, dos outros módulos de programa 936, e dos dados de programa 939. O sistema operacional 944, os programas aplicativos 945, os outrosmódulos de programa 946, e os dados de programa 949 recebem números diferentes aqui para ilustrar que, no mínimo, eles são cópias diferentes. Um usuário pode entrar com comandos e informações no computador 20 através dos dispositivos de entrada, tais como um teclado 962 e o dispositivo apontador 961, normalmente referido como mouse, TrackBall ou touch pad. Outros dispositivos de entrada (não apresentados) podem incluir o microfone, console de jogo, antena de satélite, scanner, dentre outros. Estes e outros dispositivos de entrada frequentemente são conectados com a unidade de processamento 920 através de uma interface de entrada do usuário 960 que está acoplada com o barramento do sistema, mas pode ser conectada por outra interface e estruturas de barramento, tal como uma porta paralela, porta de jogo ou um barramento serial universal (USB). Um monitor 991 ou outro tipo de dispositivo de vídeo também está conectado com o barra- mento do sistema 921 via uma interface, tal como uma interface de vídeo 990. Em adição ao monitor, os computadores também podem incluir outros dispositivos periféricos de saída, tais como os alto- falantes 999 e a impressora 996, os quais podem ser conectados através de uma interface periférica de saída 990.[0065] The drives and their associated computer storage media discussed above and illustrated in Figure 9, provide storage of computer-readable instructions, data structures, program modules, and other data for the computer 910. In Figure 9, for For example, hard disk drive 941 is illustrated as storing operating system 944, application programs 945, other program modules 946, and program data 949. Note that these components may be the same or different from operating system 934, application programs 935, other program modules 936, and program data 939. The operating system 944, application programs 945, other program modules 946, and program data 949 are assigned different numbers here to illustrate that, at a minimum , they are different copies. A user can enter commands and information into computer 20 through input devices, such as a keyboard 962 and pointing device 961, commonly referred to as a mouse, TrackBall, or touch pad. Other input devices (not shown) may include the microphone, game console, satellite antenna, scanner, among others. These and other input devices are often connected to the processing unit 920 through a user input interface 960 that is coupled to the system bus, but may be connected through other interface and bus structures, such as a parallel port. , game port, or a universal serial bus (USB). A monitor 991 or other type of video device is also connected to the system bus 921 via an interface, such as a video interface 990. In addition to the monitor, computers may also include other peripheral output devices, such as such as speakers 999 and printer 996, which can be connected via a peripheral output interface 990.
[0066] O computador 910 pode operar em um ambiente em rede utilizando conexões lógicas com um ou mais computadores remotos, tal como um computador remoto 980. O computador remoto 980 pode ser um computador pessoal, um servidor, um roteador, um PC de Rede, um dispositivo par, ou outro nó comum da rede, e tipicamente incluivários ou todos os elementos descritos acima em relação ao computador 910, apesar de somente um dispositivo de armazenamento em memória 981 ter sido ilustrado na Figura 9. As conexões lógicas representadas na Figura 9 incluem uma rede de área local (LAN) 991 e uma rede de longa distância (WAN) 993, mas também pode incluir outras redes. Tais ambientes em rede são comuns em escritórios, em redes de computadores de grandes empresas, em intranets e na Internet.[0066] Computer 910 may operate in a networked environment utilizing logical connections with one or more remote computers, such as a remote computer 980. The remote computer 980 may be a personal computer, a server, a router, a Network PC , a peer device, or other common node of the network, and typically includes several or all of the elements described above in connection with computer 910, although only a memory storage device 981 has been illustrated in Figure 9. The logical connections depicted in Figure 9 include a local area network (LAN) 991 and a wide area network (WAN) 993, but may also include other networks. Such networked environments are common in offices, on large corporate computer networks, on intranets and on the Internet.
[0067] Quando utilizado em um ambiente em rede LAN, o compu tador 910 é conectado com a LAN 991 através de uma interface ou adaptador de rede 990. Quando utilizado em um ambiente em rede WAN, o computador 910 tipicamente inclui um modem 992 ou outro meio para estabelecer comunicações através da WAN 993, tal como a Internet. O modem 992, o qual pode ser interno ou externo, pode ser conectado com um barramento do sistema 921 via a interface de entrada do usuário 960, ou via outro mecanismo apropriado. Em um am- biente em rede, os módulos de programa representados em relação ao computador 910, ou partes dos mesmos, podem ser armazenados no dispositivo de armazenamento em memória remoto. A título de exemplo e não de limitação, a Figura 9 ilustra os programas aplicativos remotos 985 como residindo no dispositivo de memória 981. Será apreciado que as conexões de rede apresentadas são ilustrativas e outros meios para estabelecer uma ligação de comunicação entre os computadores podem ser utilizados.[0067] When used in a LAN network environment, the computer 910 is connected to the LAN 991 through a network interface or adapter 990. When used in a WAN network environment, the computer 910 typically includes a modem 992 or another means of establishing communications over the WAN 993, such as the Internet. The modem 992, which may be internal or external, may be connected to a system bus 921 via the user input interface 960, or via another appropriate mechanism. In a networked environment, program modules represented relative to computer 910, or portions thereof, may be stored in the remote memory storage device. By way of example and not limitation, Figure 9 illustrates remote application programs 985 as residing in memory device 981. It will be appreciated that the network connections shown are illustrative and other means of establishing a communication link between computers may be used.
[0068] A tecnologia é operacional com vários outros ambientes ou configurações de sistema de computação de propósito geral ou de propósito especial. Exemplos de sistemas, ambientes e/ou de configurações de computação bem conhecidos que podem ser adequados para uso com a tecnologia incluem, mas não estão limitados, os computadores pessoais, computadores servidores, dispositivos portáteis ou laptop, sistemas multiprocessador, sistemas baseados em microprocessador, decodificadores de sinal, eletroeletrônicos programáveis, PCs de rede, minicomputadores, computadores de grande porte, ambientes de computação distribuída que incluem qualquer um dos sistemas ou dispositivos acima, dentre outros.[0068] The technology is operational with various other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, signal decoders, programmable electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, among others.
[0069] A tecnologia pode ser descrita no contexto geral de instru ções executáveis por computador, tais como módulos de programa sendo executados por um computador. Geralmente, os módulos de programa incluem rotinas, programas, objetos, componentes, estruturas de dados, etc., que executam tarefas particulares ou implementam tipos particulares de dados abstratos. A tecnologia também pode ser praticada em ambientes de computação distribuída onde as tarefas são executadas por dispositivos de processamento remotos que estão ligados através de uma rede de comunicações. Em um ambiente de computação distribuída, os módulos de programa podem estar localizados tanto em meio de armazenamento do computador local como remoto, incluindo dispositivo de armazenamento em memória.[0069] The technology can be described in the general context of computer-executable instructions, such as program modules being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular types of abstract data. The technology can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located on both local and remote computer storage media, including memory storage devices.
[0070] Apesar de o assunto ter sido descrito em linguagem especí fica para os aspectos estruturais e/ou atos metodológicos, é para ser entendido que o assunto definido nas reivindicações anexas não está necessariamente limitado aos aspectos ou atos específicos descritos acima. Ao invés disso, os aspectos e atos específicos descritos acima são revelados como formas ilustrativas para implementar as reivindicações.[0070] Although the subject matter has been described in specific language for the structural aspects and/or methodological acts, it is to be understood that the subject matter defined in the attached claims is not necessarily limited to the specific aspects or acts described above. Instead, the specific aspects and acts described above are revealed as illustrative ways to implement the claims.
Claims (9)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/274,226 US10509096B2 (en) | 2014-05-09 | 2014-05-09 | Location error radius determination |
US14/274,226 | 2014-05-09 | ||
PCT/US2015/029335 WO2015171672A1 (en) | 2014-05-09 | 2015-05-06 | Location error radius determination |
Publications (3)
Publication Number | Publication Date |
---|---|
BR112016024340A2 BR112016024340A2 (en) | 2017-08-15 |
BR112016024340A8 BR112016024340A8 (en) | 2021-07-13 |
BR112016024340B1 true BR112016024340B1 (en) | 2023-08-15 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11243288B2 (en) | Location error radius determination | |
US10470011B2 (en) | Adaptive position determination | |
US10802157B2 (en) | Three-dimensional city models and shadow mapping to improve altitude fixes in urban environments | |
US9335175B2 (en) | Crowd-sourcing indoor locations | |
JP2017535792A (en) | Simultaneous execution of self-location estimation and map creation using geomagnetic field | |
Le et al. | Indoor navigation system for handheld devices | |
EP2569958B1 (en) | Method, computer program and apparatus for determining an object in sight | |
BR112016024340B1 (en) | METHOD IMPLEMENTED BY COMPUTER AND PROCESSING DEVICE FOR DETERMINING LOCATION ERROR RADIUS | |
Svirina et al. | Mobile geoinformation system development | |
Yang et al. | A WiFi/ins indoor pedestrian navigation system augmented by context feature | |
Wieczorek | A Location Based Service Framework for Pedestrian Navigation |