Machine learning based positioning

JP2024541809A5Pending Publication Date: 2025-10-22APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024519840
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-10-13
Filing Date
2022-10-12
Publication Date
2025-10-22

AI Technical Summary

Technical Problem

Existing navigation systems in mobile devices suffer from inaccuracies in positioning due to reliance on single data sources, leading to suboptimal route calculations and personalization.

Method used

A hybrid positioning system utilizing machine learning to combine multiple positioning methods, including inertial sensors and satellite-based systems, with a UE-based fingerprinting system using signal strength indicators to enhance accuracy.

Benefits of technology

Improves positioning accuracy by integrating diverse data sources through machine learning, reducing latency and enhancing route determination and personalization capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Methods, systems, and computer-readable media are disclosed for performing operations including receiving a plurality of position estimates for a user device, providing the plurality of position estimates as inputs to a trained machine learning model, and outputting a hybrid position of the user device.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Provisional Patent Application No. 63 / 255,393, entitled "Machine Learning Based Positioning," filed on October 13, 2021.

[0002] Modern mobile devices (e.g., smartphones, e-tablets, wearable devices) include navigation systems. Navigation systems can include a microprocessor that executes a software navigation application that determines the current location and direction of travel of the mobile device using data from one or more inertial sensors (e.g., accelerometer, gyro, magnetometer) and position coordinates from a positioning system (e.g., satellite-based, network-based). The navigation application allows a user to input a desired destination and calculates a route from the current location to the destination according to the user's preferences. The map display includes markers indicating the current location of the mobile device, the desired destination, and points of interest (POI) along the route. Some navigation applications can provide turn-by-turn instructions to the user. The instructions can be presented to the user by a navigation assistant on the map display and / or through an audio output. Other mobile device applications can use location for personalization and context. Summary of the Invention

[0003] This disclosure describes methods and systems for using machine learning to improve positioning accuracy of user devices. More specifically, this disclosure describes hybrid positioning systems and user equipment (UE)-based fingerprinting systems. As described in more detail below, these systems use machine learning to improve positioning accuracy of user devices, for example, in wireless communication systems.

[0004] According to one aspect of the disclosure, a method includes receiving a plurality of position estimates for a user device, providing the plurality of position estimates as inputs to a trained machine learning model, and outputting a hybrid position of the user device.

[0005] The foregoing implementations are applicable using a computer system including a computer-implemented method, a non-transitory computer-readable medium storing computer-readable instructions for performing the computer-implemented method, and a computer memory interoperably coupled with a hardware processor configured to execute the computer-implemented method or the instructions stored in the non-transitory computer-readable medium. Each of these and other embodiments can optionally include one or more of the following features.

[0006] In some implementations, multiple position estimates are generated from multiple positioning methods.

[0007] In some implementations, the hybrid position is a weighted average of multiple position estimates.

[0008] In some implementations, the machine learning model is trained using a machine learning algorithm, hi some implementations, the machine learning algorithm is a supervised learning algorithm.

[0009] In some implementations, the machine learning training includes comparing an output of the machine learning model to reference location information, hi some implementations, the reference location information is known location information.

[0010] In some implementations, the method is performed by a user device.

[0011] In some implementations, the method is performed by a network entity.

[0012] In some implementations, the network entity is an LMF.

[0013] In some implementations, the method further includes receiving a first message from a network entity requesting the hybrid position and generating a second message to communicate the hybrid position to the network entity.

[0014] In some implementations, the first message is a RequestLocationInformation message from the network and the second message is an LPP ProvideLocationInformation message.

[0015] In some implementations, the method further includes generating a request for the machine learning model, communicating the request in a first message to a training node, and receiving the machine learning model in a second message from the training node.

[0016] In some implementations, the first message is an LPP RequestAssistanceData message and the second message is an LPP ProvideAssistanceData message.

[0017] In some implementations, the first message is an LPP message RequestUEAssistanceData and the second message is an LPP ProvideUEAssistanceData message.

[0018] According to another aspect of the disclosure, a method includes receiving a map of radio frequency measurements, measuring individual signal strength indicator values ​​for one or more signals received by a user device, and determining a position of the user device based on the individual signal strength indicator values ​​for the one or more signals received by the user device.

[0019] The foregoing implementations are applicable using a computer system including a computer-implemented method, a non-transitory computer-readable medium storing computer-readable instructions for performing the computer-implemented method, and a computer memory interoperably coupled with a hardware processor configured to execute the computer-implemented method or the instructions stored in the non-transitory computer-readable medium. Each of these and other embodiments can optionally include one or more of the following features.

[0020] In some implementations, using the map to determine the position of the user device includes comparing individual signal strength indicator values ​​to the map and identifying k-nearest neighbor matches to the individual signal strength indicator values.

[0021] In some implementations, the comparison is performed using a k-nearest neighbor (KNN) algorithm.

[0022] In some implementations, identifying the k-nearest neighbor matches includes using Euclidean distances between the individual signal strength indicator values ​​and one or more reference values ​​in the map.

[0023] In some implementations, the method further includes calculating a position based on the k-nearest neighbor fingerprints.

[0024] In some implementations, calculating the position based on the k-nearest neighbor fingerprints includes averaging positions associated with the k-nearest neighbor matches.

[0025] The details of one or more implementations of the subject matter of this specification are set forth in the detailed description, the accompanying drawings, and the claims. Other features, aspects, and advantages of the subject matter will become apparent from the description, claims, and accompanying drawings. [Brief description of the drawings]

[0026] [Figure 1] FIG. 1 illustrates a wireless communication system according to some implementations.

[0027] [Diagram 2] FIG. 1 illustrates an exemplary hybrid positioning system, according to some implementations.

[0028] [Diagram 3] FIG. 1 illustrates an example hybrid positioning workflow, according to some implementations.

[0029] [Figure 4] FIG. 1 illustrates a user device-based (UE-based) fingerprinting positioning system according to some implementations.

[0030] [Figure 5A] FIG. 1 illustrates a hybrid positioning method according to some implementations.

[0031] [Figure 5B] A diagram showing a UE-based fingerprinting positioning method according to some implementations.

[0032] [Figure 6] FIG. 1 is a block diagram of an example device architecture, according to some implementations.

[0033] [Figure 7] FIG. 1 illustrates an exemplary wireless communication system according to some implementations.

[0034] Like reference numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] The following detailed description refers to the accompanying drawings. The same reference numbers may be used in different drawings to identify the same or similar elements. In the following description, for purposes of explanation and not limitation, specific details are set forth, such as particular structures, architectures, interfaces, techniques, etc., to provide a thorough understanding of various aspects of the various embodiments. However, it will be apparent to one of ordinary skill in the art having the benefit of this disclosure that various aspects of the various embodiments may be implemented in other examples that depart from these specific details. In some cases, descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the various embodiments with unnecessary detail. For purposes of this disclosure, "A or B" means (A), (B), or (A and B).

[0036] This disclosure describes methods and systems for using machine learning to improve positioning accuracy of user devices. More specifically, this disclosure describes hybrid positioning systems and user equipment (UE)-based fingerprinting systems. As described in more detail below, these systems use machine learning to improve positioning accuracy of user devices, for example, in wireless communication systems.

[0037] FIG. 1 illustrates a wireless communication system 100 according to some implementations. For convenience, but not for limitation, the exemplary system 100 is described in the context of Long Term Evolution (LTE) and Fifth Generation (5G) New Radio (NR) communication standards defined by the Third Generation Partnership Project (3GPP) technical specifications. More specifically, the wireless communication system 100 is described in the context of a non-standalone (NSA) network incorporating both LTE and NR, such as an Evolved Universal Terrestrial Radio Access (E-UTRA)-NR dual connectivity (EN-DC) network and a NE-DC network. However, the wireless communication system 100 may be a stand-alone (SA) network incorporating only NR. Additionally, other types of communication standards are possible, including future 3GPP systems (e.g., sixth generation (6G)) systems, IEEE 802.16 protocols (e.g., WMAN, WiMAX, etc.), and the like.

[0038] 1, the wireless communication system 100 includes a user device 102. The user device 102 may include any mobile or non-mobile computing device, such as a consumer device, a mobile phone, a smart phone, a feature phone, a tablet computer, a wearable computing device, etc.

[0039] The user device 102 may be configured to connect to a Radio Access Network (RAN) 104, for example by being communicatively coupled to it. In an embodiment, the RAN 104 may be an NG RAN or a 5G RAN, an E-UTRAN, or a legacy RAN such as a UTRAN or a GERAN. As used herein, the terms "NG RAN" and the like may refer to a RAN operating in a NR or 5G system, and the terms "E-UTRAN" and the like may refer to a RAN operating in a LTE or 4G system. The user device 102 utilizes a connection (or channel) 108 that comprises a physical communication interface or layer.

[0040] In one example, the connection 108 is an air interface for enabling a communication coupling and may correspond to a cellular communication protocol such as a GSM protocol, a CDMA network protocol, a PTT protocol, a POC protocol, a UMTS protocol, a 3GPP LTE protocol, an Advanced Long Term Evolution (LTE-A) protocol, an LTE-based access to unlicensed spectrum (LTE-U), a 5G protocol, an NR protocol, an NR-based access to unlicensed spectrum (NR-U) protocol, and / or any of the other communication protocols described herein.

[0041] 1, the wireless communication system 100 also includes a Location Management Function (LMF) 106. The LMF 106 is a network entity within a 5G Core Network (5GC) that supports one or more of the following functions: (i) determining the location of a user device (e.g., the user device 102), (ii) obtaining downlink location measurements or location estimates from a user device (e.g., the user device 102), (iii) obtaining uplink location measurements from a RAN (e.g., the RAN 104), and (iv) obtaining non-UE related assistance data from a RAN (e.g., the RAN 104). Thus, the LMF 106 can receive information from the user device 102 and / or the RAN 104 and can use the information to calculate the position of the user device 102. The information can include measurements and assistance information. Although the LMF 106 is shown in FIG. 1 as being directly connected to the RAN 104 via connection 110, the LMF 106 may alternatively be indirectly connected to the RAN, for example, via an Access and Mobility Management Function (AMF) connected to the LMF 106 via an NL interface.

[0042] In some embodiments, a positioning protocol A (e.g., NRPPa) is used to carry positioning information between the RAN 104 and the LMF 106 over a Next Generation Control Plane Interface (NG-C). The LMF 106 configures the user device 102 using the LTE Positioning Protocol (LPP) over the AMF. The LPP is terminated between the target device (e.g., the user device 102) and the positioning server (e.g., the LMF 106). It may use either a control plane protocol or a user plane protocol as the underlying transport.

[0043] In some embodiments, the wireless communication system 100 may include a hybrid positioning system that uses positioning data (e.g., positioning estimates) from multiple positioning methods to calculate a user device position (also referred to as a "hybrid position" or "hybrid position estimate"), as described in more detail below.

[0044] 2 illustrates an example hybrid positioning system 200, according to some implementations. The hybrid positioning system 200 may be implemented by a user device, a network (e.g., a network device), or both a user device and a network (e.g., some functions of the system are implemented on the user device and other functions are implemented on the network).

[0045] In some embodiments, the hybrid positioning system 200 obtains positioning information for a user device from multiple positioning methods. The hybrid positioning system 200 then stores the positioning information as positioning data 202. The positioning data 202 may include positioning estimates calculated using the multiple positioning methods. The multiple positioning methods may be performed by the user device and / or another device (e.g., a network device). In an example, the multiple positioning methods may include one or more of RAT-dependent positioning methods, such as Extended Cell ID (E-CellID), Multi-Cell Round Trip Time (Multi-RTT), Downlink Angle of Launch (DL-AoD), Downlink Time Difference of Arrival (DL-TDOA), Uplink Time Difference of Arrival (UL-TDOA), Uplink Angle of Arrival (UL-AOA), etc. Additionally and / or alternatively, the multiple positioning methods may include one or more of RAT-independent positioning methods, such as Global Navigation Satellite System (GNSS), Wireless Local Area Network (WLAN) methods, Bluetooth (BT) methods, Terrestrial Beacon System (TBS), etc.

[0046] In some embodiments, the hybrid positioning system 200 calculates hybrid positioning data for the user device based on the positioning data 202. In one example, the hybrid positioning system 200 calculates the hybrid positioning data by calculating a weighted average of the positioning data 202. Specifically, the hybrid positioning system 200 applies different weighting factors to different positioning estimates to calculate a final “hybrid” positioning estimate.

[0047] In some embodiments, the hybrid positioning system 200 uses one or more machine learning algorithms to train a machine learning model. In some examples, the hybrid positioning system 200 includes a trained machine learning model 204. The machine learning model 204 generates a location estimate based on one or more inputs. The inputs to the machine learning model include positioning estimates generated by one or more positioning methods supported by the UE or the network (e.g., LMF). Additionally and / or alternatively, the inputs may include a coarse location of the device (e.g., cell ID, tracking area (TA), etc.), a current time, and / or whether the device is indoor / outdoor (e.g., a binary indication). The output of the machine learning model is a hybrid positioning estimate.

[0048] In some embodiments, training includes comparing the output of the machine learning model 204 to reference location information (e.g., information obtained using other positioning methods, e.g., GNSS). Comparison with a reference location may be used, for example, for NN backpropagation training. The training phase may be performed by the hybrid positioning system 200 (e.g., at the user device or at the network) and / or by another system (e.g., a designated training system). The node or nodes on which the training phase is performed are referred to as training nodes. The machine learning model 204 may be used in the same device (e.g., LMF or UE) on which it was trained, or may be transmitted to another device (LMF or UE). The node or nodes that use the machine learning model 204 are referred to as inference nodes.

[0049] In some embodiments, the machine learning model 204 may be trained using a machine learning algorithm, such as supervised learning. In supervised learning, an input of interest and a corresponding output are provided to the machine learning model 204. The machine learning model 204 adjusts its function (e.g., in the case of a neural network, one or more weights associated with two or more nodes in two or more different layers) based on a comparison of the output of the machine learning model 204 to an expected output to provide a desired output when a subsequent input is provided. Examples of supervised learning algorithms include deep neural networks, similarity learning, linear regression, random forests, k-nearest neighbors, support vector machines, and decision trees.

[0050] In some embodiments, during an inference phase, which may be performed at the user device or the network (e.g., LMF), two or more positioning methods are used and their outputs are fed into a trained ML model that generates a hybrid positioning estimate.

[0051] FIG. 3 illustrates an example hybrid positioning workflow 300 according to some implementations. The hybrid positioning workflow 300 may be performed during an inference phase by a user device and / or a network (e.g., LMF). As shown in FIG. 3, position estimates from multiple positioning methods are fed into a machine learning model 302. In the example of FIG. 3, three position estimates from three positioning methods are input to the machine learning model 302. However, in other examples, any multiple position estimates may be used as input. In addition, other information such as a coarse location of the device, a current time, and / or whether the device is indoors / outdoors may also be input to the machine learning model 302. Also as shown in FIG. 3, the output from the machine learning model 302 is a hybrid position estimate 304. As previously described, the hybrid position estimate 304 may be a weighted sum of the input position estimates, where the weights are determined by the machine learning model 302.

[0052] In some embodiments, signaling extensions for the user device and / or the network are implemented to support the hybrid positioning system 200. In one example, extensions are made to the signaling between the user device and the network to support requesting and receiving hybrid positioning estimates. As an example, in an implementation in which the user device calculates a hybrid positioning estimate, the LPP RequestLocationInformation message from the network to the user device is modified to allow the network (e.g., the LMF) to request a hybrid positioning estimate from the user device. Additionally, the LPP ProvideLocationInformation message from the user device to the network is modified to provide hybrid positioning results.

[0053] In some embodiments, the positioning protocol is extended to support model transfer to allow training at one node (e.g., user device or network) and inference at another node (the other of the user device or network). As an example, in an implementation where model training is performed by the network, the LPP RequestAssistanceData message from the user device to the network is modified to allow the user device to request a hybrid positioning ML model (e.g., machine learning model 204). The RequestAssistanceData message may trigger an ML training phase, or ML training may be performed prior to the request. Additionally, the LPP ProvideAssistanceData (network to user device) is modified to provide the hybrid positioning ML model.

[0054] In some embodiments, a new LPP procedure may be defined to transfer the trained ML model from the user device to the network (if the model training is performed by the user device). The new LPP procedure may include an LPP message RequestUEAssistanceData from the network to the user device. Additionally, the new LPP procedure may include an LPP message ProvideUEAssistanceData from the user device to the network.

[0055] In some embodiments, the machine learning model may be updated continuously or periodically as the training node acquires more training data points. To determine the version of the machine learning model currently being used, each iteration of the machine learning model may be assigned a version identifier. The inference node may use the version identifier in a request for the machine learning model from the training node. If the inference node already has the latest version of the machine learning model, the training node may inform the inference node as such. The signaling described herein may include a field that includes the version identifier.

[0056] In some embodiments, the wireless communication system 100 may additionally and / or alternatively include a UE-based fingerprinting positioning system. Fingerprinting positioning is a technique that develops a radio frequency (RF) map of a particular area of ​​a location or environment based on, for example, predefined received signal strength indicator (RSSI) values ​​emanating from Wi-Fi connected devices or other wireless connection "hotspots". Currently, fingerprinting may be implemented by the network. Because fingerprinting is implemented on the network side, the positioning system may suffer from latency issues and may not be available to user devices that are out of coverage. The advantages of a user device-based fingerprinting positioning system are at least lower latency and out-of-coverage positioning.

[0057] 4 is a diagram illustrating a user device-based (UE-based) fingerprinting positioning system 400 according to some implementations. The UE-based fingerprinting positioning system 400 may be implemented by a user device.

[0058] In some embodiments, the user device receives a map of RF measurements. The map may be generated by the user device or another device (e.g., a network device or another user device). The map may be of a particular area of ​​a location or environment based on a given received signal strength indicator (RSSI) value. The map is stored on the user device as map 402.

[0059] In some embodiments, the positioning module 404 uses the map 402 to determine the position of the user device. The positioning module 404 uses the signal strength indicator value (e.g., RSSI) of the user device to the network. The value is then compared to the map (e.g., using a k-nearest neighbor (KNN) algorithm) to find the best match. A k-nearest neighbor fingerprint is found in the map 402, for example, by using the Euclidean distance between the measured RSSI and a referenced RSSI from the map 402. A positioning estimate is then calculated based on these k-nearest neighbor fingerprints, for example, by averaging their reference point locations.

[0060] In some embodiments, to support the UE-based fingerprinting positioning system 400, a signaling extension for the user device and / or the network is implemented. In one example, the signaling extension defines how to transfer the map to the user device. This can be achieved by (i) extending the existing LPP messages: RequestAssistanceData (user device to network) and ProvideAssistanceData (network to user device), or (ii) by new LPP messages: RequestMapInformation (user device to network) and ProvideMapInformation (network to user device). The messages can be used to transfer the entire map or a part of the map available in the network. In the latter case, the request from the user device can carry a coarse user device location. Alternatively, the network can estimate the coarse user device location based on, for example, the TA or cell id of the user device.

[0061] In some embodiments, new user device capabilities may be implemented to support the system described herein. The new user device capabilities include support for hybrid positioning and / or support for UE-based fingerprinting positioning. In addition, a capability to provide ML models for hybrid positioning may be introduced. To support these new capabilities, the following LPP messages are extended: RequestCapabilities (for the network to request user device capabilities) and ProvideCapabilities (for the user device to provide capabilities to the network).

[0062] 5A illustrates a hybrid positioning method 500 according to some implementations. For clarity of presentation, the following description generally describes the method 500 in the context of other figures in this description. For example, the method 500 may be performed by a network entity, e.g., the LMF 106, or by a user device, e.g., the user device 102. It will be appreciated that the method 500 may be performed, for example, by any suitable system, environment, software, hardware, or combination of systems, environments, software, and hardware, as appropriate. In some implementations, various steps of the method 500 may be performed in parallel, in combination, in a loop, or in any order.

[0063] At step 502, the method 500 includes receiving a plurality of position estimates for the user device. The multiple position estimates may be generated from a plurality of positioning methods.

[0064] In step 504, the method 500 includes providing a plurality of position estimates as input to a trained machine learning model.

[0065] At step 506, the method 500 includes outputting a hybrid position of the user device. In some implementations, the hybrid position is a weighted average of multiple position estimates.

[0066] In some implementations, the machine learning model is trained using a machine learning algorithm, hi some implementations, the machine learning algorithm is a supervised learning algorithm.

[0067] In some implementations, the machine learning training includes comparing an output of the machine learning model to reference location information, hi some implementations, the reference location information is known location information.

[0068] In some implementations, the method 500 is performed by a user device.

[0069] In some implementations, the method 500 is performed by a network entity.

[0070] In some implementations, the network entity is an LMF.

[0071] In some implementations, the method 500 further includes receiving a first message from a network entity requesting the hybrid position and generating a second message to communicate the hybrid position to the network entity.

[0072] In some implementations, the first message is a RequestLocationInformation message from the network and the second message is an LPP ProvideLocationInformation message.

[0073] In some implementations, the method 500 further includes generating a request for the machine learning model, communicating the request in a first message to a training node, and receiving the machine learning model in a second message from the training node.

[0074] In some implementations, the first message is an LPP RequestAssistanceData message and the second message is an LPP ProvideAssistanceData message.

[0075] In some implementations, the first message is an LPP message RequestUEAssistanceData and the second message is an LPP ProvideUEAssistanceData message.

[0076] 5B is a diagram illustrating a UE-based fingerprinting positioning method 520 according to some implementations. For clarity of presentation, the following description generally describes the method 520 in the context of other figures in this description. For example, the method 520 may be performed by a user device, such as the user device 102. It will be appreciated that the method 520 may be suitably performed by, for example, any suitable system, environment, software, hardware, or combination of systems, environments, software, and hardware. In some implementations, various steps of the method 520 may be performed in parallel, in combination, in a loop, or in any order.

[0077] At step 522, the method 500 includes receiving a map of radio frequency measurements. The map may be generated by the user device or another device (e.g., a network device). The map may be of a particular area of ​​a location or environment based on predetermined received signal strength indicator (RSSI) values.

[0078] At step 524, the method 500 includes measuring individual signal strength indicator values ​​for one or more signals received by the user device. In some implementations, the values ​​are compared to a map (e.g., using a k-nearest neighbor (KNN) algorithm) to find the best match. A k-nearest neighbor fingerprint is found in the map by using the Euclidean distance between the measurement value and a reference value from the map. A positioning estimate is then calculated based on these k-nearest neighbor fingerprints by averaging their reference point locations. In some examples, the value of k is determined through an iterative process (e.g., trial and error).

[0079] In step 526, the method 500 includes determining a position of the user device based on the respective signal strength indicator values ​​for the one or more signals received by the user device.

[0080] In some implementations, using the map to determine the position of the user device includes comparing individual signal strength indicator values ​​to the map and identifying k-nearest neighbor matches to the individual signal strength indicator values.

[0081] In some implementations, the comparison is performed using a k-nearest neighbor (KNN) algorithm.

[0082] In some implementations, identifying the k-nearest neighbor matches includes using a Euclidean distance between the individual signal strength indicator values ​​and one or more reference values ​​in the map.

[0083] In some implementations, the method 520 further includes calculating a position based on the k-nearest neighbor fingerprints.

[0084] In some implementations, calculating the position based on the k-nearest neighbor fingerprints includes averaging positions associated with the k-nearest neighbor matches.

[0085] Figure 6 is a block diagram of an example device architecture 600 for implementing the features and processes described with reference to Figures 1 through 5B. For example, the architecture 600 can be used to implement the user device 102 and / or the LMF 106. The architecture 600 can be implemented in any device for producing the features described with reference to Figures 1 through 5B, including, but not limited to, a desktop computer, a server computer, a portable computer, a smartphone, a tablet computer, a game console, a wearable computer, a set-top box, a media player, a smart TV, etc.

[0086] The architecture 600 may include a memory interface 602, one or more data processors 604, one or more data coprocessors 674, and a peripherals interface 606. The memory interface 602, the processor(s) 604, the coprocessor(s) 674, and / or the peripherals interface 606 may be separate components or may be integrated within one or more integrated circuits. One or more communication buses or signal lines may couple the various components.

[0087] The processor(s) 604 and / or the coprocessor(s) 674 may cooperate to perform the operations described herein. For example, the processor(s) 604 may include one or more central processing units (CPUs) configured to function as a primary computer processor for the architecture 600. As an example, the processor(s) 604 may be configured to perform generalized data processing tasks of the architecture 600. Furthermore, at least some of the data processing tasks may be offloaded to the coprocessor(s) 674. For example, specialized data processing tasks such as processing motion data, processing image data, encrypting data, and / or performing certain types of arithmetic operations may be offloaded to one or more specialized coprocessor(s) 674 for handling those tasks. In some cases, the processor(s) 604 may be relatively more powerful than the coprocessor(s) 674 and / or may consume more power than the coprocessor(s) 674. This can be useful, for example, because it allows the processor(s) 604 to quickly handle generalized tasks while also offloading certain other tasks to the coprocessor(s) 674 that may perform those tasks more efficiently and / or effectively. In some cases, the coprocessor(s) can include one or more sensors or other components (e.g., as described herein) and can be configured to process data acquired using those sensors or components and provide the processed data to the processor(s) 604 for further analysis.

[0088] Coupling sensors, devices, and subsystems to the peripherals interface 606 can facilitate multi-functionality. For example, coupling a motion sensor 610, a light sensor 612, and a proximity sensor 614 to the peripherals interface 606 can facilitate orientation, lighting, and proximity functions of the architecture 600. For example, in some implementations, the light sensor 612 can be utilized to facilitate adjusting the brightness of the touch surface 646. In some implementations, the motion sensor 610 can be utilized to detect device motion and orientation. For example, the motion sensor 610 can include one or more accelerometers (e.g., for measuring acceleration experienced by the motion sensor 610 and / or the architecture 600 over a period of time) and / or one or more compasses or gyros (e.g., for measuring the orientation of the motion sensor 610 and / or the mobile device). In some cases, the measurement information obtained by the motion sensor 610 can be in the form of one or more time-varying signals (e.g., a time-varying plot of acceleration and / or orientation over a period of time). Further, display objects or media may be presented according to the detected orientation (e.g., according to a "portrait" orientation or a "landscape" orientation). In some cases, the motion sensor 610 may be directly integrated into a coprocessor 674 configured to process measurements obtained by the motion sensor 610. For example, the coprocessor 674 may include one or more accelerometers, compasses, and / or gyroscopes and may be configured to obtain sensor data from each of these sensors, process the sensor data, and transmit the processed data to the processor(s) 604 for further analysis.

[0089] Other sensors, such as temperature sensors, biometric sensors, or other sensing devices, may also be connected to the peripherals interface 606 to facilitate associated functions. As an example, as shown in FIG. 6, the architecture 600 may include a heart rate sensor 632 that measures the beating of the user's heart. Similarly, these other sensors may also be directly integrated into one or more co-processor(s) 674 configured to process measurements obtained from these sensors.

[0090] A location processor 615 (e.g., a GNSS receiver chip) may be connected to the peripherals interface 606 to provide georeferencing. An electronic magnetometer 616 (e.g., an integrated circuit chip) may also be connected to the peripherals interface 606 to provide data that can be used to determine the direction of magnetic north. In this manner, the electronic magnetometer 616 may be used as an electronic compass.

[0091] A camera subsystem 620 and optical sensor 622 (eg, a charge-coupled device [CCD] or complementary metal-oxide semiconductor [CMOS] optical sensor) may be utilized to facilitate camera functions such as recording pictures and video clips.

[0092] The communication functions may be facilitated via one or more communication subsystems 624. The communication subsystem(s) 624 may include one or more wireless and / or wired communication subsystems. For example, a wireless communication subsystem may include a radio frequency receiver and transmitter and / or an optical (e.g., infrared) receiver and transmitter. As another example, a wired communication system may include a port device, such as a Universal Serial Bus (USB) port, or some other wired port connection that can be used to establish a wired connection to other computing devices, such as other communication devices, network access devices, personal computers, printers, display screens, or other processing devices that can send and receive data.

[0093] The specific design and implementation of the communication subsystem 624 may depend on the communication network(s) or medium(s) over which the architecture 600 is intended to operate. For example, the architecture 600 may include a wireless communication subsystem designed to operate over a Global System for Mobile Communications (GSM) network, a GPRS network, an Enhanced Data GSM Environment (EDGE) network, an 802.x communication network (e.g., Wi-Fi, Wi-Max), a Code Division Multiple Access (CDMA) network, an NFC, and a Bluetooth® network. The wireless communication subsystem may also include a hosting protocol such that the architecture 600 may be configured as a base station for other wireless devices. As another example, the communication subsystem 624 may enable the architecture 600 to synchronize with a host device using one or more protocols such as, for example, a TCP / IP protocol, an HTTP protocol, a UDP protocol, and any other known protocol.

[0094] The audio subsystem 626 may be coupled to a speaker 628 and one or more microphones 630 to facilitate voice-enabled functions such as voice recognition, voice duplication, digital recording, and telephone functions.

[0095] The I / O subsystem 640 can include a touch controller 642 and / or other input controller(s) 644. The touch controller 642 can be coupled to a touch surface 646. The touch surface 646 and touch controller 642 can detect contact and motion or cessation of contact and motion, for example, using any of a number of touch sensitivity technologies. Touch sensitivity technologies include, but are not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch surface 646. In one implementation, the touch surface 646 can display virtual or soft buttons and a virtual keyboard, which can be used as an input / output device by a user.

[0096] Other input controller(s) 644 may be coupled to other input / control devices 648, such as one or more buttons, rocker switches, thumb wheels, infrared ports, USB ports, and / or a pointer device such as a stylus. The one or more buttons (not shown) may include up / down buttons for volume control of speaker 628 and / or microphone 630.

[0097] In some implementations, the architecture 600 can present recorded audio and / or video files, such as MP3 files, AAC files, and MPEG video files. In some implementations, the architecture 600 can include MP3 player functionality and can include pin connectors for hooking up to other devices. Other input / output and control devices can be used.

[0098] The memory interface 602 can be coupled to a memory 650. The memory 650 can include high-speed random access memory or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, or flash memory (e.g., NAND, NOR). The memory 650 can store an operating system 652, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, ANDROID, or an embedded operating system, such as VxWorks. The operating system 652 can include instructions to handle basic system services and instructions to perform hardware-dependent tasks. In some implementations, the operating system 652 can include a kernel (e.g., a UNIX kernel).

[0099] Memory 650 may also store communications instructions 654 to facilitate communications, including peer-to-peer communications, with one or more additional devices, one or more computers, or servers. Communications instructions 654 may also be used to select an operating mode or communications medium for the device to use based on the geographic location of the device (obtained by GPS / navigation instructions 668). Memory 650 may include graphical user interface instructions 656 for facilitating graphical user interface processing, including touch models for interpreting touch inputs and gestures, sensor processing instructions 658 for facilitating sensor-related processing and functions, telephony instructions 660 for facilitating telephony-related processing and functions, electronic messaging instructions 662 for facilitating electronic messaging-related processing and functions, web browsing instructions 664 for facilitating web browsing-related processing and functions, media processing instructions 666 for facilitating media processing-related processing and functions, GPS / navigation instructions 668 for facilitating GPS and navigation-related processes, camera instructions 670 for facilitating camera-related processes and functions, and other instructions 672 for performing some or all of the processes described herein.

[0100] Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described herein. These instructions need not be implemented as separate software programs, procedures, or modules. Memory 650 may include additional instructions or may include fewer instructions. Furthermore, various functions of the device may be implemented in hardware and / or software, including one or more signal processing and / or application specific integrated circuits (ASICs).

[0101] The described features may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The features may be implemented in a computer program product tangibly embodied in an information carrier, for example in a machine-readable storage device, for execution by a programmable processor, and the method steps may be performed by the programmable processor executing a program of instructions to perform the functions of the described implementation by operating on input data and generating output.

[0102] The described functionality may be advantageously implemented in one or more computer programs executable on a programmable system including at least one programmable processor coupled to receive data and instructions from and transmit data and instructions to a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used directly or indirectly in a computer to perform a particular action or bring about a particular result. Computer programs may be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and may be distributed in any form, including stand-alone programs or modules, components, subroutines, or other units suitable for use in a computing environment.

[0103] Processors suitable for executing a program of instructions include, by way of example, both general purpose and special purpose microprocessors, as well as the sole processor or one of multiple processors or cores of any type of computer. A processor typically receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer can communicate with mass storage devices for storing data files. These mass storage devices may include magnetic disks, such as internal hard disks and removable disks, magneto-optical disks, and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices, such as EPROMs, EEPROMs, and flash memory devices, magnetic disks, such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, ASICs (Application Specific Integrated Circuits).

[0104] To provide for user interaction, the functionality can be implemented on a computer that has a display device for displaying information to the author, as well as a keyboard and a pointing device, such as a mouse or trackball, through which the author can provide input to the computer.

[0105] FIG. 7 illustrates an exemplary wireless communication system 700 according to some implementations. For convenience, but not by way of limitation, the exemplary system 100 is described in the context of Long Term Evolution (LTE) and Fifth Generation (5G) New Radio (NR) communication standards defined by the Third Generation Partnership Project (3GPP) technical specifications. More specifically, the wireless communication system 700 is described in the context of a non-standalone (NSA) network incorporating both LTE and NR, such as an Evolved Universal Terrestrial Radio Access (E-UTRA)-NR dual connectivity (EN-DC) network and a NE-DC network. However, the wireless communication system 700 may be a stand-alone (SA) network incorporating only NR. Additionally, other types of communication standards are possible, including future 3GPP systems (e.g., sixth generation (6G)) systems, IEEE 802.16 protocols (e.g., WMAN, WiMAX, etc.), and the like.

[0106] As shown in FIG. 7, system 700 includes UE 701a and UE 701b (collectively referred to as "UE 701"). In this example, the UE 701 is illustrated as a smartphone (e.g., a portable touchscreen mobile computing device capable of connecting to one or more cellular networks), but may include any mobile or non-mobile computing device, such as a consumer device, a mobile phone, a smartphone, a feature phone, a tablet computer, a wearable computing device, a personal digital assistant (PDA), a pager, a wireless handset, a desktop computer, a laptop computer, an infusion infotainment (IVI), an in-vehicle entertainment (ICE) device, an instrument cluster (IC), a head-up display (HUD) device, an on-board diagnostics (OBD) device, a dash-top mobile equipment (DME), a mobile data terminal (MDT), an electronic engine management system (EEMS), an electronic / engine control unit (ECU), an electronic engine / engine control module (ECM), an embedded system, a microcontroller, a control module, an engine management system (EMS), a networked or "smart" appliance, an MTC device, an M2M, an IoT device, and / or the like. The UE 701 may be the same as or similar to the user device 102.

[0107] The UE 701 may be configured to connect, e.g., be communicatively coupled, to the RAN 710. In an embodiment, the RAN 710 may be an NG RAN or a 5G RAN, an E-UTRAN, or a legacy RAN such as a UTRAN or a GERAN. As used herein, the term "NG RAN" or the like may refer to a RAN 710 operating in an NR or 5G system 700, and the term "E-UTRAN" or the like may refer to a RAN 710 operating in an LTE or 4G system 700. The UE 701 utilizes a connection (or channel) 703 and a connection 704, respectively, each of which includes a physical communication interface or layer (discussed in more detail below). The RAN 710 may be the same as or similar to the RAN 104.

[0108] In this example, the connections 703 and 704 are shown as air interfaces for enabling communication coupling and may correspond to a cellular communication protocol such as a GSM protocol, a CDMA network protocol, a PTT protocol, a POC protocol, a UMTS protocol, a 3GPP LTE protocol, an Advanced Long Term Evolution (LTE-A) protocol, an LTE-based access to unlicensed spectrum (LTE-U), a 5G protocol, an NR protocol, an NR-based access to unlicensed spectrum (NR-U) protocol, and / or any of the other communication protocols described herein. In this embodiment, the UE 701 may further directly exchange communication data via a ProSe interface 705. The ProSe interface 705 may alternatively be referred to as an SL interface 705 and may comprise one or more logical channels, including, but not limited to, a PSCCH, a PSSCH, a PSDCH, and a PSBCH.

[0109] The UE 701b is shown configured to access an AP 706 (also referred to as a "WLAN node 706", "WLAN 706", "WLAN terminal 706", "WT 706", etc.) via a connection 707. The connection 707 may include a local wireless connection, such as a connection conforming to any IEEE 802.11 protocol, and the AP 706 may comprise a Wi-Fi (Wireless Fidelity) router. In this example, the AP 706 is connected to the Internet without connecting to a wireless system core network, as shown (described in more detail below). In various embodiments, the UE 701b, the RAN 710, and the AP 706 may be configured to utilize LWA and / or LWIP operations. LWA operations may involve the UE 701b being RRC_CONNECTED, configured by the RAN nodes 711a-711b to utilize LTE and WLAN radio resources. LWIP operations may involve UE 701b using WLAN radio resources (e.g., connection 707) via an IPsec protocol tunnel to authenticate and encrypt packets (e.g., IP packets) sent over connection 707. IPsec tunneling may involve encapsulating the entire original IP packet and adding a new packet header, thereby protecting the original header of the IP packet.

[0110] The RAN 710 may include one or more AN or RAN nodes 711a and 711b (collectively referred to as "RAN nodes 711") that enable connection 703 and connection 704. The nodes 711a and 711b are configured to communicate over link 712. As used herein, the terms "access node," "access point," etc. may refer to equipment that provides wireless baseband functionality for data and / or voice connectivity between a network and one or more users. These access nodes may be referred to as BSs, gNBs, RAN nodes, eNBs, NodeBs, RSUs, TRxPs, TRPs, etc., and may include terrestrial stations (e.g., terrestrial access points) or satellite stations that provide coverage within a geographic area (e.g., a cell). As used herein, terms such as "NG RAN node" may refer to a RAN node 711 operating in an NR or 5G system 700 (e.g., gNB), and terms such as "E-UTRAN node" may refer to a RAN node 711 operating in an LTE or 4G system 700 (e.g., eNB). According to various embodiments, the RAN node 711 may be implemented as one or more of dedicated physical devices, such as a macrocell base station and / or a low power (LP) base station to provide a femtocell, picocell, or other similar cell having a smaller coverage area, smaller user capacity, or higher bandwidth compared to a macrocell.

[0111] In some embodiments, all or part of the RAN node 711 may be implemented as one or more software entities running on a server computer as part of a virtual network that may be referred to as a CRAN and / or a virtual baseband unit pool (vBBUP). In these embodiments, the CRAN or vBBUP may implement a RAN functionality split such as a PDCP split where the RRC and PDCP layers are operated by the CRAN / vBBUP and other L2 protocol entities are operated by the individual RAN nodes 711, a MAC / PHY split where the RRC, PDCP, RLC, and MAC layers are operated by the CRAN / vBBUP and the PHY layer is operated by the individual RAN nodes 711, or a "lower PHY" split where the RRC, PDCP, RLC, MAC, and upper parts of the PHY layer are operated by the CRAN / vBBUP and lower parts of the PHY layer are operated by the individual RAN nodes 711. This virtualized framework allows freed processor cores of the RAN node 711 to run other virtualized applications. In some implementations, the individual RAN nodes 711 may represent individual gNB-DUs connected to a gNB-CU via individual F1 interfaces (not shown by FIG. 7). In these implementations, the gNB-DUs may include one or more remote radio heads or RFEMs, and the gNB-CU may be operated by a server located in the RAN 710 (not shown) or by a server pool in a manner similar to CRAN / vBBUP. Additionally or alternatively, one or more of the RAN nodes 711 may be next generation eNBs (ng-eNBs), which are RAN nodes that provide E-UTRA user plane and control plane protocol terminals towards the UE 701 and are connected to the 5GC via an NG interface.

[0112] Any of the RAN nodes 711 may terminate the air interface protocols and may be the first point of contact for the UE 701. In some embodiments, any of the RAN nodes 711 may perform various logical functions for the RAN 710, including, but not limited to, Radio Network Controller (RNC) functions such as radio bearer management, uplink and downlink dynamic radio resource management and data packet scheduling, and mobility management.

[0113] According to some embodiments, the UEs 701 may be configured to communicate with either one another or the RAN nodes 711 using OFDM communication signals over multi-carrier communication channels according to various communication technologies, such as, but not limited to, OFDMA communication technologies (e.g., for downlink communications) or SC-FDMA communication technologies (e.g., for uplink and ProSe or sidelink communications), and the scope of the embodiments is not limited in this respect. OFDM signals may include multiple orthogonal subcarriers.

[0114] According to various embodiments, the UE 701 and the RAN node 711 communicate (e.g., transmit and receive) data over licensed media (also referred to as "licensed spectrum" and / or "licensed band") and unlicensed shared media (also referred to as "unlicensed spectrum" and / or "unlicensed band"). The licensed spectrum may include channels operating in a frequency range from about 400 MHz to about 3.8 GHz, and the unlicensed spectrum may include the 5 GHz band. NR in the unlicensed spectrum may be referred to as NR-U, and LTE in the unlicensed spectrum may be referred to as LTE-U, Licensed Assisted Access (LAA), or MulteFire.

[0115] To operate in the unlicensed spectrum, the UE 701 and the RAN node 711 may operate using LAA, eLAA, and / or feLAA mechanisms. In these implementations, the UE 701 and the RAN node 711 may perform one or more known medium sensing and / or carrier sensing operations to determine if one or more channels in the unlicensed spectrum are unavailable or otherwise occupied before transmitting in the unlicensed spectrum. The medium / carrier sensing operations may be performed according to a Listen Before Talk (LBT) protocol.

[0116] The RAN 710 is shown communicatively coupled to a core network, which in this embodiment is a core network (CN) 720. The CN 720 may comprise a number of network elements 722 configured to provide various data and telecommunication services to customers / subscribers (e.g., users of UEs 701) connected to the CN 720 via the RAN 710. The components of the CN 720 may be implemented in a single physical node or separate physical nodes, including components for reading and executing instructions from a machine-readable or computer-readable medium (e.g., a non-transitory machine-readable storage medium). In some embodiments, NFV may be utilized to virtualize any or all of the network node functions described above via executable instructions stored on one or more computer-readable storage media (described in more detail below). A logical instantiation of the CN 720 may be referred to as a network slice, and a logical instantiation of a portion of the CN 720 may be referred to as a network sub-slice. The NFV architecture and infrastructure may be used to virtualize one or more network functions on physical resources including a combination of industry-standard server hardware, storage hardware, or switches, or may be performed by dedicated hardware. In other words, an NFV system can be used to execute a virtual or reconfigurable implementation of one or more EPC components / functions.

[0117] In general, the application server 730 may be an element that provides applications that use IP bearer resources with the core network (e.g., UMTS PS domain, LTE PS data services, etc.). The application server 730 may also be configured to support one or more communication services (e.g., VoIP sessions, PTT sessions, group communication sessions, social networking services, etc.) for the UE 701 via the EPC 720. The application server 730 may also be configured to communicate with the CN 720 via the link 725.

[0118] In an embodiment, the CN 720 may be a 5GC (e.g., referred to as "5GC 720"), and the RAN 710 may be connected to the CN 720 via an NG interface 713. In an embodiment, the NG interface 713 may be divided into two parts: an NG User Plane (NG-U) interface 714, which carries traffic data between the RAN node 711 and the UPF, and an S1 Control Plane (NG-C) interface 715, which is a signaling interface between the RAN node 711 and the AMF.

[0119] In an embodiment, the CN 720 may be a 5GCN (referred to, for example, as “5GC 720”), while in other embodiments, the CN 720 may be an EPC. When the CN 720 is an EPC (referred to, for example, as “EPC 720”), the RAN 710 may be connected with the CN 720 via an S1 interface 713. In an embodiment, the S1 interface 713 may be split into two parts: an S1 user plane (S1-U) interface 714 that carries traffic data between the RAN node 711 and the S-GW, and an S1-MME interface 715 that is a signaling interface between the RAN node 711 and the MME.

[0120] It is understood that use of personally identifiable information should comply with privacy policies and practices generally recognized as meeting or exceeding industry or governmental requirements for maintaining user privacy. In particular, personally identifiable information data should be managed and handled in a manner that minimizes the risk of unintended or unauthorized access or use, and the nature of permitted uses should be clearly indicated to users.

[0121] Several implementations have been described. Nevertheless, it should be understood that various modifications may be made. Elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. As yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desired results. In addition, other steps may be provided or steps may be eliminated from the described flows, and other components may be added to or removed from the described systems. Thus, other implementations are within the scope of the following claims.

Claims

1. 1. A method comprising: obtaining a plurality of position estimates for the user device, the plurality of position estimates being measured using different positioning methods; providing the plurality of position estimates as inputs to a trained machine learning model; obtaining a hybrid position of the user device from the trained machine learning model; and A method comprising:

2. The method of claim 1 , wherein the hybrid position is a weighted average of the multiple position estimates.

3. The method of claim 1 , wherein the trained machine learning model is trained by the user device or a wireless network core entity.

4. The method is performed by the user device, and the trained machine learning model is trained by the wireless network core entity, and the method includes: sending a first message to the radio network core entity requesting the trained machine learning model; 4. The method of claim 3, further comprising receiving the trained machine learning model in a second message from the radio network core entity.

5. 5. The method of claim 4, wherein the first message is an LPP RequestAssistanceData message and the second message is an LPP ProvideAssistanceData message.

6. The method is performed by a wireless network core entity, and the trained machine learning model is trained by the user device, and the method includes: sending a first message to the user device requesting the trained machine learning model; The method of claim 3 , further comprising receiving the trained machine learning model in a second message from the user device.

7. The method of claim 3 , wherein the radio network core entity is a Location Management Function (LMF).

8. receiving a first message from a radio network core entity requesting the hybrid position; generating a second message for communicating the hybrid position to the radio network core entity; and The method of claim 1 further comprising:

9. 9. The method of claim 8, wherein the first message is an LPP RequestLocationInformation message and the second message is an LPP ProvideLocationInformation message.

10. measuring the plurality of position estimates using the respective positioning methods; The method of claim 1 further comprising:

11. further training the trained machine learning model using the hybrid positions; The method of claim 1 further comprising:

12. Providing the plurality of position estimates as input to a trained machine learning model includes:

2. The method of claim 1, comprising providing the plurality of position estimates and at least one of a coarse location of the user device, a time, or an indoor / outdoor state of the user device as the input to the trained machine learning model.

13. The method of claim 12 , wherein the coarse location is expressed using a cell identifier and / or a tracking area (TA).

14. 1. A method performed by a user device, the method comprising: receiving a map of radio frequency measurements; measuring individual signal strength indicator values ​​for one or more signals received by the user device; determining a position of the user device based on the individual signal strength indicator values ​​for the one or more signals received by the user device; A method comprising:

15. Using the map to determine the position of the user device may include: comparing said individual signal strength indicator values ​​to said map; and identifying k-nearest matches for the individual signal strength indicator values.

16. The method of claim 15, wherein the comparison is performed using a k-nearest neighbor (KNN) algorithm.

17. The identification of the k-nearest neighbor matches may be 17. The method of claim 16, comprising using Euclidean distances between the individual signal strength indicator values ​​and one or more reference values ​​in the map.

18. calculating the position based on a k-nearest neighbor fingerprint; 17. The method of claim 16, further comprising:

19. Calculating the position based on the k-nearest neighbor fingerprints includes:

20. The method of claim 18, comprising averaging positions associated with k-nearest neighbor matches.

20. One or more processors configured to perform the method of any one of claims 1 to 19.

21. 21. An apparatus comprising one or more processors according to claim 20.