Magnetic field vector map for direction determination
A magnetic field vector map with probability distributions enhances pose estimation accuracy and continuity by addressing local interference and VIO disruptions.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- ナイアンティック スペイシャル インコーポレイテッド
- Filing Date
- 2024-06-13
- Publication Date
- 2026-06-22
AI Technical Summary
Existing systems for determining the pose of a client device using magnetic fields are often inaccurate due to local magnetic interference from structures, and visual inertial odometry (VIO) methods suffer from interruptions, leading to disruptions in orientation estimation.
Generate a magnetic field vector map by aggregating measurements from multiple client devices, using probability distributions to estimate the local magnetic field, and integrate this with visual inertial odometry for rapid recovery of orientation.
Provides accurate and continuous pose estimation of client devices by compensating for magnetic interference and quickly recovering from VIO interruptions.
Smart Images

Figure 2026520210000001_ABST
Abstract
Description
Technical Field
[0001] The subject matter described herein generally relates to device localization, and more particularly to generating an estimated pose of a client device using a magnetic field vector map.
Background Art
[0002] Online systems can track the position and orientation (collectively, "pose") of a user's device in the physical world in order to provide services to the user. For example, an online gaming system can provide an augmented reality experience to a user by providing content displayed on the user's client device based on the user's pose.
[0003] To determine the orientation of a user, a client device of the user may obtain magnetic field measurements that measure the local magnetic field at the position of the client device, and may assume that the measured magnetic field is oriented north. The client device may estimate the orientation of the user based on the measured magnetic field. For example, when a user uses a compass to estimate direction and the measured magnetic field indicates "backward" (i.e., in the opposite direction of where the user is facing), the orientation of the user is likely to be opposite to the direction of the local magnetic field. Generally, the local magnetic field is the Earth's magnetic field generated by the Earth. However, the local magnetic field measured by a client device often is not the same as the Earth's magnetic field at the position of the client device, i.e., the local magnetic field does not point to true north. For example, magnetic field measurements are often affected by local structures such as power lines that continuously generate a magnetic field as current passes through, and buildings having a number of metal structures that can change the strength or direction of the local magnetic field.
[0004] Some systems estimate the pose of a client device based on visual inertial odometry (VIO) data. While VIO data is effective in determining relative changes in the device's pose, it may be necessary to use other data (e.g., magnetometer data or Global Navigation Satellite System (GNSS) data) to determine the device's original pose. Therefore, interruptions in a VIO session cause interruptions in effective device pose determination. For example, a user may temporarily turn off a client device or cover the camera, interrupting the determination of the orientation of the client device that uses VIO. When this happens, the device may take time to collect VIO data so that it can correctly determine its orientation. However, in the meantime, the device may not be able to predict its orientation, which can lead to interruptions in application services that depend on the device's orientation. [Overview of the Initiative]
[0005] This disclosure describes an approach to perform pose estimation of a client device using a magnetic field vector map. A magnetic field vector map can be generated by accumulating magnetic field measurements from multiple client devices. The magnetic field vector map includes multiple geographic regions, each geographic region corresponding to a magnetic field vector representing the local magnetic field in that region. Based on the magnetic field vector map, when a specific location is identified on the magnetic field vector map, the local magnetic field at that location can be estimated. The determined magnetic field vector can be compared with the magnetic field vector received from the client device, and the pose of the client device can be estimated based on the comparison result. Furthermore, the magnetic field vector map can be used as an alternative / supplementary pose estimation method to visual inertial odometry (VIO). For example, the magnetic field vector map can enable rapid recovery of orientation after an interruption to a VIO session. By matching the orientation of the magnetic field vector before and after the interruption, VIO-based pose estimation can be rapidly recovered.
[0006] In one or more embodiments, a computer implementation method is disclosed. The method includes receiving a plurality of magnetic field measurements from a plurality of client devices, each magnetic field measurement representing a magnetic field vector at a geographical location. Generating a magnetic field vector map may include grouping the magnetic field measurements into one or more region groups, aggregating the magnetic field measurements within each region group to generate a probability distribution of magnetic field vectors associated with the geographical region, and determining the magnetic field vectors within each geographical region based on the corresponding probability distribution. Based on the magnetic field vector map, the method may include estimating the pose of the client device based on the user location of the client device and the magnetic field vectors received from the client device. In other embodiments, a system configured to perform the method and a non-temporary computer-readable storage medium for storing instructions for performing the method are disclosed. [Brief explanation of the drawing]
[0007] [Figure 1] This figure shows one or more embodiments of a networked computing environment. [Figure 2] This figure shows the use of a map generation algorithm for generating a magnetic field vector map in one or more embodiments. [Figure 3] This figure shows exemplary histograms of magnetic field vectors for one or more embodiments. [Figure 4] This flowchart shows one iteration of a method for estimating the pose of a client device using a magnetic field vector map, according to one or more embodiments. [Figure 5] This figure shows an exemplary configuration of a computing device in one or more embodiments.
[0008] The drawings and the following description illustrate specific embodiments for illustrative purposes only. Those skilled in the art will readily recognize from the following description that alternative embodiments of the structure and method can be adopted without departing from the described principles. Some embodiments are referenced here, examples of which are shown in the accompanying drawings. [Modes for carrying out the invention]
[0009] Various embodiments are described in the context of parallel reality games that include augmented reality content in a virtual world geography parallel to at least a portion of real-world geography, such that the movements and actions of real-world players influence actions in the virtual world, and vice versa. Using the disclosures provided herein, those skilled in the art will understand that the subject matter described is applicable to other situations where magnetic field measurements are desirable. For example, the methods described herein can be implemented in a location-based application that displays virtual navigation instructions or text labels related to real-world information. In addition, the inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functions between the components of the system. For example, systems and methods according to embodiments of this disclosure can be implemented using a single computing device or across multiple computing devices (e.g., connected by a computer network).
[0010] Figure 1 shows a networked computing environment 100 in one or more embodiments. While Figure 1 shows a parallel reality game environment as an example of various functions that may be present in the computing environment, this figure is intended to illustrate the networked nature rather than being a structural schematic of the implementation described herein. In practice, as those skilled in the art will recognize, a networked computing environment may have additional, fewer, or variations thereof in addition to the components shown in Figure 1. Specifically, the magnetic field vector maps described herein are applicable to any networked computing environment.
[0011] The networked computing environment 100 provides interaction with a player in a virtual world having geography parallel to the real world. In particular, geographical regions of the real world may be directly linked to or mapped to corresponding regions of the virtual world. The player may move through the virtual world by moving to locations in various regions of the real world. For example, the player's location in the real world may be tracked and used to update the player's location in the virtual world. Typically, the player's location in the real world is determined by finding the location of the client device 110 with which the player is interacting with the virtual world and assuming that the player is in the same (or nearly the same) location. For example, in various embodiments, if the player's location in the real world is within a threshold distance (e.g., 10 meters, 20 meters, etc.) from the real-world location corresponding to the virtual location of a virtual element in the virtual world, the player may interact with the virtual element. For convenience, various embodiments are described by referring to “player's location,” but those skilled in the art will understand that such a reference may refer to the location of the player’s client device 110.
[0012] The networked computing environment 100 uses a client-server structure, and the game server 120 communicates with client devices 110 via the network 105 to provide players with parallel reality games on the client devices 110. The networked computing environment 100 may also include other external systems such as sponsor / advertiser systems or business systems. Although only one client device 110 is shown in Figure 1, any number of client devices 110 or other external systems may be connected to the game server 120 via the network 105. Furthermore, the networked computing environment 100 may include different or additional elements, and functionality may be distributed between the client devices 110 and the server 120 in ways different from those described below.
[0013] The client device 110 may be any portable computing device that can be used by a player to interact with the game server 120. For example, the client device 110 may be a wireless device, a personal digital assistant (PDA), a portable gaming device, a mobile phone, a smartphone, a tablet, a navigation system, a handheld GPS system, a wearable computing device, a display having one or more processors, or other such device. In another example, the client device 110 includes a conventional computer system such as a desktop or laptop computer. Furthermore, the client device 10 may be a vehicle having a computing device. In short, the client device 110 may be any computer device or system that can enable a player to interact with the game server 120. As a computing device, the client device 110 may include one or more processors and one or more computer-readable storage media. The computer-readable storage media may store instructions that cause the processors to perform actions. The client device 110 is preferably a portable computing device that a player can easily carry or otherwise transport, such as a smartphone or a tablet.
[0014] The client device 110 communicates with the game server 120 and provides the game server 120 with sensory data of the physical environment. The client device 110 includes a camera assembly 125 that captures two-dimensional image data of the scene in the physical environment in which the client device 110 resides. In the embodiment shown in Figure 1, each client device 110 includes a magnetic sensor 130 and software components such as a gaming module 135 and a positioning module 140. The client device 110 may also include various other input / output devices for receiving information from and / or providing information to the player. Exemplary input / output devices include a display screen, touchscreen, touchpad, data entry keys, speaker, and microphone suitable for speech recognition. The client device 110 may also include various other sensors for recording data from the client device 110, including, but not limited to, motion sensors, accelerometers, gyroscopes, other inertial measurement units (IMUs), barometers, positioning systems, thermometers, light sensors, depth sensors, etc. The client device 110 may further include a network interface for providing communication over the network 105. The network interface may include any suitable components for interfacing with one or more networks, such as a transmitter, receiver, port, controller, antenna, or other suitable components.
[0015] The camera assembly 125 captures image data of the scene in the environment in which the client device 110 is located. The camera assembly 125 may utilize various photosensors having various color capture ranges at various capture rates. The camera assembly 125 may include a wide-angle lens or a telephoto lens. The camera assembly 125 may be configured to capture a single image or video as image data. Furthermore, the orientation of the camera assembly 125 may be parallel to the ground with the camera assembly 125 facing the horizon. The camera assembly 125 captures image data and shares the image data with the computing device on the client device 110. The image data may be accompanied by metadata indicating other details of the image data, including sensory data (e.g., temperature, ambient brightness) or capture data (e.g., exposure, warmth, shutter speed, focal length, capture time, etc.). The camera assembly 125 may include one or more cameras capable of capturing image data. In one example, the camera assembly 125 includes one camera and is configured to capture monocular image data. In another example, the camera assembly 125 includes two cameras configured to capture stereoscopic image data. In various other embodiments, the camera assembly 125 includes multiple cameras, each configured to capture image data.
[0016] The magnetic sensor 130 measures the magnetic field around the client device. The magnetic sensor 130 may include a compass, magnetometer, magnetic field detector, etc. A magnetic field is a vector field that represents the magnetic influence on magnetic materials, moving charges, etc. A magnetic field vector represents the direction and strength of the magnetic field at a point in space. In some embodiments, the magnetic sensor 130 may perform a magnetic field measurement at the location where the client device 110 is located. The magnetic field measurement obtains a magnetic field vector at a location associated with the geographical location. The position module 140 may use the magnetic field measurement to determine the location of the client device 110. The client device 110 may send the magnetic field measurement to the game server 120 in order to generate a magnetic field vector map and / or to estimate the pose of the client device 110.
[0017] In some embodiments, the magnetic sensor 130 may include three separate sensors internally aligned separately on the x, y, and z axes of the client device 110. The x, y, and z axes define the body coordinates, i.e., device coordinates, of the client device 110. Each of these three sensors measures the strength of the magnetic field at the location of the client device 110. The sum of the three measured magnetic field strengths is a vector sum that generates a magnetic field vector (i.e., a local magnetic field vector) at the location of the client device 110. Consider a smartphone as an exemplary client device 110. The z axis may be perpendicular to the plane of the smartphone, the x axis is to the right along a short length, and the y axis is forward along a long length. When the smartphone is facing upwards and its plane is parallel to the Earth's surface, the z axis of the smartphone points upwards. Assuming that the magnetic sensor 130 measures a large strength along the y axis and a small (or zero) strength along the x axis, the vector sum of the strengths calculates a local magnetic field vector aligned with the y axis of the smartphone. If the local magnetic field vector is the same as the Earth's magnetic field and points to geographical north, then the y-axis of the smartphone points to geographical north (i.e., magnetic south), and the x-axis of the smartphone may point to geographical east. Therefore, based on the smartphone's device reference coordinates, the front of the smartphone points to geographical north. When rotated, in a smartphone in the horizontal plane, the measured local magnetic field vector rotates accordingly within the device coordinates, for example, as the smartphone rotates, the compass needle rotates within the compass. Given that the device coordinates (i.e., the x, y, and z axes of the client device 110) are known, the client device 110 can convert the measured local magnetic field vector from the device coordinates to the Earth coordinate system (i.e., the world coordinate system), thereby determining the orientation of the client device 110 in physical space. In this way, by measuring the local magnetic field vector, the client device 110 can estimate its orientation in the real world.
[0018] The gaming module 135 provides the player with an interface for participating in a parallel reality game. The game server 120 transmits game data to the client device 110 via the network 105 for use by the gaming module 135 of the client device 110, providing a local version of the game to players located remotely from the game server 120. The game server 120 may include a network interface 105 for providing communication over the network. The network interface may include any suitable components for interfacing with one or more networks, such as transmitters, receivers, ports, controllers, antennas, or other suitable components.
[0019] The game module 135, executed by the client device 110, provides an interface between the player and the parallel reality game. The gaming module 135 may present a user interface on a display device associated with the client device 110, displaying the virtual world associated with the game (e.g., rendering images of the virtual world) and enabling the user to interact with the virtual world and perform various game objectives. In some embodiments, the gaming module 135 presents real-world image data (e.g., captured by the camera assembly 125) augmented with virtual elements from the parallel reality game. In these embodiments, the gaming module 135 may generate and / or adjust virtual content according to other information received from other components of the client device 110. For example, the gaming module 135 may adjust virtual objects displayed on the user interface according to a depth map of the scene captured in the image data. In other embodiments, the gaming module 135 generates virtual objects for display on a translucent display (e.g., an AR headset, AR glasses, etc.) that allows the user to see the real world. Thus, the virtual objects can be overlaid on the user's view of the real world.
[0020] The gaming module 135 also controls various other outputs to allow the player to interact with the game without requiring the player to view the display screen. For example, the game module 135 may control various sounds, vibrations, or other notifications that enable the player to play the game without looking at the display screen. The game module 135 may access game data received from the game server 120 to provide the user with an accurate representation of the game. The game module 135 may receive and process player input and provide updates to the game server 120 via the network 105. The game module 135 may also generate and / or adjust game content displayed by the client device 110. For example, the game module 135 may generate virtual elements based on depth information. In another example, the game module 135 may update virtual elements based on the pose of the camera assembly.
[0021] In one embodiment, the rough position determination of the client device 110 may be performed by the client device 110. The client device 110 includes a positioning module 140 which constitutes any device or circuit for monitoring the position of the client device 110. For example, the positioning module 140 may determine the actual or relative position by using a satellite navigation positioning system (e.g., GPS system, Galileo positioning system, Global Navigation Satellite System (GLONASS), Beidou satellite navigation and positioning system), an inertial navigation system, a dead reckoning system, triangulation and / or proximity to a cellular tower or Wi-Fi hotspot based on an IP address, and / or by using other suitable techniques. The positioning module 140 may also use measured magnetic field data from a magnetic sensor 130 when determining the position of the client device 110 in physical space. The positioning module 140 may further include various other sensors which may help to accurately position the client device 110. The positioning module 140 may be used to determine the course position of the client device 110, but the client device 110 (e.g., the position and orientation of the device's particles) is performed by the pose detection module 180 on the game server 120, as described later. For example, the rough position (e.g., GPS coordinates) identified by the positioning module 140 may be used to identify a three-dimensional (3D) model of the environment in which the client device 110 is located, and the pose detection module 170 localizes the retrieved model using the image captured by the camera assembly 125 and the magnetic field measured by the magnetic sensor 130 on the client device 110.
[0022] In an embodiment where the approximate position of the client device is determined on the client side, the positioning module 140 tracks the player's position as the player moves with the client device 110 in the real world and provides player position information to the game module 135. The game module 135 updates the player position in the virtual world associated with the game based on the actual position of the player in the real world. Thus, the player can simply carry or interact with the virtual world. In particular, the position of the player in the virtual world may correspond to the position of the player in the real world. The game module 135 may provide player position information to the game server 120 via the network 105. In response, the game server 120 may implement various techniques to verify the position of the client device 110 to prevent cheaters from disguising the position of the client device 110. It should be understood that the position information associated with the player is only used when permission is granted after the player is notified of accessing the player's position information and how the position information is used in the context of the game (e.g., to update the player's position in the virtual world). Further, any position information associated with the player is stored and maintained in a way that protects the player's privacy.
[0023] The game server 120 can be any computer device and may include one or more processors and one or more computer-readable storage media. The computer-readable storage media can store instructions that cause the processor to execute operations. The game server 120 may include or communicate with a game database 115. The game database 115 stores game data used in a parallel reality game that is provided to the client(s) 110 via the network 105.
[0024] The game data stored in the game database 115 is (1) Data associated with the virtual world within the parallel reality game (e.g., image data used to render the virtual world on a display device, geographical coordinates of positions within the virtual world, etc.); (2) Data associated with the players of the parallel reality game (e.g., player profiles including, but not limited to, player information, player experience levels, player currency, current player positions within the virtual world / real world, player energy levels, player preferences, team information, faction information, etc.); (3) Data associated with the game objectives (e.g., data associated with current game objectives, status of game objectives, past game objectives, future game objectives, desired game objectives, etc.); (4) Data associated with virtual elements within the virtual world (e.g., position of virtual elements, type of virtual elements, game objectives associated with virtual elements, corresponding real-world location information of virtual elements, behavior of virtual elements, relevance of virtual elements, etc.); (5) Data associated with positions linked to real-world objects, landmarks, and elements of the virtual world (e.g., position of real-world objects / landmarks, description of real-world objects / landmarks, relevance of virtual elements linked to real-world objects, etc.); (6) Game status (e.g., current number of players, current status of game objectives, player leaderboard, etc.); (7) Data associated with player actions / inputs (e.g., current player position, past player positions, player movements, player inputs, player queries, player communications, etc.); and (8) Any other data used, related to, or obtained during the implementation of the parallel reality game; may be included. The game data stored in the game database 115 can be filled either offline or in real-time by a system administrator, or can be filled by data received from users and / or players of the environment 100, such as from client devices 110 via the network 105.
[0025] The game server 120 may be configured to receive requests for game data from client devices 110 (for example, via remote procedure calls (RPCs)) and to respond to those requests via the network 105. For example, the game server 120 may encode game data in one or more data files and provide the data files to the client devices 110. Furthermore, the game server 120 may be configured to receive game data (for example, player position, player actions, player input, etc.) from client devices 110 via the network 105. For example, the client device 110 may be configured to periodically send player input and other updates to the game server 120, which then updates the game data in the game database 115 to reflect any and all changed conditions of the game.
[0026] In the embodiments shown, the game server 120 includes a universal game module 145, a commercial game module 150, a data collection module 155, an event module 160, a map generation module 170, and a pause detection module 180. As described above, the game server 120 may be part of the game server 120 or interact with a game database 115 that can be accessed remotely (for example, the game database 115 may be a distributed database accessed via a network 105). In other embodiments, the game server 120 includes different and / or additional elements. Furthermore, functionality may be distributed among the elements in ways different from those described. For example, the game database 115 may be integrated into the game server 120. Furthermore, while the pause detection module 180 as described is located on the game server 120, in other embodiments, pause detection is performed on a client device 110, as described above.
[0027] The Universal Game Module 145 hosts a parallel reality game for all players and serves as the authoritative source of the current status of the parallel reality game for all players. As a host, the Universal Game Module 145 generates game content to present to players, for example, via each client device 110. When hosting the parallel reality game, the Universal Game Module 145 may access the game database 115 to retrieve and / or store game data. The Universal Game Module 145 also receives game data (e.g., depth information, player input, player position, player actions, landmark information, etc.) from the client devices 110 and incorporates the received game data into the overall parallel reality game for all players of the parallel reality game. The Universal Game Module 145 may also manage the distribution of game data to the client devices 110 via the network 105. The universal game module 145 may also manage security aspects of the client devices 110, including, but not limited to, ensuring connections between the client devices 110 and the game server 120, establishing connections between various client devices 110, and verifying the locations of various client devices 110.
[0028] In embodiments where one commercial game module 150 is included, it may be separate from or part of the universal game module 145. The commercial game module 150 may manage the inclusion of various game features within a parallel reality game linked to commercial activities in the real world. For example, the commercial game module 150 may receive requests from external systems, such as sponsors / advertisers, corporations, or other entities, via the network 105 (via the network interface), that include game features linked to commercial activities in the parallel reality game. The commercial game module 150 may then arrange to include these game features in the parallel reality game.
[0029] The game server 120 further includes a data collection module 155. In embodiments where one is included, the data collection module 155 may be separate from or part of the universal game module 145. The data collection module 155 may manage to incorporate various game features within a parallel reality game that are linked to data collection activities in the real world. For example, the data collection module 155 may modify game data stored in the game database 115 to include game features linked to data collection activities within the parallel reality game. The data collection module 155 may also analyze data collected by players in accordance with data collection activities and provide data for access by various platforms.
[0030] Event Module 160 manages player access to events in a parallel reality game. While the term “event” is used for convenience, it should be understood that this term does not necessarily refer to a specific event at a specific place or time. Rather, it may refer to any provision of access-controlled game content for which one or more access criteria are used to determine whether a player is permitted to access that content. Such content may be part of a larger parallel reality game containing game content with little or no access control, or it may be a standalone access-controlled parallel reality game.
[0031] The map generation module 170 receives multiple magnetic field measurements from multiple client devices 110. Each magnetic field measurement represents the magnetic field vector at the geographical location where the client device 110 is located at the time the measurement was taken. The magnetic field sensor of the client device 110 can measure the magnetic field vector in the client device's reference coordinate system. To convert these vectors to the Earth's reference coordinate system, the map generation module 170 can determine the orientation of the client device 110 in the Earth's reference coordinate system and, based on the orientation of the client device, convert the magnetic field vector from the device reference coordinate system to the world reference coordinate system. The orientation of the device can be determined based on GNSS (e.g., GPS) data, VIO tracking data, or Visual Positioning System (VPS) data. For example, the client device 110 may capture magnetic field measurements while a VIO tracking session is active. Based on the VIO data, the client device 110 determines the orientation of the device at the time the magnetic field measurement is captured. The client device uses the VIO determination orientation to convert the magnetic field vector from the device reference coordinate system to the world reference coordinate system.
[0032] The map generation module 170 groups magnetic field measurements into one or more region groups based on the geographical location of each measurement. Each region group is associated with a geographical region, and each region group contains magnetic field measurements measured at geographical locations within the region group's geographical region. The grouped magnetic field measurements in each geographical region may include multiple magnetic field vectors of various directions and intensities. The map generation module 170 can further aggregate the magnetic field measurements within each region group to generate a probability distribution of magnetic field vectors associated with the geographical region.
[0033] In some embodiments, the map generation module 170 may input magnetic field measurements to a map generation algorithm. For example, Figure 2 shows a process 200 that uses the map generation module 170 to generate a magnetic field vector map. As shown in Figure 2, the input 205 to the map generation module 170 includes multiple magnetic field measurements received from multiple client devices 110. Each magnetic field measurement includes a measured magnetic field vector and a corresponding geographical location. The output of the map generation module 170 includes a histogram of magnetic field vectors associated with the corresponding geographical regions. The histogram of magnetic field vectors may be an exemplary example of the probability distribution of magnetic field vectors. The histogram may include one or more magnetic field vectors, each with an associated confidence score. For example, in the example shown in Figure 2, the output includes a first magnetic field vector 215 with an associated confidence score of 0.78 and a second magnetic field vector 220 with an associated confidence score of 0.22. The map generation algorithm calculates the confidence score for each magnetic field vector. In some embodiments, each confidence score represents the probability that the magnetic field vector in the corresponding geographical region is correct. In one embodiment, the confidence score may represent the proportion of a particular magnetic field vector among all measured magnetic field vectors within a specific geographical area. For example, in a particular geographical area, 99% of the received magnetic field measurements indicate a magnetic field vector point 5 degrees north-east. Therefore, the confidence score for this magnetic field vector pointing 5 degrees north-east would be determined to be 0.99. Thus, the local magnetic field vector could point 5 degrees north-east instead of north. In an alternative implementation, the confidence score may represent the likelihood of a magnetic field vector being measured in a particular geographical area. For example, in a particular geographical area, a magnetic field vector pointing 5 degrees north-east has a confidence score of 0.99. When the client device 110 passes through this geographical area, the client device 110 can estimate that the measured local magnetic field vector is most likely to point 5 degrees north-east (i.e., with a 99% probability). In some embodiments, the map generation module 170 continuously receives magnetic field measurements from the client device 110 and aggregates additional magnetic field measurements within the geographical area.The additional magnetic field measurements are input to the map generation module 170 to update the magnetic field vector histogram and associated confidence scores.
[0034] Figure 3 shows an exemplary histogram 300 of magnetic field vectors according to one or more embodiments. The histogram 300 is associated with geographical regions. As shown in Figure 3, the histogram 300 may be presented as a bar graph, where each bar represents a specific magnetic field vector having an associated probability or distribution of probabilities that the client device 110 is located in the geographical region associated with the histogram 300. The histogram is not limited to a two-dimensional representation and may encompass a three-dimensional (3D) perspective. A 3D histogram represents the distribution and characteristics of magnetic field vectors in three-dimensional space. Those skilled in the art will understand that other data representations, such as Gaussian models, may be used in other embodiments.
[0035] Histogram 300 represents the probability that the measured magnetic field vectors are oriented in different directions when the client device 110 is located in a geographical area. In Figure 3, histogram 300 includes five magnetic field vectors 302, 304, 306, 608, and 310. Each magnetic field vector may represent the direction of the magnetic field within the geographical area. Assuming that magnetic field vector 306 is in the same direction as geographical north, i.e., 0 degrees relative to north, then magnetic field vector 302 is 10 degrees west, magnetic field vector 304 is 5 degrees west, magnetic field vector 308 is 5 degrees east, and magnetic field vector 310 is 10 degrees east. The confidence score for each magnetic field vector is indicated by the probability associated with the magnetic field vector and may be represented by the height of the corresponding bar in histogram 300. For example, magnetic field vector 306 has the highest confidence score of 0.65, and magnetic field vector 310 has the lowest confidence score of 0.04.
[0036] In some embodiments, the histogram 300 is an exemplary probability distribution that may be used. The histogram represents the probability of a magnetic field vector being measured in a particular geographical area. In one example, the map generation module 170 may construct the histogram 300 based on multiple magnetic field measurements from multiple client devices 110 without comparing the magnetic field measurements to the true local magnetic field vector. The confidence score for each magnetic field vector indicates the probability that a client device 110 measures the corresponding magnetic field vector within a particular geographical area. Magnetic field vector 306 has the highest confidence score of 0.65, indicating the highest probability of being the measured magnetic field vector in this particular geographical area. A client device 110 passing through this particular geographical area has a 65% probability of measuring a magnetic field vector having the same direction as magnetic field vector 306.
[0037] The histogram 300 shown in Figure 3 contains five bars, but those skilled in the art will understand that histograms of various sizes may be used in other embodiments. For example, the magnetic field may be smooth and continuous, and mathematical models or machine learning algorithms may be used to supplement unmeasured magnetic field data. Furthermore, those skilled in the art will recognize alternative means of visualizing the probabilities associated with the underlying magnetic field vectors.
[0038] Returning to Figure 1, the map generation module 170 determines the magnetic field vector within each geographic region based on the corresponding histogram. In some embodiments, the determined magnetic field vector for a geographic region is used to represent the local magnetic field within that geographic region. In this way, the map generation module 170 can generate a magnetic field vector map containing multiple geographic regions, where each geographic region corresponds to a magnetic field vector representing the local magnetic field within that region. Based on the magnetic field vector map, if a specific location is identified on the magnetic field vector map, the local magnetic field at that specific location can be calculated / identified. In some embodiments, the magnetic field vector map can present the local magnetic field in three dimensions (3D). Each point in the magnetic field vector map is associated with a vector indicating at least the 3D direction of the magnetic field vector at that location. In some embodiments, the map generation module 170 can determine the magnetic field vector for a geographic region based on a confidence score for each of the magnetic field vectors in the histogram. For example, the map generation module 170 may select the magnetic field vector with the highest confidence score, such as magnetic field vector 306 in Figure 3. In some implementations, the map generation module 170 may select a magnetic field vector with a confidence score above a score threshold. For example, the map generation module 170 may set the score threshold to 0.05. In this case, the magnetic field vector 310 in Figure 3, which has a confidence score of 0.04, is not considered. In some embodiments, as the map generation module 170 continuously receives magnetic field measurements from the client device 110, the histogram of the magnetic field vectors and their associated confidence scores are also continuously updated. As a result, the map generation module 170 may also continuously update the calculated magnetic field vectors and the corresponding magnetic field vector maps.
[0039] The map generation module 170 may also use a magnetic field model to generate a magnetic field vector map. For example, the map generation module 170 may use data from various sources to construct a magnetic field model and update and improve the model with additional data. In one embodiment, the map generation module 170 may simulate a magnetic field vector map using existing map data. The existing map data may include geographical locations and corresponding geographical features. For example, the map generation module 170 may start with an Earth magnetic field vector map that includes the Earth's magnetic field at any geographical location on Earth. The map generation module 170 may then modify the Earth magnetic field vector map based on geographical features, structures, etc., within a geographical region. For example, one geographical region may include a power plant that affects the local magnetic field. The map generation module 170 may simulate the magnetic effect of the power plant on the local magnetic field, such as changes in direction, intensity, range of effect, etc. Based on the simulated effect, the map generation module 170 may update the magnetic field vector map.
[0040] In some embodiments, the map generation module 170 may use a model to predict the magnetic field vector most likely to represent a local magnetic field within a geographical region. The generated magnetic field vector map includes multiple geographical regions, each corresponding to one or more magnetic field vectors. Each magnetic field vector corresponds to a confidence score indicating the probability that a client device 110 will measure the corresponding magnetic field vector within a particular geographical region. The model may include a machine learning model such as a deep neural network, a regression model, a classifier, or any other suitable type of machine learning model. Histograms of magnetic field vectors, magnetic field measurements, and existing map data may be used to train the machine learning model. The map generation module 170 may take magnetic field measurements as input to predict the magnetic field vectors for a geographical region. Alternatively, the map generation module 170 may take probabilities of magnetic field vectors calculated based on histograms as input to predict the magnetic field vectors. In some embodiments, the model may output confidence scores for the predicted magnetic field vectors. The confidence score for each magnetic field vector indicates the probability that a client device 110 will measure the corresponding magnetic field vector within a particular geographical region. A higher confidence score indicates a higher probability. For example, suppose the map generation module 170 determines a first magnetic field vector with a confidence score of 0.91 and a second magnetic field vector with a confidence score of 0.09 in a particular geographical area, and when the client device 110 passes through this geographical area, there is a 91% probability that the client device 110 will measure the first magnetic field vector and a 9% probability that the client device 110 will measure the second magnetic field vector. In one embodiment, the magnetic field vector with the highest confidence score may be determined as the local magnetic field vector within the particular geographical area. In another implementation, the map generation module 170 may determine a predicted magnetic field vector that has a confidence score that meets or exceeds a score threshold as the magnetic field vector of the geographical area.
[0041] In some embodiments, the map generation module 170 may determine magnetic field vectors within a geographical area using both existing magnetic field vector maps and models. A machine learning model may be used to adjust existing magnetic field vector maps. For example, a machine learning model is trained on geographical data including features such as power plants, signal towers, and railways. The trained machine learning model can then be applied to geographical areas with similar features to predict magnetic field vectors in these areas. The predicted magnetic field vectors may be used to update the magnetic field vector map.
[0042] The pose detection module 180 estimates the pose of the client device 110 based on a magnetic field vector map. The pose of the client device 110 may include its position and orientation. In some embodiments, the client device 110 may transmit user data to the game server 120. The user data may include the user's position on the client device 110 and the magnetic field vector measured at the user's position. The pose detection module 180 may map the user's position to the magnetic field vector map to identify a corresponding geographical area. Based on the geographical area, the pose detection module 180 may determine a local magnetic field vector based on the magnetic field vector map. The determined magnetic field vector may then be compared with the magnetic field vector received from the client device 110, and the pose detection module 180 may estimate the pose of the client device 110 based on the comparison result.
[0043] For example, based on the magnetic field vector map, the determined local magnetic field vector indicates that the local magnetic field vector points geographically east at the user's position. Meanwhile, the magnetic field vector measured by the client device 110 points backward within the client device 110's body coordinate system. Using a rotation matrix, the measured magnetic field vector can be transformed from the client device 110's body coordinate system to the Earth coordinate system, thereby determining the orientation of the client device 110 in physical space. In this case, the determined magnetic field vector is in the Earth coordinate system and can be transformed into the Earth coordinate system. By comparing the determined magnetic field vector with the transformed and measured magnetic field vector, the pose detection module 180 can determine the pose of the client device 110. Here, the pose detection module 180 can infer that the client device 110 is pointing in the opposite direction to geographically east, and that the user is facing west and / or moving west.
[0044] Network 105 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof. The network may also include a direct connection between the client device 110 and the game server 120. In general, communication between the game server 120 and the client device 110 can be transmitted over a network interface using any type of wired and / or wireless connection, using various communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encoding or format (e.g., HTML, XML, JSON), and / or protection scheme (e.g., VPN, Secure HTTP, SSL).
[0045] The technologies disclosed herein refer to servers, databases, software applications, and other computer-based systems, as well as actions performed and information transmitted to and from such systems. Those skilled in the art will recognize that the inherent flexibility of computer-based systems allows for diverse configurations, combinations, and divisions of tasks and functions between and within components. For example, the server processes discussed herein may be implemented using a single server or multiple servers operating in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.
[0046] In addition, in situations where the systems and methods discussed herein access and analyze personal information relating to a user, or use personal information such as location information, the user may be given the opportunity to control whether a program or function collects information, and whether and / or how content is received from the system or other applications. Such information or data will not be collected or used until the user is provided with meaningful notice about what information is collected and how it will be used. No information will be collected or used unless the user consents, and the user may withdraw or change their consent at any time. Thus, the user can control how information about them is collected and used by the application or system. Furthermore, certain information or data may be processed in one or more ways before being stored or used so that personally identifiable information is removed. For example, a user's identity may be processed so that personally identifiable information cannot be determined for the user.
[0047] According to aspects of this disclosure, a player may interact with a parallel reality game by simply carrying a client device 110 in the real world. For example, a player may simply access an application associated with a parallel reality game on a smartphone and play the game by moving around the real world with the smartphone. In this respect, the player does not need to continuously view a visual representation of the virtual world on a display screen to play a location-based game. As a result, the user interface may include several non-visual elements that enable the user to interact with the game. For example, the game interface may provide the player with audible notifications when the player is approaching a virtual element or object in the game, or when an important event occurs in parallel reality. The player may control these audible notifications using audio controls. Different types of audible notifications may be provided to the user depending on the type of virtual element or event. The audible notifications may increase or decrease in frequency or volume depending on the player's proximity to the virtual element or object. Other non-visual notifications and signals, such as vibration notifications or other appropriate notifications or signals, may be provided to the user.
[0048] A person skilled in the art will understand, by using the disclosures provided herein, that numerous game interface configurations and underlying functionalities are evident in light of this disclosure. This disclosure is not intended to be limited to any one specific configuration.
[0049] Figure 4 is a flowchart illustrating one iteration of Method 400, which estimates the pose of a client device using a magnetic field vector map, according to one or more embodiments. The steps in Figure 4 are shown from the perspective of a game server 120 that performs Method 400. However, some or all of the steps may be performed by other entities and / or components. In addition, some embodiments may perform the steps in parallel, in a different order, or perform different steps altogether.
[0050] In the embodiment shown, a game server 120 communicates with client devices 110 via a network 105 to provide a location-based application, such as a parallel reality game, to the user of the client devices 110. Method 400 begins with the game server 120 receiving multiple magnetic field measurements from multiple client devices 110 405. Each magnetic field measurement describes the magnetic field vector at the geographical location where the corresponding client device 110 is located when the magnetic field measurement is taken.
[0051] The game server 120 groups the magnetic field measurements into one or more regional groups based on the geographical location of each magnetic field measurement. Each regional group is associated with a geographical region. The grouped magnetic field measurements in each geographical region may include multiple magnetic field vectors of varying directions and intensities.
[0052] The game server 120 aggregates magnetic field measurements in each region group to generate a histogram of magnetic field vectors associated with geographic regions 415. In some embodiments, the game server 120 may input magnetic field measurements to a map generation algorithm. The input to the map generation algorithm may include multiple magnetic field measurements received from multiple client devices 110. The output of the algorithm may include a histogram of magnetic field vectors associated with corresponding geographic regions, where each magnetic field vector has an associated confidence score. The map generation algorithm is used to calculate the confidence score for each magnetic field vector, where the confidence score represents the probability that the magnetic field vector in the corresponding geographic region is correct.
[0053] In some embodiments, the histogram of magnetic field vectors represents the probability distribution of magnetic field vectors in the relevant geographical region. Each magnetic field vector corresponds to a confidence score indicating the probability that the client device 110 measures the corresponding magnetic field vector within a particular geographical region.
[0054] The game server 120 determines the magnetic field vectors within each geographic region based on the corresponding histograms 420. The determined magnetic field vectors are used to represent the local magnetic field within the geographic region. Alternatively, the game server 120 may determine the local magnetic field vectors based on the probability distribution of magnetic field vectors in the corresponding geographic region 420. For example, the game server 120 may determine the magnetic field vector with the highest probability of representing the local magnetic field vector within the corresponding geographic region. In this way, the map generation module 170 can generate a magnetic field vector map containing multiple geographic regions, where each geographic region corresponds to a magnetic field vector representing the local magnetic field within the geographic region. In some embodiments, the map generation module 170 may determine the magnetic field vectors of geographic regions based on a confidence score for each of the magnetic field vectors in the histogram. In some embodiments, the game server 120 may also generate a magnetic field model for the magnetic field vector map and update the determined magnetic field vectors using the magnetic field model.
[0055] Game server 120 generates a magnetic field vector map 425 that includes the determined magnetic field vector and the corresponding geographical area.
[0056] Based on the magnetic field vector map, the game server 120 can estimate the pose of the client device, for example, the orientation of the client device. The game server 120 receives user data from the client device 110. The user data may include the user's position on the client device 110 and the magnetic field vector measured at the user's position.
[0057] The game server 120 estimates the pose of the client device 110 based on the user's location and the generated magnetic field vector map 435. The pose detection module 180 may map the user's location to the magnetic field vector map to identify a corresponding geographical area. Based on the geographical area, the game server 120 may determine the local magnetic field vector using the magnetic field vector map. The determined magnetic field vector may then be compared with the magnetic field vector received from the client device 110, and the game server 120 may estimate the pose of the client device 110 based on the comparison result.
[0058] (An exemplary computing system) Figure 5 is an exemplary architecture of a computing device in one or more embodiments. Figure 5 shows a high-level block diagram illustrating the physical components of a computer used as some or all of the entities described herein; however, according to one embodiment, a computer may have additions, fewer, or variations of the components provided in Figure 5. Figure 5 shows computer 500, which is intended to illustrate various functions that may be present in a computer system rather than being a structural schematic diagram of the embodiments described herein. In practice, as will be recognized by those skilled in the art, items shown individually may be combined or some items may be separated.
[0059] Figure 5 shows at least one processor 502 coupled to a chipset 504. The chipset 504 is also coupled to memory 506, storage device 508, keyboard 510, graphics adapter 512, pointing device 514, and network adapter 516. A display 518 is coupled to the graphics adapter 512. In one embodiment, the functionality of the chipset 504 is provided by a memory controller hub 520 and an I / O hub 522. In another embodiment, the memory 506 is directly coupled to the processor 502 instead of the chipset 504. In some embodiments, the computer 500 includes one or more communication buses for interconnecting these components. The one or more communication buses optionally include circuits (also called chipsets) that interconnect and control communication between system components.
[0060] The storage device 508 is any non-temporary computer-readable storage medium such as a hard drive, compact disc read-only memory (CD-ROM), DVD, or solid-state memory device or other optical storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device, magnetic disk storage device, optical disk storage device, flash memory device, or other non-volatile solid-state storage device. Such a storage device 408 may also be referred to as persistent memory. The pointing device 514 may be a mouse, trackball, or other type of pointing device, used in conjunction with the keyboard 510 to input data to the computer 500. The graphics adapter 512 displays images and other information on the display 518. The network adapter 516 connects the computer 500 to a local or wide area network.
[0061] Memory 506 holds instructions and data used by the processor 502. Memory 506 may be non-persistent memory, and examples include high-speed random-access memory such as DRAM, SRAM, DDRRAM, ROM, EEPROM, and flash memory.
[0062] As is known in the art, the computer 500 may have components different from and / or other components shown in Figure 5. In addition, the computer 500 may lack certain exemplary components. In one embodiment, the computer 500, which functions as a server, may lack a keyboard 510, a pointing device 514, a graphics adapter 512, and / or a display 518. Furthermore, the storage device 508 may be local and / or remote to the computer 500 (for example, implemented within a storage area network (SAN)).
[0063] As is known in the art, the computer 500 is adapted to run a computer program module for providing the functions described herein. As used herein, the term “module” refers to the computer program logic used to provide the specified functions. Thus, a module may be implemented in hardware, firmware, and / or software. In one embodiment, the program module is stored in storage device 508, loaded into memory 506, and executed by processor 502.
[0064] (Additional considerations) In some parts of the above description, embodiments are described in terms of algorithmic processes or operations. These descriptions and representations of algorithms are commonly used by those skilled in the art in data processing technologies to effectively communicate their work to those skilled in other arts. While these operations are described functionally, computationally, or logically, they are understood to be implemented by computer programs, including instructions for execution by a processor or equivalent electrical circuit, microcode, etc. Furthermore, it has proven that it is sometimes convenient to refer to these arrangements of functional operations as modules without losing universality.
[0065] Where used herein, a reference to “one embodiment” or “one embodiment” means that a particular element, feature, structure, or characteristic described in relation to that embodiment is included in at least one embodiment. Appearances of the phrase “in one embodiment” in different parts of the specification do not necessarily all refer to the same embodiment.
[0066] Some embodiments may be described using the terms “joined” and “connected,” as well as their derivatives. It should be understood that these terms are not intended to be synonymous with one another. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct, physical, or electrical contact with each other. In another example, some embodiments may be described using the term “joined” to indicate that two or more elements are in direct, physical, or electrical contact with each other. However, the term “joined” can also mean that two or more elements are not in direct contact with each other but still cooperate or interact with each other. Embodiments are not limited to this context.
[0067] As used herein, the terms “to include,” “to have,” “to have,” “to include,” “to have,” “to have,” or other variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, article, or apparatus that includes a list of elements is not necessarily limited to those elements alone, and may include elements not expressly listed or elements specific to that process, method, article, or apparatus. Furthermore, unless the opposite is explicitly stated, “or” refers to an inclusive “or” rather than an exclusive “or.” For example, condition A or B is satisfied by any one of the following: A is true (or exists) and B is false (or does not exist), A is false (or does not exist) and B is true (or exists), and both A and B are true (or exist).
[0068] Furthermore, the use of “a” or “an” is employed to describe elements and components of embodiments herein. This is done solely for convenience and to give a general meaning to the disclosure. This description should be read as including one or at least one, and singular forms include plural forms unless it is clear that this is not the case. When a value is described as “about” or “substantially” (or their derivatives), such a value should be interpreted as exactly + / - 10% unless a different meaning is clear from the context. From the example, “about 10” should be understood to mean “within the range of 9 to 11.”
[0069] A person skilled in the art will understand, upon reading this disclosure, further additional alternative structural and functional designs for systems and processes for determining the pose of a client device. Therefore, although specific embodiments and applications have been illustrated and described, it should be understood that the subject matter described is not limited to the exact structures and components disclosed herein, and various modifications, changes, and variations that will be apparent to a person skilled in the art may be made in the arrangement, operation, and details of the disclosed methods and apparatus. The scope of protection should be limited only by the following claims.
Claims
1. A method implemented by a computer, Receiving multiple magnetic field measurements from multiple client devices, wherein each magnetic field measurement describes a magnetic field vector measured by the client device at a geographical location. Grouping the magnetic field measurements into one or more region groups based on the geographical location of each magnetic field measurement, wherein each region group is associated with a geographical region, and each region group includes magnetic field measurements measured at geographical locations within the geographical region of the region group. The magnetic field measurements within each region group are aggregated to generate a probability distribution of the magnetic field vector associated with the geographic region, The process involves determining the magnetic field vector within each geographical region based on the aforementioned probability distribution, wherein the determined magnetic field vector is a vector that predicts the local magnetic field within the geographical region. To generate a magnetic field vector map that associates the determined magnetic field vector with the corresponding geographical region, Receiving user data from a client device, wherein the user data describes the user's position on the client device and the magnetic field vector at the user's position. A method comprising estimating the pose of the client device based on the user data and the generated magnetic field vector map.
2. Estimating the pose of the client device based on the user data and the generated magnetic field vector map is: The user's location is mapped onto the magnetic field vector map to identify the geographical area corresponding to the user's location. Based on the aforementioned magnetic field vector map, the local magnetic field vector corresponding to the geographical region is determined, The determined local magnetic field vector is compared with the user magnetic field vector received from the client device, The method according to claim 1, comprising estimating the pause of the client device based on the comparison.
3. Determining the magnetic field vector within each geographical region based on the aforementioned probability distribution is: Determining a confidence score for each of the magnetic field vectors within the geographical area, wherein the confidence score indicates the probability that the corresponding magnetic field vector is measured within the geographical area. The method according to claim 1, comprising determining the local magnetic field vector of the geographical area based on the confidence score for each of the aforementioned magnetic field vectors.
4. Determining the magnetic field vector of the geographical region based on the confidence score for each of the aforementioned magnetic field vectors is: The method according to claim 3, comprising selecting a magnetic field vector having a confidence score equal to or greater than a score threshold from among the magnetic field vectors within the geographical region.
5. The process involves aggregating additional magnetic field measurements within the aforementioned geographical area and updating the probability distribution of the magnetic field vector, The reliability score for each of the aforementioned magnetic field vectors is updated, The method according to claim 3, further comprising determining the magnetic field vector of the geographic region using the updated confidence score.
6. The method according to claim 1, wherein the determined magnetic field vector is a vector that predicts the true magnetic field within the geographical area.
7. Generating the aforementioned magnetic field vector map is, To simulate the magnetic field vector map based on geographical location and geographical features, The method according to claim 1, comprising updating the magnetic field vector map using the probability distribution of the magnetic field vector.
8. Determining the magnetic field vectors within each geographical region based on the aforementioned probability distribution is: Inputting the probability distribution of the magnetic field vector into a machine learning model, To predict the magnetic field vector that is most likely to represent the local magnetic field within the aforementioned geographical region, The method according to claim 1, comprising determining the predicted magnetic field vector as the determined magnetic field vector within the geographical area.
9. The method according to claim 1, wherein the magnetic field measurement is captured from magnetic sensors of a plurality of mobile devices.
10. A non-temporary computer-readable storage medium containing instructions executable by a processor, Receiving multiple magnetic field measurements from multiple client devices, and describing the magnetic field vector measured by the client devices at a geographical location, Grouping the magnetic field measurements into one or more region groups based on the geographical location of each magnetic field measurement, wherein each region group is associated with a geographical region, and each region group includes magnetic field measurements measured at geographical locations within the geographical region of the region group. The magnetic field measurements within each region group are aggregated to generate a probability distribution of the magnetic field vector associated with the geographic region, The process involves determining the magnetic field vector within each geographical region based on the aforementioned probability distribution, wherein the determined magnetic field vector is a vector that predicts the local magnetic field within the geographical region. To generate a magnetic field vector map including the determined magnetic field vector and the corresponding geographical region, Receiving user data from a client device, wherein the user data describes the user's position on the client device and the magnetic field vector at the user's position. A non-temporary computer-readable storage medium, including estimating the pause of the client device based on the user data and the generated magnetic field vector map.
11. Estimating the pose of the client device based on the user data and the generated magnetic field vector map is: The user's location is mapped onto the magnetic field vector map to identify the geographical area corresponding to the user's location. Based on the aforementioned magnetic field vector map, the local magnetic field vector corresponding to the geographical region is determined, The determined local magnetic field vector is compared with the user magnetic field vector received from the client device, A non-temporary computer-readable storage medium according to claim 10, comprising estimating the pause of the client device based on the comparison.
12. Determining the magnetic field vector within each geographical region based on the aforementioned probability distribution is: Determining a confidence score for each of the magnetic field vectors within the geographical area, wherein the confidence score indicates the probability that the corresponding magnetic field vector is measured within the geographical area. A non-temporary computer-readable storage medium according to claim 10, comprising determining the local magnetic field vector of the geographical area based on the confidence score for each of the aforementioned magnetic field vectors.
13. Determining the magnetic field vector of the geographical region based on the confidence score for each of the aforementioned magnetic field vectors is: A non-temporary computer-readable storage medium according to claim 12, comprising selecting a magnetic field vector having a confidence score equal to or greater than a score threshold from the magnetic field vectors within the geographical area.
14. The aforementioned operation is, The process involves aggregating additional magnetic field measurements within the aforementioned geographical area and updating the probability distribution of the magnetic field vector, The reliability score for each of the aforementioned magnetic field vectors is updated, The non-temporary computer-readable storage medium according to claim 12, further comprising determining the magnetic field vector of the geographical region using the updated confidence score.
15. The non-temporary computer-readable storage medium according to claim 10, wherein the determined magnetic field vector is a vector that predicts the true magnetic field within the geographical area.
16. Generating the aforementioned magnetic field vector map is, To simulate the magnetic field vector map based on geographical location and geographical features, A non-temporary computer-readable storage medium according to claim 10, comprising updating the magnetic field vector map using the probability distribution of the magnetic field vectors.
17. Determining the magnetic field vectors within each geographical region based on the aforementioned probability distribution is: Inputting the probability distribution of the magnetic field vector into a machine learning model, To predict the magnetic field vector that is most likely to represent the local magnetic field within the aforementioned geographical region, A non-temporary computer-readable storage medium according to claim 10, comprising determining the predicted magnetic field vector as the determined magnetic field vector within the geographical area.
18. The non-temporary computer-readable storage medium according to claim 10, wherein the magnetic field measurement values are captured from magnetic sensors of multiple mobile devices.
19. A computer system, At least one processor, A non-temporary computer-readable medium containing stored instructions, wherein, when the instructions are executed by the at least one processor, the at least one processor receives Multiple magnetic field measurements are received from multiple client devices, and each magnetic field measurement describes the magnetic field vector measured by the client device at a geographical location. Based on the geographical location of each magnetic field measurement, the magnetic field measurements are grouped into one or more region groups, each region group is associated with a geographical region, and each region group includes magnetic field measurements measured at geographical locations within the geographical region of the region group. The magnetic field measurements within each region group are aggregated to generate a probability distribution of the magnetic field vector associated with the geographic region. Based on the aforementioned probability distribution, the magnetic field vector within each geographical region is determined, and the determined magnetic field vector is the vector that predicts the local magnetic field within the geographical region. A magnetic field vector map is generated that includes the determined magnetic field vector and the corresponding geographical region. The system receives user data from a client device, and the user data describes the user's position on the client device and the magnetic field vector at the user's position. Estimate the pose of the client device based on the user data and the generated magnetic field vector map. A computer system including a non-temporary computer-readable medium that causes the execution of a certain action.
20. The instruction for estimating the pose of the client device based on the user data and the generated magnetic field vector map is: The user's location is mapped onto the magnetic field vector map to identify the geographical area corresponding to the user's location. Based on the aforementioned magnetic field vector map, the local magnetic field vector corresponding to the geographical region is determined, The determined local magnetic field vector is compared with the user magnetic field vector received from the client device, The computer system according to claim 19, comprising estimating the pause of the client device based on the comparison.