Rhythmic collection of positioning information

Through intermittent reception of positioning fixed and machine learning models to calculate trajectory distance, the problem of rapid battery exhaustion of the device when charging without electricity is solved, extends battery life and optimizes the request for positioning services, ensuring that the device can spend a long time usability.

CN119173781APending Publication Date: 2024-12-20APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380039529.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-04-20
Filing Date
2023-04-21
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

When existing equipment provides positioning services when charging without electricity for a long time, it will cause the battery to be quickly exhausted and cannot effectively extend the battery life of the equipment.

Method used

By intermittently receiving positioning fixation, trajectory distance is calculated using machine learning models, and positioning information requests are optimized in extended mode to extend battery life.

Benefits of technology

Effectively extends the battery life of the device, especially when users can no longer charge, ensuring the availability of positioning services while reducing battery consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119173781A_ABST
    Figure CN119173781A_ABST
Patent Text Reader

Abstract

Methods, non-transitory machine-readable media, and systems for providing location services are described. In an embodiment, a method provides for receiving at least two positioning fixations of a trajectory of an electronic device, where the at least two positioning fixations are intermittently obtained; fixedly matching the at least two positions to points on a path indicated in the map data; and using the map data to calculate the distance of the trajectory using distance information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related patent applications

[0002] This application claims priority to U.S. Patent Application No. 18 / 304,104 filed on April 20, 2023, U.S. Provisional Application No. 63 / 374,730 filed on September 6, 2022, and U.S. Provisional Application No. 63 / 339,889 filed on May 9, 2022, each of which is incorporated herein by reference. Technical Field

[0003]

[0013] Embodiments described herein relate to the provision of location services. Background Art

[0004] Current methods of providing accurate positioning information to device applications require continuous requests from the device for positioning information (e.g., 1 Hz or every 1 second). When performed for extended periods of time without the ability to recharge the device's battery, the continuous requests for positioning information can drain the device battery. Therefore, there is a need to provide positioning information to location services while preserving the life of the device battery. Summary of the invention

[0005] Methods, non-transitory machine-readable media, and systems for providing location services are described. In an embodiment, a method provides for receiving at least two position fixes of a trajectory of an electronic device, wherein the at least two position fixes are obtained intermittently; matching the at least two position fixes to points on a path indicated in map data; and calculating a distance of the trajectory using the map data with distance information.

[0006] In an embodiment, the method provides for intermittently obtaining a positioning fix by determining whether to transmit a request for positioning information, determining whether the positioning information received from another location service application is outdated, transmitting a request for positioning information when the positioning information is outdated, and obtaining a positioning fix from another location service application when the positioning information is not outdated. In an embodiment, the method provides for determining whether to transmit a request for positioning information by postponing the request for positioning information until the application processor is awakened by another application executed on the electronic device. In an embodiment, the method provides for intermittently obtaining a positioning fix by determining whether to transmit a request for positioning information, wherein the determination includes postponing the request for positioning information until the radio processor is awakened by another application executed on the electronic device. In an embodiment, the method provides for receiving the intermittently received positioning fix at different times within an N minute period. In an embodiment, the method provides for continuously requesting and receiving the intermittently received positioning fix at different durations during a duty cycling cycle. In an embodiment, the method provides for map data to be cached on the electronic device.

[0007] In an embodiment, the method provides for receiving at least two positioning fixes of a trajectory of an electronic device, wherein at least two positioning fixes are obtained intermittently; when the electronic device travels between the at least two positioning fixes, calculating a straightness metric of the trajectory using heading information obtained from sensor data; training a machine learning model to calculate the distance between positioning fixes using multiple features, wherein the multiple features include a straightness metric calculation; and receiving the distance calculation of the trajectory from the machine learning model using the straightness metric and at least two positioning fixes. The method provides that the multiple features also include at least one of a distance calculated every N minutes, an absolute altitude change determined every N minutes, an absolute route change every N minutes, a cumulative number of steps provided every N minutes, or a current speed determined every N minutes. In an embodiment, the method provides for the machine learning model to use a multiple regression algorithm. In an embodiment, the method provides for using sensor data to calculate a straightness metric between at least two positioning fixes by comparing the distance of the reconstructed path traveled between the two positioning fixes with the distance between the at least two positioning fixes. In an embodiment, the method provides for duty cycle control of requests for positioning information to obtain intermittent positioning fixes. In an embodiment, the method provides for the machine learning model to reconstruct a path from user accessible data and estimate the distance of the path taken by the electronic device.

[0008] In an embodiment, a method provides for analyzing user context data to determine a set of conditions that are satisfied for actively obtaining positioning data in an extended mode; initiating an extended mode based on the analysis of the user context data, wherein the extended mode includes duty cycle control of positioning information requests to obtain intermittent positioning fixes; and performing at least one mitigation using the intermittently obtained positioning fixes to determine a trajectory and a distance traveled along the trajectory. In an embodiment, the method provides for performing at least one mitigation including receiving at least two intermittently obtained positioning fixes of a trajectory of an electronic device; matching the at least two positioning fixes to points on a path indicated in map data to determine the trajectory; and using the map data to employ distance information to calculate the distance of the trajectory. In an embodiment, the method provides for performing at least one mitigation including receiving at least two intermittently obtained position fixes of a trajectory of an electronic device; calculating a straightness metric of the trajectory using heading information obtained from sensor data when the electronic device travels between the at least two positioning fixes; training a machine learning model to calculate the distance between positioning fixes using a plurality of features, wherein the plurality of features include a straightness metric calculation; and receiving a distance calculation of the trajectory from the machine learning model using the straightness metric and the at least two intermittently obtained positioning fixes. In an embodiment, the method specifies that the condition includes at least one of a motion classification, a comparison result between a time span of an electronic device without network access and a threshold time period without network access, a sparse density environment classification, or a comparison result between a distance to a frequently visited location and a threshold distance from the frequently visited location. In an embodiment, the method specifies that intermittently obtaining a location fix includes determining whether to transmit a request for location information, wherein the determination includes determining whether the location information received from another location service application is outdated, transmitting a request for location information if the location information is outdated, and obtaining a location fix from another location service application if the location information is not outdated. In an embodiment, the method specifies that intermittently obtaining a location fix includes determining whether to transmit a request for location information, wherein the determination also includes postponing the request for location information until an application processor or a radio processor is awakened by another application executed on the electronic device. In an embodiment, the method specifies that changing the functionality of an electronic device and prioritizing the execution of services on the electronic device. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1 is a block diagram of a network operating environment for a mobile device according to an embodiment.

[0010] Figure 2 is a block diagram of a location service according to an implementation scheme.

[0011] Figure 3A is a flow chart illustrating an extended mode method according to an embodiment.

[0012] Figure 3Bis a diagram illustrating an extended mode method according to an embodiment.

[0013] Figure 3C is a flow chart illustrating a map matching method for determining distance according to an embodiment.

[0014] FIG. 4A to FIG. 4C A map matching technique according to an embodiment is shown.

[0015] Figure 5 is a flow chart illustrating a mitigation method of determining distance according to an embodiment.

[0016] Fig. 6A and Figure 6B A method for calculating distance in an embodiment is shown.

[0017] Figure 7 is a flow chart illustrating a method of determining a distance according to an embodiment.

[0018] Figure 8 is a flow chart of a location service according to an implementation scheme.

[0019] Fig. 9 Depicted is a user interface for location services according to an embodiment.

[0020] Fig.10 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention.

[0021] Fig.11 is a block diagram of a device architecture for a mobile or embedded device according to an embodiment.

[0022] Fig.12 is a block diagram of a computing system according to an embodiment. DETAILED DESCRIPTION

[0023] The embodiments provided herein describe a power saving mode for a device capable of receiving information from a global navigation satellite system (GNSS) such as a global positioning system (GPS) to execute a location service application. A location service application may repeatedly request positioning information (e.g., GPS data) over a certain period of time to provide a trajectory of travel of the device and / or the distance that the device has traveled during the period of time. In some embodiments, a method for extending a power saving mode (extended mode) is described to extend the battery life of a device (e.g., a smart watch, a step tracking device, a location service device, etc.) while executing a location service application and / or collecting positioning information of a location service application during an extended period of time when a user may not be able to recharge his device. Battery life is the length of time that a device can continue to execute instructions before the device battery needs to be recharged. For example, a location service application that receives a request to record the location of a user's device during a hike, a run, a marathon, a camping trip, and / or any other activity may need to use GNSS to record positioning information over an extended period of time without accessing a method for recharging the battery, and may need to change the functionality of the device to extend the life of the battery. In another example, positioning information may be collected to be able to provide location information in the event that the user is lost or in an emergency situation, and the location information is required to be accessible to the user and / or an assistance provider to the user after an extended period of time when the user cannot recharge the device. In a non-extended mode, positioning information is continuously obtained at defined time intervals (e.g., every second), which may drain the battery if the positioning information is collected over a period of time that exceeds the available battery life of the device before the device must be recharged.

[0024] In an embodiment, the extended mode provides for the execution of duty cycle control on the GNSS request for positioning information to save power. Duty cycle control is the fraction of a defined time period of system activity. In the extended mode, the collection of positioning information may be requested every N minute period, wherein positioning fixes are received intermittently. Intermittently received positioning fixes may be requested and received at any time within the period, so that positioning fixes are received at irregular time intervals. For example, intermittently received positioning fixes are received at different times within the N minute period, and / or positioning fixes are continuously requested and received at different durations during the duty cycle control period. Intermittent reception of positioning fixes allows an application processor (AP) and / or a radio processor (e.g., a GPS processor) to sleep between requests and / or process requests from other applications. Some embodiments may shut down all other functions of the device in the extended mode to allow the collection of positioning information, health information, location service applications, and / or any other limited set of applications.

[0025] When positioning information is collected intermittently over time (e.g., at irregular intervals, discontinuously or stably received, etc.), mitigation is performed to provide an estimate of the trajectory taken by the user of the device and / or an estimate of the distance traveled using the collected positioning fix set. The user may not travel in a straight line between each positioning fix collected, and mitigation is performed to provide an estimate of the actual trajectory and / or distance traveled by the user. In a first mitigation method, map matching can be performed using the collected positioning information. Map matching involves taking the collected intermittent positioning fix set and matching the collected positioning fixes to positioning along paths and / or streets defined in map data accessible to the device. However, the map matching mitigation method is not always an option. In a second mitigation method, sensor data (e.g., inertial data) is collected to determine whether the user is walking on a straight path or taking a winding path when carrying the device.

[0026] In some embodiments, a user context (e.g., a set of conditions) may determine which mode (e.g., extended mode, non-extended mode) and corresponding positioning technology and electronic device resources are used to obtain positioning information. User data may be analyzed to determine whether a user context exists to trigger a change in a corresponding mode for determining positioning information performed on an electronic device. Alternatively, the extended mode may be explicitly selected by the user via a user interface of the device.

[0027] Figure 1 1 is a block diagram of a network operating environment 100 for a mobile device according to an embodiment. The network operating environment 100 includes an electronic device such as a mobile device 102. The mobile device 102 can be any electronic device capable of communicating via a wireless network and wireless accessory devices. Some examples of mobile devices 102 include, but are not limited to, the following: a smart phone, a tablet computer, a notebook computer, a wearable device (e.g., a smart watch or other wearable computing accessory), a mobile media player, a personal digital assistant, Locator tags, headphones, head mounted displays, health equipment, speakers, and other similar devices. In an embodiment, the accessory device can be paired with the mobile device 102. By way of example, the accessory device can be such as an Apple Devices such as exercise equipment, vehicles, bicycles, scooters, smart TVs, Homepods, auto assist devices, home security systems, and / or any other mobile accessory devices.

[0028] Each of the mobile devices 102 may optionally include a user interface, such as the user interface 104 of the mobile device 102. In other embodiments, the mobile device may not have a user interface. The mobile device 102 may be a third-party device that utilizes an application programming interface to access the device locator service. The third-party device may be provided by different device manufacturers or may be part of a different ecosystem (e.g., operating system) from the mobile device 102. The mobile device 102 may communicate via one or more wired and / or wireless networks 110 to perform data communications. For example, a wireless network 112 (e.g., a cellular network, a Wi-Fi network) may communicate with a wide area network 114 (such as the Internet) using a gateway 116. Similarly, an access device 118, such as a mobile hotspot wireless access device, may provide communication access to the wide area network 114. Then, the gateway 116 and the access device 118 may communicate with the wide area network 114 via a combination of a wired network and / or a wireless network.

[0029] In some implementations, both voice and data communications can be established through the wireless network 112 and / or the access device 118. For example, the mobile device 102 can make and receive phone calls (e.g., using the VoIP protocol), transmit and receive email messages (e.g., using the POP3 protocol), and retrieve electronic documents and / or streams, such as web pages, photos, and videos, through the wireless network 112 (as shown in 120), the gateway 116, and the wide area network 114 (e.g., using the TCP / IP or UDP protocol). In some implementations, the mobile device 102 can make and receive phone calls, transmit and receive email messages, and retrieve electronic documents through the access device 118 and the wide area network 114. In some implementations, the mobile device 102 can be physically connected to the access device 118 using one or more cables, for example, where the access device 118 is a personal computer. In this configuration, the mobile device 102 can be referred to as a "tethered" device. In one embodiment, the mobile device 102 can communicate with the accessory device via a wireless peer-to-peer connection. The wireless peer-to-peer connection (not shown) can be used to synchronize data between devices.

[0030] The mobile device 102 can communicate with one or more services, such as a phone service 130, an instant messaging service 140, a media service 150, a storage service 160, and a device locator service 170, via one or more wired and / or wireless networks 110. For example, the phone service 130 can enable telephone communications between mobile devices or between a mobile device and a wired telephone device. The phone service 130 can route voice over IP (VoIP) calls via a wide area network 114, or can access a cellular voice network (e.g., a wireless network 112). The instant messaging service 140 can, for example, provide email and / or other instant messaging services. The media service 150 can, for example, provide access to media files, such as song files, audiobooks, movie files, video clips, and other media data. The storage service 160 can provide network storage capabilities to the mobile device 102 to store documents and media files. The device locator service 170 can enable a user to locate a lost or misplaced device that is connected to the one or more wired and / or wireless networks 110 at least at some point. Other services can also be provided, including software update services for updating operating system software or client software on a mobile device. In one embodiment, the instant messaging service 140 , the media service 150 , the storage service 160 , and the device locator service 170 may each be associated with a cloud service provider, wherein the various services are facilitated via a cloud service account associated with the mobile device 102 .

[0031] The mobile device 102 may have applications, services, and functions that are locally accessible on the device including the location service 180. The mobile device 102 may provide one or more device locator applications 190 (e.g., a "Find my" application, a "compass" application, a map application, etc.) to utilize the device locator service 170 and the location service 180 to locate accessory devices, provide a map application, and a navigation application. Navigation applications (e.g., a "compass" application) help users navigate and backtrack to historical locations on their routes. Navigation applications are applications that use any number of methods including gyroscopes, magnetometers, and / or positioning systems (e.g., GPS receivers) to display basic directions for navigation and geographic orientation. Map applications are applications that use maps delivered by a geographic information system (GIS).

[0032] Locally accessible data may be stored in defined locations, such as known locations 182 and secure trusted locations 184. In an embodiment, machine learning algorithms 186 may be used to classify locations, infer relationships between users and locations, provide path reconstruction and / or distance estimates. In some embodiments, machine learning algorithms 186 may be used to provide estimates of distances with a set of features, including but not limited to location fixes of intermittently received paths and straightness metrics of a set of location fixes.

[0033] In some cases, the machine learning algorithm 186 may be used to identify known locations 182 and / or trusted locations 184. By way of example, cluster data analysis may be used to identify, classify, and provide semantic labels for locations, such as locations frequented by a user. The secure, trusted location 184 may be explicitly specified or confirmed by a user of the mobile device 102 after data analysis. In other cases, the known location 182 or the trusted location 184 may be classified offline and provided by the device locator service 170 or a third party (e.g., a database with map information). Although cluster analysis is provided as an example of a machine learning algorithm that may be used, those skilled in the art will recognize that other algorithms may be used to identify potential known or trusted locations.

[0034] On-device heuristics and / or machine learning models may be used to infer relationships between a user and a location based on analysis of locally stored data about frequented locations, including locations frequently visited by the user, known locations, and / or any other locations. For example, frequently visited locations may be such as a home, a vehicle, a workplace, any location frequented by a user with a mobile device (e.g., an accessory device and the mobile device 102), and / or any other location designated by the user as a trusted location 184. The known locations 182 may be business locations, public spaces, parks, museums, and / or any other locations that a user may frequent.

[0035] A defined location may have associated fence information that provides a set of conditions (if detected) that allow electronic devices to be specified or classified relative to an area of ​​a physical space for at least a portion of the defined location. For example, fence information may provide conditions for classifying an electronic device as being inside or outside an area of ​​a physical space associated with the defined location. In another example, fence information may provide conditions for classifying an electronic device as transitioning between being inside or outside an area of ​​a defined location. Fence information may be a geo-fence with boundary information for a defined location, such as a point location and an area range from the point location (e.g., a circular area defined by a radius from the point location, a polygonal shape with a distance measurement from the point location, etc.). Fence information may include a set of sensor measurements received by an electronic device (e.g., fingerprint data including radio frequency (RF) scan data (such as Wi-Fi scan traces, etc.) that are characteristics of a specific area of ​​a defined location. Fence information for a corresponding defined location may be stored together with the classification type of the location and any semantic tags assigned to the location. Boundary information may include a defined set of boundaries or radius distances around a point location to allow the creation of a fence for the location. In some embodiments, a fence is a virtual perimeter of a real-world geographic area. A global positioning system (GPS) may be used to create a virtual fence around a location and track the physical location of the mobile device 102 within the boundaries of the geo-fence and the entry and exit of the bounded area. In some embodiments, there are at least two layers of fences that can be used to reduce the latency of traditional geo-fencing. For example, the selection of a mode based on analysis of user context data to determine intent may factor in the selection of the granularity of the fence established. In some embodiments, multiple fences may be used to refine the location information determined by the coarse-grained geo-fence.

[0036] The machine learning algorithm 186 may include on-device heuristics, machine learning algorithms, or a combination thereof to analyze and assign labels about user contexts (such as location states). Location states may be labels for user contexts (e.g., a set of conditions, motion classifications) in which specific positioning techniques and resources of electronic devices are used to obtain positioning information. Position states may define predictions of changes in the current position state and / or the position state of a user while traveling with an electronic device. Positioning information is actively obtained by using a technique suitable for the position state, reducing the waiting time when providing information to device applications without causing a significant decrease in the performance of the electronic device, which may be experienced in the case of a continuous request for positioning information. For example, a user context may indicate the movement or travel of an electronic device to allow the electronic device to be designated as having a motion classification, such as "on the way," "stable" at a specific defined location for a period of time, or any other defined motion classification. The analysis may be performed using various signals from contextual user data sources available to the mobile device 102, including, but not limited to, the following: sensor data, location data, calendar data, transit card usage data, application data, historical data regarding travel patterns / routines, wireless connection status with accessory devices and / or services (e.g., Bluetooth connection status), and / or any other data accessible to the mobile device 102. In an embodiment, the wireless connection status with various devices may indicate that the device is stable or "in transit." For example, loss of connection to an appliance, security system, heating / cooling system, vehicle, other modes of transportation, and / or any other device may indicate that the mobile device is "in transit."

[0037] In some embodiments, the mobile device 102 may be classified with a "stable" semantic label after remaining within the geographic boundaries of a defined location (e.g., a trusted location 184) for a defined period of time. In an example, the received positioning data of the mobile device 102 may indicate that the electronic device 102 remains within the boundaries of a fence at a specific location for a certain period of time (e.g., 5 minutes). Sensor data (such as accelerometer data) may indicate that the mobile device 102 is in a stationary state to support an inference that it is stabilized. Application data may support an inference that the mobile device 102 is stabilized, such as the mobile device is located at a calendar appointment location. Application data indicating the type of application in use may also provide an inference of the device being stabilized, such as the use of a media application. Historical data about the user's routines or patterns on the go can be used to determine whether the mobile device 102 is stabilized, such as a bedtime routine at a home or hotel location.

[0038] The mobile device 102 may be classified as having an "in transit" label based on previously detected behaviors, patterns, or routines of the user and analyzed on the mobile device 102. For example, a user may have a routine of working around the same time each day, and if the data on the device supports a repeating pattern, an "in transit" status may be assigned. The speed at which the mobile device moves or enters and exits a known geographic area (e.g., using a fence) may allow for an inference that the mobile device 102 is in transit. If the mobile device 102 is detected as accelerating in a known transportation area (e.g., on a road, highway, train route, etc.), the mobile device 102 may be given a motion classification of "in transit." Similarly, if a transportation app / card is used / in use, the mobile device 102 may be designated as "in transit."

[0039] The mobile device 102 may be classified as being “at a threshold distance,” “near an entrance,” “near an exit,” “entrance,” and / or “exit” for a set of locations or a particular location based on crossing a fence boundary of the corresponding location or set of locations and / or detecting a pattern of sensor values ​​representative of being in a location, such as a Wi-Fi scan result representative of being in a location or transitioning into a location.

[0040] Figure 2 1 is a block diagram of a location service according to an embodiment. Location service 180 may include event monitor module 264 (e.g., fence event monitor, location state monitor, sensor monitor, etc.), which may help determine when power and performance modes should be adjusted to determine positioning information. Event monitor module 264 may rely on data from context user data sources to act as a prompt for user context, and event monitor module 264 may use heuristics and / or machine learning algorithms 186 to determine the user context that triggers mode adjustment. Event monitor module 264 may detect whether the user is entering a defined location and a location that is unfamiliar to the user. For example, a motion classifier 280 may be used to specify a mobile device 102 as a "on the way" state, and wireless connection state data may indicate that a Bluetooth connection between a mobile device 102 and an accessory device such as a vehicle entertainment system is lost. Continuing with this example, event monitor module 264 may determine from one or more context user data sources that there will be at least one indication of a change in the location state and / or motion classification of a mobile device 102, such as the mobile device 102 may be "on the way to a defined location." User context data (such as crossing a fence boundary, exiting a vehicle, exiting a transfer station, user routines, sensor data, application data, etc.) may be analyzed to predict that the electronic device is a threshold distance from a defined location and the mode of the electronic device should be adjusted.

[0041] In an embodiment, event monitor 264 may detect from user context data that the user is in a remote location (e.g., wilderness), on an unfamiliar route, and / or is unlikely to charge their device for an extended period of time. For example, various signals from user context data may indicate that the user will be unlikely to charge their device, such as application data indicating that the user is tracking a workout, a map application with a hiking trail selected for display, loss of cellular service, and / or any other data accessible on the device that provides context for the user's activities that may allow for an inference that the user will not be able to recharge electronic device 102. In another example, the user may select a mode that indicates that the user will not be able to recharge electronic device 102.

[0042] The access monitor module 270 can utilize the event monitor 264, the fence information 290, and the entry detection module 266 to accurately detect entry into a defined location and reduce the latency of providing location information by predicting that a user will request location data. When the electronic device 102 is detected to cross a coarser-grained geo-fence boundary (as detected using the entry detection module 266), the access monitor module 270 can retrieve the fence information 290 to define a more precise boundary of the defined location. In another embodiment, the access monitor module 270 can retrieve expected sensor data (e.g., fingerprint data) characteristics of the electronic device 102 having a location state.

[0043] Proactive services 268 may be used to predict what applications and / or services a user may want to access given a user context, motion classification, and / or location state. For example, a user may want to access a particular application just before entering a location or after entering a location. Proactive services 268 may select applications or suggest new applications associated with a particular defined location based on a user history of application selections.

[0044] In an embodiment, the electronic device 102 (with the event monitor 264) can detect a set of conditions that allow inference that the user may request a retracing route to allow retracing their steps, and the electronic device 102 can initiate an extended power saving mode to obtain positioning information so as not to affect the performance of the electronic device 102. In an embodiment, the proactive service 268 can adjust the rate of periodic requests for determining positioning information. To handle the intermittent reception of positioning information, the machine learning model 240 can be used to reconstruct the path from the user accessible data and estimate the distance of the path taken by the user.

[0045] In some embodiments, map data accessed by mapping application 250 is used to estimate distance. A mapping application is an application that uses maps delivered by a geographic information system (GIS). Navigation application 220 can provide heading or direction (e.g., degrees from magnetic north) information of mobile device 102 collected as the user travels, and average the heading data to eliminate errors in the collected heading information caused by changes in the collected heading measurements due to movement of the device (e.g., jostling of the device, swinging of the hand if the device is worn on the user's wrist, etc.) as the user travels along its trajectory.

[0046] Active service 268 and event monitor 264 can use motion classifier 280 and backtracking classifier 278. Motion classifier 280, which has been trained on a feature set from data obtained using electronic device sensors, can provide information about whether electronic device 102 is stationary or on the way with the user. Although the implementation is not limited to a specific sensor type, a specific sensor data representation, or a specific feature, exemplary sensors and features that can distinguish between specific movements within sensor data are described herein. The motion classifier can analyze the provided features from sensor data using one or more models that are trained to perform identification of motion types based on the supplied features. In some embodiments, the electronic device can receive a motion classification indicating that the mobile device is traveling in a specific mode of transportation from the electronic device or from a server. The backtracking classifier classifies the historical locations of the obtained mobile device 102 as potential parts of the backtracking route of the user of the electronic device.

[0047] In some embodiments, Figures 3A to 12 The electronic device 102 is as follows Figure 1 to Figure 2 A mobile device 102 is described.

[0048] Rhythmic GNSS

[0049] Figure 3A300 is a flowchart illustrating an extended mode method according to an embodiment. In some embodiments, a user explicitly selects extended mode via a user interface on an electronic device 102. The mode change can be a downgrade from a higher power state with more accurate location monitoring (e.g., non-extended mode) to a lower power state with coarse location monitoring (e.g., extended mode) to extend the life of the battery. Additionally or alternatively, in some embodiments, the electronic device 102 may rely on user context data to determine the selection of a mode that results in an upgrade or downgrade of power usage, which includes duty cycle control of requests for positioning information. The user context data is analyzed to determine whether to start an extended location service session in extended mode (302). The electronic device 102 analyzes the user context data to determine a set of conditions that are met to actively obtain positioning data in extended mode. The set of conditions allows inference that the user is on an unfamiliar route and / or in the wilderness, and allows prediction that the user may need to be able to retrace their steps using a backtracking route and actively obtain historical positioning information. Various data sources may be analyzed to determine user context, including but not limited to the following: sensor data, application data, known user routines, known locations of interest, detection of entry and / or exit of a vehicle (e.g., loss of a Bluetooth connection to a vehicle). In an embodiment, the electronic device 102 selects a mode based on conditions satisfied in the user context data (e.g., time or events indicating a time interval for capturing positioning information). For example, if the user is on the road for a long period of time or cell service is limited (e.g., weak, intermittent access, etc.), potentially indicating that the user is hiking, positioning information may be actively captured to allow the user to retrace their steps.

[0050] In an embodiment, one or more backtracking conditions may include, but are not limited to, the following: in-transit (e.g., non-stationary) motion classification, a threshold time period without network access, a sparse (e.g., low population density or density of man-made structures in the area) environment classification, and a threshold distance from a frequented location and / or a location that is part of a user's routine. While specific categories of conditions are provided, those skilled in the art will recognize that any other user context data may supplement and / or form the basis for an inference that a user will request historical location information for backtracking.

[0051] The electronic device 102 initiates an extended location services session in extended mode to perform duty cycle control of requests for positioning information (e.g., GNSS requests) to obtain intermittent positioning fixes and extend battery life (304). The electronic device 102's requests for positioning information can be intermittent to allow the AP to sleep and / or process requests from other applications between requests. By way of further example, the electronic device 102 can collect positioning information every N minutes (e.g., every 2 minutes), and the duration for obtaining a positioning fix using GNSS can vary each time. Continuing with this example, the electronic device 102 can request positioning information every two minutes, and the duration for servicing requests for positioning information can depend on the operating conditions of the device.

[0052] Optionally, functionality provided by the electronic device 102 may be changed (306). In some embodiments, functionality of applications and services (e.g., 130-180), sensors, processor usage, other hardware, and / or network access may be reduced. Services and applications accessible on the electronic device 102 may be assigned priorities, and provision of services and applications on the electronic device 102 may be performed according to the assigned priorities (308), including initiating a duty cycle control cycle. The electronic device 102 initiates a duty cycle control cycle according to the priority assigned to obtaining positioning information (308). If a positioning fix is ​​available from other services (310), the positioning fix may be obtained from the other services (312). Alternatively, the electronic device determines whether to wake up a processor (e.g., an AP and / or a radio controller) (314) according to the priority assigned to obtaining positioning information. In some embodiments, the mode may determine the specific processor type used to determine the positioning information, such as whether the positioning information request is executed on an AP, radio controller, or a low-power "always-on" processor (AOP), or whether the device intermittently executes requests on an AP, radio controller, or AOP at irregular time intervals to conserve device battery.

[0053] When the AP is already executing instructions (e.g., for another application), the electronic device 102 can opportunistically collect positioning information (316). For example, if obtaining the user's health information, communication services, etc. takes precedence over obtaining positioning information, obtaining positioning information can be performed in the background when the priority application is idle. Alternatively, the electronic device 102 can request to wake up the AP to make a positioning information request (318). Mitigation is performed to provide such Figure 3C and Figure 5 The extended location services session may continue (322) and optionally change the functionality of services and applications (306). In some embodiments, analysis of user context (324) and (302) may continue. Alternatively, the process may end until the user initiates an extended location services session (326).

[0054] Figure 3B 311 is a diagram illustrating an extended mode method according to an embodiment. After one or more conditions 317 are detected within the user context data indicating that an extended mode needs to be initiated, location information requests 315 are intermittently performed within a duty cycle loop 313, as shown. The look-back window is a time period 319, as shown, with a set of historical locations that may be needed to allow the user to retrace their steps.

[0055] Map matching method

[0056] Figure 3C 301 is a flowchart illustrating a map matching method for determining a distance according to an embodiment. Figure 3A The duty cycle control described in the embodiment intermittently obtains a positioning fix (303). In some embodiments, the user explicitly selects the extended mode via a user interface on the electronic device 102. Alternatively, the electronic device 102 may rely on user context data to determine the selection of a mode that results in an upgrade or downgrade of power usage, which includes a duty cycle control of a request for positioning information. Various data sources may be analyzed to determine the user context, including but not limited to the following: sensor data, application data, known user routines, known locations of interest, detection of entry and / or exit of a vehicle (e.g., loss of a Bluetooth connection to a vehicle). In an embodiment, the electronic device 102 selects a mode based on user context data (such as a time or event indicating a time interval for capturing positioning information). For example, if the user is on the way for a long period of time or the cell service is limited (e.g., weak, intermittent access, etc.), potentially indicating that the user is hiking, the positioning information may be actively captured to allow the user to retrace their steps. In some embodiments, the mode may determine the specific processor type used to determine the location information, such as whether the location information request is performed on an AP or a low-power "always-on" processor (AOP), or whether the device intermittently performs requests on an AP or AOP at irregular intervals to preserve the device battery. In another embodiment, the mode change may be a downgrade from a higher power state with more accurate location monitoring (e.g., non-extended mode) to a lower power state with coarse location monitoring (e.g., extended mode) to extend the life of the battery.

[0057] Optionally, the electronic device 102 performs duty cycle control of requests for positioning information (e.g., GNSS requests) to extend battery life in extended mode. The electronic device 102's request for positioning information may be intermittent to allow the AP to sleep and / or process requests from other applications between requests. By way of further example, the electronic device 102 may collect positioning information every N minutes (e.g., every 2 minutes), and the duration for obtaining a positioning fix using GNSS may vary each time. Continuing with this example, the electronic device 102 may request positioning information every two minutes, and the duration for servicing requests for positioning information may depend on the operating conditions of the device. When the AP is already executing an instruction (e.g., for another application), the electronic device may opportunistically collect positioning information, and / or the electronic device 102 may request to wake up the AP to make a positioning information request.

[0058] The electronic device 102 receives at least two location fixes of the trajectory (305). Although the example is provided with two location fixes, those skilled in the art will recognize that multiple location fixes can be collected over an extended period of time. For example, the collection of location information can be consistent with the use of other applications by the application processor so that a request for location information does not cause the application processor to be woken up. In some cases, if the location information is not out of date, the location information can be collected from other applications executed on the device requesting the location information. For example, if a map application is executing on the device, when a request for location information is received for a location service application, the location information obtained by the map application can satisfy the request for location information. A threshold time period after receiving the location information can determine whether the location information is out of date. In some embodiments, the collection of location information can be prioritized so that other functionality of the device can be turned off to allow the collection of location information.

[0059] When positioning information is collected intermittently over time (e.g., at irregular intervals, discontinuously or steadily, etc.), mitigation is performed to provide an estimate of a trajectory taken by a user of the device and / or an estimate of a distance traveled using the collected set of positioning fixes. The user may not travel in a straight line between each positioning fix collected, and mitigation is performed to provide an estimate of the actual trajectory and / or distance traveled by the user.

[0060] The electronic device 102 performs matching of at least two location fixes with points on a path indicated in the map data (307). Map matching involves obtaining a collected set of intermittent location fixes and matching the collected location fixes to locations along paths and / or streets defined in the map data accessible to the device. In some embodiments, a map tile service may provide a tile-based map service to the electronic device 102, which enables the electronic device 102 to retrieve map data and metadata for a geographic area of ​​the electronic device 102 or an area that the mobile device 102 is searching for. The map tile metadata may be retrieved from a remote map tile database or a local (e.g., cached) subset of a map tile database. The metadata may include a classification of the current map tile or sub-tile. The map tile metadata may also include digital elevation model (DEM) data indicating the elevation of the estimated geographic location. If the altitude can be determined by the electronic device 102 based on the map data or GPS data, the altitude information may be used to calculate the distance of the track.

[0061] The electronic device uses the distance information from the map data to calculate the distance of the trajectory (309). To calculate the distance between each of the collected location fixes, the distance provided between the locations on the path in the map data that closely match the collected location fixes can be used, rather than using a straight line calculation between the location fixes collected by the electronic device 102 along the user's trajectory. For example, two collected location fixes can be matched (e.g., "aligned") to locations along the path in the map data. Continuing with this example, instead of calculating the distance between the two collected location fixes, the map data of the trajectory along the path in the map data can be used to determine the distance between the two collected location fixes. Altitude information can be used to calculate the distance by taking into account the terrain that the user takes on their trajectory. Various algorithms can be used to determine the shortest distance between two location fixes along the path matched in the map data.

[0062] In some embodiments, mode selection may have an impact on the performance of the electronic device due to the selection of technology used to determine positioning information. For example, global positioning system (GPS) technology may be used when analysis of contextual user data indicates that the user may require greater accuracy in positioning data and the use of a particular GPS technology relative to other technologies may affect the performance of other applications on the electronic device. The selected mode may rely on a variety of technologies and sources to determine positioning information, such as using cellular towers, motion sensors, Wi-Fi scans, GPS, etc.

[0063] FIG. 4A to FIG. 4C A map matching technique according to an embodiment is shown. Figure 4A In FIG. 4 , a diagram 400 shows location fixes 403 collected every 100 seconds and aligned to the paths found in the map data. Figure 4B As shown, block diagram 401 shows a path constructed using map data. Figure 4C In FIG. 4 , diagram 402 shows a path 405 of points from which distances can be calculated using extrapolated points along the path 405 .

[0064] Straightness metrics and machine learning model approaches

[0065] Figure 5 5 is a flow chart illustrating a mitigation method for determining a distance according to an embodiment. Figure 3A The electronic device 102 may be configured to intermittently obtain a positioning fix (501) using a duty cycle control as described in the embodiment of the present invention. Initially, the electronic device 102 receives at least two positioning fixes of a trajectory (502). Duty cycle control of requests for positioning information (e.g., GNSS requests) is performed to save power. Duty cycle control is a fraction of a defined time period of system activity. For example, collection of positioning information may be requested intermittently to allow an application processor to sleep between requests and / or process requests from other applications.

[0066] When the electronic device 102 travels between at least two positioning fixes, the electronic device 102 heading information obtained from the sensor data is used to calculate the straightness metric of the trajectory (503). The straightness metric is used to correct the straight line estimate of the distance between the positioning fix endpoints. The heading or direction (e.g., degrees from magnetic north) information of the electronic device 102 is collected as the user travels, and the heading data is averaged to eliminate the errors in the collected heading information caused by the changes in the heading measurements collected due to the movement of the device (e.g., the jostling of the device, the swinging of the hand when the device is worn on the user's wrist, etc.) when the user travels along its trajectory. The heading information collected when the user travels between each positioning fix is ​​used to reconstruct the path between each positioning fix collected. For example, by comparing the distance of the reconstructed path traveled between two positioning fixes (e.g., endpoints) with the distance between the two positioning fixes, the sensor data is used to calculate the straightness metric between the two positioning fixes (e.g., endpoints). In an embodiment, the straightness metric is a number between 0 and 1, where 1 represents a straight line. The straightness metric is calculated for the endpoints (e.g., the collected positioning fixes) as follows:

[0067] Straightness = d 端点 / Σd i

[0068] where d 端点 is the distance between the endpoints, and Σd i is the sum of the distances between endpoints in the reconstructed path between each endpoint calculated using the heading data and assuming the user is traveling at a constant speed.

[0069] The electronic device 102 requests the calculation of the distance between the positioning fixations from the path reconstruction machine learning model 240 (504). The path reconstruction machine learning model 240 is trained to calculate the distance between the positioning fixations. The electronic device 102 may submit multiple features as input to the path reconstruction machine learning model 240, including a straightness metric calculation. The straightness metric is used as an input to the path reconstruction machine learning model 240 along with other features to determine the distance between the positioning fixations collected along the user trajectory using the electronic device 102. Other features may optionally be provided as input to the path reconstruction machine learning model 240. Including but not limited to the following: interval distance (e.g., 3D distance determined every two minutes), altitude change (e.g., absolute altitude change every two minutes), route change (e.g., absolute route change every two minutes), step count (e.g., cumulative step count every two minutes) and / or speed change (e.g., current speed and speed change between two minutes). The path reconstruction machine learning model 240 may be trained to estimate the distance from the feature set. The path reconstruction machine learning model 240 can be implemented using, for example, a convolutional neural network (CNN) or a recurrent neural network (RNN), including a long short-term memory (LSTM) variant of an RNN. Other types of machine learning models and / or neural networks can be used. In another embodiment, the path reconstruction machine learning model 240 can be implemented using a multiple regression algorithm. Multiple regression is a machine learning algorithm that uses two or more predictors to predict a dependent variable. The electronic device 102 receives a distance calculation of the trajectory from the path reconstruction machine learning model 240 using a straightness metric and a machine learning model (505).

[0070] Fig. 6A and Figure 6B A method for calculating distance in an embodiment is shown. Fig. 6A By comparing the endpoints d 端点 The straightness metric 600 is calculated based on the distance between the travel paths d1 and d2. Figure 6B Examples of straightness metrics for illustrated paths are shown for the distances taken between endpoints by users 602, 604, and 606. As shown, a straight path 602 between two endpoints yields a straightness metric of 1. Path 606 shows a path with a turnaround having a straightness metric of .22, while path 604 has a windy path with a straightness metric of .9.

[0071] Figure 7 700 is a flow chart illustrating a method of determining distance according to an embodiment. Initially, electronic device 102 receives an indication of a location services session 102 (702). The indication may be directly as a user selection to start a location session, such as a selection to track a workout. In another embodiment, a location services session may be initiated to actively obtain location information in anticipation of a user need for historical location information.

[0072] Next, if the location service will not be an extended session (704), the electronic device transmits periodic positioning requests at constant time intervals (716). In an embodiment, the electronic device 102 transmits a positioning information request every second. The odometer (718) that relies on the positioning information can be used to determine the distance the user has traveled with the electronic device 102. Alternatively, if there is an indication that the location service session will be an extended session without the ability to recharge the battery of the electronic device 102 (704), then the electronic device 102 begins duty cycle control in extended mode with intermittent positioning requests (706). If map data is accessible (708), map matching of the electronic device 102 can be used to calculate the distance, as shown in Figure 3. Alternatively, the electronic device 102 uses the positioning fix to calculate the straightness metric and inputs the straightness metric into the trained path reconstruction machine learning model 240, such as Figure 5 As shown (710). Optionally, a pedometer can be used to improve the distance estimate (720). A pedometer or step counter is applied to the electronic device 102, which counts each step taken by a person by detecting the movement of the person's hand. In some embodiments, the pedometer is used to calculate the distance of the user's trajectory instead of the distance calculated using the positioning information.

[0073] Figure 8 800 is a flowchart of a location service according to an embodiment. In some embodiments, the location service may proactively obtain location information in anticipation of a user requesting access to historical location information for use with an application such as a map application. Contextual user data may be analyzed to predict that a user may request historical location information (801). For example, analysis of contextual user data may provide a prediction that a user may request location information for a recent path or transportation route taken to allow the user to retrace their path. In some embodiments, contextual user data is analyzed to determine whether a user may have lost and / or cannot access location information due to a loss of service (e.g., cellular or wi-fi service). In another example, historical routine data and / or application data (e.g., calendar data) may be analyzed to determine whether the most recent location information for a user on the way is not part of the user's routine.

[0074] At least one indication of a user's intent to request access to historical location information may be received (802). The user's intent to request such historical location data may be indicated by the electronic device 102 being designated as being en route for a threshold duration and / or on a path with reduced access to services (e.g., cellular service, power loss). Certain activities or events indicated by contextual user data (e.g., application data) may serve as predictors of a need to access historical location information and potentially an intent to request historical location information, such as sensor data or application data indicating that the user is exercising or walking. In another embodiment, analysis of the user's historical data may provide information about routine transportation routes or paths taken by the user, and the electronic device 102 may receive user context data indicating the user's intent to repeat a routine, such as leaving a vehicle at a parking lot near an amusement park, hiking area, ski area, and / or any other remote location.

[0075] Upon receiving an indication of a user's intended location state using an application that allows retracing a route, periodic requests for location information may be performed based on the power capabilities of the device (803). A coarse-grained geo-fence may be established where defined locations (e.g., ski lodges, national park offices, etc.) are found along the route for detection to obtain location information of the user en route. In some embodiments, an AOP may be used to perform requests for location information (e.g., GPS). Location information may be presented over time at the electronic device 102 upon user request (804).

[0076] When user context data indicates that the user may need to retrace their path, the user may be prompted to opt-in to allow the electronic device to actively obtain location information, and the location information may be deleted when access to services (such as wireless connectivity or cellular service) has been restored.

[0077] Fig. 9 A user interface 900 for location services according to an embodiment is depicted. A navigation application 220 is depicted with icons representing the location of a user's vehicle 904, road signs 906, and a path 902 that the user has taken. Road signs 906 and the user's vehicle 904 location may mark places of particular interest to the user and be depicted with icons or markers as relative locations to the user's current location.

[0078] Fig.10 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention. Fig.10As shown in , the API architecture 1000 includes an API implementation component 1010 (e.g., an operating system, library, device driver, API, application, software, or other module) that implements an API 1020. The API 1020 specifies one or more functions, methods, classes, objects, protocols, data structures, formats, and / or other features of the API implementation component that can be used by an API calling component 1030. The API 1020 may specify at least one calling convention that specifies how functions in the API implementation component receive parameters from the API calling component and how functions return results to the API calling component. The API calling component 1030 (e.g., an operating system, library, device driver, API, application, software, or other module) makes an API call through the API 1020 to access and use the features of the API implementation component 1010 specified by the API 1020. The API implementation component 1010 may return a value to the API calling component 1030 through the API 1020 in response to the API call.

[0079] It should be understood that the API implementation component 1010 may include additional functions, methods, classes, data structures, and / or other features that are not specified by the API 1020 and are not available to the API calling component 1030. It should be understood that the API calling component 1030 may be on the same system as the API implementation component 1010, or may be located remotely and access the API implementation component 1010 using the API 1020 over a network. Fig.10 A single API calling component 1030 is shown interacting with API 1020 , but it should be understood that other API calling components written in a different language than API calling component 1030 (or the same language) may use API 1020 .

[0080] The API implementation component 1010, the API 1020, and the API calling component 1030 may be stored in a machine-readable medium, which includes any mechanism for storing information in a form readable by a machine (e.g., a computer or other data processing system). For example, the machine-readable medium includes a disk, an optical disk, a random access memory, a read-only memory, a flash memory device, etc.

[0081] Fig.11 1 is a block diagram of a device architecture 1100 for a mobile or embedded device according to an embodiment. The device architecture 1100 includes a memory interface 1102, a processing system 1104 including one or more data processors, image processors and / or graphics processing units, and a peripheral device interface 1106. The various components can be coupled via one or more communication buses or signal lines. The various components can be separate logic components or devices or can be integrated in one or more integrated circuits, such as a system-on-chip integrated circuit.

[0082] The memory interface 1102 can be coupled to the memory 1150, which may include high-speed random access memory such as static random access memory (SRAM) or dynamic random access memory (DRAM) and / or non-volatile memory such as but not limited to flash memory (e.g., NAND flash, NOR flash, etc.).

[0083] Sensors, devices and subsystems may be coupled to the peripheral device interface 1106 to facilitate multiple functions. For example, motion sensors 1110, light sensors 1112 and proximity sensors 1114 may be coupled to the peripheral device interface 1106 to facilitate mobile device functions. One or more biometric sensors 1115 may also be present, such as a fingerprint scanner for fingerprint identification or an image sensor for facial recognition. Other sensors 1116 may also be connected to the peripheral device interface 1106, such as a positioning system (e.g., a GPS receiver), a temperature sensor, or other sensing devices to facilitate related functions. In an embodiment, the positioning system may have a radio processor capable of solving navigation equations to determine user position, speed and / or time by processing signal broadcasts. Camera functions, such as taking photos and video clips, may be facilitated using a camera subsystem 1120 and an optical sensor 1122 (such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS) optical sensor).

[0084] Communication functions may be facilitated by one or more wireless communication subsystems 1124, which may include radio frequency receivers and transmitters and / or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the wireless communication subsystem 1124 may depend on the communication network over which the mobile device is intended to operate. For example, a mobile device including the illustrated device architecture 1100 may include a wireless communication subsystem 1124 designed to operate over a GSM network, a CDMA network, an LTE network, a Wi-Fi network, a Bluetooth network, or any other wireless network. Specifically, the wireless communication subsystem 1124 may provide a communication mechanism by which a media playback application may retrieve resources from a remote media server or retrieve scheduled events from a remote calendar or event server.

[0085] The audio subsystem 1126 may be coupled to a speaker 1128 and a microphone 1130 to facilitate voice-enabled functions such as voice recognition, voice replication, digital recording, and telephony. In the smart media devices described herein, the audio subsystem 1126 may be a high-quality audio system including support for virtual surround sound.

[0086] The I / O subsystem 1140 may include a touch screen controller 1142 and / or other input controllers 1145. For computing devices that include a display device, the touch screen controller 1142 may be coupled to a touch-sensitive display system 1146 (e.g., a touch screen). The touch-sensitive display system 1146 and the touch screen controller 1142 may detect contact and motion or pressure using, for example, any of a variety of touch and pressure sensing technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch-sensitive display system 1146. The display output of the touch-sensitive display system 1146 may be generated by the display controller 1143. In one embodiment, the display controller 1143 may provide frame data to the touch-sensitive display system 1146 at a variable frame rate.

[0087] In one embodiment, a sensor controller 1144 is included to monitor, control, and / or process data received from one or more of the motion sensor 1110, the light sensor 1112, the proximity sensor 1114, or the other sensor 1116. The sensor controller 1144 may include logic to interpret the sensor data to determine the occurrence of one of a plurality of motion events or activities by analyzing the sensor data from the sensors.

[0088] In one embodiment, the I / O subsystem 1140 includes other input controllers 1145 that may be coupled to other input / control devices 1148 such as one or more buttons, rocker switches, thumb wheels, infrared ports, USB ports, and / or pointer devices such as a stylus, or control devices such as up / down buttons for volume control of the speaker 1128 and / or microphone 1130.

[0089] In one embodiment, memory 1150 coupled to memory interface 1102 may store instructions for an operating system 1152, including portable operating system interface (POSIX) compliant and non-compliant operating systems or embedded operating systems. Operating system 1152 may include instructions for handling basic system services and for performing hardware-related tasks. In some implementations, operating system 1152 may be a kernel.

[0090] The memory 1150 may also store communication instructions 1154 to facilitate communication with one or more additional devices, one or more computers and / or one or more servers, such as obtaining web resources from a remote web server. The memory 1150 may also include user interface instructions 1156, including graphical user interface instructions to facilitate graphical user interface processing.

[0091] In addition, the memory 1150 may store sensor processing instructions 1158 that facilitate sensor-related processing and functions; phone instructions 1160 that facilitate phone-related processes and functions; instant messaging instructions 1162 that facilitate electronic messaging-related processes and functions; web browser instructions 1164 that facilitate web browsing-related processes and functions; media processing instructions 1166 that facilitate media processing-related processes and functions; location service instructions that facilitate location-based functionality, including GPS and / or navigation instructions 1168 and Wi-Fi-based location instructions; camera instructions 1170 that facilitate camera-related processes and functions; and / or other software instructions 1172 that facilitate other processes and functions, such as security processes and functions and system-related processes and functions. The memory 1150 may also store other software instructions, such as web video instructions that facilitate web video-related processes and functions; and / or web shopping instructions that facilitate web shopping-related processes and functions. In some specific implementations, the media processing instructions 1166 are divided into audio processing instructions and video processing instructions to facilitate processes and functions related to audio processing and processes and functions related to video processing, respectively. A mobile device identifier, such as an International Mobile Equipment Identity (IMEI) 1174 or similar hardware identifier may also be stored in memory 1150 .

[0092] Each of the instructions and applications identified above may correspond to an instruction set for performing one or more of the functions described above. These instructions need not be implemented as separate software programs, processes, or modules. Memory 1150 may include additional instructions or fewer instructions. In addition, various functions may be performed in hardware and / or software, including in one or more signal processing and / or application specific integrated circuits.

[0093] Fig.12 1200 is a block diagram of a computing system 1200 according to an embodiment. The computing system 1200 shown is intended to represent a series of computing systems (wired or wireless), including, for example, a desktop computer system, a laptop computer system, a tablet computer system, a cellular phone, a personal digital assistant (PDA) including a cellular PDA, a set-top box, an entertainment system or other consumer electronic device, an intelligent electrical appliance, or one or more specific implementations of an intelligent media playback device. Alternative computing systems may include more, less and / or different components. The computing system 1200 may be used to provide a computing device and / or a server device to which a computing device may be connected.

[0094] The computing system 1200 includes a bus 1235 or other communication device for transmitting information, and a processor 1210 that can process information coupled to the bus 1235. Although the computing system 1200 is illustrated as having a single processor, the computing system 1200 may include multiple processors, low-power processors, and / or coprocessors. The computing system 1200 may also include a memory 1220 in the form of a random access memory (RAM) or other dynamic storage device coupled to the bus 1235. The memory 1220 may store information and instructions that can be executed by the processor 1210. In an embodiment, the memory 1420 may store instructions that can be executed by a low-power processor 1415 (such as an AOP). In an embodiment, the low-power processor 1415 may be a component of a system on a chip (SOC) that remains powered when the rest of the SOC is powered off. The specific implementation of the low-power processor 1415 can be found in U.S. Patent Application No. 11,079,261, which is incorporated herein by reference. The memory 1220 may also be a main memory used to store temporary variables or other intermediate information during execution of instructions by the processor 1210 .

[0095] The computing system 1200 may also include a read-only memory (ROM) 1230 and / or other data storage device 1240 coupled to the bus 1235 that may store information and instructions for the processor 1210. The data storage device 1240 may be or include a variety of storage devices, such as a flash memory device, a magnetic disk, or an optical disk and may be coupled to the computing system 1200 via the bus 1235 or via a remote peripheral interface.

[0096] The computing system 1200 may also be coupled to a display device 1250 via bus 1235 to display information to a user. The computing system 1200 may also include an alphanumeric input device 1260, which includes alphanumeric and other keys, which may be coupled to bus 1235 to communicate information and command selections to the processor 1210. Another user input device includes a cursor control 1270 device, such as a touch pad, mouse, trackball, or cursor direction keys, for communicating direction information and command selections to the processor 1210 and controlling cursor movement on the display device 1250. The computing system 1200 may also receive user input from a communicatively coupled remote device via one or more network interfaces 1280.

[0097] The computing system 1200 may also include one or more network interfaces 1280 to provide access to a network such as a local area network. The network interface 1280 may include, for example, a wireless network interface having an antenna 1285, which may represent one or more antennas. The computing system 1200 may include multiple wireless network interfaces, such as Wi-Fi, A combination of near field communication (NFC) and / or a cellular phone interface. The network interface 1280 may also include, for example, a wired network interface to communicate with a remote device via a network cable 1287, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.

[0098] In one embodiment, the network interface 1280 can provide access to a local area network, for example by complying with the IEEE 802.11 wireless standard, and / or the wireless network interface can provide access to a personal area network, for example by complying with the Bluetooth standard. Other wireless network interfaces and / or protocols may also be supported. In addition to or in lieu of communicating via a wireless LAN standard, the network interface 1280 can provide wireless communications using, for example, a time division multiple access (TDMA) protocol, a global system for mobile communications (GSM) protocol, a code division multiple access (CDMA) protocol, a long term evolution (LTE) protocol, and / or any other type of wireless communication protocol.

[0099] The computing system 1200 may also include one or more energy sources 1205 and one or more energy measurement systems 1245. The energy source 1205 may include an AC / DC adapter coupled to an external power source, one or more batteries, one or more charge storage devices, a USB charger, or other energy sources. The energy measurement system includes at least one voltage or current measurement device that can measure the energy consumed by the computing system 1200 over a predetermined time period. In addition, one or more energy measurement systems may be included to measure, for example, the energy consumed by a display device, a cooling subsystem, a Wi-Fi subsystem, or other commonly used or high energy consumption subsystems.

[0100] In various embodiments, description is made with reference to the accompanying drawings. However, certain embodiments may be practiced without one or more of these specific details or in combination with other known methods and structures. In the following description, many specific details such as specific configurations, sizes and processes are shown to provide a thorough understanding of the embodiments. In other cases, well-known semiconductor processes and manufacturing techniques are not described in particular detail to avoid unnecessarily obscuring the embodiments. "One embodiment" mentioned throughout the specification refers to the specific features, structures, constructions or characteristics described in conjunction with the embodiments being included in at least one embodiment. Therefore, the phrase "in one embodiment" that appears in multiple places throughout the specification does not necessarily refer to the same embodiment. In addition, specific features, structures, constructions or characteristics may be combined in one or more embodiments in any appropriate manner.

[0101] Although the embodiments have been described in language specific to structural features and / or methodological acts, it should be understood that the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts disclosed should be understood as illustrative embodiments of the claims.

Claims

1. A method, comprising: receiving at least two position fixes of a trajectory of the electronic device, wherein the at least two position fixes are obtained intermittently; Fix-matching the at least two position fixes to points on a path indicated in the map data; and The distance of the trajectory is calculated using the map data employing the distance information.

2. The method of claim 1, wherein intermittently obtaining a positioning fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: determining whether location information received from another location service application is outdated; transmitting a request for positioning information if the positioning information is out of date; and The location fix is ​​obtained from another location service application without the location information being out of date.

3. The method of claim 1, wherein intermittently obtaining a positioning fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: The request for location information is deferred until the application processor is awakened by another application executing on the electronic device.

4. The method of claim 1, wherein intermittently obtaining a positioning fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: The request for positioning information is deferred until the radio processor is awakened by another application executing on the electronic device.

5. The method of claim 1, wherein the intermittently received positioning fixes are received at different times within a period of N minutes.

6. The method of claim 1, wherein the intermittently received positioning fixes are continuously requested and received at different durations during a duty cycle control period. The method of claim 1 , wherein the map data is cached on the electronic device.

8. A method comprising: receiving at least two position fixes of a trajectory of the electronic device, wherein the at least two position fixes are obtained intermittently; calculating a straightness metric of the trajectory using heading information obtained from sensor data while the electronic device travels between the at least two position fixes; training a machine learning model to calculate distances between positioning fixtures using a plurality of features, wherein the plurality of features includes a straightness metric calculation; and A distance calculation of the trajectory is received from the machine learning model using the straightness metric and the at least two positioning fixations.

9. The method of claim 8, wherein the plurality of features further comprises at least one of the following: Distance calculated every N minutes, absolute altitude change determined every N minutes, absolute route change determined every N minutes, cumulative number of steps provided every N minutes, or current speed determined every N minutes.

10. The method of claim 8, wherein the machine learning model uses a multiple regression algorithm.

11. The method of claim 8, wherein the straightness metric is calculated between the at least two positioning fixations using the sensor data by comparing a distance of a reconstructed path traveled between two positioning fixations to the distance between the at least two positioning fixations.

12. The method according to claim 8, further comprising: Requests for positioning information are duty cycled to obtain intermittent positioning fixes.

13. The method of claim 8, wherein the machine learning model reconstructs a path from user accessible data and estimates a distance of the path taken by the electronic device.

14. A method comprising: analyzing the user context data to determine a set of conditions that are satisfied to actively obtain location data in an extended mode; initiating the extended mode based on the analysis of the user context data, wherein the extended mode includes duty-cycling location information requests to obtain intermittent location fixes; as well as At least one mitigation is performed using the intermittently obtained position fixes to determine a trajectory and a distance traveled along the trajectory.

15. The method of claim 14, wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of said trajectory of the electronic device; Fix-matching the at least two position fixes to points on a path indicated in map data to determine the trajectory; and The distance of the trajectory is calculated using the map data employing distance information.

16. The method of claim 14, wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of a trajectory of the electronic device; calculating a straightness metric of the trajectory using heading information obtained from sensor data while the electronic device travels between the at least two position fixes; training a machine learning model to calculate distances between positioning fixtures using a plurality of features, wherein the plurality of features includes a straightness metric calculation; and A distance calculation of the trajectory is received from the machine learning model using the straightness metric and at least two intermittently obtained positioning fixes.

17. A method according to claim 14, wherein the conditions include at least one of motion classification, a comparison result between a time span of the electronic device without network access and a threshold time period without network access, a sparse density environment classification, or a comparison result between a distance to a frequently visited location and a threshold distance from the frequently visited location.

18. The method of claim 14, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: determining whether location information received from another location service application is outdated; transmitting a request for positioning information if the positioning information is out of date; and The location fix is ​​obtained from another location service application without the location information being out of date.

19. The method of claim 14, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: The request for positioning information is deferred until the application processor or the radio processor is awakened by another application executing on the electronic device.

20. The method according to claim 14, further comprising: changing the functionality of the electronic device; as well as Execution of services on the electronic device is prioritized.

21. A system, comprising: one or more processors; a memory coupled to the one or more processors and configured to store a method that, when executed by the one or more processors, causes the one or more processors to perform operations including: analyzing the user context data to determine a set of conditions that are satisfied to actively obtain location data in an extended mode; initiating said expanded mode based on said analysis of user context data, Wherein the extended mode includes duty cycle control of the positioning information request to obtain an intermittent positioning fix; as well as At least one mitigation is performed using the intermittently obtained position fixes to determine a trajectory and a distance traveled along the trajectory.

22. The system of claim 21, wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of said trajectory of the electronic device; Fix-matching the at least two position fixes to points on a path indicated in map data to determine the trajectory; and The distance of the trajectory is calculated using the map data employing distance information.

23. The system of claim 21 , wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of a trajectory of the electronic device; calculating a straightness metric of the trajectory using heading information obtained from sensor data while the electronic device travels between the at least two position fixes; training a machine learning model to calculate distances between positioning fixtures using a plurality of features, wherein the plurality of features includes a straightness metric calculation; and A distance calculation of the trajectory is received from the machine learning model using the straightness metric and at least two intermittently obtained positioning fixes.

24. A system according to claim 21, wherein the conditions include at least one of motion classification, a comparison result between a time span of the electronic device without network access and a threshold time period without network access, a sparse density environment classification, or a comparison result between a distance to a frequently visited location and a threshold distance from the frequently visited location.

25. The system of claim 21, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: determining whether location information received from another location service application is outdated; transmitting a request for positioning information if the positioning information is out of date; and The location fix is ​​obtained from another location service application without the location information being out of date.

26. The system of claim 21, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: The request for positioning information is deferred until the application processor or the radio processor is awakened by another application executing on the electronic device.

27. The system of claim 21, further comprising: changing the functionality of the electronic device; as well as Execution of services on the electronic device is prioritized.

28. A non-transitory machine-readable medium having stored thereon instructions that cause one or more processors to perform operations comprising: analyzing the user context data to determine a set of conditions that are satisfied to actively obtain location data in an extended mode; initiating the extended mode based on the analysis of user context data, wherein the extended mode includes duty cycling location information requests to obtain intermittent location fixes; and At least one mitigation is performed using the intermittently obtained position fixes to determine a trajectory and a distance traveled along the trajectory.

29. The non-transitory machine-readable medium of claim 28, wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of said trajectory of the electronic device; Fix-matching the at least two position fixes to points on a path indicated in map data to determine the trajectory; and The distance of the trajectory is calculated using the map data employing distance information.

30. The non-transitory machine-readable medium of claim 28, wherein performing the at least one mitigation comprises: receiving at least two intermittently obtained position fixes of a trajectory of the electronic device; calculating a straightness metric of the trajectory using heading information obtained from sensor data while the electronic device travels between the at least two position fixes; training a machine learning model to calculate distances between positioning fixtures using a plurality of features, wherein the plurality of features includes a straightness metric calculation; and A distance calculation of the trajectory is received from the machine learning model using the straightness metric and at least two intermittently obtained positioning fixes.

31. A non-transitory machine-readable medium according to claim 28, wherein the condition includes at least one of a motion classification, a comparison result between a time span of the electronic device without network access and a threshold time period without network access, a sparse density environment classification, or a comparison result between a distance to a frequently visited location and a threshold distance from the frequently visited location.

32. The non-transitory machine-readable medium of claim 28, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: determining whether location information received from another location service application is outdated; transmitting a request for positioning information if the positioning information is out of date; and The location fix is ​​obtained from another location service application without the location information being out of date.

33. The non-transitory machine-readable medium of claim 28, wherein intermittently obtaining a position fix comprises: Determining whether to transmit a request for positioning information, wherein the determining comprises: The request for positioning information is deferred until the application processor or the radio processor is awakened by another application executing on the electronic device.

34. The non-transitory machine-readable medium of claim 28, further comprising: changing the functionality of the electronic device; as well as Execution of services on the electronic device is prioritized.