Rhythmic collection of positioning information

By intermittently obtaining position fixes and using machine learning to estimate distances, the method addresses the battery life issue in current positioning technologies, achieving efficient and accurate location services.

JP2025516567APending Publication Date: 2025-05-30APPLE INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024566277
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-04-20
Filing Date
2023-04-21
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Current methods for providing accurate positioning information consume device battery life due to continuous requests for positioning data, which is unsustainable over long periods without recharging.

Method used

A method that intermittently obtains position fixes by determining when to request positioning information, using stale information checks, and deferring requests until the application or radio processor is active, while also caching map data and using machine learning to estimate distances based on sensor data and trajectory analysis.

Benefits of technology

This approach significantly extends battery life by reducing unnecessary battery consumption through intermittent positioning requests and efficient data processing, while maintaining accurate location services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025516567000001_ABST
    Figure 2025516567000001_ABST
Patent Text Reader

Abstract

A method, non-transitory machine-readable medium, and system for providing a location service are described. In one embodiment, the method includes receiving at least two position fixes about the trajectory of an electronic device, where 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 about the trajectory using distance information using the map data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Related Applications This application claims the benefit of priority of 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.

[0002] The embodiments described herein relate to the presentation of location services.

Background Art

[0003] Current methods for providing accurate positioning information to device applications require continuous requests for positioning information by the device (e.g., 1 Hz or every second). Continuous requests for positioning information consume the device battery when executed over a long period of time without the ability to recharge the device battery. Therefore, it is necessary to provide positioning information to location services while maintaining the life of the device battery.

Summary of the Invention

[0004] A method, non-transitory machine-readable medium, and system for providing location services are described. In one embodiment, the method includes receiving at least two position fixes about an orbit 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 about the orbit using distance information using the map data.

[0005] In one embodiment, the method provides for intermittently obtaining a position fix by determining whether to send a request for positioning information, determining whether positioning information received from another location service application is stale, sending a request for positioning information if the positioning information is stale, and obtaining a position fix from another location service application if the positioning information is not stale. In one embodiment, the method provides for determining whether to send a request for positioning information by deferring the request for positioning information until the application processor is launched by another application running on the electronic device. In one embodiment, the method provides for intermittently obtaining a position fix by determining whether to send a request for positioning information, the determining including deferring the request for positioning information until the radio processor is launched by another application running on the electronic device. In one embodiment, the method provides for the intermittently received position fix to be received at various times within an N-minute period. In one embodiment, the method provides for the intermittently received position fix to be continuously requested and received over various durations during a duty cycle period. In one embodiment, the method provides for map data to be cached on the electronic device.

[0006] In one embodiment, the method includes receiving at least two position fixes regarding the trajectory of an electronic device, where the at least two position fixes are obtained intermittently; calculating a straightness metric regarding the trajectory using the nose azimuth information obtained from sensor data when the electronic device moves between the at least two position fixes; training a machine learning model to calculate the distance between the position fixes using a plurality of features, where the plurality of features includes the straightness metric calculation; and receiving a distance calculation regarding the trajectory from the machine learning model using the straightness metric and the at least two position fixes. The method further provides that the plurality of features further includes at least one of the distance calculated every N minutes, the absolute altitude change determined every N minutes, the absolute course change every N minutes, the cumulative number of steps provided every N minutes, or the current speed determined every N minutes. In one embodiment, the method provides that the machine learning model uses a multiple regression algorithm. In one embodiment, the method provides that the straightness metric is calculated between the at least two position fixes using sensor data by comparing the distance of the reconstructed path traveled between the two position fixes with the distance between the at least two position fixes. In one embodiment, the method provides a duty cycle for requests for positioning information to obtain intermittent position fixes. In one embodiment, the method provides that the machine learning model reconstructs a path from user-accessible data and estimates the distance of the path taken with the electronic device.

[0007] In one embodiment, the method includes analyzing user context data to determine that a set of conditions for proactively obtaining positioning data in an extended mode is satisfied, starting an extended mode based on the analysis of the user context data, where the extended mode includes a duty cycle position information request for obtaining intermittent position fixes, and performing at least one relaxation using the intermittently obtained position fixes to determine a trajectory and the distance traveled along the trajectory. In one embodiment, performing at least one relaxation includes receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, matching at least two position fixes to points on a path indicated in map data to determine the trajectory, and calculating the distance for the trajectory using distance information from the map data. In one embodiment, performing at least one relaxation includes receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, calculating a straightness metric for the trajectory using heading information obtained from sensor data when the electronic device moves between at least two position fixes, training a machine learning model to calculate the distance between position fixes using a plurality of features including the straightness metric calculation, and receiving a distance calculation for the trajectory from the machine learning model using the straightness metric and at least two intermittently obtained position fixes. In one embodiment, the condition includes at least one of a motion classification, a comparison result between the time span of the electronic device without network access and a threshold period without network access, a density environment classification, or a comparison result between the distance to a frequently visited location and a threshold distance from the frequently visited location.In one embodiment, the method provides that intermittently obtaining a position fix is to determine whether to send a request for positioning information, and determining is to determine whether the positioning information received from another location service application is old, and sending a request for positioning information when the positioning information is old, and obtaining a position fix from another location service application when the positioning information is not old. In one embodiment, the method provides that intermittently obtaining a position fix includes determining whether to send a request for positioning information, and determining further includes deferring the request for positioning information until an application processor or a radio processor is launched by another application running on the electronic device. In one embodiment, the method provides changing the function of the electronic device and prioritizing the execution of services on the electronic device.

Brief Description of the Drawings

[0008]

Figure 1

[0009]

Figure 2

[0010]

Figure 3A

[0011]

Figure 3B

[0012]

Figure 3C

[0013]

Figure 4A

Figure 4B

Figure 4C

[0014]

Figure 5

[0015]

Figure 6A

Figure 6B

[0016]

Figure 7

[0017]

Figure 8

[0018]

Figure 9

[0019]

Figure 10

[0020]

Figure 11

[0021]

Figure 12

BEST MODE FOR CARRYING OUT THE INVENTION

[0022] The embodiments provided in this specification 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 run a location service application. The location service application may repeatedly request positioning information (e.g., GPS data) over a period of time to provide the trajectory of the movement of the device and / or the distance the device has traveled over a period of time. In some embodiments, an extended power saving mode (extended mode) technique is described for extending the battery life of a device (e.g., a smartwatch, a step tracking device, a location service device, etc.) while running the location service application and / or collecting positioning information regarding the location service application during an extended period of time when the user may not be able to recharge their device. Battery life is the length of time 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 device for a user during hiking, running, participating in a marathon, a camping trip, and / or any other activity may need to record positioning information using GNSS over an extended period of time without accessing a way to recharge the battery and may need to modify the functionality of the device to extend the battery life. In another example, positioning information may be collected so that location information can be provided if the user is missing or in an emergency situation and the user and / or the provider of assistance to the user needs to be able to access the location information after an extended period of time when the user cannot recharge the device. In the non-extended mode, positioning information is continuously acquired at defined time intervals (e.g., every second) that may drain the battery if the positioning information is collected over a period of time that exceeds the battery life of the device available before the device needs to be recharged.

[0023] In one embodiment, the extended mode provides that the duty cycle GNSS request for positioning information is executed for power saving. The duty cycle is part of a defined period during which the system is active. In the extended mode, the collection of positioning information may be requested every N sub-periods using intermittently received position fixes. The intermittently received position fixes may be requested and received at any time within the period such that the position fixes are received at irregular time intervals. For example, the intermittently received position fixes are received at various times within the N sub-periods and / or the position fixes are continuously requested and received over various durations during the duty cycle period. The intermittent reception of position fixes enables the application processor (AP) and / or the wireless processor (e.g., GPS processor) to sleep during the requests and / or to process requests from other applications. Some embodiments may turn off all other functions of the device in the extended mode to enable the collection of positioning information, health information, location service applications, and / or any other limited set of applications.

[0024] When positioning information is collected intermittently over time (e.g., received at irregular intervals rather than continuously or steadily), relaxation is performed to provide an estimated distance traveled using an estimated trajectory of the path taken by the user of the device and / or a set of collected position fixes. The user may not have moved linearly between each collected position fix, and relaxation is performed to provide an estimated value of the actual trajectory and / or distance the user has traveled. In a first relaxation technique, map matching may be performed using the collected positioning information. Map matching involves taking a set of collected intermittent position fixes and matching the collected position fixes to positions along a route and / or street defined within map data accessible to the device. However, the map matching relaxation technique is not always an option. In a second relaxation technique, sensor data (e.g., inertial data) is collected to determine whether the user is walking in a straight path while moving with the device or taking a winding path.

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

[0026] FIG. 1 is a block diagram of a network operating environment 100 for a mobile device according to one 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 with a wireless network and / or a wireless accessory device. Some examples of the mobile device 102 include, but are not limited to, smartphones, tablet computers, notebook computers, wearable devices (e.g., smartwatches or other wearable computing accessories), mobile media players, personal digital assistants, AirPods (registered trademark), EarPods (registered trademark), PowerBeats (registered trademark), AirTag (registered trademark), locator tags, headphones, head-mounted displays, health devices, speakers, and other similar devices. In one embodiment, the accessory device can be paired with the mobile device 102. By way of example, the accessory device can be a device such as Apple AirPods (registered trademark), EarPods (registered trademark), PowerBeats (registered trademark), exercise equipment, vehicles, bicycles, scooters, smart TVs, Homepods, voice assistant devices, home security systems, and / or any other mobile accessory device.

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

[0028] In some implementations, both voice communication and data communication can be established via the wireless network 112 and / or the access device 118. For example, the mobile device 102 can originate and receive phone calls (e.g., using the VoIP protocol), send and receive email messages (e.g., using the POP3 protocol), and retrieve electronic documents and / or streams such as web pages, photos, and videos via the wireless network 112 (as shown, for example, by 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 originate and receive phone calls, send and receive email messages, and retrieve electronic documents via 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, when the access device 118 is a personal computer. In this configuration, the mobile device 102 may be referred to as a "tethered" device. In one embodiment, the mobile device 102 can communicate with accessory devices via a wireless peer-to-peer connection. The wireless peer-to-peer connection (not shown) can be used to synchronize data between devices.

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

[0030] Mobile device 102 may have applications, services, and functions that are locally accessible on the device, including location service 180. Mobile device 102 may provide one or more device locator applications 190 (e.g., "Find my" application, "Compass" application, mapping application, etc.) to identify the location of accessory devices using device locator service 170 and location service 180, and can provide a mapping application and a navigation application. The navigation application (e.g., "Compass" application) assists the user in navigation to and backtracking of historical positions on the user's route. The navigation application is an application that uses any number of methods including a gyroscope, a magnetometer, and / or a positioning system (e.g., a GPS receiver) to indicate the cardinal directions used for navigation and geographical orientation. The mapping application is an application that uses maps distributed by a geographic information system (GIS).

[0031] Locally accessible data may be stored at defined locations such as known location 182 and safe or trusted location 184. Machine learning algorithm 186 may be used in embodiments to classify locations, infer relationships between the user and locations, and provide route reconstruction and / or distance estimation. In some embodiments, machine learning algorithm 186 may be used to provide an estimated value for distance using a set of features including, but not limited to, intermittently received position fixes for a route and a straightness metric for the set of position fixes.

[0032] In some cases, the machine learning algorithm 186 can be used to identify known locations 182 and / or reliable locations 184. As an example, cluster data analysis can be used to identify, classify, and provide semantic labels for locations such as locations frequently visited by a user. The safe and reliable locations 184 may be explicitly specified or may be thus confirmed by the user of the mobile device 102 after data analysis. In other examples, the known locations 182 or reliable locations 184 may be classified offline and provided by the device locator service 170 or a third party (e.g., a database having map information). Cluster analysis is provided as an example of a machine learning algorithm that can be used, but those skilled in the art will recognize that other algorithms can be used to identify potential known or reliable locations.

[0033] On-device heuristics and / or machine learning models can be used to infer the relationship between a user and a location based on the analysis of locally stored data at frequently visited locations, including locations frequently visited by the user, known locations, and / or any other locations. For example, any location frequently visited by a user having a home, vehicle, workplace, mobile device (e.g., an accessory device and the mobile device 102), and / or any other location designated as a reliable location 184 by the user. The known locations 182 can be business locations, public spaces, parks, museums, and / or any other location where the user may frequently visit.

[0034] A defined location may have associated fence information that, when detected, provides a set of conditions that enable an electronic device to be specified or classified with respect to a region of physical space for at least a portion of the defined location. For example, the fence information may provide conditions for classifying an electronic device as either inside or outside a region of physical space associated with a defined location. In another example, the fence information may provide conditions for classifying an electronic device as transitioning between inside or outside a region of a defined location. The fence information may be a geopfence having boundary information about the defined location, such as a point location and a range of an area from the point location (e.g., a circular area defined by a radius from the point location, a polygon shape having distance measurements from the point location, etc.). The fence information may include a set of sensor measurements received by an electronic device that are characteristics of a particular region of the defined location (e.g., fingerprint data including radio frequency (RF) scan data such as Wi-Fi scan traces). The fence information for each defined location may be stored along with a classification type for the location and any semantic labels assigned to the location. The boundary information may include a defined set of boundaries or a radius distance around a point location to enable creation of a fence for the location. In some embodiments, the fence is a virtual boundary 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 geopfence boundary and entry into and exit from the bounded area. In some embodiments, there are at least two layers of fences that may be used to reduce conventional geopfence latency. For example, a mode selected based on analysis of user context data to determine intent may consider the selection of the established fence granularity. In some embodiments, multiple fences may be used to refine positioning information determined by a coarse-grained geopfence.

[0035] Machine learning algorithm 186 may include on-device heuristics, machine learning algorithms, or combinations thereof to analyze and assign labels regarding user context such as location status. Location status may be a label for a particular positioning technique of an electronic device and the user context (e.g., a set of conditions, movement classification) for which resources are used to obtain positioning information. Location status may define the current location state of the user while moving with the electronic device and / or a prediction of a change in the location state. By proactively obtaining positioning information using techniques suitable for location status, latency in providing information for device applications is reduced without causing a significant degradation in the performance of the electronic device that may be experienced due to constant requests for positioning information. For example, user context may indicate movement or travel of the electronic device such that the electronic device is designated as having a movement classification such as "in motion," "stable" at a particular defined location for a period of time, or any other defined movement classification. The analysis can be performed using various signals from context user data sources available to mobile device 102, including but not limited to sensor data, positioning data, calendar data, transportation card usage data, application data, historical data regarding movement patterns / routines, wireless connection status having accessory devices and / or services (e.g., Bluetooth connection status), device location history, and / or any other data accessible to mobile device 102. In one embodiment, the wireless connection status with various devices may indicate whether the device is stable or "in motion." For example, loss of connection to appliances, security systems, heating / cooling systems, vehicles, other modes of transportation, and / or any other device may indicate that the mobile device is "in motion."

[0036] In some embodiments, the mobile device 102 may be classified with a "stable" semantic label after remaining within a geographic boundary that defines a location (e.g., a reliable location 184) for a defined period of time. In one example, the received positioning data for the mobile device 102 may indicate that the electronic device 102 has remained within the boundary of a fence for a particular location for a certain duration (e.g., 5 minutes). Sensor data, such as accelerometer data, may indicate that the mobile device 102 is stationary, supporting the inference that it is stable. Application data may support the inference that the mobile device 102 is in a stable state, such as when the mobile device is located at a calendar appointment location. Application data indicating the type of application in use may also provide an inference that the device is in a stable state, such as when using a media application. User history data regarding routine or patterns during movement may be used to determine whether the mobile device 102 is in a stable state, such as a bedtime routine at a home or hotel location.

[0037] The mobile device 102 may be classified as having a "moving" label based on previously detected behavior, patterns, or routines for the user and analyzed on the mobile device 102. For example, the user may have a routine of going to work at the same time each day, and if the data on the device supports that the pattern is repeated, a "moving" state may be assigned. The speed at which the mobile device is moving or entering and exiting a known geographic area (e.g., using a fence) may enable the inference that the mobile device 102 is in motion. If the mobile device 102 is detected to be accelerating in a known area of movement (e.g., a road, highway, railroad line, etc.), the mobile device 102 may be given a "moving" motion classification. Similarly, if a transit application / card is being used / used, the mobile device 102 may be designated as "moving".

[0038] Mobile device 102 can be classified as a "threshold distance", "near an entrance", "near an exit", "entrance", and / or "exit" of a set of locations or a specific location based on detecting a pattern of sensor values characteristic of being at a location, such as Wi-Fi scan results characteristic of crossing a fence boundary for an individual location or set of locations and / or being inside a location or moving to a location.

[0039] FIG. 2 is a block diagram of a location service according to one embodiment. The location service 180 may include an event monitor module 264 (e.g., a fence event monitor, a location status monitor, a sensor monitor, etc.) that can assist in determining when the power mode and performance mode should be adjusted to determine positioning information. The event monitor module 264 may function as a queue of user context depending on data from a context user data source, and the event monitor module 264 may use heuristics and / or machine learning algorithms 186 to determine a user context that triggers an adjustment of the mode. The event monitor module 264 can detect whether the user has entered a defined location and an unfamiliar location. For example, the mobile device 102 can be designated in a "moving" state using a motion classifier 280, and the wireless connection status data can indicate that a Bluetooth connection has been lost between the mobile device 102 and an accessory device such as a vehicle entertainment system. Continuing with this example, the event monitor module 264 may determine from one or more context user data sources that there is at least one indication that a change will occur in the location status and / or motion classification of the mobile device 102, such as that the mobile device 102 may be "moving to a defined location". User context data such as crossing a fence boundary, exiting a vehicle, exiting a transfer station, user routine, sensor data, application data, etc. may be analyzed to predict that the electronic device is at a threshold distance from a defined location and that the mode of the electronic device should be adjusted.

[0040] In one embodiment, the event monitor 264 can detect from the user context data that the user is in a remote location (e.g., the great outdoors), on an unfamiliar route, and / or is likely to have a low probability of charging the user's device over a long period of time. For example, various signals from the user context data, such as application data indicating that the user is tracking a workout, a map application having a hiking route 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 enable an inference that the user cannot recharge the electronic device 102, may indicate that the user has a low probability of charging the device. In another example, the user can select a mode indicating that the user cannot recharge the electronic device 102.

[0041] 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 latency for the provision of positioning information by predicting that the user will request positioning data. The access monitor module 270 can retrieve the fence information 290 to define a more accurate boundary for the defined location when it is detected that the electronic device 102 has crossed a coarser-grained geofence boundary as detected using the entry detection module 266. In another embodiment, the access monitor module 270 can retrieve the expected sensor data (e.g., fingerprint data) characteristics of the electronic device 102 along with the location status.

[0042] The proactive service 268 can be used to predict applications and / or services that a user may want to access using a given user context, movement classification, and / or location status. For example, a user may want to access a particular application immediately before or when entering a certain location. The proactive service 268 can select an application based on the user's history of application selection or propose new applications associated with a particular defined location.

[0043] In one embodiment, the electronic device 102 (having the event monitor 264) can detect a set of conditions that enable an inference that the user may request a backtrack route to enable them to retrace their steps, and the electronic device 102 can initiate an extended power saving mode to obtain positioning information in a manner that does not affect the performance of the electronic device 102. In one embodiment, the proactive service 268 can adjust the rate of periodic requests for determining positioning information. To process the intermittent reception of positioning information, a machine learning model 240 can be used to reconstruct a route from user-accessible data and estimate the distance of the route taken by the user.

[0044] In some embodiments, the map data accessed by the mapping application 250 is used to estimate distances. The mapping application is an application that uses maps distributed by a geographic information system (GIS). The navigation application 220 can provide heading or direction (e.g., the angle from magnetic north) information regarding the mobile device 102 collected when the user is moving, and the heading data is averaged to eliminate errors in the heading information collected due to variations in the heading measurements collected due to the movement of the device (e.g., the jostling of the device, the swaying of the hand if the device is worn on the user's wrist) as the user moves along their trajectory.

[0045] Proactive Service 268 and Event Monitor 264 can use Motion Classifier 280 and Backtrack Classifier 278. Motion Classifier 280, which is trained on a feature set from data obtained using electronic device sensors, can provide information regarding whether electronic device 102 is stationary or moving with the user. Embodiments are not limited to a particular sensor type, a particular sensor data representation, or a particular feature, but exemplary sensors and features that can distinguish particular movements within sensor data are described herein. The motion classifier can analyze features provided from sensor data using one or more models trained to perform identification of motion types based on the supplied features. In some implementations, the electronic device can receive, from the electronic device or from a server, a motion classification indicating that the mobile device is moving in a particular mode of movement. The backtrack classifier classifies the acquired historical positions of mobile device 102 as a potential part of the backtrack route of the user of the electronic device.

[0046] In some embodiments, the electronic device 102 of FIGS. 3A-12 is the mobile device 102 described in FIGS. 1-2. Rhythmic GNSS

[0047] Figure 3A is a flow diagram 300 showing an extended mode technique according to one embodiment. In some embodiments, a user explicitly selects an extended mode via a user interface on the electronic device 102. The mode change can be a relaxation from a higher power state (e.g., non-extended mode) with more accurate location monitoring to a lower power state (e.g., extended mode) with coarse location monitoring in order to extend the battery life. Alternatively or additionally, in some embodiments, the electronic device 102 can determine a mode selection that causes either an increase or relaxation of power usage, including a duty cycle of requests for positioning information, depending on user context data. User context data is analyzed (302) to determine whether to initiate an extended location service session in the extended mode. The electronic device 102 analyzes user context data to determine that a set of conditions for proactively obtaining positioning data in the extended mode is satisfied. The set of conditions enables an inference that the user is on an unfamiliar path and / or in the great outdoors, and a prediction that the user may need to be able to retrace their steps using a backtrack route and proactively obtain historical positioning information. Various data sources can be analyzed to determine the user context, including but not limited to sensor data, application data, known user routines, known locations of interest, detection of vehicle entry and / or exit (e.g., loss of Bluetooth connection to a vehicle). In one embodiment, the electronic device 102 selects a mode based on conditions satisfied in user context data such as time or an event indicating a time interval for capturing positioning information. For example, if the user is in motion for an extended period of time or if cell service is restricted (e.g., weak, intermittent access, etc.), potentially indicating that the user is hiking, positioning information can be proactively captured to enable the user to retrace their steps.

[0048] In one embodiment, the one or more backtracking conditions can include, without limitation, movement classification while moving (e.g., not stationary), a threshold period without network access, sparse (e.g., not high population density or density of man-made structures in the area) environment classification, and a threshold distance from frequently visited locations and / or locations that are part of a user routine. While specific categories of conditions are provided, one of ordinary skill in the art will recognize that any other user context data can complement and / or form the basis for the inference that the user will request historical positioning information for backtracking.

[0049] The electronic device 102 starts an extended location service session in an extended mode to perform a duty cycle of requests for positioning information (e.g., GNSS requests) to obtain intermittent position fixes and extend battery life (304). The requests for positioning information of the electronic device 102 can be intermittent to allow the AP to sleep between requests and / or to process requests by other applications. As a further example, the electronic device 102 can collect positioning information every N minutes (e.g., every 2 minutes), and the duration for obtaining a position fix using GNSS can vary each time. Continuing with this example, the electronic device 102 can request positioning information every 2 minutes, and the duration for which the request for positioning information is serviced can depend on the operating state of the device.

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

[0051] The electronic device 102 may conveniently collect positioning information (316) when the AP is already executing instructions (for example, for another application). For example, if obtaining health information about the user, communication services, etc. is prioritized over obtaining positioning information, obtaining positioning information may be executed in the background when the priority application is idle. Alternatively, the electronic device 102 may request to wake the AP for a positioning information request (318). As described in FIGS. 3C and 5, relaxation is executed (320) to provide an estimated trajectory. The extended location service session can continue (322) and, optionally, the functions of services and applications can be changed (306). The user context can continue to be analyzed in some embodiments (324) and (302). Alternatively, the process may end until the user starts an extended location service session (326).

[0052] FIG. 3B is FIG. 311 showing an extended mode approach according to an embodiment. After one or more conditions 317 indicating the need to start the extended mode are detected in the user context data, as shown, a positioning information request 315 is intermittently executed within a duty cycle 313. The look-back window is a period 319 having a set of historical positions that are likely to be required to allow the user to retrace steps, as shown. Map matching technique

[0053] FIG. 3C is a flowchart 301 showing a map matching technique for determining distance according to one embodiment. As described with respect to FIG. 3A, the electronic device 102 intermittently obtains position fixes using a duty cycle (303). In some embodiments, the user explicitly selects an extended mode via a user interface on the electronic device 102. Alternatively, the electronic device 102 can determine a selection of a mode that causes either an increase or relaxation of power usage, including a duty cycle of requests for positioning information, depending on user context data. Various data sources can be analyzed to determine the user context, including but not limited to sensor data, application data, known user routines, known locations of interest, detection of vehicle entry and / or exit (e.g., loss of Bluetooth connection to a vehicle). In one embodiment, the electronic device 102 selects a mode based on user context data such as time or an event indicating an interval of time for capturing positioning information. For example, if the user is in motion over a long period of time, or if cellular service is limited (e.g., weak, intermittent access, etc.), potentially indicating that the user is hiking, the positioning information can be proactively captured to enable the user to retrace their steps. In some embodiments, the mode can determine a particular processor type for determining positioning information, such as whether the positioning information request is executed on an AP or a low-power "always-on" processor (AOP), or whether the device intermittently executes the request on the AP or AOP at irregular time intervals to conserve the device battery. In another embodiment, the mode change can be a relaxation from a higher power state (e.g., non-extended mode) with more accurate location monitoring to a lower power state (e.g., extended mode) with coarser location monitoring to extend the battery life.

[0054] Optionally, the electronic device 102 executes a duty cycle of requests for positioning information (e.g., GNSS requests) to extend battery life in extended mode. The requests for positioning information of the electronic device 102 can be intermittent to allow the AP to sleep between requests and / or to process requests from other applications. As a further example, the electronic device 102 can collect positioning information every N minutes (e.g., every 2 minutes), and the duration for using GNSS to obtain a position fix can vary each time. Continuing with this example, the electronic device 102 can request positioning information every 2 minutes, and the duration for which the request for positioning information is serviced can depend on the operating state of the device. The electronic device can conveniently collect positioning information when the AP is already executing an instruction (e.g., for another application) and / or when the electronic device 102 may require waking up the AP for a positioning information request.

[0055] The electronic device 102 receives at least two position fixes regarding the orbit (305). Examples are provided using two position fixes, but one of ordinary skill in the art will recognize that multiple position fixes can be collected over a long period of time. For example, the collection of positioning information can be simultaneous with the use of the application processor for other applications so that the request for positioning information does not wake up the application processor. In some examples, if the location information is not old, the location information can be collected from other applications running on the device that requests the location information. For example, if a mapping application is running on the device, when a request for location information is received for the location service application, the location information obtained by the mapping application can satisfy the request for positioning information. A threshold period after receiving the location information can determine whether the location information is old. In some embodiments, the collection of location information can be prioritized so that other functions of the device can be turned off to enable the collection of positioning information.

[0056] When positioning information is collected intermittently over time (e.g., collected at irregular intervals rather than continuously or steadily), relaxation is performed to provide an estimate of the distance traveled using an estimate of the trajectory taken by the user of the device and / or a set of collected position fixes. The user may not be moving linearly between each of the collected position fixes, and relaxation is performed to provide an estimate of the actual trajectory and / or distance traveled by the user.

[0057] The electronic device 102 performs a matching (307) of at least two position fixes to points on a path shown in the map data. Map matching involves taking a set of collected intermittent position fixes and matching the collected position fixes to positions along a path and / or street defined in the map data accessible to the device. In some embodiments, a map tile service can provide the electronic device 102 with a tile-based mapping service that enables the electronic device 102 to retrieve map data and metadata regarding the geographic area of the electronic device 102 or the area being searched by the mobile device 102. The map tile metadata can be retrieved from a remote map tile database or a local (e.g., cached) subset of the map tile database. The metadata can include a classification of the current map tile or sub-tile. The map tile metadata can 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 can be used when calculating the distance for the trajectory.

[0058] The electronic device calculates the distance of the trajectory using distance information from map data (309). Instead of a straight-line calculation between position fixes collected along the user's trajectory using the electronic device 102 to calculate the distance between each of the collected position fixes, the distance given between positions on the path in the map data that closely matches the collected position fixes can be used. For example, two collected position fixes can be matched (e.g., "snapped") to positions along the path in the map data. Continuing with this example, the distance between two collected position fixes can be determined using the map data for the trajectory along the path in the map data, as opposed to calculating the distance between the two collected position fixes. Altitude information may be used to calculate the distance by considering the terrain the user traversed on the trajectory. Various algorithms can be used to determine the shortest distance between two position fixes along the path matched in the map data.

[0059] In some embodiments, the mode selection can affect the performance of the electronic device due to the selection of the technique used to determine the positioning information. For example, the Global Positioning System (GPS) technique can indicate that the analysis of context user data shows that the user may require higher accuracy in the positioning data, and the use of a particular GPS technique can be used when it can affect the performance of other applications on the electronic device more than other techniques. The selected mode can rely on various techniques and sources for determining the positioning information, such as the use of cell towers, motion sensors, Wi-Fi scans, GPS, etc.

[0060] Figures 4A - C illustrate a map matching technique according to an embodiment. In Figure 4A, block diagram 400 shows position fixes 403 collected every 100 seconds, and the position fixes are snapped to a path found in the map data. As shown in Figure 4B, block diagram 401 shows a path constructed from the map data. In Figure 4C, block diagram 402 shows a path 405 of points along which distances can be calculated using points extrapolated along path 405. Straightness metric and machine learning model approach

[0061] Figure 5 is a flowchart 500 showing a relaxation technique for determining distance according to an embodiment. The electronic device 102 intermittently obtains position fixes using a duty cycle as described in Figure 3A (501). First, the electronic device 102 receives at least two position fixes for the trajectory of (502). To conserve power, a duty cycle for requests for positioning information (e.g., GNSS requests) is implemented. The duty cycle is a defined portion of a period during which the system is active. For example, the collection of positioning information may be requested intermittently to allow the application processor to sleep between requests and / or to process requests from other applications.

[0062] The straightness metric is calculated (503) for a trajectory using the nose orientation information of the electronic device 102 obtained from sensor data when the electronic device 102 moves between at least two position fixes. The straightness metric is used to correct a linear estimate of the distance between the position fix endpoints. The nose orientation or direction (e.g., angle from magnetic north) information regarding the electronic device 102 is collected while the user is moving, and the nose orientation data is averaged to eliminate errors in the nose orientation information collected due to variations in the nose orientation measurements collected due to the movement of the device as the user moves along their trajectory (e.g., jostling of the device, hand sway if the device is worn on the user's wrist). The nose orientation information collected while the user moves between each position fix is used to reconstruct the path between each of the collected position fixes. The straightness metric is calculated between two position fixes (e.g., endpoints) by, for example, using sensor data to compare the distance of the reconstructed path traveled between two position fixes (e.g., endpoints) to the distance between the two position fixes. In one embodiment, the straightness metric is a number between 0 and 1, where 1 represents a straight line. The straightness metric is calculated for endpoints (e.g., collected position fixes) as follows. Straightness = d endpoints / Σd i where d endpoints is the distance between endpoints and Σd i is the sum of the distances between endpoints within the reconstructed path calculated assuming the user is moving at a constant speed using the nose orientation data.

[0063] The electronic device 102 requests (504) the calculation of the distance between position fixes from the path reconstruction machine learning model 240. The path reconstruction machine learning model 240 is trained to calculate the distance between position fixes. The electronic device 102 can submit to the path reconstruction machine learning model 240 a plurality of features including straightness metric calculation as inputs. The straightness metric is used as an input along with other features to the path reconstruction machine learning model 240 to determine the distance between position fixes collected along the user's trajectory by the electronic device 102. The other features can optionally be provided as inputs to the path reconstruction machine learning model 240 and include, but are not limited to: intermittent distances (e.g., 3D distances determined every two minutes), altitude changes (e.g., absolute altitude change every two minutes), course changes (e.g., absolute course change every two minutes), step counts (e.g., cumulative step count every two minutes), and / or speed changes (e.g., current speed and speed change over two minutes). The path reconstruction machine learning model 240 can be trained to estimate the distance using a set of features. 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 the 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 predicts a dependent variable using two or more predictors. The electronic device 102 receives (505) a distance calculation for the trajectory from the path reconstruction machine learning model 240 using the straightness metric and the machine learning model.

[0064] Figures 6A and 6B illustrate a technique for calculating distance in one embodiment. Figure 6A 600 shows an end point d endpoints and a travel path d 1 and d 2Shows the calculation of a straightness metric by comparing the distances between. FIG. 6B shows an example of a straightness metric for the illustrated paths of the distances taken by users 602, 604, and 606 between end points. As illustrated, the straight path 602 between two end points generates a straightness metric of 1. Path 606 shows a path with a switchback having a straightness metric of 0.22, and path 604 has a straightness metric of 0.9 with a windy path.

[0065] FIG. 7 is a flowchart 700 showing a method for determining a distance according to one embodiment. First, the electronic device 102 receives an indication for the location service session 102 (702). The indication can be direct as a user selection to start a location session, such as the selection of workout tracking. In another embodiment, the location service session can proactively begin acquiring location information in anticipation that the user will need historical location information.

[0066] Next, if the location service is not an extended session (704), the electronic device sends periodic positioning requests at regular time intervals (716). In one embodiment, the electronic device 102 sends a positioning information request every second. A distance meter (718) that depends on positioning information can be used to determine the distance the user has moved using the electronic device 102. Alternatively, if there is an indication that the location service session is an extended session where the electronic device 102 does not have the ability to recharge its battery (704), the electronic device 102 starts a duty cycle in extended mode using intermittent positioning requests (706). If map data is accessible (708), map matching of the electronic device 102 can be used to calculate distances as shown in FIG. 3. Alternatively, as shown in FIG. 5, the electronic device 102 calculates a straightness metric using a position fix and inputs the straightness metric into a trained path reconstruction machine learning model 240 (710). Optionally, a pedometer can be used to complete distance estimation (720). A pedometer or step counter is an application of the electronic device 102 that 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 positioning information.

[0067] FIG. 8 is a flowchart 800 for a location service according to one embodiment. In some embodiments, the location service may proactively acquire location information in anticipation of a user requesting access to historical location information for use with an application such as a map application. Context user data may be analyzed (801) to predict when a user may request historical location information. For example, the analysis of context user data may provide a prediction that location information about the most recent route or driving route taken may be requested by the user to enable the user to retrace their path. In some embodiments, context user data is analyzed to determine whether the user is likely to become lost and / or unable to access location information due to a loss of service (e.g., cellular service 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 in motion is part of the user's routine.

[0068] At least one indication of the intention of a user requesting access to historical positioning information may be received (802). The intention of a user requesting such historical positioning data may be indicated by an electronic device 102 designated as being in motion over a threshold duration and / or on a path where access to a service (e.g., cellular service, power loss) is reduced. Some activities or events indicated by context user data (e.g., application data), such as sensor data or application data indicating that the user is exercising or walking, may serve as predictors for the need to access historical positioning information and the potential intention to request historical positioning information. In another embodiment, analysis of user history data can provide information regarding routine transit routes or paths taken by the user, and the electronic device 102 can receive user context data indicating the intention of the user to repeat a routine, such as exiting a vehicle at a parking lot near an amusement park, a hiking area, a ski resort, and / or any other remote location.

[0069] Upon receiving an indication of the location status of the user's intention to use an application that enables retracing a route, a periodic request for positioning information may be executed according to the power capabilities of the device (803). Coarse-grained geofences may be established, and defined locations (e.g., a ski resort, an office in a national park, etc.) may be found along the route to be detected to obtain the user's positioning information while in motion. In some embodiments, AOP may be used to execute requests for positioning information (e.g., GPS). Positioning information over time may be presented in response to a request by the user in the electronic device 102 (804).

[0070] The user may be prompted to opt in to enable the electronic device to proactively acquire positioning information when the user context data indicates that the user may need to retrace their route, and the positioning information may be deleted when access to a service such as wireless connectivity or cellular service resumes.

[0071] Figure 9 shows a user interface 900 for a location service according to an embodiment. A navigation application 220 is shown along with an icon representing the location of the user's vehicle 904, an intermediate point 906, and a route 902 taken by the user. The intermediate point 906 and the position of the user vehicle 904 can mark locations of particular interest to the user and are shown as icons or markers as relative positions to the user's current location.

[0072] Figure 10 is a block diagram showing an exemplary API architecture that can be used in some embodiments of the present invention. As shown in Figure 10, an API architecture 1000 includes an API implementation component 1010 (e.g., an operating system, library, device driver, API, application program, 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 call component 1030. The API 1020 can specify at least one calling convention that specifies how functions of the API implementation component receive parameters from the API call component and how the functions return results to the API call component. The API call component 1030 (e.g., an operating system, library, device driver, API, application program, software, or other module) executes API calls 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 can return values to the API call component 1030 through the API 1020 in response to the API calls.

[0073] It will be appreciated that the API implementation component 1010 may include other features that are not specified through additional functions, methods, classes, data structures, and / or the API 1020 and are not available to the API call component 1030. It should be understood that the API call component 1030 may be on the same system as the API implementation component 1010 or specified remotely and can access the API implementation component 1010 using the API 1020 via a network. FIG. 10 shows a single API call component 1030 that interacts with the API 1020, but it should be understood that other API call components, which may be written in a different language (or the same language) than the API call component 1030, can use the API 1020.

[0074] The API implementation component 1010, the API 1020, and the API call component 1030 can be stored on 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, machine-readable media include magnetic disks, optical disks, random access memory, read-only memory, flash memory devices, and the like.

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

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

[0077] Sensors, devices, and subsystems can facilitate multiple functions by coupling to the peripheral device interface 1106. For example, a motion sensor 1110, a light sensor 1112, and a proximity sensor 1114 can be coupled to the peripheral device interface 1106 to facilitate mobile device functions. One or more biometric sensors (singular or plural) 1115, such as a fingerprint scanner for fingerprint authentication or an image sensor for face authentication, may also be present. Other sensors 1116 can also be connected to the peripheral device interface 1106, such as a positioning system (e.g., GPS receiver), a temperature sensor, or other sensing devices, to facilitate related functions. In one embodiment, the positioning system can have a wireless processor that can solve navigation equations to determine the user's position, speed, and / or time by processing signal broadcasts. A camera subsystem 1120 and an optical sensor 1122 (e.g., using a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) optical sensor) can facilitate camera functions such as recording photos and video clips.

[0078] One or more wireless communication subsystems 1124 can facilitate communication functions, and such subsystems can 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 can depend on the communication network(s) for which this mobile device is intended to operate. For example, a mobile device including the illustrated device architecture 1100 can include a wireless communication subsystem 1124 designed to operate on a GSM network, a CDMA network, an LTE network, a Wi-Fi network, a Bluetooth network, or any other wireless network. In particular, the wireless communication subsystem 1124 can provide a communication mechanism by which a media playback application can retrieve resources from a remote media server or scheduled events from a remote calendar or event server.

[0079] Coupling the audio subsystem 1126 to the speaker 1128 and the microphone 1130 can facilitate functions that can use audio, such as voice recognition, voice replication, digital recording, and telephone functions. In the smart media device described herein, the audio subsystem 1126 can be a high-quality audio system that includes support for virtual surround sound.

[0080] The I / O subsystem 1140 can include a touch screen controller 1142 and / or other input controller(s) 1145. In the case of a computing device that includes a display device, the touch screen controller 1142 can be coupled to a touch sensing display system 1146 (e.g., a touch screen). The touch sensing display system 1146 and the touch screen controller 1142 can use any of a plurality 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 contact points with the touch sensing display system 1146, to detect contacts, movements, and / or pressure. The display output for the touch sensing display system 1146 can be generated by a display controller 1143. In one embodiment, the display controller 1143 can provide frame data to the touch sensing display system 1146 at a variable frame rate.

[0081] In one embodiment, the 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 other sensors 1116. The sensor controller 1144 can include logic for interpreting sensor data and determining the occurrence of one of a plurality of motion events or activities based on an analysis of the sensor data from the sensors.

[0082] In one embodiment, the I / O subsystem 1140 includes other input controller(s) 1145 that can 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 the microphone 1130.

[0083] In one embodiment, the memory 1150 coupled to the memory interface 1102 can store instructions for an operating system 1152, including a Portable Operating System Interface (POSIX)-compliant and non-compliant operating system or an embedded operating system. The operating system 1152 can include instructions for processing basic system services and performing hardware-dependent tasks. In some implementations, the operating system 1152 can be a kernel.

[0084] The memory 1150 can also store communication instructions 1154 to facilitate communication with one or more additional devices, one or more computers, and / or one or more servers, for example, to retrieve web resources from a remote web server. The memory 1150 can also include user interface instructions 1156 that include graphical user interface instructions that facilitate the processing of a graphical user interface.

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

[0086] Each of the instructions and applications identified above may correspond to an instruction set for performing one or more of the above functions. These instructions need not be implemented as separate software programs, procedures, or modules. The memory 1150 may include additional instructions or may include fewer instructions. Furthermore, various functions can be implemented in hardware and / or software including one or more signal processing and / or application-specific integrated circuits.

[0087] FIG. 12 is a block diagram of a computing system 1200 according to one embodiment. The computing system 1200 shown in the figure is intended to represent various computing systems (wired or wireless) including, for example, one or more implementations of a desktop computer system, a laptop computer system, a tablet computer system, a cellular phone, a personal digital assistant (PDA) including a cellular-enabled PDA, a set-top box, an entertainment system or other consumer electronics device, a smart home appliance device, or a smart media playback device. Alternative computing systems may include more, fewer, and / or different components. The computing system 1200 may be used to provide a computing device and / or a server device to which the computing device may be connected.

[0088] Computing system 1200 includes a bus 1235 or other communication device for communicating information, and a processor(s) 1210 coupled to the bus 1235 that can process information. Although computing system 1200 is illustrated with a single processor, computing system 1200 may include multiple processors, low-power processors, and / or coprocessors. Computing system 1200 may further 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(s) 1210. In one embodiment, the memory 1420 may store instructions that can be executed by a low-power processor 1415 such as an AOP. In one embodiment, the low-power processor 1415 can be a component of a system-on-chip (SOC) that remains powered when the rest of the SOC is powered off. Implementations 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 main memory used to store temporary variables or other intermediate information during the execution of instructions by the processor(s) 1210.

[0089] Computing system 1200 may also include a read-only memory (ROM) 1230 and / or another data storage device 1240 coupled to the bus 1235 that can store information and instructions for the processor(s) 1210. The data storage device 1240 may be or include various 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.

[0090] Computing system 1200 may also be coupled to a display device 1250 via a bus 1235 to display information to a user. Computing system 1200 may also include an alphanumeric input device 1260 including alphanumeric and other keys that may be coupled to bus 1235 to communicate information and command selections to a processor(s) 1210. Another type of user input device may include a cursor control device 1270 such as a touchpad, mouse, trackball, or cursor direction keys that communicate direction information and command selections to a processor(s) 1210 and control cursor movement on display device 1250. Computing system 1200 may also receive user input from a remote device communicatively coupled via one or more network interface(s) 1280.

[0091] Computing system 1200 may further include one or more network interface(s) 1280 to provide access to a network such as a local area network. The network interface(s) 1280 may include, for example, a wireless network interface having an antenna 1285 that may represent one or more antenna(e). Computing system 1200 may include multiple wireless network interfaces such as a combination of Wi-Fi, Bluetooth®, Near Field Communication (NFC), and / or a cellular phone interface. For example, the network interface(s) 1280 may also include a wired network interface for communicating with a remote device via a network cable 1287 that may be, for example, an Ethernet cable, coaxial cable, fiber optic cable, serial cable, or parallel cable.

[0092] In one embodiment, the network interface(s) 1280 can provide access to a local area network, for example, by conforming to the IEEE 802.11 wireless standard, and / or the wireless network interface can provide access to a personal area network, for example, by conforming to the Bluetooth standard. Other wireless network interfaces and / or protocols can also be supported. In addition to, or instead of, communication via the wireless LAN standard, the network interface(s) 1280 can provide wireless communication, for example, using 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.

[0093] The computing system 1200 can further include one or more energy sources 1205 and one or more energy measurement systems 1245. The energy source 1205 can include an external power source, one or more batteries, one or more rechargeable storage devices, a USB charger, or an AC / DC adapter coupled to another energy source. The energy measurement system includes at least one voltage or amperage measurement device that can measure the energy consumed by the computing system 1200 over a predetermined period. Additionally, for example, it can include one or more energy measurement systems that measure the energy consumed by a display device, a cooling subsystem, a Wi-Fi subsystem, or other frequently used or high-energy consuming subsystems.

[0094] In various embodiments, reference is made to the figures. However, an embodiment can be practiced without using one or more of these specific details and in combination with other known methods and configurations. In the following description, numerous specific details, such as specific configurations, dimensions, and processes, are set forth in order to provide a thorough understanding of the embodiments. In other instances, well-known semiconductor processes and manufacturing techniques are not described in particular detail so as not to obscure the embodiments needlessly. Throughout this specification, references to "one embodiment" mean that a particular feature, structure, configuration, or characteristic described in connection with that embodiment is included in at least one embodiment. Thus, the appearances of the phrase "in one embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, configurations, or characteristics may be suitably combined in any one or more embodiments.

[0095] Although embodiments have been described in specific language with structural features and / or methodological acts, it is to be understood that the appended claims are not necessarily limited to the specific features or acts described above. The particular features and acts disclosed are rather to be understood as illustrative embodiments of the claims.

Claims

1. A method comprising: receiving at least two position fixes for the 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 shown in map data; calculating the distance of the trajectory using distance information using the map data.

2. The method of claim 1, wherein obtaining the position fix intermittently comprises: determining whether to send a positioning information request, the determining comprising: determining whether positioning information received from another location service application is old; if the positioning information is old, sending a positioning information request; if the positioning information is not old, obtaining the position fix from another location service application.

3. The method of claim 1, wherein obtaining the position fix intermittently comprises: determining whether to send a positioning information request, the determining comprising: deferring a positioning information request until an application processor is launched by another application running on the electronic device.

4. The method of claim 1, wherein obtaining the position fix intermittently comprises: determining whether to send a positioning information request, the determining comprising: deferring a positioning information request until a wireless processor is launched by another application running on the electronic device.

5. The method of claim 1, wherein the intermittently received position fix is received at various times within the N - period.

6. The method of claim 1, wherein the intermittently received position fix is continuously requested and received over various durations during the duty cycle period.

7. 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 regarding the trajectory of an electronic device, wherein the at least two position fixes are obtained intermittently; Calculating a straightness metric for the trajectory using the nose azimuth information obtained from sensor data when the electronic device moves between the at least two position fixes; Training a machine learning model to calculate the distance between position fixes using a plurality of features, wherein the plurality of features includes the straightness metric calculation; Receiving a distance calculation for the trajectory from the machine learning model using the straightness metric and the at least two position fixes. A method comprising the steps of:

9. The plurality of features includes The method according to claim 8, further comprising at least one of a distance calculated every N minutes, an absolute altitude change determined every N minutes, an absolute course change every N minutes, a cumulative number of steps provided every N minutes, or a current speed determined every N minutes.

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

11. The method according to claim 8, wherein the straightness metric is calculated between the at least two position fixes using the sensor data by comparing the distance for the reconstructed path traveled between two position fixes with the distance between the at least two position fixes.

12. The method according to claim 8, further comprising a duty cycle for requests for positioning information to obtain intermittent position fixes.

13. The method according to claim 8, wherein the machine learning model reconstructs a path from user-accessible data and estimates the distance for the path taken with the electronic device.

14. A method comprising: Analyzing user context data to determine that a set of conditions is met to proactively obtain positioning data in an extended mode; Based on the analysis of the user context data, starting the extended mode, wherein the extended mode includes a duty cycle position information request for obtaining intermittent position fixes. A method including performing at least one relaxation using the intermittently acquired position fixes to determine an orbit and a distance traveled along the orbit.

15. Performing the at least one relaxation includes receiving at least two intermittently acquired position fixes for the orbit of the electronic device, matching the at least two position fixes to points on a path shown in map data to determine the orbit, and calculating the distance for the orbit using distance information using the map data, the method according to claim 14.

16. Performing the at least one relaxation includes receiving at least two intermittently acquired position fixes for the orbit of the electronic device, calculating a straightness metric for the orbit using heading information obtained from sensor data when the electronic device moves between the at least two position fixes, training a machine learning model to calculate the distance between position fixes using a plurality of features, the plurality of features including the straightness metric calculation, and receiving a distance calculation for the orbit from the machine learning model using the straightness metric and at least two intermittently acquired position fixes, the method according to claim 14.

17. 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 period without network access, a density environment classification, or a comparison result between a distance to a frequently visited location and a threshold distance from the frequently visited location, the method according to claim 14.

18. Intermittently acquiring the position fix includes determining whether to send a request for positioning information, the determining including determining whether positioning information received from another location service application is old, and sending a request for positioning information if the positioning information is old. The method according to claim 14, comprising determining, when the positioning information is not old, to obtain the position fix from another location service application.

19. The intermittently obtaining the position fix is determining whether to send a request for positioning information, the determining comprising deferring the request for positioning information until the application processor or the radio processor is launched by another application running on the electronic device. The method according to claim 14, comprising determining.

20. further comprising changing a function of the electronic device and prioritizing execution of a service on the electronic device. The method according to claim 14.

21. A system, comprising one or more processors and a memory coupled to the one or more processors and configured to store a method, the method, when executed by the one or more processors, causing the one or more processors to analyze user context data to determine that a set of conditions is met for proactively obtaining positioning data in an extended mode, start the extended mode based on the analysis of the user context data, the extended mode including a duty cycle position information request for obtaining intermittent position fixes, perform at least one relaxation using the intermittently obtained position fixes to determine a trajectory and a distance traveled along the trajectory. A system comprising a memory.

22. Performing the at least one relaxation comprises receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, matching the at least two position fixes to points on a path shown in map data to determine the trajectory, and calculating the distance for the trajectory using distance information using the map data. The system according to claim 21.

23. Performing the at least one relaxation comprises receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, Calculating a straightness metric for the trajectory using the nose orientation information obtained from sensor data when the electronic device moves between the at least two position fixes; Training a machine learning model to calculate a distance between position fixes using a plurality of features, the plurality of features including straightness metric calculation; Receiving, from the machine learning model, a distance calculation for the trajectory using the straightness metric and at least two intermittently obtained position fixes, the system of claim 21.

24. The system of claim 21, wherein the condition includes at least one of motion classification, a comparison result between a time span of the electronic device without network access and a threshold period without network access, 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. Intermittently obtaining the position fix is Determining whether to send a request for positioning information, the determining including Determining whether positioning information received from another location service application is old; If the positioning information is old, sending a request for positioning information; If the positioning information is not old, obtaining the position fix from another location service application, the system of claim 21.

26. Intermittently obtaining the position fix is Determining whether to send a request for positioning information, the determining including Delaying a request for positioning information until an application processor or a wireless processor is launched by another application running on the electronic device, the system of claim 21.

27. Further including changing a function of the electronic device and prioritizing execution of a service on the electronic device, the system of claim 21.

28. A non-transitory machine-readable medium storing instructions, the instructions causing one or more processors to ​ Analyzing user context data to determine that a set of conditions is met to proactively obtain positioning data in extended mode, Based on the analysis of the user context data, starting the extended mode, wherein the extended mode includes a duty cycle position information request for obtaining intermittent position fixes, A non-transitory machine-readable medium that causes an operation to be performed, the operation including performing at least one relaxation using the intermittently obtained position fixes to determine a trajectory and a distance traveled along the trajectory.

29. Performing the at least one relaxation includes Receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, Matching the at least two position fixes to points on a path shown in map data to determine the trajectory, Calculating the distance for the trajectory using distance information using the map data, the non-transitory machine-readable medium according to claim 28.

30. Performing the at least one relaxation includes Receiving at least two intermittently obtained position fixes for the trajectory of the electronic device, Calculating a straightness metric for the trajectory using heading information obtained from sensor data when the electronic device moves between the at least two position fixes, Training a machine learning model to calculate a distance between position fixes using a plurality of features, the plurality of features including the straightness metric calculation, Receiving a distance calculation for the trajectory from the machine learning model using the straightness metric and at least two intermittently obtained position fixes, the non-transitory machine-readable medium according to claim 28.

31. The 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 period without network access, a 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. Intermittently obtaining the position fix is to determine whether to send a request for positioning information, and the determining is to determine whether positioning information received from another location service application is old, if the positioning information is old, sending a request for positioning information, if the positioning information is not old, obtaining the position fix from another location service application, and the determining includes, the non-transitory machine-readable medium according to claim 28.

33. Intermittently obtaining the position fix is to determine whether to send a request for positioning information, and the determining is including delaying the request for positioning information until the application processor or the radio processor is launched by another application executed on the electronic device, and the determining includes, the non-transitory machine-readable medium according to claim 28.

34. further including changing a function of the electronic device and prioritizing execution of a service on the electronic device, the non-transitory machine-readable medium according to claim 28.

Citation Information

Patent Citations

  • Portable electronic device, method and computer program using activity-triggered gps update

    JP2008539626A

  • Mobile terminal and method for adjusting the power on / off of a GPS positioning circuit

    JP2011504578A

  • Position estimation method, terminal apparatus and program

    JP2012122892A

  • Movement track detection device, program and movement track detection method

    JP2014048142A

  • Position information management device, position information management method, and program

    JP2016072887A