Precise positioning service using the Internet of Things network
Patent Information
- Application Number
- JP2023546112
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-02-26
- Filing Date
- 2022-01-05
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2042-01-05
AI Technical Summary
Existing GNSS-based systems for mobile devices lack the accuracy required for applications like land surveying and autonomous navigation, and techniques to enhance accuracy, such as PPP and RTK, require significant hardware and infrastructure investments.
A network of Internet of Things (IoT) devices provides precision positioning information to mobile devices by selecting a serving IoT device based on subscription options, using real-time kinematic satellite phase and differential satellite correction information, and dynamically switching to proxy devices when necessary.
This approach offers precise positioning with centimeter-level accuracy without the need for costly infrastructure, ensuring reliable and scalable positioning services for mobile devices.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Application No. 17 / 186,372, filed February 26, 2021, entitled "PRECISE POSITIONING SERVICES WITH AN INTERNET OF THINGS NETWORK," which is assigned to the assignee of this application and is incorporated herein by reference in its entirety for all purposes. [Background technology]
[0002] The location of mobile devices such as cellular phones, Internet of Things (IoT) devices, location tracking devices, or other such mobile devices that include wireless communication modules and motion sensors may be useful for several applications such as emergency calls, navigation, direction finding, asset tracking, and Internet services. The location of an IoT device may be estimated based on information collected from various systems such as terrestrial radio transceivers, Global Navigation Satellite System (GNSS) receivers, and other sensors. The accuracy of GNSS-based systems may often fall below the requirements of applications such as land surveying, navigation of autonomous land vehicles and aircraft, or other location sensing technologies. Several techniques, such as Precise Point Positioning (PPP) and Real-Time Kinematic (RTK) positioning, may be used to increase the positioning accuracy of GNSS-based systems. These techniques often require a significant increase in processing hardware and supporting infrastructure, which may increase the cost to provide improved positioning accuracy. Summary of the Invention [Means for solving the problem]
[0003] An example of an apparatus for determining a precise location of a mobile device according to the present disclosure includes at least one server having a data structure including a precise positioning subscription option associated with the mobile device, and a plurality of client Internet of Things devices configured to communicate with the at least one server, at least one of the plurality of client Internet of Things devices being a serving internet of things device configured to provide precise positioning information to the mobile device, and the serving internet of things device being selected from the plurality of client Internet of Things devices based on the precise positioning subscription option.
[0004] Implementations of such an apparatus may include one or more of the following features: The precise positioning subscription options may include a desired accuracy of the precise positioning information. The precise positioning subscription options may include a desired update rate of the precise positioning information. The serving Internet of Things device may be configured to provide the precise positioning information to at least one server, and the at least one server may be configured to provide the precise positioning information to the mobile device. The precise positioning information may be in a radio technical commission for maritime (RTCM) format. The precise positioning information may be real-time kinematic satellite phase signal correction information. The precise positioning information may be differential satellite position correction information. One or more of the multiple client Internet of Things devices may be configured as a likely candidate based on the precise positioning subscription options such that if the serving Internet of Things device becomes inactive or the distance between the mobile device and the serving Internet of Things device exceeds a threshold distance, the likely candidate may be configured to be a proxy serving Internet of Things device.
[0005] An example method for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices according to the present disclosure includes obtaining a coarse location of the mobile device, determining one or more nearby reporting Internet of Things devices based on the coarse location, selecting a serving Internet of Things device from the one or more nearby reporting Internet of Things devices based on one or more configuration options, and selecting one or more likely candidates from the one or more nearby reporting Internet of Things devices based on the one or more configuration options.
[0006] Implementations of such methods may include one or more of the following features: The serving Internet of Things device may be configured to provide real-time kinematic satellite phase correction information. The serving Internet of Things device may be configured to provide differential satellite correction information. The one or more configuration options may include a desired accuracy of the precise positioning information. The one or more configuration options may include a desired update rate of the precise positioning information. The serving Internet of Things device may be configured to provide the precise positioning information in a Radio Technical Committee for Maritime (RTCM) format. The method may further include determining a status of the serving Internet of Things device, determining a distance between the mobile device and the serving Internet of Things device, and determining a substitute serving device from the one or more potential candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is above a threshold distance.
[0007] An example of an apparatus for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices according to the present disclosure includes a memory and at least one processor operably coupled to the memory, the at least one processor configured to obtain a coarse location of the mobile device, determine one or more nearby reporting Internet of Things devices based on the coarse location, select a serving Internet of Things device from the one or more nearby reporting Internet of Things devices based on one or more configuration options, and select one or more likely candidates from the one or more nearby reporting Internet of Things devices based on the one or more configuration options.
[0008] An example of an apparatus for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices according to the present disclosure includes means for obtaining a coarse location of the mobile device, means for determining one or more nearby reporting Internet of Things devices based on the coarse location, means for selecting a serving Internet of Things device from the one or more nearby reporting Internet of Things devices based on one or more configuration options, and means for selecting one or more likely candidates from the one or more nearby reporting Internet of Things devices based on the one or more configuration options.
[0009] An example of a non-transitory processor-readable storage medium including processor-readable instructions configured to cause one or more processors to determine a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices in accordance with the present disclosure includes code for obtaining a coarse location of the mobile device, code for determining one or more nearby reporting Internet of Things devices based on the coarse location, code for selecting a serving Internet of Things device from the one or more nearby reporting Internet of Things devices based on one or more configuration options, and code for selecting one or more likely candidates from the one or more nearby reporting Internet of Things devices based on the one or more configuration options.
[0010] An example of a method for switching a serving Internet of Things device in an Internet of Things network according to the present disclosure includes determining a status of the serving Internet of Things device, determining a distance between a mobile device and the serving Internet of Things device, and selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance.
[0011] Implementations of such methods may include one or more of the following features: One or more previously determined likely candidates may be selected from one or more proximate reporting Internet of Things devices based on one or more configuration options. The one or more proximate reporting Internet of Things devices may be within 10 kilometers of the mobile device. The one or more configuration options may include a desired accuracy of the precise positioning information. The one or more configuration options may include a desired update rate of the precise positioning information.
[0012] An example of an apparatus for switching serving Internet of Things devices in an Internet of Things network according to the present disclosure includes a memory and at least one processor operably coupled to the memory, the at least one processor configured to determine a status of the serving Internet of Things device, determine a distance between a mobile device and the serving Internet of Things device, and select a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance.
[0013] Implementations of such an apparatus may include one or more of the following features: One or more previously determined likely candidates may be selected from one or more proximate reporting Internet of Things devices based on one or more configuration options. The one or more proximate reporting Internet of Things devices may be within 10 kilometers of the mobile device. The one or more configuration options may include a desired accuracy of the precise positioning information. The one or more configuration options may include a desired update rate of the precise positioning information.
[0014] An example of an apparatus for switching serving Internet of Things devices in an Internet of Things network according to the present disclosure includes means for determining a status of the serving Internet of Things device, means for determining a distance between a mobile device and the serving Internet of Things device, and means for selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance.
[0015] An example of a non-transitory processor-readable storage medium including processor-readable instructions configured to cause one or more processors to switch serving Internet of Things devices in an Internet of Things network according to the present disclosure includes code for determining a status of the serving Internet of Things device, code for determining a distance between a mobile device and the serving Internet of Things device, and code for selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is above a threshold distance.
[0016] The items and / or techniques described herein may provide one or more of the following capabilities, as well as other capabilities not mentioned. An Internet of Things (IoT) device may be configured to determine its precise location based on satellite signals in combination with other precise positioning services, such as precise point positioning data, real-time kinematic data, and differential GNSS data. An IoT device with a precisely known location may be used as a reference station to provide position correction data to a network of IoT devices or other precise positioning applications. Other IoT devices may receive customizable position correction data based on application requirements. The status of IoT reference stations in the network may be monitored. Potential candidate IoT devices may be identified to act as reference stations in the event that a current reference station becomes unavailable. User devices may receive position correction data from different IoT reference stations. A reliable and scalable precise positioning network may be realized. Furthermore, the above mentioned effects may be able to be achieved by means other than those mentioned, and the mentioned items / techniques may not necessarily result in the mentioned effects. [Brief description of the drawings]
[0017] [Figure 1] FIG. 1 is a diagram of an exemplary communication system. [Diagram 2] FIG. 1 is a schematic diagram of a mobile device. [Diagram 3] FIG. 1 is a hardware diagram for a subset of components in an example Internet of Things (IoT) device. [Figure 4] FIG. 1 is a conceptual diagram of an example IoT architecture for providing precise positioning services. [Diagram 5] FIG. 1 illustrates an example user interface and data structure diagram of a customizable subscription service for precise positioning using an Internet of Things network. [Figure 6] FIG. 1 illustrates an example use case diagram for positioning a mobile device using a network of IoT devices. [Figure 7] 1 is a flowchart of an example procedure for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices. [Figure 8] 1 is a flowchart of an example procedure for tracking one or more potential candidates in an IoT network. [Figure 9] 1 is a flowchart of an example procedure for tracking and switching serving Internet of Things devices in an IoT network. [Figure 10] FIG. 1 is a block diagram of an example computer system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] Techniques are described herein for providing precise positioning information to mobile devices using dynamic Internet of Things (IoT) networks. Precision positioning services (PPS) typically refer to sub-meter to centimeter level accuracy positioning services such as Differential GNSS (DGNSS), Precise Point Positioning (PPP), and Real-Time Kinematic (RTK) methods. These solutions typically require significant investment in additional hardware and advanced GNSS software packages. The methods described herein utilize dense and dynamic IoT networks to provide low-cost and reliable PPS without building dedicated infrastructure and deploying complex GNSS software packages. In one example, an IoT network may include several IoT devices, each capable of utilizing GNSS data to determine location and to communicate with other devices and / or networks via one or more wireless communication protocols. The IoT devices may be configured to report GNSS measurements to a network server for crowdsourcing and performance improvement. IoT devices with precisely known positions may be configured as reference stations to provide single-station RTK / DGNSS corrections for precision positioning applications such as autonomous driving, HD mapping, and the like. To extend the PPS coverage, additional IoT devices may be added to the proposed IoT network. The density of IoT devices in the network may be used to update and change which IoT devices are serving as RTK reference stations. When the status of such an IoT RTK reference station changes (e.g., loss of power, loss of position accuracy, etc.), another qualified IoT device may provide the functionality of the RTK reference station. The number and diversity of IoT devices in the network may be used to enable various customizable services.For example, a user may select a desired level of position accuracy (e.g., sub-meter, decimeter, centimeter), as well as other associated parameters such as a desired GNSS constellation, signal band, correction type, data payload format, and correction data update frequency, etc. These techniques are examples and are not exhaustive.
[0019] In general, DGNSS, such as DGPS, utilizes code-based positioning to determine the location of a GPS receiver. For example, GPS signals from satellites transmit a pseudo random code (PRC), and a GPS receiver is configured to receive the PRC from multiple satellites. The receiver is configured to align the received code with its own code and calculate the propagation delay. The GPS receiver also knows the satellites' positions and can calculate the distance to the satellites. For example, if the receiver knows its distance (range) from four satellites, the receiver can determine its three-dimensional position.
[0020] RTK systems utilize carrier-based ranging to determine position information. For example, distance may be calculated by determining the number of carrier cycles between the RTK receiver and the satellite, then multiplied by the wavelength of the carrier signal. Different GPS satellites may transmit different frequencies, so that errors in atmospheric delays and multipath propagation of the satellite signals can be reduced.
[0021] DGNSS and RTK may use base stations with known positions (e.g., based on precise positioning services). A base station in a DGNSS system may be configured to compare its known position to a position calculated by GNSS signals. The difference between the known position and the calculated position is then transmitted to other receivers in the network, which use the corrections to calculate their respective positions. A base station in a RTK system may be configured to transmit the phase of the signal that it observes and send that information to other receivers in the network, which then compare it to the phase they observed.
[0022] Referring to FIG. 1, a diagram of an exemplary communication system 100 is shown. The communication system 100 comprises a mobile device (e.g., an IoT device, a location tracker device, a cellular phone, or other user equipment (UE)) 105 and components of a fifth generation (5G) network comprising a next generation (NG) radio access network (RAN) (NG-RAN) 135 and a 5G core network (5GC) 140. The 5G network may also be referred to as a new radio (NR) network, the NG-RAN 135 may also be referred to as a 5G RAN or NR RAN, and the 5GC 140 may also be referred to as an NG core network (NGC). Standardization of the NG-RAN and 5GC is underway in the 3rd Generation Partnership Project (3GPP). Thus, the NG-RAN 135 and 5GC 140 may comply with current and future standards for 5G support from 3GPP. The communication system 100 may utilize information from a satellite vehicle (SV) 190 for a satellite positioning system (SPS) (e.g., a Global Navigation Satellite System (GNSS)), such as a Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), Galileo, or Beidou, or some other local or regional SPS, such as an Indian Regional Navigation Satellite System (IRNSS), a European Geostationary Navigation Overlay Service (EGNOS), or a Wide Area Augmentation System (WAAS). Additional components of the communication system 100 are described below. The communication system 100 may include additional or alternative components.
[0023] 1, the NG-RAN 135 includes NR Node Bs (gNBs) 110a, 110b, and next-generation eNodeBs (ng-eNBs) 114, and the 5GC 140 includes an Access and Mobility Management Function (AMF) 115, a Location Management Function (LMF) 120, and a Gateway Mobile Location Center (GMLC) 125. The gNBs 110a, 110b, and the ng-eNBs 114 are communicatively coupled to one another and each configured to wirelessly communicate bidirectionally with the UE 105, and each communicatively coupled to the AMF 115 and configured to communicate bidirectionally with the AMF 115. The AMF 115, the LMF 120, and the GMLC 125 are communicatively coupled to one another, and the GMLC is communicatively coupled to an external client 130.
[0024] FIG. 1 provides a generalized view of the various components, and any or all of the components may be utilized as appropriate, and each of the components may be duplicated or omitted as desired. Specifically, while one UE 105 is shown, many UEs (e.g., hundreds, thousands, millions, etc.) may be utilized in the communications system 100. Similarly, the communications system 100 may include more (or fewer) SVs 190, gNBs 110a-b, ng-eNBs 114, AMFs 115, external clients 130, and / or other components. The illustrated connections connecting the various components in the communications system 100 include data and signaling connections, which may include additional (intermediate) components, direct or indirect physical and / or wireless connections, and / or additional networks. Additionally, the components may be rearranged, combined, separated, substituted, and / or omitted depending on the desired functionality.
[0025] 1 illustrates a 5G-based network, similar network implementations and configurations may be used for other communication technologies, such as 3G, Long Term Evolution (LTE), etc. Implementations described herein (whether for 5G technology or one or more other communication technologies and / or protocols) may be used to transmit (or broadcast) directional synchronization signals, receive and measure directional signals at a UE (e.g., the UE 105), and / or provide location assistance to the UE 105 (via the GMLC 125 or other location server), and / or calculate the location of the UE 105 at a location-enabled device, such as the UE 105, gNBs 110a, 110b, or LMF 120, based on measurements received at the UE 105 of such directionally transmitted signals. The Gateway Mobile Location Center (GMLC) 125, Location Management Function (LMF) 120, Access and Mobility Management Function (AMF) 115, ng-eNB (eNodeB) 114 and gNBs (gNodeBs) 110a, 110b are examples and may be replaced by or include various other location server functions and / or base station functions, respectively, in various embodiments.
[0026] The UE 105 may include and / or be referred to as a device, a mobile device, a wireless device, a mobile terminal, a terminal, a mobile station (MS), a secure user plane location (SUPL) enabled terminal (SET), or some other name. Moreover, the UE 105 may correspond to a cell phone, a smartphone, a laptop, a tablet, a PDA, a tracking device, a navigation device, an Internet of Things (IoT) device, an asset tracker, a health monitor, a security system, a smart city sensor, a smart meter, a wearable tracker, or some other portable or movable device. Typically, but not necessarily, the UE 105 may support wireless communications using one or more radio access technologies (RATs), such as Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), LTE, High Rate Packet Data (HRPD), IEEE (Institute of Electrical and Electronics Engineers) 802.11 WiFi (also referred to as Wi-Fi), Bluetooth (BT), Worldwide Interoperability for Microwave Access (WiMAX), 5G New Radio (NR) (e.g., using NG-RAN 135 and 5GC 140), etc. The UE 105 may support wireless communications using a wireless local area network (WLAN), which may connect to other networks (e.g., the Internet) using, for example, a digital subscriber line (DSL) or packet cable. Use of one or more of these RATs may enable the UE 105 to communicate with the external client 130 (e.g., via elements of the 5GC 140 not shown in FIG. 1 or possibly via the GMLC 125) and / or enable the external client 130 to receive location information regarding the UE 105 (e.g., via the GMLC 125).
[0027] The UE 105 may comprise a single entity or may comprise multiple entities, such as in a personal area network in which a user may employ audio, video and / or data I / O (input / output) devices and / or body sensors and a separate wireline or wireless modem. An estimate of the location of the UE 105 may be referred to as a location, location estimate, location fix, fix, position, position estimate, or position fix, and provides location coordinates (e.g., latitude and longitude) of the UE 105 that may or may not include an altitude component (e.g., elevation, height or depth above ground, floor, or basement). Alternatively, the location of the UE 105 may be represented as a civic location (e.g., as a postal address, or a destination or small area designation of some point in a building such as a particular room or floor). The location of the UE 105 may be represented as an area or volume (defined either geographically or in civic form) within which the UE 105 is expected to be located with some probability or confidence level (e.g., 67%, 95%, etc.). The location of the UE 105 may be expressed as a relative location, including, for example, a distance and a direction from a known location. The relative location may be expressed as relative coordinates (e.g., X, Y (and Z) coordinates) defined relative to some origin in a known location, which may be defined, for example, geographically, in terms of a city, or by reference to a point, area, or volume shown, for example, on a map, floor plan, or building plan. In the description contained herein, use of the term location may include any of these variations unless otherwise indicated. When calculating the location of a UE, it is common to determine local x, y, and possibly z coordinates and then convert the local coordinates to absolute coordinates (e.g., for latitude, longitude, and altitude above or below mean sea level) if desired.
[0028] The base stations (BSs) in the NG-RAN 135 shown in FIG. 1 include NR Node Bs referred to as gNBs 110a and 110b. The pair of gNBs 110a, 110b in the NG-RAN 135 may be connected to each other via one or more other gNBs. Access to the 5G network is provided to the UE 105 via wireless communication between the UE 105 and one or more of the gNBs 110a, 110b, which may provide wireless communication access to the 5G C 140 on behalf of the UE 105 using 5G. In FIG. 1, the serving gNB for the UE 105 is assumed to be gNB 110a, although another gNB (e.g., gNB 110b) may act as the serving gNB if the UE 105 moves to another location, or as a secondary gNB to provide additional throughput and bandwidth to the UE 105.
[0029] 1 may include the ng-eNB 114, also referred to as next generation evolved node B. The ng-eNB 114 may be connected to one or more of the gNBs 110a, 110b in the NG-RAN 135, possibly via one or more other gNBs and / or one or more other ng-eNBs. The ng-eNB 114 may provide LTE wireless access and / or evolved LTE (eLTE) wireless access to the UE 105. One or more of the gNBs 110a, 110b and / or ng-eNB 114 may be configured to function as positioning-only beacons that may transmit signals to assist in determining a position of the UE 105, but may not receive signals from the UE 105 or other UEs.
[0030] As mentioned, FIG. 1 illustrates nodes configured to communicate according to a 5G communication protocol, although nodes configured to communicate according to other communication protocols, such as, for example, an LTE protocol or an IEEE 802.11x protocol, may be used. For example, in an Evolved Packet System (EPS) providing LTE wireless access to the UE 105, the RAN may include an Evolved Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (E-UTRAN), which may include base stations including evolved Node Bs (eNBs). The core network for the EPS may include an Evolved Packet Core (EPC). The EPS may include the E-UTRAN plus the EPC, where in FIG. 1, the E-UTRAN corresponds to the NG-RAN 135 and the EPC corresponds to the 5GC 140.
[0031] The gNBs 110a-b and ng-eNBs 114 may communicate with the AMF 115, which in turn communicates with the LMF 120 for positioning functions. The AMF 115 may support mobility of the UE 105, including cell changes and handovers, and may be involved in supporting signaling connections to the UE 105, as well as possibly data and voice bearers for the UE 105. The LMF 120 may support positioning of the UE 105 when the UE 105 accesses the NG-RAN 135, and may support positioning procedures / methods such as Assisted GNSS (A-GNSS), Observed Time Difference of Arrival (OTDOA), Real Time Kinematic (RTK), Precise Point Positioning (PPP), Differential GNSS (DGNSS), Enhanced Cell ID (E-CID), Angle of Arrival (AOA), Angle of Departure (AOD), and / or other positioning methods. The LMF 120 may process location service requests for the UE 105, for example, received from the AMF 115 or from the GMLC 125. The LMF 120 may be connected to the AMF 115 and / or to the GMLC 125. The LMF 120 may be referred to by other names, such as a Location Manager (LM), a Location Function (LF), a Commercial LMF (CLMF), or a Value Added LMF (VLMF). A node / system implementing the LMF 120 may additionally or alternatively implement other types of location support modules, such as an Enhanced Serving Mobile Location Center (E-SMLC) or a Secure User Plane Location (SUPL) Location Platform (SLP). At least a portion of the positioning functions (including derivation of the location of UE105) may be performed in UE105 (e.g., using signal measurements obtained by UE105 for signals transmitted by wireless nodes such as gNB110a, 110b, and / or ng-eNB114, and / or assistance data provided to UE105, for example, by LMF120).
[0032] The GMLC 125 may support location requests for the UE 105 received from the external client 130 and may forward such location requests to the AMF 115 for forwarding by the AMF 115 to the LMF 120 or may forward the location request directly to the LMF 120. A location response (e.g., including a location estimate for the UE 105) from the LMF 120 may be returned to the GMLC 125 either directly or via the AMF 115, which may then return a location response (e.g., including the location estimate) to the external client 130. Although the GMLC 125 is shown connected to both the AMF 115 and the LMF 120, in some implementations one of these connections may be supported by the 5GC 140.
[0033] As further shown in FIG. 1, the LMF 120 may communicate with the gNBs 110a, 110b, and / or the ng-eNB 114 using a New Radio Positioning Protocol A (sometimes referred to as NPPa or NRPPa), which may be defined in 3GPP Technical Specification (TS) 38.455. NRPPa may be the same as, similar to, or an extension of the LTE Positioning Protocol A (LPPa), which may be defined in 3GPP TS 36.455, and NRPPa messages are transferred between the gNB 110a (or gNB 110b) and the LMF 120 and / or between the ng-eNB 114 and the LMF 120 via the AMF 115. As further shown in FIG. 1, the LMF 120 and the UE 105 may communicate using the LTE Positioning Protocol (LPP), which may be defined in 3GPP TS 36.355. The LMF 120 and the UE 105 may also or instead communicate using a New Radio Positioning Protocol (sometimes referred to as NPP or NRPP), which may be the same as, similar to, or an extension of the LPP. Here, the LPP and / or NPP messages may be transferred between the UE 105 and the LMF 120 via the serving gNB 110a, 110b or the serving ng-eNB 114 for the AMF 115 and the UE 105. For example, the LPP and / or NPP messages may be transferred between the LMF 120 and the AMF 115 using a 5G Location Services Application Protocol (LCS AP), and may be transferred between the AMF 115 and the UE 105 using a 5G Non-Access Stratum (NAS) protocol. The LPP and / or NPP protocols may be used to support positioning of the UE 105 using UE-assisted and / or UE-based positioning methods such as A-GNSS, RTK, OTDOA, and / or E-CID.The NRPPa protocol may be used to support positioning of the UE 105 using network-based positioning methods such as E-CID (e.g., when used in conjunction with measurements obtained by the gNBs 110a, 110b, or ng-eNB 114) and / or may be used by the LMF 120 to obtain location-related information from the gNBs 110a, 110b, and / or ng-eNB 114, such as parameters defining directional SS (synchronization signal) or PRS transmissions from the gNBs 110a, 110b, and / or ng-eNB 114.
[0034] With the UE-assisted positioning method, the UE 105 can obtain location measurements and send the measurements to a location server (e.g., the LMF 120) for computation of a location estimate for the UE 105. For example, the location measurements may include one or more of a received signal strength indication (RSSI), a round-trip signal propagation time (RTT), a reference signal time difference (RSTD), a reference signal received power (RSRP), and / or a reference signal received quality (RSRQ) for the gNBs 110a, 110b, the ng-eNB 114, and / or the WLAN APs. The location measurements may also or instead include measurements of GNSS pseudorange, code phase, and / or carrier phase for the SV190.
[0035] Using the UE-based positioning method, the UE 105 can obtain location measurements (which may, for example, be the same as or similar to the location measurements of the UE-assisted positioning method) and can calculate the location of the UE 105 (e.g., using assistance data received from a location server such as the LMF 120 or broadcast by the gNB 110a, 110b, ng-eNB 114, or other base station or AP).
[0036] With a network-based positioning method, one or more base stations (e.g., gNBs 110a, 110b, and / or ng-eNB 114) or APs may obtain location measurements (e.g., RSSI, RTT, RSRP, RSRQ, or time of arrival (TOA) measurements for signals transmitted by the UE 105) and / or receive measurements obtained by the UE 105. The one or more base stations or APs may send the measurements to a location server (e.g., LMF 120) for computation of a location estimate for the UE 105.
[0037] The information provided by the gNBs 110a, 110b, and / or ng-eNB 114 to the LMF 120 using the NRPPa may include timing and configuration information for directional SS or PRS transmissions, as well as location coordinates. The LMF 120 may provide some or all of this information to the UE 105 via the NG-RAN 135 and the 5GC 140 as assistance data in LPP and / or NPP messages.
[0038] An LPP or NPP message sent from the LMF 120 to the UE 105 can instruct the UE 105 to do any of a variety of things depending on the desired functionality. For example, the LPP or NPP message may include instructions for the UE 105 to obtain measurements for GNSS (or A-GNSS), WLAN, E-CID, and / or OTDOA (or some other positioning method). In the case of E-CID, the LPP or NPP message can instruct the UE 105 to obtain one or more measurements (e.g., beam ID, beam width, average angle, RSRP, RSRQ measurements) of directional signals transmitted within a particular cell supported by one or more of the gNBs 110a, 110b, and / or ng-eNB 114 (or supported by some other type of base station such as an eNB or WiFi AP). The UE 105 may send the measurement quantities back to the LMF 120 in an LPP or NPP message (e.g., inside a 5G NAS message) via the serving gNB 110a (or serving ng-eNB 114) and the AMF 115.
[0039] As mentioned, the communication system 100 is described with respect to 5G technology, however, the communication system 100 may be implemented to support other communication technologies, such as GSM, WCDMA, LTE, etc., used to support and interact with mobile devices, such as the UE 105 (e.g., to implement voice, data, positioning, and other functions). In some such embodiments, the 5GC 140 may be configured to control different air interfaces. For example, the 5GC 140 may be connected to a WLAN using a non-3GPP interworking function (N3IWF, not shown in FIG. 1) in the 5GC 140. For example, the WLAN may support IEEE 802.11 WiFi access for the UE 105 and may comprise one or more WiFi APs. Here, the N3IWF may connect to the WLAN and to other elements in the 5GC 140, such as the AMF 115. In some embodiments, both the NG-RAN 135 and the 5GC 140 may be replaced with one or more other RANs and one or more other core networks. For example, in an EPS, the NG-RAN 135 may be replaced with an E-UTRAN including eNBs, and the 5GC 140 may be replaced with an EPC including a mobility management entity (MME) instead of the AMF 115, an E-SMLC instead of the LMF 120, and a GMLC that may be similar to the GMLC 125. In such an EPS, the E-SMLC may use LPPa instead of NRPPa to send and receive location information to and from the eNBs in the E-UTRAN, and may use LPP to support positioning of the UE 105. In these other embodiments, positioning of the UE 105 using directional PRS may be supported in a manner similar to that described herein for 5G networks, with the difference being that the functions and procedures described herein for the gNBs 110a, 110b, ng-eNB 114, AMF 115, and LMF 120 may instead be applied to other network elements, such as eNBs, WiFi APs, MMEs, and E-SMLCs, in some cases.
[0040] As mentioned, in some embodiments, the positioning functionality may be implemented, at least in part, using directional SS or PRS beams sent by base stations (such as gNBs 110a, 110b, and / or ng-eNB 114) that are within range of the UE (e.g., UE 105 of FIG. 1) whose position is to be determined. The UE may use directional SS or PRS beams from multiple base stations (such as gNBs 110a, 110b, ng-eNB 114) to calculate the UE's position in some instances.
[0041] Referring to Figure 2, a schematic diagram of a mobile device 200 according to one embodiment is shown. The UE 105 shown in Figure 1 may include one or more features of the mobile device 200 shown in Figure 2. Some of the features disclosed in Figure 2 are optional. In some embodiments, the mobile device 200 may include a wireless transceiver 221 capable of transmitting and receiving wireless signals 223 via a wireless antenna 222 over a wireless communication network. The wireless transceiver 221 may be connected to the bus 201 by a wireless transceiver bus interface 220. The wireless transceiver bus interface 220 may be at least partially integrated with the wireless transceiver 221 in some embodiments. Some embodiments may include multiple wireless transceivers 221 and wireless antennas 222 to enable transmission and / or reception of signals according to multiple corresponding wireless communication standards, such as, for example, versions of IEEE Standard 202.11, CDMA, WCDMA, LTE, UMTS, GSM, AMPS, Zigbee, Bluetooth, and 5G or NR air interfaces defined by 3GPP, just to name a few. In certain implementations, the wireless transceiver 221 may receive and acquire downlink signals, including terrestrial positioning signals, such as PRS. For example, the wireless transceiver 221 may process the acquired terrestrial positioning signals sufficiently to enable detection of the timing of the acquired terrestrial positioning signals.
[0042] Mobile device 200 may include an SPS receiver 255 capable of receiving and acquiring SPS signals 259 via an SPS antenna 258 (which may be the same as wireless antenna 222 in some embodiments). SPS receiver 255 and interface 250 may process acquired SPS signals 259, in whole or in part, to estimate a location of mobile device 200. One or more general-purpose processors 211, memory 240, one or more digital signal processors (DSPs) 212, and / or special-purpose processors (not shown), in conjunction with SPS receiver 255, may be utilized to process acquired SPS signals, in whole or in part, and / or to calculate an estimated location of mobile device 200. Storage of SPS, TPS, or other signals (e.g., signals acquired from wireless transceiver 221) or measurements of these signals for use in performing positioning operations may be performed in memory 240 or in registers (not shown). The general purpose processor 211, memory 240, DSP 212, and / or special purpose processor may provide or support a location engine for use in processing measurements to estimate a location of the mobile device 200. For example, the general purpose processor 211 or DSP 212 may process downlink signals acquired by the wireless transceiver 221 to make, for example, RSSI, RTT, AOA, TOA, RSTD, RSRQ, and / or RSRQ measurements.
[0043] As also shown in FIG. 2, the DSP 212 and the general-purpose processor 211 may be connected to the memory 240 through a bus 201. A particular bus interface (not shown) may be integrated with the DSP 212, the general-purpose processor 211, and the memory 240. In various embodiments, functions may be performed in response to the execution of one or more machine-readable instructions stored in the memory 240, such as on a computer-readable storage medium such as RAM, ROM, FLASH, or a disk drive, to name just a few. The one or more instructions may be executable by the general-purpose processor 211, a special-purpose processor, or the DSP 212. The memory 240 may include a non-transitory processor-readable memory and / or a computer-readable memory that stores software code (programming code, instructions, etc.) executable by the general-purpose processor 211 and / or the DSP 212 to perform the functions described herein.
[0044] As also shown in FIG. 2, the user interface 235 may include any one of several devices, such as, for example, a speaker, a microphone, a display device, a vibration device, a keyboard, a touch screen, just to name a few. In certain implementations, the user interface 235 may enable a user to interact with one or more applications hosted on the mobile device 200. For example, the user interface 235 devices may store analog and / or digital signals on the memory 240 for further processing by the DSP 212 or the general purpose processor 211 in response to an action from the user. Similarly, the applications hosted on the mobile device 200 may store analog or digital signals on the memory 240 for presenting output signals to the user. The mobile device 200 may optionally include a dedicated audio input / output (I / O) device 270, including, for example, a dedicated speaker, a microphone, digital-to-analog circuitry, analog-to-digital circuitry, amplifiers and / or gain controls. This is merely one example of how audio I / O may be implemented in a mobile device, and claimed subject matter is not limited in this respect. The mobile device 200 may include a touch sensor 262 or touch screen device that responds to touch or pressure on the keyboard.
[0045] The mobile device 200 may include a dedicated camera device 264 for capturing still or video images. The camera device 264 may include, for example, an imaging sensor (e.g., a charge-coupled device or CMOS (complementary metal-oxide semiconductor) imager), a lens, analog-digital circuitry, a frame buffer, to name just a few. Additional processing, conditioning, encoding, and / or compression of signals representing the captured images may be performed in the general-purpose / application processor 211 and / or the DSP 212. A dedicated video processor 268 may perform conditioning, encoding, compression, or manipulation of signals representing the captured images. The video processor 268 may decode / decompress stored image data for presentation on a display device (not shown) on the mobile device 200.
[0046] Mobile device 200 may also include sensors 260 coupled to bus 201, which may include, for example, inertial sensors and environmental sensors. The inertial sensors of sensors 260 may include, for example, an accelerometer (e.g., collectively responsive to acceleration of mobile device 200 in three dimensions), one or more gyroscopes, or one or more magnetometers (e.g., to support one or more compass applications). Environmental sensors of mobile device 200 may include, for example, a temperature sensor, an air pressure sensor, an ambient light sensor, a camera imager, a microphone, just to name a few. Sensors 260 may generate analog and / or digital signals that may be stored in memory 240 and processed by DSP 212 or general purpose / application processor 211 in support of one or more applications, such as, for example, applications directed to positioning or navigation operations.
[0047] Mobile device 200 may include a dedicated modem processor 266 capable of performing baseband processing of signals received and downconverted at wireless transceiver 221 or SPS receiver 255. Modem processor 266 may perform baseband processing of signals to be upconverted for transmission by wireless transceiver 221. In alternative implementations, instead of having a dedicated modem processor, baseband processing may be performed by a general purpose processor or DSP (e.g., general purpose / application processor 211 or DSP 212). These are merely examples of structures that may perform baseband processing and claimed subject matter is not limited in this respect.
[0048] Referring to FIG. 3, a hardware diagram of an exemplary IoT device 300 is shown. The IoT device is an example of a type of mobile device 200. In general, an IoT device has the ability to connect with the Internet and includes integrated technologies such as sensors, functional software, technologies supporting network connectivity, or actuators. By way of example and not limitation, an IoT device may be a myriad of products such as mobile devices, light actuators, parking meters, appliances, security systems, fire alarms, cameras, etc. In one example, the IoT device 300 may include a modem module 302, a radio frequency (RF) control module 304, an optional Wi-Fi module 308, a power management integrated circuit (PMIC) 312, and an external motion detection sensor 314. The modem module 302 may be a device manager and is an example of a modem processor 266 that includes at least one central processing unit (e.g., an ARM Cortex A7) and is configured as a multi-mode single chipset connectivity solution to support IoT applications such as asset trackers, health monitors, security systems, smart city sensors, smart meters, wearable trackers, and other portable or movable devices that utilize wide area connectivity in a small form factor and low power requirements. In one example, the modem module 302 may be a Qualcomm 9205 chipset configured for voice services such as LTE Cat-M1 VoLTE over IMD, GSM CS voice, and advanced features such as Cat-M1 with UL TBS Rel. 14 up to 2,984, Cat-M1 VoLTE extensions, Cat-NB2 with multi-carrier NPRACH and paging, Cat-M1 coverage extension Mode B support, Cat-M1 with extended coverage restrictions, Cat-M1 with HARQ-ACK bundling in HD-FDD mode, Cat-NB2 with larger TBS and two HARQ processes, Cat-M1 retuning to another narrowband region within one retuning symbol, Cat-NB2 Release Assistance Indication (RAI), etc.The RF control module 304 is an example of the wireless transceiver 221 and the SPS receiver 255. The RF control module 304 may be a software defined radio operatively coupled to the modem module 302 and one or more antennas 306a, 306b. A radio frequency reference input (RFFE) and Tx / Rx I / Q channels may be utilized between the modem module 302 and the RF control module 304. The RF control module 304 may be configured for various cellular technologies, such as, for example, Rel. 12 EGPRS MSC12, Rel. 14 LTE Cat-M1, Rel. 14 LTE, and Cat-NB2. By way of example and not limitation, the modem module 302 and the RF control module 304 may support network protocols such as IPv4 / IPv6 stack with TCP and UDP, PPP, SSL, DTSL, FTP, Ping, HTTP, MQTT, OMA Lightweight M2M, CoAP, etc. The RF control module 304 may be configured to support terrestrial and satellite-based positioning. For example, the RF control module 304 may be configured to receive GPS, GLONASS, Beidou, and Galileo satellite signals, as well as cellular signals used in terrestrial navigation (e.g., measurements of RSSI, RTT, RSRP, RSRQ, TOA signals). In one example, the RF control module 304 may be a radio transceiver and front-end IC, such as a Qualcomm SDR105.
[0049] In one example, the subset of components may include an optional Wi-Fi module 308. The Wi-Fi module 308 is an example of the wireless transceiver 221. The Wi-Fi module 308 is operatively coupled to the modem module 302 and the antenna 310 and may be configured for single or dual band connectivity for both 2.4 GHz and 5 GHz applications. In one example, the Wi-Fi module 308 may be a Qualcomm QCA4002 / 4 for IoT applications. A power supply 320 and a voltage regulator (e.g., a low dropout LDO regulator 318) may be used along with a resistor network (not shown in FIG. 3) to provide power and bias voltages to the hardware components. In one example, the power supply ranges from 2.4V to 4.8V.
[0050] Although the hardware components shown in FIG. 3 are shown as separate packages, two or more components may be integrated in a system-on-chip (SoC) configuration. For example, a Qualcomm 9205 LTE modem may include a Qualcomm 9205 baseband IC, an SMB231 charger IC, a PME9205 power management IC, and an SDR105 radio transceiver and front-end IC in an SoC configuration. In addition, two or more external motion detection sensor devices may be used.
[0051] Other devices and chipsets may also be used in an IoT network. For example, an IoT device may include a ublox ZED-F9P module configured for concurrent reception of GPS, GLONASS, Galileo, and BeiDou, and capable of multi-band RTK. The specific hardware device manufacturers and part numbers provided herein are examples, not limitations, as component functions may be included in other proprietary and commercially available semiconductor chipsets.
[0052] With reference to FIG. 4 and with further reference to FIGS. 1-3, an example IoT architecture 400 for providing precise positioning services is shown. The IoT architecture 400 includes a server 402 operably connected to a network 410. The server 402 may be one or more edge network devices configured to coordinate communications between network elements. The network 410 may include the communication system 100 and / or other wide area network components. In one example, the server 402 may be included in the communication system 100 (e.g., the LMF 120). The IoT architecture 400 includes an example access point 408 and an example base station 412. The access point 408 and the base station 412 are examples of WiFi access points, gNBs 110a-b, ng-eNBs 114, or other networked wireless communication stations. In one example, the network 410 may include a connection to the Internet. The serving IoT device 404 may be an IoT device having a precise location (shown as solid concentric circles in FIG. 4). Typically, the serving IoT device 404 may be a stationary IoT device, such as a lamppost, a weather station, a security camera, or any capable IoT device at a fixed location. In one example, the serving device may be a Roadside Unit (RSU) in a Vehicle-to-Everything (V2X) network. The serving IoT device 404 is not limited to a stationary unit. A mobile device using precise point positioning may be configured as a serving device and thus be capable of propagating position accuracy to other IoT devices in the network. For example, the serving IoT device 404 may be a mobile device that operates with a position correction service (e.g., PPP, DGNSS, network RTK).
[0053] In general, errors in satellite clocks, actual orbits, and other sources may cause inaccuracies in the GNSS signals by the time they reach the receiver. In one example, the serving IoT device 404 is configured to transmit its known location and raw GNSS measurements to other IoT devices in the network. The user device may be configured to calculate the difference between the true distance (i.e., the known location of the serving IoT device 404) and the raw measurements taken by the serving IoT device 404 to obtain corrections to the satellites. In another example, the serving IoT device 404 may be configured to utilize signals transmitted from the GNSS satellites 190 to calculate its location and compare its calculated location to its actual known location. The position difference is used to determine an error correction value, which is then provided to other IoT devices in the network. The error correction value is an example of precise positioning information, which may be real-time kinematic satellite phase correction information or differential satellite correction information. In one example, the serving IoT device 404 may utilize the wireless sidelink 416 to provide correction data to the first IoT device 406a. The wireless sidelink may be Bluetooth, PC5, or other wireless communication technology. The correction data may be included as a RTCM (Radio Technical Commission for Maritime) protocol compliant payload. Other protocols (e.g., 3GPP, etc.) may also be used. The first IoT device 406a may utilize signals transmitted from GNSS satellites 190 and correction data received from the serving IoT device 404 to calculate a precise position.
[0054] In one example, the serving IoT device 404 may utilize additional wireless protocols 414 (e.g., WiFi, LTE, 5G) to provide precise positioning data to the server 402 via the access point 408 or base station 412. The server 402 is configured to enable propagation of precise positioning data determined by the serving IoT device 404 throughout the network. For example, the second IoT device 406b may receive precise positioning data via the network 410 and the access point 408 (or another access point connected to the network 410) and apply the precise positioning data to signals received from satellites 190 to determine a precise location. The second IoT device 406b may then utilize its precise location to generate new precise positioning data and provide the precise positioning data to the server 402 or to one or more other IoT devices in the network, such as the third IoT device 406c. The precise positioning data may be provided to the third IoT device 406c via a sidelink or other peer-to-peer communication protocol. In one example, the second IoT device 406b may be configured to forward the precise positioning data received from the network 410 to the third IoT device 406c.
[0055] Various IoT devices in the network may be configured to provide precise positioning data based on their respective capabilities or configuration set points. For example, a first IoT device 406a may provide precise positioning data to the server 402 at a first accuracy level and a first rate, and a second IoT device 406b may provide precise positioning data to the server 402 at a second accuracy level and a second rate. A fourth IoT device 406d may be configured to customize how precise positioning data is received from the server 402. For example, the fourth IoT device 406d may subscribe to obtain data at a first accuracy level and a first rate. Other configuration options may also be used.
[0056] With reference to FIG. 5 and with further reference to FIGS. 1-4, an exemplary user interface and data structure of a customizable subscription service for precise positioning with IoT devices is shown. The server 402 may include or be operatively coupled to a data structure 502 configured to store subscription database information. The data structure 502 may be a relational database application (e.g., SQL, Oracle, etc.) or other persistent data structure (e.g., flat file, JSON, XML) configured to store user and device subscription information. The data structure 502 may include various tables and fields configured to store user and / or device subscription options. Previous precise positioning services typically have a single service model, where all subscribers receive the same level of data. The prior art model may be inefficient for some users, as the received positioning data may be at a higher accuracy level than the user requires, thus wasting a portion of the subscription cost. The data structure 502 is configured to store precise positioning subscription options to enable the user to receive customized location information better suited to a particular application. In one example, a computing device 510, such as a tablet, personal computer, etc., may be configured to present configuration selections stored in the data structure 502 to a user. For example, the user interface may be a web-based application configured to run in a browser, or a rich client application running on the computing device 510. In one example, the data structure 502 may be persisted on the computing device 510. The user interface may include standard objects such as text boxes, list boxes, combination boxes, radio buttons, toggle objects, and other input and display objects.
[0057] The subscription options may be associated with a user (e.g., user ID) or other identification information such as a device ID. The subscription options may also be associated with a location or region. The options may include data fields associated with an involved satellite signal type. For example, the constellation selection field 512 may be configured to obtain a list of GNSS constellation data (e.g., GPS, GLONASS, Galileo, Beidou, etc.) that the device is configured to receive. The desired band field 514 is configured to obtain information associated with satellite signal types such as L1C / A, L2C, L20F, E1B / C, B2I, E5b, L5, etc. Other fields may be used to capture channel information (e.g., pilot or data). The payload format field 516 may be used to store an expected format of the received correction data (e.g., RTCM, 3GPP, etc.). The correction data type field 518 may receive an indication of a desire to utilize pseudorange and / or carrier phase corrections. The correction data update frequency field 520 may be used to receive the user's desired correction data update frequency (e.g., every 1 second, every 2 seconds, every 5 seconds, every 10 seconds, every 15 seconds, etc.). The position accuracy field 522 may indicate the desired accuracy of the correction data (e.g., centimeter level, decimeter level, sub-meter level, etc.). Other configuration options 524 and operational data may be stored in the data structure 502. For example, the device's rough location may be provided to the server periodically (e.g., latitude / longitude / altitude). The corresponding position uncertainty may also be stored (e.g., east, north, vertical: meters). Other satellite and positioning options that may affect the delivery of precise positioning services may also be stored in the data structure 502.
[0058] In one example, the data structure 502 or the server 402 may have a billing application configured to provide billing or purchase order information to a user. A user may input subscription options based on a fee structure. For example, the fee structure may be based on geographic area, correction data update frequency, location accuracy, or other configuration options. A user may be charged periodically and / or per use, or based on other commercial approaches, for the precise positioning services provided by the IoT architecture 400. One of the configuration options may include an opt-out option for a user to cancel their subscription. In one embodiment, devices in the IoT architecture 400, such as the serving IoT device 404, may be compensated for participating in the IoT architecture 400. In one example, to encourage participation in the IoT architecture 400, compensation may be based on the amount of time the device serves as a serving station. Other compensation approaches may be used to provide benefits for adding devices to the network.
[0059] With reference to FIG. 6 and with further reference to FIGS. 1-5, an example use case diagram is shown for positioning a mobile device 602 using a network of IoT devices 600. In one example, the network 600 includes the example IoT architecture 400 of FIG. 4. The devices shown in the network 600 are configured to receive signals from satellites 190 and communicate with a server 402 via access points 408 and / or base stations 412 (not shown in FIG. 6) as previously described. The communication techniques between the devices in the network 600 are agnostic, as various wired and wireless communication systems may be used to enable transfer of data between the devices. The mobile device 602 is an example of a UE 105. For example, the mobile device 602 may be an autonomous vehicle, such as a delivery drone. The server 402 is configured to determine subscription data associated with the mobile device 602 (e.g., based on a device ID, a user ID, or other index field). The subscription data may further be based on the location of the mobile device 602. The server 402 is configured to obtain a current location (e.g., coarse location) of the mobile device 602 and determine one or more IoT devices in the network 600 to provide precise positioning information (e.g., RTK, DGPS correction data) to the mobile device 602 based on a subscription option. The network 600 may include multiple client IoT devices, with one IoT device designated as a serving IoT device. For example, the server 402 may select a serving IoT device 606 based on one or more previously stored subscription fields, such as the location accuracy field 522 and the constellation field 512. The serving IoT device 606 may be a stationary or mobile IoT device with a precise location. The serving IoT device 606 may be configured to determine RTK or DGPS correction data and provide the correction data (i.e., precise positioning information) to the server 402.In one example, the server 402 may receive raw satellite signal information from the serving IoT device 606 and calculate precise positioning data. The mobile device 602 may receive precise positioning data from the server 402 (e.g., via the IoT architecture 400) or directly from the serving IoT device 606 (e.g., via a sidelink protocol) and calculate a precise position. In one example, the server 402 may be configured to receive satellite signal information from the mobile device 602 and from the serving IoT device 606 to determine a precise location of the mobile device 602.
[0060] The server 402 may also determine one or more likely candidates 608a-c based on the location and subscription configuration of the mobile device 602. The likely candidates 608a-c are client IoT devices that may be used as alternative serving IoT devices. The selection of likely candidates 608a-c may be based on the predicted future trajectory 604 of the mobile device and / or other subscription factors. The server 402 may evaluate subscription options based on the weighted matching algorithm such that the selected serving IoT device 606 may represent the best result based on the weighted matching algorithm. In that case, the likely candidates 608a-c may represent the sub-optimal result based on the weighted algorithm. For example, the subscription options may indicate a desired decimeter accuracy requirement where correction data is provided every 5 seconds. The serving IoT device 606 may provide decimeter accuracy at a desired update rate. The first likely candidate 608a may be configured to provide centimeter level accuracy at a higher update rate. Thus, the first potential candidate 608a may be capable of over-provisioning service, which may be suboptimal from a data transfer perspective, but will be a sufficient substitute serving station for the mobile device 602 if the serving IoT device 606 becomes inactive. Alternatively, the second potential candidate 608b may provide the required accuracy and update rate, but other factors, such as uptime or other historical performance factors, are used to categorize the second potential candidate 608b as a potential candidate rather than a serving device. The third potential candidate 608c may also meet the accuracy and update rate, but its relative location to the mobile device 602 compared to the serving IoT device 606 is used to categorize the third potential candidate 608c as a potential candidate. The server 402 may be configured to modify the precise positioning data sent to the mobile device 602 based on subscription requirements. For example, the server 402 may filter data associated with the over-provisioning first potential candidate 608a to meet the subscription expectations of the mobile device 602.The server 402 may also modify the format of data payloads between devices, such as converting RTCM messages to 3GPP frames and converting 3GPP frames to RTCM messages, as indicated by the subscription options.
[0061] The server 402 is configured to continuously update the current serving device selection and potential candidates as the mobile device 602 progresses along the orbit 604. One or more unassigned client IoT devices 610a, 610b, 610c, 610d, 610e may be later selected as a serving device and / or potential candidate based on subscription options and network status. For example, if the current serving IoT device 606 and / or one of the potential candidates 608a-c should go offline (e.g., power saving mode, communication failure) or lose position accuracy (e.g., due to sky obstruction) or change location, or become inactive for other reasons such as other device failure, the server 402 is configured to run a matching algorithm to find an alternative station to use. Thus, the IoT network 600 provides improved reliability compared to previous single station RTK solutions, since an alternative serving device may be identified and used to immediately replace the failed serving device. The alignment algorithm may also continually re-evaluate the status and capabilities of devices in the IoT network 600 to provide services aligned with the subscription options. New IoT stations may also be added to the network. Thus, as the number of IoT devices in the network increases, the coverage area of the precise positioning service may be automatically expanded. In one example, the mobile device 602 itself may be included in the IoT network and configured as a serving device. The server 402 may be configured to use the existing network 600 to precisely determine the location of the newly added IoT device. In one example, one or more of the unassigned client IoT devices 610a-e may be in a sleep mode, and the server 402 may be configured to wake up the unassigned client IoT devices 610a-e so that they may act as potential candidates or serving devices.
[0062] With reference to FIG. 7 and with further reference to FIGS. 1-6, a method 700 for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices includes the steps shown. However, the method 700 is by way of example and not by way of limitation. The method 700 may be modified, for example, by adding, removing, reordering, combining, performing simultaneously steps, and / or splitting a single step into multiple steps. For example, steps 706 and 708 described below may be performed simultaneously. Still other modifications to the method 700 as shown and described are possible.
[0063] In step 702, the method includes obtaining a coarse location of the mobile device. The server 402 and the mobile device 602 are means for obtaining the coarse location. In one example, the mobile device 602 includes an SPS receiver 255 configured to receive signals transmitted from satellites 190. The mobile device 602 may be configured to locally calculate a location and provide the coarse location to the server 402. In one example, the mobile device 602 is configured to provide satellite measurement information to the server 402, which determines the coarse location of the mobile device 602. The coarse location of the mobile device 602 may be based on terrestrial navigation techniques such as OTDOA, E-CID, AOA, AOD, RTT, inertial sensors, or other terrestrial-based navigation techniques. The coarse location may be determined by the communication system 100 and provided to the server 402.
[0064] At stage 704, the method includes determining one or more proximate reporting Internet of Things devices based on the coarse location. The server 402 may be a means for determining one or more proximate reporting devices. With reference to FIG. 6, the server 402 is configured to track the locations of the IoT devices 606, 608a-c, 610a-e as well as other IoT devices that may later join the network. The definition of proximate may be based on the density of IoT devices in the network as well as other operational considerations (e.g., desired accuracy, satellite coverage). Generally, a proximate reporting IoT device may be within 10 km of an estimated location of the mobile device 602. In one example, a proximate reporting IoT device may be within 30 km of the mobile device 602. The server 402 is configured to determine a list of IoT devices in the network that are within a threshold distance of the coarse location of the mobile device 602. This list of IoT devices is one or more proximate reporting devices.
[0065] At stage 706, the method includes selecting a serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on the one or more configuration options. The server 402 may be a means for selecting a serving device. The server 402 may include, or have access to, a non-transitory processor-readable storage medium including processor-readable instructions configured to cause one or more processors to select a serving device based on the subscription options stored in the data structure 502. In one example, an algorithm may determine a subset of proximate reporting devices that are capable of reporting GNSS measurements and are in a precise location. For each IoT device in the subset, the algorithm may determine a weighting score based on a parameter of the IoT device compared to a subscription option for the mobile device 602. The weighting score may be a sum of weighting functions applied to each of the fields in the subscription options. For example, a first weighting function may be a constant value times the distance between the IoT station and the mobile device 602. A second weighting function may be based on the location accuracy field 522 for the mobile device 602 and the device capabilities of the IoT device. Other weighting functions may be applied to other fields in the subscription options. The calculated scores for each of the IoT devices in the subset may be sorted in an array. The IoT device in the subset with the lowest total weighted score may be selected as the serving IoT device 606.
[0066] In stage 708, the next n IoT devices in the subset with the next lowest scores may be selected as potential candidates 608a-c. The server 402 may be configured to run the algorithm periodically (e.g., every 1 second, every 2 seconds, every 5 seconds, every 10 seconds, every 15 seconds, every 60 seconds, etc.) to ensure that the best matching candidate is selected as the serving device and the best potential candidate is identified as the mobile device 602 moves through the network and as the status of the IoT devices in the network 600 changes (e.g., due to movement, power settings, location accuracy, device performance, etc.). The method 700 provides an adaptive precise positioning service that helps ensure that the delivered precise positioning data is consistent with the subscription options associated with the mobile device.
[0067] With reference to FIG. 8 and with further reference to FIGS. 1-7, a method 800 for tracking one or more potential candidates in an IoT network includes the steps shown. However, the method 800 is by way of example and not by way of limitation. The method 800 may be modified, for example, by adding, removing, reordering, combining, performing simultaneously steps, and / or splitting a single step into multiple steps. For example, steps 802, 804, and 806 described below may be performed simultaneously. Still other modifications to the method 800 as shown and described are possible.
[0068] In step 802, the method includes determining the status of potential candidates. The server 402 is a means for determining the status of potential candidates. Potential candidates 608a-c are identified to become the serving device if the current serving IoT device 606 becomes unavailable. The status of each of the potential candidates 608a-c may be evaluated periodically (e.g., every 0.5 seconds, every 1 second, every 2 seconds, every 10 seconds, every 60 seconds, etc.) to ensure that they become available to serve as the serving device. In one example, the server 402 may send a request to the device to obtain permission to use the device in the network 600. The server may reject such a request and the device will not be added to the network 600. In one example, the request may be sent periodically. Status changes such as going offline (e.g., due to power settings), changing location accuracy (e.g., due to movement), changing satellite reception (which may be degraded due to line of sight being blocked, or rejecting a request to join the network may cause the device to be removed from the network. If a potential candidate becomes unavailable because it goes offline or loses satellite detection capability, the device may be removed from the network and / or a status field indicating that the device is a potential candidate may be changed.
[0069] In stage 804, the method includes determining a distance between the mobile device and the potential candidates. The server 402 may be a means for determining the distance. The precise location of the mobile device 602 may be based on precise positioning data provided by the serving IoT device 606. The server 402 is configured to determine a distance between the mobile device 602 and the current potential candidates. If the distance is greater than a threshold (e.g., 1 km, 5 km, 10 km, 30 km), the current potential candidate is removed from the list of potential candidates. In stage 806, the server 402 is configured to determine the number of IoT devices classified as potential candidates. For example, the server 402 may perform a counting operation based on the value of an IsHotCandidate status field associated with the IoT device.
[0070] In stage 808, the method includes determining one or more nearby reporting Internet of Things devices based on the current location of the mobile device if the number of available potential candidates falls below a threshold, and selecting a new potential candidate from the one or more nearby reporting Internet of Things devices based on one or more configuration options. The server 402 is a means for selecting a new potential candidate. The threshold number of potential candidates may be based on the features and capabilities of the mobile device 602. For example, if the mobile device 602 is moving quickly and / or requires centimeter-level precise positioning, the threshold number of potential candidates may be 3 or 4 to ensure that potential candidates are readily available if the serving IoT device 606 goes offline or out of range (i.e., based on the distance to the mobile device). In another example, if the mobile device 602 is stationary or moving slowly, or has less accurate precise positioning requirements (e.g., sub-meter level), a threshold with fewer potential candidates (e.g., 1 or 2) may provide a satisfactory positioning result. If the number of potential candidates falls below a specified threshold, the server 402 may be configured to perform a search process to select new potential candidates. For example, the method 700 of FIG. 7 may be used to select potential candidates based on configuration options associated with the mobile device 602.
[0071] With reference to FIG. 9 and with further reference to FIGS. 1-8, a method 900 for tracking and switching serving devices in an IoT network includes the steps shown. However, the method 900 is by way of example and not by way of limitation. The method 900 may be modified, for example, by adding, removing, reordering, combining, performing simultaneously steps, and / or splitting a single step into multiple steps. For example, steps 902 and 904 described below may be performed simultaneously. Still other modifications to the method 900 as shown and described are possible.
[0072] At step 902, the method includes determining a status of the serving Internet of Things device. The server 402 is a means for determining the status of the serving IoT device. Referring to FIG. 6, the mobile device 602 receives precise positioning data based on measurements obtained from the serving IoT device 606. If the serving IoT device 606 is unable to provide measurements or correction data to the network 600 (e.g., via the server 402) at a certain point in time, one of the potential candidates 608a-c may be designated as the new serving IoT device and will provide measurements or corrections to the network 600. For example, the serving IoT device 606 may have an inactive status due to a power outage, component failure, or other event that causes the serving IoT device 606 to lose connection with the network or impair its ability to provide data to the network. The server 402 is configured to maintain a status field for each IoT device in the network 600. If the status of the serving IoT device 606 indicates that the serving IoT device 606 is inactive, one of the potential candidates 608a-c will be selected in stage 906.
[0073] At stage 904, the method includes determining a distance between the mobile device and the serving IoT device. The server 402 is a means for determining the distance. The precise locations of the mobile device 602 and the serving IoT device 606 are known to the server 402. The distance may be compared to a pre-established threshold. The threshold may be based on application parameters such as device speed, accuracy requirements, or other operating factors. In one example, the threshold distance values may include 1 km, 5 km, 10 km, 20 km, 30 km, etc.
[0074] In stage 906, the method includes selecting a proxy serving IoT device from one or more previously determined likely candidates if the status of the serving IoT device is inactive or the distance between the mobile device and the serving IoT device is above a threshold distance. The server 402 is a means for determining a proxy serving IoT device. With reference to FIG. 7, in stage 708, one or more likely candidates are selected based on the configuration options. The selection of the likely candidate is based on the weighted scores determined in the method 700. The proxy serving device may be the likely candidate having the next best score (i.e., compared to the serving device selected in stage 706). The proxy serving device may be designated as the serving IoT device, and the method 900 may be repeated periodically (e.g., every 0.5 seconds, every 1 second, every 2 seconds, every 5 seconds, every 10 seconds) back to stages 902 and 904 to evaluate the status of the serving IoT device as previously described.
[0075] The computer system illustrated in Figure 10 may be incorporated as part of a previously described computerized device, such as server 402. Figure 10 provides a schematic diagram of one embodiment of a computer system 1000 capable of performing methods provided by various other embodiments as described herein. It should be noted that Figure 10 is intended to provide a generalized view of the various components, any or all of which may be utilized as appropriate. Thus, Figure 10 broadly illustrates how individual system elements may be implemented in a relatively separated or relatively more integrated manner.
[0076] A computer system 1000 is shown comprising hardware elements which may be electrically coupled (or otherwise in communication as appropriate) via a bus 1005. The hardware elements may include one or more processors 1010, including but not limited to one or more general purpose processors (such as digital signal processing chips, graphics acceleration processors, etc.) and / or one or more special purpose processors, one or more input devices 1015, including but not limited to a mouse, keyboard, etc., and one or more output devices 1020, including but not limited to a display device, printer, etc.
[0077] Computer system 1000 may further include (and / or be in communication with) one or more non-transitory storage devices 1025. Non-transitory storage device 1025 may comprise, but is not limited to, local and / or network-accessible storage, and / or may include solid-state storage devices, such as, but not limited to, disk drives, drive arrays, optical storage devices, random access memory ("RAM") and / or read-only memory ("ROM"), which may be programmable, flash-updateable, etc. Such storage devices may be configured to implement any suitable data store, including, but not limited to, various file systems, database structures, etc.
[0078] The computer system 1000 may also include a communication subsystem 1030, which may include, but is not limited to, a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device (such as a Bluetooth device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication facility, etc.) and / or a chipset, etc. The communication subsystem 1030 may enable data to be exchanged with a network (such as the network 600, to name just a few), other computer systems, and / or any other device described herein. In many embodiments, the computer system 1000 will further comprise a working memory 1035, which may include a RAM device or a ROM device, as described above.
[0079] Computer system 1000 may also comprise software elements, currently shown as residing in working memory 1035, including an operating system 1040, device drivers, executable libraries, and / or other code, such as one or more application programs 1045, which may include computer programs provided by various embodiments and / or may be designed to implement methods and / or configure systems provided by other embodiments, as described herein. By way of example only, one or more procedures described with respect to the methods described above may be implemented as code and / or instructions executable by a computer (and / or a processor within a computer), and in one aspect, such code and / or instructions may then be used to configure and / or adapt a general-purpose computer (or other device) to perform one or more operations in accordance with the methods described.
[0080] A set of these instructions and / or code may be stored on a computer-readable storage medium, such as storage device 1025 described above. In some cases, the storage medium may be incorporated within a computer system, such as computer system 1000. In other embodiments, the storage medium may be separate from the computer system (e.g., a removable medium such as a compact disc) and / or provided in an installation package, such that the storage medium may be used to program, configure, and / or adapt a general-purpose computer with the instructions / code stored thereon. These instructions may take the form of executable code executable by computer system 1000 and / or may take the form of source and / or installable code that is then in the form of executable code upon compilation and / or installation on computer system 1000 (e.g., using any of a variety of commonly available compilers, installation programs, compression / decompression utilities, etc.).
[0081] It will be apparent to those skilled in the art that substantial variations may be made according to particular requirements. For example, customized hardware may be used and / or particular elements may be implemented in hardware, software (including portable software such as applets), or both. Furthermore, connection to other computing devices, such as network input / output devices, may be employed.
[0082] As mentioned above, in one aspect, some embodiments may employ a computer system (such as computer system 1000) to perform methods according to various embodiments of the present disclosure. According to a set of embodiments, some or all of the steps of such methods are performed by computer system 1000 in response to processor 1010 executing one or more sequences of one or more instructions (which may be embedded in other code, such as operating system 1040 and / or application program 1045) contained in working memory 1035. Such instructions may be read into working memory 1035 from another computer-readable medium, such as one or more of storage devices 1025. By way of example only, execution of a sequence of instructions contained in working memory 1035 may cause processor 1010 to perform one or more steps of the methods described herein.
[0083] As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any medium that participates in providing data that causes a machine to operate in a specific manner. In one embodiment implemented using computer system 1000, various computer-readable media may participate in providing instructions / code to processor 1010 for execution and / or may be used to store and / or carry such instructions / code (e.g., as a signal). In many implementations, computer-readable media are physical and / or tangible storage media. Such media may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical and / or magnetic disks, such as storage device 1025. Volatile media include, but are not limited to, dynamic memory, such as working memory 1035. Transmission media include, but are not limited to, coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1005, as well as various components of communication subsystem 1030 (and / or the media through which communication subsystem 1030 provides communication with other devices). Transmission media may therefore take the form of waves (including but not limited to radio waves, acoustic waves and / or light waves, such as those generated during radio wave and infrared data communications).
[0084] Common forms of physical and / or tangible computer readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape or any other magnetic medium, a CD-ROM, any other optical medium, any other physical medium with a pattern of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described below, or any other medium from which a computer can read instructions and / or code.
[0085] Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor 1010 for execution. By way of example only, the instructions may initially be carried on a magnetic and / or optical disk of a remote computer. The remote computer may load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and / or executed by the computer system 1000. All of these signals, which may be in the form of electromagnetic, acoustic, optical, etc., are examples of carrier waves upon which instructions may be encoded, according to various embodiments of the present disclosure.
[0086] The communications subsystem 1030 (and / or its components) typically receives signals, and the bus 1005 may then convey the signals (and / or the data, instructions, etc. carried by the signals) to the working memory 1035, from which the processor 1010 retrieves and executes the instructions. The instructions received from the working memory 1035 may optionally be stored on a storage device 1025 either before or after execution by the processor 1010.
[0087] The methods, systems, and devices described above are examples. Various configurations may omit, substitute, or add various procedures or components, as appropriate. For example, in alternative configurations, the methods may be performed in an order different from that described, and / or various steps may be added, omitted, and / or combined. Also, features described with respect to some configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves, and thus many of the elements are examples and do not limit the scope of the disclosure or the claims.
[0088] Specific details are given in the description to provide a thorough understanding of the example configurations (including implementations). However, the configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures and techniques are shown without unnecessary detail to avoid obscuring the configurations. This description provides an example configuration and does not limit the scope, applicability, or configuration of the claims. Rather, the foregoing description of the configurations provides those skilled in the art with an enabling description to implement the described techniques. Various changes may be made in the function and arrangement of elements without departing from the scope of the present disclosure.
[0089] Also, the configurations may be described as a process that is shown as a flow diagram or block diagram. Although the flow diagram or block diagram may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process may have additional steps not included in the diagram. Furthermore, the example methods may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a non-transitory computer-readable medium, such as a storage medium. A processor may perform the described tasks.
[0090] Although some exemplary configurations have been described, various modifications, alternative configurations, and equivalents may be used without departing from the disclosure. For example, the above elements may be components of a larger system, where other rules may take precedence over or otherwise modify the application of the disclosure. Also, some steps may be undertaken before, during, or after the above elements are considered. Thus, the above description does not limit the scope of the claims. Other examples and implementations are within the scope of the disclosure and the appended claims. For example, due to the nature of software and computers, the functions described above may be implemented using software executed by a processor, hardware, firmware, hardwiring, or any combination of these. Features implementing the functions may also be physically located in various locations, including being distributed such that parts of the functions are implemented in various physical locations.
[0091] Also, as used herein, "or" used in a list of items beginning with "at least one of" or beginning with "one or more of" indicates a disjunctive list, such as a list of "at least one of A, B, or C" or a list of "one or more of A, B, or C" or "A, B, or C, or combinations thereof" meaning A, or B, or C, or AB, or AC, or BC, or ABC (i.e., A and B and C), or a combination with two or more features (e.g., AA, AAB, ABBC, etc.).
[0092] As used herein, unless otherwise specified, a statement that a feature or action is "based on" an item or condition means that the feature or action is based on the stated item or condition, and may be based on one or more items and / or conditions in addition to the stated item or condition.
[0093] Furthermore, an indication that information is sent or transmitted, or a description of sending or transmitting information "to" an entity, does not require completion of the communication. Such an indication or description includes situations in which information is communicated from the sending entity but does not reach the intended recipient of the information. The intended recipient may still be referred to as a receiving entity, e.g., a receiving execution environment, even if it does not actually receive the information. Furthermore, an entity configured to send or transmit information "to" the intended recipient is not required to be configured to complete delivery of the information to the intended recipient. For example, an entity may provide information to another entity along with an indication of the intended recipient, and the other entity can forward the information along with an indication of the intended recipient.
[0094] A wireless communication system is one in which at least some communications are conveyed wirelessly, e.g., by electromagnetic and / or acoustic waves propagating through atmospheric space rather than through wires or other physical connections. A wireless communication network is configured to have at least some, but not all, communications transmitted wirelessly. Furthermore, the term "wireless communication device" or similar terminology does not require that the functionality of the device be exclusively or uniformly primarily for communication or that the device be a mobile device, but indicates that the device includes wireless communication capabilities (one-way or two-way), e.g., includes at least one radio for wireless communication (each radio being part of a transmitter, receiver, or transceiver).
[0095] The methods, systems, and devices described above are examples. Various configurations may omit, substitute, or add various procedures or components, as appropriate. For example, in alternative configurations, the methods may be performed in an order different from that described, and various steps may be added, omitted, or combined. Also, features described with respect to some configurations may be combined in various other configurations. Different aspects and elements of the configurations may be combined in a similar manner. Also, technology evolves, and thus many of the elements are examples and do not limit the scope of the disclosure or claims.
[0096] Unless otherwise specified, "about" and / or "approximately" as used herein when referring to a measurable value such as an amount, duration, etc., encompasses a variation of ±20% or ±10%, ±5%, or +0.1% from the specified value, as appropriate, in the context of the systems, devices, circuits, methods, and other implementations described herein. Unless otherwise specified, "substantially" as used herein when referring to a measurable value such as an amount, duration, physical attribute (such as frequency), etc., also encompasses a variation of ±20% or ±10%, ±5%, or +0.1% from the specified value, as appropriate, in the context of the systems, devices, circuits, methods, and other implementations described herein.
[0097] A statement that a value exceeds (i.e., is greater than or exceeds) a first threshold is equivalent to a statement that the value meets or exceeds a second threshold that is slightly greater than the first threshold, e.g., the second threshold is a value that is higher than the first threshold at the resolution of the computing system. A statement that a value is less than (i.e., is within or below) a first threshold is equivalent to a statement that the value is less than or equal to a second threshold that is slightly lower than the first threshold, e.g., the second threshold is a value that is lower than the first threshold at the resolution of the computing system.
[0098] Example implementations are described in the following numbered clauses.
[0099] Clause 1. An apparatus for determining a precise location of a mobile device, comprising: at least one server comprising a data structure including precise positioning subscription options associated with a mobile device; a plurality of client Internet of Things devices configured to communicate with the at least one server, at least one of the plurality of client Internet of Things devices being a serving Internet of Things device configured to provide precise positioning information to a mobile device; a serving Internet of Things device is selected from the plurality of client Internet of Things devices based on a precise positioning subscription option; Device.
[0100] Clause 2. The device of clause 1, wherein the precise positioning subscription option includes a desired accuracy of the precise positioning information.
[0101] Clause 3. The apparatus of clause 1, wherein the precise positioning subscription option includes a desired update rate of the precise positioning information.
[0102] Clause 4. The apparatus of clause 1, wherein the serving Internet of Things device is configured to provide precise positioning information to at least one server, and the at least one server is configured to provide precise positioning information to the mobile device.
[0103] Clause 5. The device of clause 1, wherein the precise positioning information is in Radio Technical Commission for Maritime (RTCM) format.
[0104] Clause 6. The apparatus of clause 1, wherein the precise positioning information is real-time kinematic satellite phase signal correction information.
[0105] Clause 7. The device of clause 1, wherein the precise positioning information is differential satellite position correction information.
[0106] Clause 8. The apparatus of clause 1, wherein one or more of the multiple client Internet of Things devices are configured as likely candidates based on a precise positioning subscription option, and wherein one likely candidate is configured to be a substitute serving Internet of Things device when the serving Internet of Things device becomes inactive or the distance between the mobile device and the serving Internet of Things device exceeds a threshold distance.
[0107] Clause 9. A method for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: obtaining a coarse location of a mobile device; determining one or more proximate reporting Internet of Things devices based on a coarse location; selecting a serving Internet of Things device from one or more proximate reporting Internet of Things devices based on one or more configuration options; selecting one or more likely candidates from the one or more proximate reporting Internet of Things devices based on one or more configuration options; The method includes:
[0108] Clause 10. The method of clause 9, wherein the serving Internet of Things device is configured to provide real-time kinematic satellite phase correction information.
[0109] Clause 11. The method of clause 9, wherein the serving Internet of Things device is configured to provide differential satellite correction information.
[0110] Clause 12. The method of clause 9, wherein the one or more configuration options include a desired accuracy of the precise positioning information.
[0111] Clause 13. The method of clause 9, wherein the one or more configuration options include a desired update rate of the precise positioning information.
[0112] Clause 14. The method of clause 9, wherein the serving Internet of Things device is configured to provide precise positioning information in Radio Technical Committee for Maritime (RTCM) format.
[0113] Article 15. determining a status of the serving Internet of Things device; determining a distance between the mobile device and a serving Internet of Things device; determining a substitute serving device from one or more potential candidates if the status of the serving Internet of Things device is inactive or if the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; The method of clause 9 further includes:
[0114] Clause 16. An apparatus for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: Memory, At least one processor operably coupled to the memory, Obtaining a rough location of a mobile device; determining one or more proximate reporting Internet of Things devices based on the coarse location; selecting a serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on one or more configuration options; selecting one or more potential candidates from the one or more proximate reporting Internet of Things devices based on the one or more configuration options; At least one processor configured to: An apparatus comprising:
[0115] Clause 17. The apparatus of clause 16, wherein the serving Internet of Things device is configured to provide real-time kinematic satellite phase correction information.
[0116] Clause 18. The apparatus of clause 16, wherein the serving Internet of Things device is configured to provide differential satellite correction information.
[0117] Clause 19. The apparatus of clause 16, wherein the one or more configuration options include a desired accuracy of the precise positioning information.
[0118] Clause 20. The apparatus of clause 16, wherein the one or more configuration options include a desired update rate of the precise positioning information.
[0119] Clause 21. The apparatus of clause 16, wherein the serving Internet of Things device is configured to provide precise positioning information in Radio Technical Committee for Maritime (RTCM) format.
[0120] Article 22. At least one processor: Determining a status of a serving Internet of Things device; determining a distance between the mobile device and a serving Internet of Things device; determining a substitute serving device from one or more potential candidates when a status of the serving Internet of Things device is inactive or a distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; 17. The apparatus of clause 16, further configured to:
[0121] Clause 23. An apparatus for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: A means for obtaining a coarse location of a mobile device; means for determining one or more proximate reporting Internet of Things devices based on a coarse location; means for selecting a serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on one or more configuration options; means for selecting one or more potential candidates from the one or more proximate reporting Internet of Things devices based on one or more configuration options; An apparatus comprising:
[0122] Article 24. means for determining a status of a serving Internet of Things device; means for determining a distance between the mobile device and a serving Internet of Things device; means for determining a substitute serving device from one or more potential candidates when the status of the serving Internet of Things device is inactive or when the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; The apparatus of clause 23 further comprising:
[0123] Clause 25. A non-transitory processor-readable storage medium comprising processor-readable instructions configured to cause one or more processors to determine a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: Code to get the rough location of a mobile device, code for determining one or more proximate reporting Internet of Things devices based on a coarse location; code for selecting a serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on one or more configuration options; code for selecting one or more potential candidates from the one or more proximate reporting Internet of Things devices based on one or more configuration options; 11. A non-transitory processor-readable storage medium comprising:
[0124] Article 26. Code for determining a status of a serving Internet of Things device; code for determining a distance between the mobile device and a serving Internet of Things device; code for determining a substitute serving device from one or more potential candidates when a status of the serving Internet of Things device is inactive or when a distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; The non-transitory storage medium of clause 25, further comprising:
[0125] Clause 27. A method for switching a serving Internet of Things device in an Internet of Things network, comprising: determining a status of the serving Internet of Things device; determining a distance between the mobile device and a serving Internet of Things device; selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or if the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; The method includes:
[0126] Clause 28. The method of clause 27, wherein one or more previously determined likely candidates are selected from one or more proximate reporting Internet of Things devices based on one or more configuration options.
[0127] Clause 29. The method of clause 28, wherein one or more proximate reporting Internet of Things devices are within 10 kilometers of the mobile device.
[0128] Clause 30. The method of clause 28, wherein the one or more configuration options include a desired accuracy of the precise positioning information.
[0129] Clause 31. The method of clause 28, wherein the one or more configuration options include a desired update rate of the precise positioning information.
[0130] Clause 32. An apparatus for switching serving Internet of Things devices in an Internet of Things network, comprising: Memory, At least one processor operably coupled to the memory, Determining a status of a serving Internet of Things device; determining a distance between the mobile device and a serving Internet of Things device; selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or if the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; At least one processor configured to: An apparatus comprising:
[0131] Clause 33. The apparatus of clause 32, wherein one or more previously determined likely candidates are selected from one or more proximate reporting Internet of Things devices based on one or more configuration options.
[0132] Clause 34. An apparatus as defined in clause 33, in which one or more proximate reporting Internet of Things devices are within 10 kilometres of the mobile device.
[0133] Clause 35. The apparatus of clause 33, wherein the one or more configuration options include a desired accuracy of the precise positioning information.
[0134] Clause 36. The apparatus of clause 33, wherein the one or more configuration options include a desired update rate of the precise positioning information.
[0135] Clause 37. An apparatus for switching serving Internet of Things devices in an Internet of Things network, comprising: means for determining a status of a serving Internet of Things device; means for determining a distance between the mobile device and a serving Internet of Things device; means for selecting a substitute serving Internet of Things device from one or more previously determined likely candidates when the status of the serving Internet of Things device is inactive or when the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; An apparatus comprising:
[0136] Clause 38. The apparatus of clause 37, wherein one or more previously determined likely candidates are selected from one or more proximate reporting Internet of Things devices based on one or more configuration options.
[0137] Clause 39. The apparatus of clause 38, in which one or more proximate reporting Internet of Things devices are within 10 kilometers of the mobile device.
[0138] Clause 40. The apparatus of clause 38, wherein the one or more configuration options include a desired accuracy of the precise positioning information.
[0139] Clause 41. The apparatus of clause 38, wherein the one or more configuration options include a desired update rate of the precise positioning information.
[0140] Clause 42. A non-transitory processor-readable storage medium comprising processor-readable instructions configured to cause one or more processors to switch serving Internet of Things devices in an Internet of Things network, Code for determining a status of a serving Internet of Things device; code for determining a distance between the mobile device and a serving Internet of Things device; code for selecting a substitute serving Internet of Things device from one or more previously determined likely candidates if the status of the serving Internet of Things device is inactive or if the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; 11. A non-transitory processor-readable storage medium comprising:
[0141] Clause 43. The non-transitory storage medium of clause 42, wherein one or more previously determined likely candidates are selected from one or more proximate reporting Internet of Things devices based on one or more configuration options. [Explanation of symbols]
[0142] 100 Communication Systems 105 Mobile Devices, UE 110a, 110b NR Node B (gNB), gNB, serving gNB 114 Next Generation eNodeB (ng-eNB), ng-eNB, serving ng-eNB 115 Mobility Management Function (AMF), AMF 120 Location Management Facility (LMF), LMF 125 Gateway Mobile Location Center (GMLC), GMLC 130 External Clients 135 Next Generation (NG) Radio Access Network (RAN) (NG-RAN), NG-RAN 140 5G Core Network (5GC), 5GC 190 Satellite Vehicle (SV), SV, GNSS satellite, satellite 200 Mobile Devices 201 Bus 211 General-purpose processors, general-purpose / application processors 212 Digital Signal Processor (DSP), DSP 220 Wireless Transceiver Bus Interface 221 Wireless Transceiver 222 Wireless Antenna 223 Wireless Signal 235 User Interface 240 Memory 250 Interface 255 SPS Receiver 258 SPS Antenna 259 SPS signal 260 Sensors 262 Touch Sensor 264 Camera Device 266 Modem Processor 268 Video Processor 270 Audio Input / Output (I / O) Devices 300 IoT devices 302 modem module 304 Radio Frequency (RF) Control Module, RF Control Module 306a, 306b Antenna 308 Wi-Fi Module 310 Antenna 312 Power Management Integrated Circuits (PMIC) 314 External motion detection sensor 318 Low Dropout LDO Regulator 320 power supply 400 IoT Architecture 402 Server 404 Serving IoT Devices 406a First IoT Device 406b Second IoT Device 406c Third IoT Device 406d The 4th IoT Device 408 Access Point 410 Network 412 Base Station 414 Wireless Protocol 416 Wireless Sidelink 502 Data Structure 510 Computing Devices 512 Constellation selection field, Constellation field 514 Desired Bandwidth Field 516 Payload Format Field 518 Correction Data Type Field 520 Correction data update frequency field 522 Position Accuracy Field 524 Other configuration options 600 IoT Networks 602 Mobile Devices 604 orbit 606 Serving IoT Devices, IoT Devices 608a Leading candidate, first leading candidate, IoT device 608b First choice, second choice, IoT devices 608c Leading candidate, 3rd leading candidate, IoT device 610a, 610b, 610c, 610d, 610e Unassigned client IoT devices, IoT devices 700 methods 800 ways 900 ways 1000 Computer Systems 1005 Bus 1010 Processor 1015 Input Devices 1020 output device 1025 Non-transient storage devices, storage devices 1030 Communication Subsystem 1035 Working Memory 1040 Operating Systems 1045 Application Program
Claims
1. 1. An apparatus for determining a precise location of a mobile device, comprising: at least one server comprising a data structure including precise positioning subscription options associated with the mobile device; a plurality of client Internet of Things devices configured to communicate with the at least one server, at least one of the plurality of client Internet of Things devices being a serving Internet of Things device configured to provide precise positioning information to the mobile device; the serving Internet of Things device is selected from the plurality of client Internet of Things devices based on the precise positioning subscription option. Device.
2. The precise positioning subscription option, a desired accuracy of the precise positioning information, and / or a desired update rate of the precise positioning information; 2. The apparatus of claim 1.
3. 2. The apparatus of claim 1, wherein the serving Internet of Things device is configured to provide the precise positioning information to the at least one server, and the at least one server is configured to provide the precise positioning information to the mobile device.
4. The precise positioning information is Radio Technical Committee for Maritime (RTCM) format, Real-time kinematic satellite phase signal correction information, or Differential satellite position correction information, 2. The apparatus of claim 1.
5. 2. The apparatus of claim 1, wherein one or more of the plurality of client Internet of Things devices are configured as likely candidates based on the precise positioning subscription option, and wherein one likely candidate is configured to be a substitute serving Internet of Things device when the serving Internet of Things device becomes inactive or a distance between the mobile device and the serving Internet of Things device exceeds a threshold distance.
6. The apparatus of claim 1, wherein the precise positioning subscription option enables the mobile device to receive customized location information selected by the mobile device.
7. 1. A method for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: obtaining a coarse location of the mobile device; determining one or more proximate reporting Internet of Things devices based on the coarse location; selecting the serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on a precise positioning subscription option; selecting one or more likely candidates from the one or more proximate reporting Internet of Things devices based on one or more configuration options; The method includes:
8. the serving Internet of Things device, Real-time kinematic satellite phase correction information, or configured to provide differential satellite correction information; The method of claim 7.
9. The one or more configuration options: a desired accuracy of the precise positioning information; or a desired update rate of the precise positioning information; The method of claim 7.
10. 8. The method of claim 7, wherein the serving Internet of Things device is configured to provide the precise positioning information in a Radio Technical Commission for Maritime (RTCM) format.
11. determining a status of the serving Internet of Things device; determining a distance between the mobile device and the serving Internet of Things device; determining a substitute serving device from the one or more potential candidates if the status of the serving Internet of Things device is inactive or the distance between the mobile device and the serving Internet of Things device is greater than a threshold distance; 8. The method of claim 7, further comprising:
12. The apparatus of claim 7, wherein the precise positioning subscription option enables the mobile device to receive customized location information selected by the mobile device.
13. 1. An apparatus for determining a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, comprising: Memory, at least one processor operatively coupled to the memory, obtaining a coarse location of the mobile device; determining one or more proximate reporting Internet of Things devices based on the coarse location; and selecting the serving Internet of Things device from the one or more proximate reporting Internet of Things devices based on a precise positioning subscription option; selecting one or more likely candidates from the one or more proximate reporting Internet of Things devices based on one or more configuration options; At least one processor configured to: An apparatus comprising:
14. The apparatus of claim 13, further configured to perform a method according to any one of claims 8 to 12.
15. 13. A non-transitory processor-readable storage medium comprising processor-readable instructions configured to cause one or more processors to determine a serving Internet of Things device for providing precise positioning information to a mobile device using a network of Internet of Things devices, the non-transitory processor-readable storage medium comprising code for performing the method of any one of claims 7 to 12.